Comment 0 for bug 342926

Revision history for this message
TJ (tj) wrote : failed to load the nvidia kernel module

Binary package hint: nvidia-glx-180

This issue could affect all versions of the Nvidia proprietary drivers.

The symptoms are that users report that systems with Nvidia-based graphics cards won't start the X server successfully. There are a wide range of symptoms that don't immediately lead to the cause.

The fact the nvidia kernel module failed to load is the biggest clue.

Check dmesg and /var/log/kern.log for something along these lines:

[ 20.137717] nvidia: module license 'NVIDIA' taints kernel.
[ 20.412849] ACPI: PCI Interrupt Link [LNEB] enabled at IRQ 18
[ 20.412858] nvidia 0000:02:00.0: PCI INT A -> Link[LNEB] -> GSI 18 (level, low) -> IRQ 18
[ 20.412862] NVRM: This PCI I/O region assigned to your NVIDIA device is invalid:
[ 20.412862] NVRM: BAR1 is 256M @ 0x30000000 (PCI:0002:00.0)
[ 20.412865] NVRM: This is a 64-bit BAR mapped above 4GB by the system BIOS or
[ 20.412865] NVRM: Linux kernel. The NVIDIA Linux graphics driver and other
[ 20.412866] NVRM: system software do not currently support this configuration
[ 20.412867] NVRM: reliably.
[ 20.412872] nvidia: probe of 0000:02:00.0 failed with error -1
[ 20.412887] NVRM: The NVIDIA probe routine failed for 1 device(s).
[ 20.412889] NVRM: None of the NVIDIA graphics adapters were initialized!

The reason is that the video chipset's PCI IOMEM RAM (in this case 256MB) cannot be allocated in the PCI IOMEM region from 3GB-4GB since other devices have already been given assignments that mean there isn't a 256MB gap available on a 256MB boundary - in other words, either at 3GB or 3.25GB.

The host system has 4GB of system RAM which causes the kernel to prevent the use of the 3GB-3.25GB range, and other allocations prevent the use other ranges.

A temporary work-around is to alter the BIOS video IOMEM position to below 4GB (on 64-bit architectures) or reduce the system's RAM to 2GB to leave sufficient free space.