Problèmes connus

·            Le noyau 2.4.x se bloque ou certains périphériques ne sont pas disponibles

Certains bugs dans le support de l’ACPI du noyau 2.4.x peuvent affecter l’installation et/ou le démarrage de l'OS. Si vous rencontrez ces problèmes,
l’une des premières méthodes à suivre pour les éliminer consiste à désactiver l’ACPI. Vous pouvez le faire depuis la ligne de démarrage en utilisant
l'option « acpi=off » ou en modifiant les paramètres du BIOS.

Si désactiver ACPI corrige le démarrage mais que vous souhaitez travailler avec ACPI activé, consultez les autres points de cette liste
relatifs aux problèmes et solutions des problèmes liés à ACPI.

·            Le noyau 2.4.x se bloque au démarrage sur les systèmes AMD64 lorsque ACPI est activé

Si avant le blocage le suivi de démarrage de la console du noyau indique que les interruptions de périphériques sont dirigées sur IRQ0, le blocage peut être
dû à un bug dans la gestion du noyau x86_64 de l'orientation des interruptions de l'ACPI. Un patch du noyau a été accepté pour corriger
ce bug, mais n'a pas encore été intégré à toutes les distributions. Dans ce cas, vous pouvez contourner le problème en
désactivant l’ACPI (dans le BIOS ou en utilisant l'option de ligne de démarrage 'acpi=off') ou en patchant manuellement le noyau.

Le patch modifie la fonction mp_parse_prt() dans arch/x86_64/kernel/mpparse.c. Vous pouvez patcher manuellement ce fichier en mettant
en commentaire la ligne :

        irq = entry->link.index;

qui précède immédiatement le commentaire :

        /* Dont set up the ACPI SCI because it's already up */

·            Les périphériques réseau et autres s’arrêtent de façon aléatoire quand ACPI est activé

Ce problème peut être dû à une table ACPI qui entraîne une configuration erronée des interruptions par le timer.
Si le suivi de démarrage de la console du noyau (visualisable en utilisant dmesg) contient des messages tels que les suivants :

..MP-BIOS bug: 8254 timer not connected to IOAPIC
...trying to set up timer (IRQ0) through the 8259A . failed.
...trying to set up timer as Virtual Wire IRQ... failed.
...trying to set up timer as ExtINT IRQ... works.

Alors l'entrée de table ACPI incorrecte est présente. Sur les noyaux 2.6, ce problème peut être contourné en spécifiant l'option de ligne de démarrage
 « acpi_skip_timer_override ». Une autre solution consiste à désactiver l'ACPI dans le BIOS ou en utilisant l'option de ligne de démarrage « acpi=off ».

·            Il est impossible d'amorcer le noyau 2.6.x sur certains systèmes

Un bug de la table MP du noyau 2.6.x empêche l'installation et le démarrage de l'OS sur certains systèmes¹.
Ce bug entraîne la corruption de la mémoire en cas de détection d'un bus PCI numéroté supérieur à 32 et rend, par conséquent, le système
inutilisable à un stade très précoce du processus d'installation ou de démarrage. Sur certains systèmes laisser ACPI activé pendant le démarrage
résout ce problème.

Il n'existe actuellement pas de solutions à ce problème, mais un patch du noyau a été accepté et devrait être inclus dans les prochaines distributions.

¹Au moment où nous rédigeons ces lignes, les seuls systèmes nForce connus pour déclencher ce bug du noyau sont les systèmes CK804 MP.

·             Certaines anciennes distributions n’ont pas d’ID de contrôleur de stockage nForce 3

Certaines anciennes distributions n’auront pas d’ID de périphériques IDE/SATA nForce 3. Dans ce cas :

1) Le pilote IDE ne pourra pas utiliser les DMA. Ceci aura des conséquences négatives sur les performances du pilote IDE. Il est possible de corriger ce
problème en appliquant un patch au pilote avec les ID de périphériques appropriés.
2) Les contrôleurs SATA ne seront pas disponibles pour l’installation de l'OS. Ce problème peut être contourné en utilisant un disque de pilotes pendant l'installation.
Attention, ce disque de pilotes ne prend actuellement en charge que les mises à jour 2 et 3 de RedHat Enterprise Linux 3, 64 bits uniquement.  L'image du disque du pilote et les instructions pour son utilisation sont disponibles en téléchargement via FTP (utilisateur anonyme) sur :

ftp://download.nvidia.com/linux/nforce/installdriverdisk/nvdriverdisk.tar.gz

 
Pour patcher les deux tables du pilote dans drivers/ide/pci/amd74xx.c, des modifications s’imposent :

La première table est un tableau de structure amd_ide_chip appelé amd_ide_chips.  Les entrées adoptent
la forme suivante :
    { PCI_DEVICE_ID_XXXXXXXXXXX, 0xXX, AMD_UDMA_100 },

Si l'un des ID de périphérique suivants manque de cette 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

Alors le pilote amd74xx.c ne prend pas en charge les contrôleurs IDE et SATA
nForce 3.  Pour ajouter ce support :

Étape 1 : Définissez des macros d’ID de périphériques PCI.

Immédiatement avant la table, ajoutez les lignes suivantes :

#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

Étape 2 : Ajoutez des entrées à la fin de la table amd_ide_chips(mais avant
        l’entrée terminale « { 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 },

Étape 3 : Ajoutez des entrées à amd74xx_pci_tbl (mais avant l’entrée terminale
        « { 0, }, »).

Il y a une table de structure pci_device_id appelée amd74xx_pci_tbl. Les entrées
doivent être ajoutées ici pour le support 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 },

Le numéro à la fin de chaque entrée (de 9 à 12) renvoie aux entrées correspondantes (numérotées à partir de 0) dans la table
amd_ide_chips.  Par exemple, en faisant le compte à rebours dans la table amd_ide_chips, la 9ème entrée (en commençant le compte
à 0) doit correspondre à l’entrée PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE. Si tel n’est pas le cas,
les numéros des entrées de la table amd74xx_pci_tbl devront être corrigés en conséquence.

Étape 4 : Recompilez le noyau.