Bugzilla – Bug 116915
nvidia 1.0-7174 does not work since RC1 anymore, yet needed for GeForce 2 and below
Last modified: 2005-11-15 22:19:45 UTC
Because of using a GeForce 2 GTS I have to use the nvidia-driver 1.0-7174, which is the last one that supports legacy cards. There was/is absolutely no problem in using it with beta4 or SuSE 9.3, yet for RC1 it installs sucessfully, works right after installation, but fails after the first re-boot. One has to run the installer again, to get it working - till the next re-boot. I am not sure what information is needed, so I attach the X.org-log, as well as Sax2-log. The _1 extensions are the logs after re-installing the driver and it working correctly.
Created attachment 49873 [details] Xorg-log after re-boot (driver not working)
Created attachment 49874 [details] SaX2-log after re-booting (driver not working)
Created attachment 49875 [details] Xorg-log after re-installing driver (working)
Created attachment 49876 [details] SaX2-log after re-installing the driver (working)
For completeness: I can reproduce this on 2 machines: One with a TNT2 graphics card and another one with a Geforce2 one. Both machines have via-chipsets, by the way. I tried to boot into runlevel 3 to avoid via_agp being loaded automatically: No success, because via_agp and agpgart already were loaded. I blacklisted via_agp in /etc/modprobe.conf.local and added 'Option "NvAGP" "1"' to xorg.conf. After rebooting X didn't work as well. Re-runnling nvidia-installer fixed the problem again. So I think it doesn't depend on agp modules.
Created attachment 49918 [details] Output of nvidia-bug-report for both machines; before and after reboot. Contains: GF2-nvidia-bug-report-def.log GF2-nvidia-bug-report-working.log (from the machine with the Geforce2 card) TNT-nvidia-bug-report-def.log TNT-nvidia-bug-report-working.log (from the machine with the TNT2 card)
i see the exact same thing with a TNT2 - i even hacked a small init script that does fake the make process for the installer, apparently it is enough to let the installer binary run, you do not actually install a new module or call ldconfig or depmod (my script does not do all this). I am using the latest 9.3 NVidia driver (7167?)
Good catch, Daniel! The new driver creates the devices on demand. 1.0-7174 does not. Daniel Rahn <Daniel.Rahn@novell.com>: Hm, der Bug klingt nach 'udev legt /dev/nvidia* nicht an'. Auf meiner Workstation laeuft 1.0-7174 klaglos, auch nach einem Reboot (da ist eine Quadro2 Pro drin). Allerdings lasse ich die Devices von udev statisch anlegen. Damit laeuft dann aber auch alles prima.
> Allerdings lasse ich die Devices von udev statisch anlegen. Damit laeuft > dann aber auch alles prima. Daniel, could you please comment how you do this exactly? I'll add this information then to my nvidia Installer HOWTO. http://www.suse.de/~sndirsch/nvidia-installer-HOWTO.html http://www.suse.de/~sndirsch/nvidia-installer-HOWTO.html#19
In /etc/udev/* gibts eine Datei static-devices.* ... da traegst Du /dev/nvidiactl und /dev/nvidia* mit den korrekten Werten ein. Beim naechsten Reboot legt udev die Devicenodes dann an.
The file is called /etc/udev/static_devices.txt Enter these lines: nvidiactl c 195 255 666 nvidia0 c 195 0 666 nvidia1 c 195 1 666 nvidia2 c 195 2 666 nvidia3 c 195 3 666 nvidia4 c 195 4 666 For only one card, nvidiactl and nvidia0 should suffice.
Now if somebody could tell me how I can urge udev to create these devices for group video, the modes could be changed to be more restrictive.
This should do the trick: cat > /etc/udev/static_devices.txt << EOF nvidia c 195 0 666 nvidia c 195 1 666 nvidia c 195 2 666 nvidia c 195 3 666 nvidia c 195 4 666 nvidia c 195 5 666 nvidia c 195 6 666 nvidia c 195 7 666 nvidiactl c 195 255 666 EOF
Sorry, my comment #13 is more a less a duplicate of #11. > Now if somebody could tell me how I can urge udev to create these devices > for group video, the modes could be changed to be more restrictive. Maybe this already happens? /etc/udev/rules.d/50-udev.rules: [...] KERNEL=="nvidia*", NAME="%k", GROUP="video" KERNEL=="nvidiactl*", NAME="%k", GROUP="video" Hannes, Kay. Could you please comment on comment #12?
Well, no. There seems to be more necessary than the rules from comment #13: dany@choquet:~ $ l /dev/nvidia* crw-rw-rw- 1 root root 195, 0 2005-09-15 08:24 /dev/nvidia0 crw-rw-rw- 1 root root 195, 1 2005-09-15 08:24 /dev/nvidia1 crw-rw-rw- 1 root root 195, 2 2005-09-15 08:24 /dev/nvidia2 crw-rw-rw- 1 root root 195, 3 2005-09-15 08:24 /dev/nvidia3 crw-rw-rw- 1 root root 195, 4 2005-09-15 08:24 /dev/nvidia4 crw-rw-rw- 1 root root 195, 255 2005-09-15 08:24 /dev/nvidiactl So the static devices are not updated by the rules. Let's have Hannes or Kay comment.
The static_devices.txt does not support owner/group now, we need to add this. We should probably add an init script that loads the module and creates the nodes for every card found. (We replaced the kernel sysfs interfaces some while ago with a GPL only version, nvidia was forced to remove kernel udev support from all its drivers. I remember some mails on the kernel list, that nvidia wanted to add a init script to the driver package to create the nodes.)
Kay, the current nvidia driver (1.0-7676) no longer suffers from this problem. It creates the device on demand. There's no init script required. We're talking about an older nvidia driver release (1.0-7174) , which needs to be used for some legacy nvidia chips. I'll add the information about the static udev configuration to my nvidia installer HOWTO.
fixed documentation in nvidia installer HOWTO.
The HOWTO states: Since (open)SuSE Linux 10.0 you need to add the following entries to /etc/udev/static_devices.txt: nvidia c 195 0 666 ... nvidiactl c 195 255 666 And remove the nvidia file that is read by modprobe. That does not solve the issue for me. After reboot, X does not start. However, if I put makedevices.sh from the nvidia installer into boot.local or execute it after X has failed and then init 5 again it does work. So either my computer is reluctant to use the static_devices.txt, or adding the entries does not solve the issue. If the latter is correct, this "solution" should not be mentioned in the HOWTO and be replaced by a hint to extract the nvidia-driver with --extract-only, copy the makedevices.sh from extracted-NVIDIA-dir/usr/src/nv to /usr/local and put /usr/local/makedevices.sh into /etc/init.d/boot.local. Or, as I stated in another bug, introduce a second YOU script for users with legacy cards to not force them to do all that just to get their 3D drivers to work with SuSE 10.
Could you paste the output of 'ls -al /dev/nvidia*' when the system has booted without calling makedevices.sh here? Thanks.