Known Problems
-
SuSE 9.1 and SLES9
special installation instructions
(Note this
procedure is not required for SuSE 9.1 2.6.4-52 or earlier)
1) install SuSE
9.1 kernel sources and compiler
2) The installer requires <source
tree>/scripts/basic/fixdep to exist. If it is missing the driver
build will fail. You can build it
using something like:
% cd /usr/src/<kernel>
% make xconfig
select "file->save" to save .config
% make scripts
3) Use installer kernel source option
to point to kernel sources location
% sh
NFORCE-Linux-<arch>-1.0-0283-pkg1.run
--kernel-source-path=/lib/modules/<kernel#>/source
4) modify /etc/modprobe.conf file for
nvsound and nvnet drivers as per the "Configuration" section of the
release
notes. (e.g, add "alias snd-card-0 nvsound" and "alias eth0 nvnet")
5) reboot
-
Audio driver hangs on load with
nForce2, 2.6 kernel and APIC enabled
The audio driver
will hang on load when used on an nForce 2 platform with 2.6 kernel and
APIC enabled. This will
be fixed with the next driver update.
There are two possible workarounds.
1) use the bootline option "noapic" or
disable APIC in the BIOS
2) revert back to the intel8x0 driver
-
2.4.x kernel hangs or some devices
are not available
There are bugs in 2.4.x kernel ACPI
support that may affect install and/or OS boot. If your having problems
one of the first trouble shooting tactics should be to disable ACPI.
This can be done from the bootline using
"acpi=off" boot line option or by modifying the BIOS settings.
-
Older distributions missing nForce 3 storage
controller device IDs
Some older distributions will not have
nForce 3 IDE/SATA device IDs. This will have the following consequence:
1) IDE class driver will not be able to use DMA. This will adversely
affect IDE performance. This can be worked around by
patching the driver with appropriate device IDs.
2) SATA controllers will not be available for OS installation. This
means PATA drive is required for OS install. After OS
installation SATA support can be added by patching the driver with the
appropriate device
IDs.
To patch the driver two tables in the drivers/ide/pci/amd74xx.c driver
need modification:
The first table is an array of struct amd_ide_chip called
amd_ide_chips. Each entry is of the
following form:
{ PCI_DEVICE_ID_XXXXXXXXXXX, 0xXX, AMD_UDMA_100 },
If any of the following device IDs are missing from that table:
PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE
PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE
PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA
PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2
then the amd74xx.c driver does not support the nForce 3 IDE and SATA
controllers. To add support:
Step 1: Define PCI device ID macros.
Immediately before the amd_ide_chips table, add the following lines:
#define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5
#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5
#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA 0x00e3
#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee
Step 2: Add entries to the end of the amd_ide_chips table (but before
the
terminating entry "{ 0 },").
{
PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE, 0x50, AMD_UDMA_133
},
{
PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE, 0x50, AMD_UDMA_133
},
{
PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA, 0x50,
AMD_UDMA_133 },
{
PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2, 0x50,
AMD_UDMA_133 },
Step 3: Add entries to the amd74xx_pci_tbl (but before the terminating
entry
"{ 0, },").
There is an array of struct pci_device_id called amd74xx_pci_tbl.
Entries
need to be added here for CK804/MCP04 support.
{ PCI_VENDOR_ID_NVIDIA,
PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 9
},
{ PCI_VENDOR_ID_NVIDIA,
PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 10 },
{ PCI_VENDOR_ID_NVIDIA,
PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 11 },
{ PCI_VENDOR_ID_NVIDIA,
PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2, PCI_ANY_ID, PCI_ANY_ID, 0,
0, 12 },
The number at the end of each entry (9 through 12) refers to the the
corresponding entries (numbering starts with 0) in the
amd_ide_chips table. For example, counting down in the
amd_ide_chips table, the 9th entry (starting the count
with 0) should correspond with the PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE
entry. If it doesn't correspond,
the numbers in the entries of amd74xx_pci_tbl will need to be adjusted
accordingly.
Step 4: Rebuild the kernel.
-
Network driver
will not operate on uni-processor kernel with spin-lock debugging
enabled.
The workaround is to do the following:
1) Extract the .run file (without
installing anything) with the -x option, like so:
% ./NFORCE-Linux-x86-1.0-0283-pkg1.run
-x
2) This creates a tree called
NFORCE-Linux-x86-1.0-0283-pkg1. "cd" into
NFORCE-Linux-x86-1.0-0283-pkg1/nvnet.
3) Edit the file nvenet.c:
At line 1720, change the line from
"spin_lock(lock);" to "spin_lock((spinlock_t*)lock);".
At line 1732, change the line from
"spin_unlock(lock);" to "spin_unlock((spinlock_t*)lock);".
4) Do a "make", followed by "make
install". That should build and install the nvnet driver.