-
Notifications
You must be signed in to change notification settings - Fork 144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[VGL] ERROR: Could not open display :8 if a program forks and exits optirun #42
Comments
There is a known problem with some wine applications that fork and kill the parent process without keeping track of it. Maybe we can figure our way around this. This is a known issue of VGL |
That error is caused by some applications to fork and quit optirun. Workaround: start a shell with optirun and run the wine program from it:
When done, exit bash to notify the daemon that there are no more clients. |
Maybe we can add an optirun option like |
Thank you, Lekensteyn, it works now. A more user-friendly way of doing this would be great, too. :) |
@Samsagax The extra shell option would not help because optirun cannot be sure when a program exits. Perhaps bumblebeed should wait a bit longer before quitting X. |
Hmm... We should be able to track the children of these processes using cgroups, just like systemd does. That would require kernel support for those to be enabled though. Enable only if available, perhaps? |
cgroups sounds good, but what if you really want to detach a process and it does not use X? |
Then why are you running it through optirun? ;-) |
Updated http://wiki.Bumblebee-Project.org/Troubleshooting I don't know, perhaps to keep the device enabled? It is indeed impossible to know whether the user really wants to use the nvidia card or not for a program started indirectly from optirun. |
Could you try this:
If that work then my suggestion could work |
@Samsagax bash will return just as much as our forking method does. |
Can ptrace help us futher maybe? |
Does anybody found a solution ? |
@raysarvatt Do you have it with all programs? (even |
yes,the workaround works.. it's so busy,but it works |
Perhaps you were running other optirun programs at the same time? That's what this workaround basically does. |
no,only one application is running with optirun |
This is related on how we manage power of the card. If bumblebeed notice no instance of optirun is running, then it will kill the second X server. As optirun can't track the forked child then it will exit and won't notice. |
I've changed PMMethod=none to PMMethod=auto,but nothing has been changed except glxgears 1862.182 FPS (before) 1356.261 FPS (after) |
I have the same issue trying to run two propietary 3d/fx software packages, Nuke and Houdini. The work if I launch them from the shell like this: |
As a workaround, you can create a wrapper after optirun:
#!/bin/sh
"$@"
if [ -x /usr/bin/zenity ]; then
zenity --info --text "Press OK to quit $*"
else
kdialog --msgbox "Press OK to quit $*"
fi
This is still not suboptimal because it'll present a dialog, but it avoid having to open a terminal. If you do not care about power saving at all, edit |
the script works very well for me .. thanks, Lekensteyn :) |
Add this fragment to the end of a sh file (INSPIRED IN IRONHIDE) HERE RUN COMMAND (in my case: wine starcrafII.exe)
To developers: can you add a option --follow-forks or similar?? |
Hello Lekensteyn, I used your script but here is a problem: the dialog pops out in front of my game (Fronzen Throne), and there is no way that I can change focus to my game. I can only click OK to close the dialog, but then my game is also closed. Would you please tell me how to solve this problem? Thanks a lot! |
@derekchiang Then try manually opening the shell as described in #42 (comment) |
@Lekensteyn Oh yes I tried. It works very well. Just a question: is there a difference between:
and
? |
The second form is redundant. I've never considered whether there are side-effects, but you're suggested to use the first form. |
@Lekensteyn OK thank you so much! |
since most people here are having wine/gamelauncher related issues, I wanted to share the workaround that I found recently: $> optirun bash -c "wine [your game] && wineserver -w" this will keep optirun running as long as a wineserver is running, which is typically what you want when you run a game :) I hope I don't violate any rule by posting this here, but I thought this is the best place to spread the word. Cheers, |
primus is solving this issue. |
@ArchangeGabriel Really? I'm having the same issue with |
@jleclanche Could you open a new issue stating what does work and what does not while trying all of |
Howdy, This is still an issue even with the latest (24/10/2016) bumblebee.
Error:
primusrun gives the exact same error. I have tried the following suggestions:
Interesting part: as some others have mentioned, dmesg shows ACPI Warnings about \_SB.PCI0.RP01.PXSX._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20160422/nsarguments-95)
vgaarb: this pci device is not a vga device To me, it looks like ACPI is looking at the wrong PCI address, or the wrong identifier (if thats the correct term for the last digit i.e. .0 or .1 on a PCI address? |
@sammcj the last digit of a PCI address is called a function. If you have an Optimus laptop with multiple GPUs, please check with your distro documentation on properly installing/configuring Bumblebee. |
Hello,
Today I got bumblebee updated to v3.0 and there seems to be a problem. Although optirun works for simple apps like glxgears and so on, I got trouble running some games with wine. I get this this error "[VGL] ERROR: Could not open display :8.". Other minor wine apps work with optirun just fine. Power management also seems to be working now. My laptop is Dell Inspiron N5110
Xorg.8.log: http://pastebin.com/CFJLbyFU
syslog: http://pastebin.com/HvUEvp8Q
Thank you.
The text was updated successfully, but these errors were encountered: