NVIDIA nForce Linux : Problèmes connus * Arrêt brusque de Skype avec le pilote nvsound du paquetage de pilotes 1.0-0301 Skype risque de s’arrêter brusquement s’il est utilisé avec le pilote nvsound du paquetage de pilotes 1.0-0301. Ce problème sera corrigé dans la prochaine version de ces pilotes. En attendant, un correctif qui corrige le pilote 1.0-0301 est disponible en ligne à l’URL suivant : http://www.nvnews.net/vbulletin/showthread.php?p=597243#post597243 * Le noyau 2.4.x se bloque ou certains périphériques ne sont pas disponibles Certains bogues 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. Cela peut se faire depuis la ligne de démarrage en utilisant l’option « acpi=off » ou en modifiant les paramètres du BIOS. Si désactiver l’ACPI corrige le démarrage mais que vous souhaitez travailler avec l’ACPI activée, consultez les autres points de cette liste relatifs aux problèmes et solutions des problèmes liés à l’ACPI. *    Le noyau 2.4.x se bloque au démarrage sur les systèmes AMD64 lorsque l’ACPI est activée 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 bogue dans la gestion du noyau x86_64 de l'orientation des interruptions de l'ACPI. Un correctif du noyau a été accepté pour corriger ce bogue, 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 commande « acpi=off ») ou en appliquant manuellement un correctif au noyau. Le correctif modifie la fonction mp_parse_prt() dans arch/x86_64/kernel/mpparse.c. Vous pouvez patcher ce fichier manuellement en mettant en commentaire la ligne suivante : 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 arrêtent de fonctionner de façon aléatoire quand l’ACPI est activée Ce problème peut être dû à une entrée incorrecte de la 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 (affichable 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 bogue de gestion de la table MP du noyau 2.6.x empêche l’installation et l’amorçage de l’OS sur certains systèmes. À l’heure où nous rédigeons ces lignes, les seuls systèmes nForce à déclencher ce bogue du noyau sont les systèmes nForce4. 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 l’ACPI activée pendant le démarrage résout ce problème. Il n’y a actuellement pas de solutions à ce problème, mais un correctif du noyau a été accepté et devrait être inclus dans les prochaines distributions. *   Certaines anciennes distributions n’ont pas d’ID de contrôleur de stockage nForce3/4 Certaines anciennes distributions n’ont pas d’ID de périphériques IDE/SATA nForce3/4. Dans ce cas : 1. 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. NVIDIA fournit actuellement des images de disque de pilotes téléchargeables via une connexion FTP anonyme pour les distributions suivantes : Red Hat Enterprise Linux, mises à jour 2 et 3 32 bits : ftp://download.nvidia.com/linux/nforce/installdriverdisk/rhel3/ia32/nvdriverdisk.tar.gz 64 bits : ftp://download.nvidia.com/linux/nforce/installdriverdisk/rhel3/x86_64/nvdriverdisk.tar.gz SuSE Linux Enterprise Server version 8 plus Service Pack 3 32 bits : ftp://download.nvidia.com/linux/nforce/installdriverdisk/sles8/ia32/nvdriverdisk.suse.tgz 2. Le pilote de classe IDE ne sera pas en mesure d’utiliser DMA, ce qui entraînera des performances IDE moindres. Cela peut être résolu en appliquant un correctif contenant les ID de périphériques appropriés au pilote. Pour patcher le pilote, des modifications de deux tables du pilote drivers/ide/pci/amd74xx.c 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 dans 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 PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2 PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_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 amd_ide_chips, 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 #define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE 0x0053 #define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA 0x0054 #define PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2 0x0055 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE 0x0035 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA 0x0036 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2 0x003e É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 },     { PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE, 0x50, AMD_UDMA_133},     { PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA, 0x50, AMD_UDMA_133},     { PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2, 0x50, AMD_UDMA_133 },     { PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE, 0x50, AMD_UDMA_133},     { PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA, 0x50, AMD_UDMA_133},     { PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_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 nForce3/nForce4.     { 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 },     { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13 },     { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 14 },     { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 15 },     { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 16 },     { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 17 },     { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 18 }, Le numéro à la fin de chaque entrée (de 9 à 18) renvoie aux entrées correspondantes (numérotées à partir de 0) de 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 ce 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.