James - I hope this will catch your attention, mentioning one of your finer works usually does ;)
I am back from a 3 month holiday and did a significant update to my 12.1/KDE 4.8 Nvidia test system, as expected.
It included a new kernel, so I tried to run ālnvhwā ver 1.45 which I have installed.
The new kernel I have is 3.1.10-1.16-desktop, which arrived in August, as I recall.
After running a āupgrade all rpms with newer versionsā in YAST, I rebooted to install this kernel, knowing that I would have to run lnvhw from level 3 to recompile for the new kernel.
I rebooted with systemd, then with systemV, specifying ā3ā in the options line and both times lnvhw failed with an āX server runningā error message.
Executing āinit 3ā as root did not help.
So, frustrated, as root, I blew away /tmp/.X1-lock and ran lnvhw, the new kernel modules were created and life is good again at level 5 after reboot.
The time stamp on the /var/.X1-lock file seemed current to the recent reboot, it was not left over from an older session.
Any thoughts on why X appears to be starting even when level 3 is specified?
So, I am not sure how x could be running when at Run Level 3. Of course, in systemd, its not really Run Level 3 like it used to be. Also, I can not recommended switching to systemV and certainly switching back and forth is very likely to get something confused. So, not an explanation, but as a help to anyone needing to use Run Level 3 to load the nVIDIA driver, I have put together this blog on the subject:
I can say that I did have issues at first with systemd in openSUSE 12.1 which seemed to get corrected later and so a new install of openSUSE 12.1, not yet updated might show the problem as you describe. I normally manually add the nomodeset command to get openSUSE to load with some sort of display. Do a full distro update, which may add fixes to systemd and then go for installing the latest nVIDIA driver. This seems to have worked for me.
Thanks James, interesting Blog.
Iāll bookmark it for reference when 12.2 arrives next week.
What particularly bothered me was that, as root, āinit 3ā did not seem to remove the lock file /tmp/.X1-lock.
For other readers, removing the lock file did permit lnvhw to run and did reinstall the Nvidia driver for me (a new kernel had been downloaded).
I canāt promise that this will work in all situations.
So its interesting to read about this. With X running I find that I have a hidden file called /tmp/.X0-lock which makes me wonder if you have more than one video card or monitor connected?
So it is very likely the Analog output is the reason for the number 1 being used. Strictly speaking the configuration file /etc/X11/xorg.conf has been deprecated. It should be left blank (for compatibility) and your settings moved to the following folder /etc/X11/xorg.conf.d where separate files for monitor and keyboard exist. I found one good read here, though not specifically for openSUSE, the examples should be the same.
This file means that screen 0 is currently used and locks this screen, so that it doesnāt get used by another X session. If you start another X session whether in fullscreen (on a page on your desktop) or in a Window (for example with Xnest or Xephyr) or if you switch to another tty and start another X session from there, you will get a /tmp/X1-lock file, etc. It has nothing to do with video cards and monitors.
Because the X server wasnāt reset properly (for some reason) and didnāt remove the lock file. It is safe to remove left over Xn-lock files when X is not running. But how come you start numbering screens at 1? Do you have an /tmp/.X0-lock? How do you start X (xdm, gdm, kdm, startx ⦠something else?)
Why should it? The lock file doesnāt get remove when you start something (or enter a runlevel) but when you exit something (more precisely an X session in case of /tmp/.X?-lock files).
Sorry, I read the posts one by one.
It doesnāt think there are two cards? It just believes another screen is beeing used.
Iāll try to give you an example - it will use a script called ālsxā to list X sessions.
I first start kdm from the command line. Then I switch to a tty (using CTRL-ALT-Fn) and start another X session with startx.
It gives me the following:
Also notice that removing the X lock file might lead the X server to connect to an orphan socket. So if you intend to start an X session without rebooting, you must delete the dead socket.
And starting the next X session will fail with this error:
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
Fatal server error:
Cannot establish any listening sockets - Make sure an X server isn't already running
Deleting /tmp/.X11-unix/X6 will solve this problem.
Well ⦠This command is unfortunately not available since I havenāt released this script yet. Itās a complicated script I actually wrote to help me debug an even more complicated one. Maybe Iāll post them one day or create a package for openSUSE, but there is still a lot of work to do.