mbusb / multibootusb

Create multiboot live Linux on a USB disk...
http://multibootusb.org/
GNU General Public License v2.0
1.39k stars 201 forks source link

Trouble with startup (on Wayland) #260

Open ghost opened 6 years ago

ghost commented 6 years ago

Hi, Sometimes I've a problem with running multibootusb on "Debian (10) Buster" (gksu - The package is not available in this branch.) with gnome environment. I couldn't open the program for a long time & I got some errors like this:

sudo multibootusb
Running multibootusb version 9.1.0 from installed system...
Starting multibootusb GUI...
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
No protocol specified
qt.qpa.screen: QXcbConnection: Could not connect to display :0
Could not connect to any X display.

or

(without sudo) multibootusb
Traceback (most recent call last):
  File "/usr/bin/multibootusb", line 202, in <module>
    running_from()
  File "/usr/bin/multibootusb", line 49, in running_from
    gen.log('Running multibootusb version ' + gen.mbusb_version() + ' from installed system...')
  File "/usr/lib/python3/dist-packages/scripts/gen.py", line 45, in log
    level=logging.DEBUG)
  File "/usr/lib/python3.6/logging/__init__.py", line 1806, in basicConfig
    h = FileHandler(filename, mode)
  File "/usr/lib/python3.6/logging/__init__.py", line 1030, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python3.6/logging/__init__.py", line 1059, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding)
PermissionError: [Errno 13] Permission denied: '/tmp/multibootusb.log'

but the solution to my problem was very strange. I started & closed another program by root. Later I tried run multibootusb and it started normally! (of course, I had to enter root password). Is it a fault that I don't have a graphical environment installed on my root account? I installed gnome on my user account with sudo privileges. For example, now I'm getting an error/warning stating:

  1. While I run multibootusb via root using "su" command:
    Running multibootusb version 9.1.0 from installed system...
    Starting multibootusb GUI...
    **QStandardPaths: wrong ownership on runtime directory /run/user/1000, 1000 instead of 0
    QStandardPaths: wrong ownership on runtime directory /run/user/1000, 1000 instead of 0
    Qt: Session management error: None of the authentication protocols specified are supported**
    Cleaning old multibootusb directory...
    Syslinux exist in multibootusb directory...
    Using pyudev for detecting USB drives...
    No USB device found...
  2. While I run multibootusb via user using "sudo" command:
    [sudo] password user hamlet: 
    Running multibootusb version 9.1.0 from installed system...
    Starting multibootusb GUI...
    **QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'**
    Cleaning old multibootusb directory...
    Syslinux exist in multibootusb directory...
    Using pyudev for detecting USB drives...
    No USB device found...

    I don't understand why It's different messages but I think that scripts, which are used by multibootusb not solved problem with export display to root account - e.g. "host +"? (my root hasn't graphic environment) and authorities for users - e.g ".Xauthority file"? I will glad to hear your opinion on above problem :)

best regards Ham

mbusb commented 6 years ago

How did you install multibootusb?

On 25-Jan-2018 10:31 AM, "Hamlet89" notifications@github.com wrote:

Hi, Sometimes I've a problem with running multibootusb on "Debian" with gnome environment. I couldn't open the program for a long time & I got some errors like this:

wrong ownership on runtime directory /run/user/1000, 1000 instead of 0 qt: QStandardPaths: XDG_RUNTIME_DIR No protocol specified qt.qpa.screen: QXcbConnection: Could not connect to display :0

but the solution to my problem was very strange. I started & closed another program by root. Later I tried run multibootusb and it started normally! (of course, I had to enter root password). Is it a fault that I don't have a graphical environment installed on my root account? I installed gnome on my user account with sudo privileges. For example, now I'm getting an error/warning stating:

  1. While I run multibootusb via root using "su" command: multibootusb Running multibootusb version 9.1.0 from installed system... Starting multibootusb GUI... QStandardPaths: wrong ownership on runtime directory /run/user/1000, 1000 instead of 0 QStandardPaths: wrong ownership on runtime directory /run/user/1000, 1000 instead of 0 Qt: Session management error: None of the authentication protocols specified are supported Cleaning old multibootusb directory... Syslinux exist in multibootusb directory... Using pyudev for detecting USB drives... No USB device found...
  2. While I run multibootusb via user using "sudo" command: sudo multibootusb [sudo] hasło użytkownika zic: Running multibootusb version 9.1.0 from installed system... Starting multibootusb GUI... QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' Cleaning old multibootusb directory... Syslinux exist in multibootusb directory... Using pyudev for detecting USB drives... No USB device found... I don't understand why It's different messages but I think that scripts, which are used by multibootusb not solved problem with export display to root account - e.g. "host +"? (my root hasn't graphic environment) and authorities for users - e.g ".Xauthority file"? I will glad to hear your opinion on above problem :)

best regards Ham

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mbusb/multibootusb/issues/260, or mute the thread https://github.com/notifications/unsubscribe-auth/AEC34EFm37K9XRnHbLCHNHc4-Xt3ycXtks5tOAq5gaJpZM4RsVXL .

