1

I hope this is as easy as an already answered question I didn't find on SE.

So, I have an LTSP server running CentOS 6. Linux kernel version of both LTSP image and server are the same: is 2.6.32-504.8.1.el6.x86.64 (uname -r), yum is up to date on both as well. Numerous disk-less clients with a nVidia Quadro FX570 card, dual monitor which we recently replaced with a Quadro K620. My problem is trying to install the new nVidia driver, v346.59.

An overview of actions and results:

  • chroot to LTSP x86_64
  • run nVidia driver .run file and answer prompts (choosing Yes to include DKMS).
  • driver file (nvidia.ko) builds
  • fails to install (not a surprise, as the server has no GPU).
  • manually copy /opt/ltsp/x86_64/usr/src/nvidia-356.59/nvidia.ko to /lib/modules/uname -r/extra
  • echo "nouveau" >> /etc/modprobe.d/nouveau.conf
  • cd /boot and mkinitrd with running kernel (producing initram.img).
  • ensure vmlinuz.ltsp points to correct kernel, initrd.ltsp points to the newly made initramfs
  • ltsp-rewrap-kernel
  • exit chroot
  • as root ltsp-update-kernel /opt/ltsp/x86_64
  • boot thinclient to run level 3
  • run X -configure
  • validate xorg.conf.new contains a Device with "nvidia" driver.
  • start X: both with startx and X -conf xorg.conf.new

And now, the problem: X11 loads, some minor complaints about keyboards, and then hangs with a blank/black screen. X kill command works fine, X apps don't start.

I suspect the nvidia.ko is not being included in the initramfs because:

lsinitrd  /boot/initram.img | grep nvidia

produces no output.

I also suspect something isn't correct with the nouveau black list because:

lsinitrd /boot/initram.img | grep nouveau

contains all the .ko files installed in /lib/modules/uname -r/

Also, for reference I have manually used dkms to make/install the nvidia.ko module with the same results.

If someone could help me understand why the initrd doesn't contain the nvidia.ko driver and why X is stuck on the blank screen I would be very happy. I apologize for not having the actual error messages - the machine is on a different network and I can't copy/paste to it.

EDIT: Some additional improvements/notes.

  • when I start a thinclient in run level 3, and run startx, after stopping the X server if I look at /var/log/X.org.conf I see the nvidia module initializing and it correctly identifies the K620 device as well as the Dell monitor connected to it.

If this is the case, could the issue still be related to the nvidia module not being compatible with the running kernel? Or is a xinitrc incorrectly configured? or some other issue?

  • Do you have a test setup? I can't give you exact version numbers but starting at about driver version 320, the driver requires kernel version > 3.0 – eyoung100 Apr 16 '15 at 23:09
  • that would explain why driver 311 was working!! have you found any patches for either the kernel or the driver? – Daniel Apr 16 '15 at 23:10
  • AFAIK from compiling the source on my Gentoo box, NVIDIA has chosen not to backport the driver to kernel 2.6.x. As such you can either freeze the driver at 311 or upgrade the kernel to 3.x. According to The Linux Kernel Archive, updating to the longterm version 3.2.68 would be your best bet. – eyoung100 Apr 16 '15 at 23:18
  • @eyoung100 I updated the question a bit -- turns out I think the module is starting - it idents the monitor and device. – Daniel Apr 17 '15 at 17:05
  • What is the output of lsmod | grep nv along with modprobe -rf nvidia && modprobe nvidia Something tells me you'll receive a kernel version mismatch somewhere. – eyoung100 Apr 17 '15 at 17:30
1

Please realize this problem has nothing to do with xinitrc, or your XOrg Setup. I stand by my statement that you can:

  1. Either freeze the NVIDIA driver at 3.11.x, as this is the last driver to support the 2.6 series kernel, or:
  2. Update the kernel in your environment to at least 3.11.

See justification below.


This entry is in my changelog:

05 Sep 2013; Jeroen Roovers nvidia-drivers-173.14.38.ebuild: Raise compatible kernel to 3.11.

This indicates that even the bar for the older set of drivers has been raised to 3.11, and this bit of code is sitting in the 346.59 ebuild file:

pkg_pretend() {
    if use amd64 && has_multilib_profile && \
        [ "${DEFAULT_ABI}" != "amd64" ]; then
        eerror "This ebuild doesn't currently support changing your default ABI"
        die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
    fi

    if use kernel_linux && kernel_is ge 4 1 ; then
        ewarn "Gentoo supports kernels which are supported by NVIDIA"
        ewarn "which are limited to the following kernels:"
        ewarn "<sys-kernel/gentoo-sources-4.1"
        ewarn "<sys-kernel/vanilla-sources-4.1"
        ewarn ""
        ewarn "You are free to utilize epatch_user to provide whatever"
        ewarn "support you feel is appropriate, but will not receive"
        ewarn "support as a result of those changes."
        ewarn ""
        ewarn "Do not file a bug report about this."
    fi

This is a warning that gets printed out during install if my kernel is greater than or equal to 4.1. Notice that I'm told not to file a bug. So using both bits of information, I come up with the following:

To use the 346.59 driver my kernel cannot be less than 3.11, and cannot be greater than or equal to 4.1, and I cannot enable 32-bit emulation, when using a multilib system.


As a final option, you may also consider using the nouveau driver, which is available as a standard driver in kernels greater than or equal to 3.19.

  • This is a Gentoo specific build construct. This is not an nVidia created limitation. Thanks for the input, however it is not the problem I am having -- although at first it did seem relevant. Currently, I have the driver inserted, and, if ~/.xinitrc contains "xterm" then 'startx' starts the X server with a single xterm. However when I rely on the system xinitrc mechanism I get a black screen. I just changed the initial run level to '5', which is CentOS's X11 start, and get an error with prefdm "respawning too fast" ... this seems like my new problem track. – Daniel Apr 17 '15 at 18:42
  • Whist I agree with you about this being a Gentoo only construct, the warning is relavant across systems regarless of system. I urge you to test my theory by creating a CentOS VM with a 3.x Kernel before you discount my answer. Also please note that using the nvidia driver requires a customized xorg.conf that overrides xinitrc when used as a systemwide setting. I say this because I am currently using this driver with a VGA compatible controller: NVIDIA Corporation GF116 [GeForce GTX 550 Ti] (rev a1) – eyoung100 Apr 17 '15 at 18:49
  • I had used X -configure to generate a minimal xorg.conf, I'll try using nvidia-config ... maybe it will be different. The track looking at prefdm led me to discover that LTSP has it's own X starting script, which I didn't realize. It seems likely that if the thinclient can't find this script prefdm would fail since init spawns prefdm every time it fails, until init decides "spawning too fast" ... so, I think I'm definitely migrating to an LTSP/thinclient configuration issue. – Daniel Apr 17 '15 at 18:54
  • This Wiki Entry may help. As a side thought, The minimum requirements of your LTSP must meet the requirements of the items you install in it – eyoung100 Apr 17 '15 at 19:01
  • I'm not sure what you meant about """requirements of your LTSP must meet the requirements of the items you install""" – Daniel Apr 17 '15 at 19:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.