Bekannte Probleme

(nicht erforderlich für SuSE 9.1 2.6.4-52 oder frühere Versionen)

          1. Installieren Sie die SuSE 9.1 Kernelquellen und den Compiler.
2. Zum Erstellen des Installationspakets muss <Quellenpfad>/scripts/basic/fixdep vorhanden sein. Anderenfalls treten Fehler beim Erstellen des Treibers auf. Falls erforderlich können Sie fixdep wie folgt nachinstallieren:
% cd /usr/src/<Kernel>
% make xconfig
Mit "File -> Save" .config speichern
% make scripts
3. Starten Sie das Installationspaket mit der Befehlszeilenoption --kernel-source-path und übergeben Sie den Pfad zu den Kernelquellen:
% sh NFORCE-Linux-<Archiv>-1.0-0283-pkg1.run --kernel-source-path=/lib/modules/<Kernelversion>/source
4. Nehmen Sie in der Datei /etc/modprobe.conf die erforderlichen Änderungen für die Treiber nvsound und nvnet vor. Die Vorgehensweise ist in den Versionshinweisen unter "Konfiguration" genauer beschrieben, es müssen die Aliaseinträge "alias snd-card-0 nvsound" und "alias eth0 nvnet" hinzugefügt werden.
5. Starten Sie das System neu.

          Auf nForce2-Plattformen mit 2.6-Kernel und aktiviertem APIC hängt der Audiotreiber beim Ladevorgang. Dieses Problem wird in der nächsten Treiberversion behoben. In der Zwischenzeit gibt es zwei verschiedene Möglichkeiten, den Fehler zu umgehen:

1. Bootzeilenoption "noapic" verwenden oder APIC im BIOS deaktivieren
2. Ersatzweise wieder den intel8x0-Treiber verwenden

Die ACPI-Unterstützung von 2.4.x-Kernels enthält eine Reihe von Fehlern, die zu Problemen bei der Installation und/oder beim Booten führen können. Bei derartigen Problemen sollten Sie daher zunächst versuchen, ACPI probeweise zu deaktivieren. Dies können Sie entweder mit der Bootzeilenoption "acpi=off" oder durch Deaktivieren von ACPI im BIOS bewerkstelligen.
In einigen älteren Distributionen fehlen die Gerätekennungen für den nForce3 IDE/SATA-Controller. Dies hat einige Nachteile zur Folge:

1. IDE-Treiber arbeiten ohne DMA-Unterstützung. Dies führt zu Einbußen bei der IDE-Leistung. Dieses Problem lässt sich beheben, indem Sie die fehlenden Gerätekennungen nachträglich von Hand hinzufügen.
2. Bei der Betriebssysteminstallation können keine SATA-Controller verwendet werden. Zur Installation des Betriebssystem ist daher ein herkömmliches PATA-Laufwerk (Parallel ATA) erforderlich. Sobald das Betriebssystem einmal installiert ist, können Sie die SATA-Unterstützung nachträglich hinzufügen, indem Sie den Treiber um die fehlenden Gerätekennungen erweitern.

Um die Gerätekennungen nachträglich hinzuzufügen, müssen Sie den Treiber von Hand patchen. Dabei sind zwei Tabellen in der Datei drivers/ide/pci/amd74xx.c betroffen:

Die erste Tabelle trägt den Namen amd_ide_chips und ist ein Array des struct-Typs amd_ide_chip. Ihre Einträge haben das folgende Format:
    { PCI_DEVICE_ID_XXXXXXXXXXX, 0xXX, AMD_UDMA_100 },

Suchen Sie in der Tabelle nach den folgenden Einträgen:

PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE
PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE
PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA
PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2

Wenn einer dieser Einträge fehlt, unterstützt der Treiber amd74xx.c die IDE- und SATA-Controller des nForce3 nicht. Um die Unterstützung hinzuzufügen, gehen Sie wie folgt vor:

Schritt 1: Definieren Sie die Makros für die PCI-Gerätekennungen.

Fügen Sie direkt vor der Tabelle amd_ide_chips die folgenden Zeilen ein:

#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

Schritt 2: Fügen Sie am Ende der Tabelle amd_ide_chips (allerdings noch vor dem Schlusseintrag "{ 0 },") die folgenden Einträge ein.

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

Schritt 3: Weiters enthält der Treiber ein Array des struct-Typs pci_device_id, das den Namen amd74xx_pci_tbl trägt. Dieses muss um einige Einträge erweitert werden, um die Unterstützung für den CK804/MCP04 zu aktivieren. Fügen Sie vor dem Schlusseintrag "{ 0, }," die folgenden Einträge ein:

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

Die laufende Nummer (9 bis 12) am Ende eines jeden Eintrags bezieht sich auf die entsprechenden Einträge in der Tabelle amd_ide_chips (die Zählung beginnt bei 0). So sollte beispielsweise der neunte Eintrag in amd_ide_chips dem Eintrag PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE entsprechen. Wenn dies nicht der Fall sein sollte, müssen Sie die Eintragsnummern in amd74xx_pci_tbl entsprechend anpassen.

Schritt 4: Erstellen Sie eine neue Kernel-Build.

Gehen Sie wie folgt vor, um den Fehler zu beheben:

1. Entpacken Sie die .run-Datei mit der Option -x:

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

2. Wechseln Sie mit "cd" in das beim Entpacken angelegte Verzeichnis NFORCE-Linux-x86-1.0-0283-pkg1/nvnet.

3. Nehmen Sie die folgenden Änderungen an der Datei nvenet.c vor:

Ändern Sie Zeile 1720 von "spin_lock(lock);" in "spin_lock((spinlock_t*)lock);".

Ändern Sie Zeile 1732 von "spin_unlock(lock);" in "spin_unlock((spinlock_t*)lock);".

4. Führen Sie "make" und anschließend "make install" aus. So sollte der nvnet-Treiber neu erzeugt und installiert werden.