Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
materiel:optimisation_ide [Le 22/01/2007, 14:46] 204.104.55.242 |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | DokuWiki | ||
- | <code> | ||
- | Versions Warty et Hoary | ||
- | </code> | ||
- | |||
- | Rédigé par [[utilisateurs:ostaquet]]. | ||
- | |||
- | |||
- | ====== Comment optimiser les transferts des périphériques IDE ? ====== | ||
- | |||
- | Par défaut, les périphériques IDE ne sont pas toujours optimisés au niveau performance sous Ubuntu. Pour ma part, les disques durs ont toujours été reconnus sur les machines que j'ai installées mais les lecteurs DVD ne l'étaient pas. | ||
- | |||
- | Sous Dapper Drake, l'activation des transferts DMA est permanente et automatique. | ||
- | |||
- | Néanmoins, voici la marche à suivre pour vérifier si les transferts DMA sont actifs sur votre configuration et comment les rendre actifs s'ils ne le sont pas. | ||
- | |||
- | Attention, les disques SATA ne sont pas concernés ! (pas besoin de DMA pour eux). | ||
- | Pour le sata, si la lecture est saccadee, ouvrir le fichier hdparm.conf ( taper sudo gedit"/etc/hdparm.conf" dans un terminal puis entrez votre mot de passe. | ||
- | ensuite, chechez la ligne marquee io32_support=0 et remplacez le 0 par un 1 | ||
- | quittez en sauvant les parametres. | ||
- | |||
- | (Verifie sous edgy eft) | ||
- | |||
- | ===== Vérifier si les transferts DMA sont actifs ===== | ||
- | |||
- | Il faut donc connaître les caractéristiques de ses périphériques IDE et de sa carte mère : si vous voyez que vos périphériques IDE ne sont pas bien optimisés par défaut au démarrage, il faudra créer un script shell avec des commandes hdparm pour optimiser les périphériques et configurer le système pour que ce script soit exécuté à chaque démarrage. | ||
- | |||
- | Nous prendrons comme exemple un ordinateur qui n'a qu'un seul périphérique IDE : un disque dur branché en Primary Master, donc accessible par /dev/hda. Cet exemple s'applique également aux lecteurs de CD, DVD et graveurs IDE. | ||
- | |||
- | Vous allez commencer par recueillir des informations sur votre périphérique : | ||
- | |||
- | <code> | ||
- | sudo hdparm -I /dev/hda | ||
- | </code> | ||
- | |||
- | Il faut regarder en particulier dans la section Capabilities ce qui concerne le DMA. Par exemple, pour notre disque-dur, nous avons : | ||
- | |||
- | <code> | ||
- | DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 udma6 | ||
- | </code> | ||
- | |||
- | L'étoile sur udma5 signifie que mon disque dur supporte le DMA, et que, si le DMA est activé, il se mettra en mode UDMA 5. | ||
- | |||
- | Maintenant, regardez si le DMA est activé : | ||
- | |||
- | <code> | ||
- | sudo hdparm -d /dev/hda | ||
- | </code> | ||
- | |||
- | Vous devriez obtenir une ligne de la sorte : | ||
- | |||
- | <code> | ||
- | /dev/hda: | ||
- | using_dma = 1 (on) | ||
- | </code> | ||
- | |||
- | Ici, le DMA est activé, donc le périphérique est configuré en UDMA - Cependant, le DMA peut ne pas être activé (''using_dma = 0''). Dans ce cas, examiner la section suivante pour l'activer. | ||
- | |||
- | |||
- | ===== Activer le DMA directement ===== | ||
- | |||
- | Si votre périphérique supporte le DMA et que celui-ci n'était pas activé, alors il faut absolument le faire, vous gagnerez énormément en performance : | ||
- | |||
- | <code> | ||
- | sudo hdparm -d1 /dev/hda | ||
- | </code> | ||
- | |||
- | Remarquez que cette commande n'active le DMA que jusqu'au prochain redémarrage de la machine. | ||
- | |||
- | A savoir: suite à un bug dans hoary, il se peut que cette manipulation fasse //planter// votre démarrage de Gnome avec le message suivant: | ||
- | Failed to initialize HAL. Danc ce cas, supprimez cette modification permanente et lancez simplement l'activation de dma lorsque vous en avez besoin. | ||
- | |||
- | ===== Activer le DMA au démarrage de la machine ===== | ||
- | |||
- | Pour activer le DMA au démarrage de la machine, vous devez éditer le fichier ''/etc/hdparm.conf'' à l'aide de la commande suivante [Alt]+[F2] puis : | ||
- | |||
- | <code> | ||
- | (pour Ubuntu) : gksudo gedit /etc/hdparm.conf | ||
- | |||
- | (pour Kubuntu) : kdesu kate /etc/hdparm.conf | ||
- | </code> | ||
- | |||
- | Vous pouvez ajouter (dans notre cas) les lignes suivantes : | ||
- | |||
- | <code> | ||
- | /dev/hda { | ||
- | quiet | ||
- | dma = on | ||
- | io32_support = 1 | ||
- | } | ||
- | </code> | ||
- | |||
- | Le paramètre quiet permet de rendre silencieuse la modification des propriétés du disque dur. Sans ce paramètre vous obtiendrez dans la console des informations sur l'état des modifications effectuées sur le disque dur. Le paramètre io32_support correspond à l'activation du transfert 32 bits. | ||
- | |||
- | Pour un lecteur cd-rom ou un graveur, ce sera : | ||
- | |||
- | <code> | ||
- | /dev/hdc { | ||
- | quiet | ||
- | dma = on | ||
- | io32_support = 1 | ||
- | cd_speed = 40 | ||
- | } | ||
- | </code> | ||
- | |||
- | Le paramètre cd_speed n'est nullement obligatoire mais permet de limiter la vitesse de lecture pour limiter le bruit par exemple (dans l'exemple, 40 correspond à la vitesse choisie, c'est-à-dire 40 fois). | ||
- | |||
- | Il est possible de tester ces modifications sans redémarrer l'ordinateur par la commande : | ||
- | |||
- | <code> | ||
- | sudo /etc/init.d/hdparm restart | ||
- | </code> | ||
- | |||
- | Puis utiliser la commande hdparm sans le paramètre -d : | ||
- | |||
- | <code> | ||
- | sudo hdparm /dev/hda | ||
- | </code> | ||
- | |||
- | Vous devriez obtenir une liste d'informations équivalente à celle-ci : | ||
- | |||
- | <code> | ||
- | /dev/hda: | ||
- | multcount = 0 (off) | ||
- | IO_support = 1 (32-bit) | ||
- | unmaskirq = 1 (on) | ||
- | using_dma = 1 (on) | ||
- | keepsettings = 0 (off) | ||
- | readonly = 0 (off) | ||
- | readahead = 256 (on) | ||
- | geometry = 30515/255/63, sectors = 490234752, start = 0 | ||
- | </code> | ||
- | |||
- | ===== Remarques ===== | ||
- | |||
- | === Obtenir l'identifiant des périphériques IDE === | ||
- | |||
- | Toutes les commandes reprises ci-dessus portent sur le périphérique IDE ''hda''. Pour connaître l'identifiant de votre périphérique sur votre système, vous pouvez utiliser la commande suivante : | ||
- | |||
- | <code> | ||
- | sudo dmesg | grep hd | ||
- | </code> | ||
- | |||
- | Vous obtiendrez des lignes similaires à celles-ci qui vous permettront de connaitre les identifiants de vos périphériques IDE. | ||
- | |||
- | <code> | ||
- | hda: Maxtor 6Y080P0, ATA DISK drive | ||
- | hdb: LITE-ON LTR-40125S, ATAPI CD/DVD-ROM drive | ||
- | </code> | ||
- | |||
- | === Pour tester la vitesse du disque dur === | ||
- | |||
- | Pour tester la vitesse de votre disque dur : | ||
- | |||
- | <code> | ||
- | sudo hdparm -tT /dev/hda | ||
- | </code> | ||
- | |||
- | Exemple de résultat : | ||
- | /dev/hda: | ||
- | Timing buffered disk reads: 70 MB in 3.07 seconds = 22.78 MB/sec | ||
- | |||
- | Note : si vous testez un lecteur de CD-ROM ou de DVD-ROM, veillez à insérer un support que votre périphérique est capable de lire afin de pouvoir faire le test. | ||
- | Dans le cas contraire (lecteur vide) vous obtiendriez le message suivant : | ||
- | |||
- | <code> | ||
- | read() failed: Input/output error | ||
- | </code> | ||
- | |||
- | |||
- | ===== En cas de problème ===== | ||
- | |||
- | === Timeouts ou lecteur pas prêt === | ||
- | Si vos lecteurs sont configurés en mode ''Cable Select'' (physiquement, dans la machine) et si lorsque vous exécutez des commandes ''hdparm'', vous recevez des erreurs relatives des //timeouts// ou des erreurs disant que le lecteur n'est pas prêt. Essayez de changer le lecteur en périphériques maître (''master'') ou esclave (''slave'') suivant la configuration de votre système. Une telle opération nécessite d'ouvrir le boitier et d'au moins savoir comment les lecteurs sont positionnés en mode ''Cable Select''. | ||
- | |||
- | === Opération non permise === | ||
- | |||
- | Parfois, la commande d'activation du DMA (''sudo hdparm -d1 /dev/hda'') explicitée ci-dessus peut échouer avec un message "opération non permise" (''Operation not permitted''). Vous pouvez régler ce problème en éditant le fichier ''/etc/modules'' (par le biais de la commande ''sudo gedit /etc/modules''). | ||
- | |||
- | Pour un chipset Intel, ajoutez les lignes : | ||
- | |||
- | <code> | ||
- | piix | ||
- | ide-core | ||
- | </code> | ||
- | |||
- | avant la ligne : | ||
- | |||
- | <code> | ||
- | ide-cd | ||
- | </code> | ||
- | |||
- | Pour un chipset nForce ou AMD, ajoutez la ligne : | ||
- | |||
- | <code> | ||
- | amd74xx | ||
- | </code> | ||
- | |||
- | avant la ligne : | ||
- | |||
- | <code> | ||
- | ide-cd | ||
- | </code> | ||
- | |||
- | Pour un chipset VIA, ajoutez la ligne : | ||
- | |||
- | <code> | ||
- | via82cxxx | ||
- | </code> | ||
- | |||
- | avant la ligne : | ||
- | |||
- | <code> | ||
- | ide-cd | ||
- | </code> | ||
- | |||
- | Ensuite, redémarrer la machine et réessayez la procédure décrite ci-dessus. |