mbusb commented 6 years ago

Did you try to run from menu instead of terminal?

ghost commented 6 years ago

How did you install multibootusb?

I downloaded deb package from your site: http://multibootusb.org/page_download/ and installed by dpkg command. Like this: sudo dpkg -i python3-multibootusb_9.1.0-1_all.deb

Did you try to run from menu instead of terminal?

Yes, I tried to run via shortcut in a menu apps (in gnome press 'super' button on keyboard and search multibootusb in apps list). After that window appeared which asking for me about root password. I entered the password and nothing happened.. For a moment the system tried to load something, but nothing showed up. Sometimes window, which I had to enter the root password didn't appear in system at all.. Multibootusb is great and I like using him very much, but I've been having problems with starting multibootusb for a long time. I often have to reinstall mulibootusb with dependencies. I'm a bit frustrated. I know you can solve my problem :)

ghost commented 6 years ago

I found short solution: how to display a GUI (multibootusb), but in my opinion it shouldn't look like that. It'd be better if GUI of your application could be opened on the rights of simple user - not root. That is much safer. At the moment your miltibootusb doesn't work well on X11 (wayland). Why you require root privileges to run GUI application? At first I thought that enough was added a user to "disk" group (adduser ham disk), but problem didn't solved - starting program still needed a root password :(

OK, let show you what is my solution: 1) Run terminal and pate below command (running env). It's need root password: su - 2) Next check your parameters (e.g. name, etc.) of display: xauth list $DISPLAY 3) and number (or id) display via: echo $DISPLAY 4) Use below 2) and 3) point to this command: xauth add Host-name/unix:0 MIT-MAGIC-COOKIE-1 10c2cn12**********8n1 , where is "(..)/unix:" command you should enter the number from echo $DISPLAY command. After above instruction you can run multibootusb by using: multibootusb or sudo multibootusb commands OK, I resolved problem with running application, but now I really need your help. When I started multibootusb, I saw one more error: QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' I haven't strength to continue seeking what may be causing the problem. I'd prefer that it doesn't show me any errors. Could you solve this?

p.s. Now most systems base on linux will be use the wayland

mbusb commented 6 years ago

I don't think this is an issue with Wayland. The correct way to run multibootusb gui is using multibootusb-pkexec command in terminal.

Regarding the crashing of the application, the path to multibootusb binary (use which multibootusb command) and path specified in the polkit file (located at /usr/share/polkit-1/actions/org.debian.pkexec.run-multibootusb.policy has to be same. Correct the path issue in polkit issue and rerun the multibootusb-pkexec command to see if the same issue exist.

ghost commented 6 years ago

I'm trying to compare your advice with my suggestions above. Now command: sudo cat /usr/share/polkit-1/actions/org.debian.pkexec.run-multibootusb.policy send me:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
  <action id="org.debian.pkexec.run-multibootusb">
    <description>Run the multibootusb program</description>
    <message>Authentication is required to run the multibootusb</message>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/multibootusb</annotate>
    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
  </action>
</policyconfig>

I don't know How can I check the binary path of multibootusb to compare with above output: <annotate key="org.freedesktop.policykit.exec.path">**/usr/bin/multibootusb**</annotate> Could you tell me how u can do that? (I found the multibootusb icon in directory: /usr/share/applications and when I checked preferences by click on that icon i saw only "multibootusb-pkexec" in the command field. I'm not sure if that's what you meant while you saying about binary path). I run your app by multibootusb-pkexec (or multibootusb - there's no difference) and the same issue still exist: QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'

ghost commented 6 years ago

@mbusb Could you explain me your answer in examples? Where is the binary file? or Where should I look for it? I need more details..

mbusb commented 6 years ago

Execute which multibootusb

On 26-Jan-2018 10:51 PM, "Hamlet89" notifications@github.com wrote:

@mbusb https://github.com/mbusb Could you explain me your answer in examples? Where is the binary file? or Where should I look for it? I need more details..

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mbusb/multibootusb/issues/260#issuecomment-360847967, or mute the thread https://github.com/notifications/unsubscribe-auth/AEC34OZhkO7ICKIGETAgqpnFN1gScTjLks5tOgmSgaJpZM4RsVXL .

ghost commented 6 years ago

OMG.. when I haven't time then I'm like a novice - my brain turn off... of course which :)

$ which multibootusb
/usr/bin/multibootusb

&

$ sudo cat /usr/share/polkit-1/actions/org.debian.pkexec.run-multibootusb.policy
(..)
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/multibootusb</annotate>
(..)

so both paths are the same but I still have the same error: QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' I'm helpless. Do you have any ideas yet?

CDEguia commented 6 years ago

Could this be related to #169 , where the solution is to run $ xhost local:root then launch from the GUI or $ multibootusb-pkexec.

peddrinn commented 6 years ago

Give multibootusb the rights to access the X-Server with:

xhost +local:multibootusb