Problemas conocidos

(Este procedimiento no es obligatorio para SuSE 9.1 2.6.4-52 ni para versiones anteriores.)

          1) Instale los archivos fuente del kernel y el compilador de SuSE 9.1.
2) El instalador necesita la presencia de <árbol archivos fuente>/scripts/basic/fixdep. Si no lo encuentra, no se podrá compilar el controlador. Puede generarlo
utilizando un procedimiento similar al siguiente:
% cd /usr/src/<kernel>
% make xconfig
Seleccione "Archivo->Guardar" para guardar .config
% make scripts
3) Utilice la opción de archivos fuente del kernel del instalador para indicar la ubicación de los archivos fuente.
% sh NFORCE-Linux-<arch>-1.0-0283-pkg1.run --kernel-source-path=/lib/modules/<nºde kernel>/source
4) Modifique el archivo /etc/modprobe.conf para los controladores nvsound y nvnet según lo indicado en la sección "Configuración" de las notas sobre la versión
(es decir, añada "alias snd-card-0 nvsound" y "alias eth0 nvnet").
5) Arranque el sistema.

El driver de audio se bloquea durante la carga cuando se utiliza con una plataforma nForce2, el kernel 2.6 y la controladora APIC activada. Este problema se corregirá en la próxima actualización del controlador. Hay dos formas de sortear el problema.

1) Usar la opción de arranque "noapic" o desactivar la APIC en la BIOS.
2) Volver a usar el controlador intel8x0.

Algunos errores de soporte de ACPI en el kernel 2.4.x pueden afectar a la instalación y/o el arranque del SO. Si se presenta algún problema,
una de las primeras acciones para resolverlo debería ser desactivar la función ACPI. Esto puede hacerse utilizando la opción de arranque
"acpi=off" o modificando la configuración de la BIOS.
Algunas distribuciones antiguas no tienen los ID de los dispositivos IDE/SATA de nForce3. Esto acarrea las siguientes consecuencias:

1) El controlador de clase IDE no podrá usar DMA, lo cual afectará negativamente al rendimiento de IDE. Este problema puede resolverse
añadiendo los ID de dispositivo apropiados al controlador.
2) Las controladoras SATA no estarán disponibles para la instalación del SO. Esto significa que se necesitará una unidad PATA para instalar el SO. Una vez instalado el SO, el soporte de
de SATA puede añadirse agregando los ID de dispositivo apropiados al controlador.

Para corregir el controlador, es preciso modificar dos de sus tablas en drivers/ide/pci/amd74xx.c:

La primera tabla es una matriz del struct amd_ide_chip denominada amd_ide_chips. Cada entrada tiene el formato
siguiente:
    { PCI_DEVICE_ID_XXXXXXXXXXX, 0xXX, AMD_UDMA_100 },

Si alguno de los siguientes ID de dispositivo no está en esa tabla:

PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE
PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE
PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA
PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2

significa que el controlador amd74xx.c no soporta las controladoras IDE y SATA
de nForce 3. Para añadir el soporte:

Paso 1: Defina las macros de ID de dispositivo de PCI.

Agregue las líneas siguientes inmediatamente antes de la tabla amd_ide_chips:

#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

Paso 2: Añada estas entradas al final de la tabla amd_ide_chips (pero antes de la entrada
 de finalización "{ 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 },

Paso 3: Añada algunas entradas a la tabla amd74xx_pci_tbl (antes de la entrada de finalización
        "{ 0, },").

Hay una matriz del struct pci_device_id denominada amd74xx_pci_tbl. Las entradas deben añadirse aquí para el soporte de CK804/MCP04.

    { 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 },

El número que hay al final de cada entrada (del 9 al 12) hace referencia a las entradas correspondientes (la numeración empieza desde 0) en la
tabla amd_ide_chips. Por ejemplo, si contamos las entradas en la tabla amd_ide_chips, la 9ª entrada (empezando desde
0) debería coincidir con la cadena PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE. Si no coincide,
será necesario ajustar la numeración de las entradas en la tabla amd74xx_pci_tbl según corresponda.

Paso 4: Recompile el kernel.

Para sortear el problema puede hacer lo siguiente:

1) Descomprima el archivo .run (sin instalar nada) con la opción -x, como se indica a continuación:

% ./NFORCE-Linux-x86-1.0-0283-pkg1.run -x

2) Esto crea un árbol llamado NFORCE-Linux-x86-1.0-0283-pkg1. "cd" a NFORCE-Linux-x86-1.0-0283-pkg1/nvnet.

3) Abra el archivo nvenet.c:

En la línea 1720, cambie la entrada "spin_lock(lock);" por la entrada "spin_lock((spinlock_t*)lock);".

En la línea 1732, cambie la entrada "spin_unlock(lock);" por la entrada "spin_unlock((spinlock_t*)lock);".

4) Utilice el comando "make" seguido de "make install". Con esto, debería compilar e instalar el controlador nvnet.