« Exploration de la configuration » : différence entre les versions
(conversion de la documentation originale de Léa par HTML::WikiConverter) |
m (Lea a déplacé la page Admin-admin plus-exploration config vers Exploration de la configuration) |
||
(12 versions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[ | [[Catégorie:Administration système]] | ||
= Exploration de la configuration = | = Exploration de la configuration = | ||
<div class="leatitre">Exploration de la configuration</div><div class="leapar">par [http://groupe.lea-linux.org/slack/alive Jonesy]<br /> Avec les remarques et conseils de Marck, Piem et Erwann. Et Anne pour le ''couteau suisse''.</div><div class="leadesc">Ou lorsque le | <div class="leatitre">Exploration de la configuration</div><div class="leapar">par [http://groupe.lea-linux.org/slack/alive Jonesy]<br /> Avec les remarques et conseils de Marck, Piem et Erwann. Et Anne pour le ''couteau suisse''.</div><div class="leadesc">Ou lorsque le manchot répond à toutes vos questions sur votre système.<br />(v.4)</div> | ||
---- | ---- | ||
Ligne 16 : | Ligne 17 : | ||
=== Points de détail === | === Points de détail === | ||
Il vous est vivement recommandé, de faire un < | Il vous est vivement recommandé, de faire un <tt>man</tt> sur les commandes avant de les lancer, ceci afin de connaître leurs fonctions et leurs options.<br /><br /> Absolument rien ne garantit que votre distribution fournisse et/ou installe toutes les commandes utilisées dans ce document.<br /> Presque toutes les commandes citées ici sont des commandes en ligne, à exécuter en <tt>init 3</tt> ou dans un terminal. Il existe aussi de nombreux outils graphiques pour ''décortiquer'' le système mais je ne les aborderai pas.<br /> Enfin, il s'avère qu'en fonction de votre distribution et de la configuration générale du système, les commandes suivantes '''peuvent être lancées''' avec un utilisateur normal, dans le cas contraire utilisez le <tt>root</tt>. A vous de voir et de tester. | ||
=== Mise en garde === | === Mise en garde === | ||
Ce document aborde un sujet plutôt technique, il n'est pas forcément à la portée de tout le monde. Les commandes ne sont pas compliquées mais l'interprétation de | Ce document aborde un sujet plutôt technique, il n'est pas forcément à la portée de tout le monde. Les commandes ne sont pas compliquées mais l'interprétation de leurs résultats peuvent l'être. | ||
== Mon matériel == | == Mon matériel == | ||
Ligne 34 : | Ligne 35 : | ||
<div class="code">BOOT_IMAGE=Slackware ro root=305 hdc=ide-scsi hdd=ide-scsi max_scsi_luns=4 devfs=mount</div> | <div class="code">BOOT_IMAGE=Slackware ro root=305 hdc=ide-scsi hdd=ide-scsi max_scsi_luns=4 devfs=mount</div> | ||
Cela pourra être utile pour comprendre pourquoi le système fait ou supporte ceci ou cela alors que nous ne lui avons dit ''nulle part''. | Cela pourra être utile pour comprendre pourquoi le système fait ou supporte ceci ou cela alors que nous ne lui avons dit ''nulle part''. Normalement vous devriez retrouver ces options dans la configuration de votre loader.<br /> | ||
=== Le matériel installé === | === Le matériel installé === | ||
Ligne 44 : | Ligne 45 : | ||
<br /> Ce qui retourne quelque chose comme ça:<br /> | <br /> Ce qui retourne quelque chose comme ça:<br /> | ||
<div class="code"> | <div class="code"> Device DMA IRQ I/O Ports <br /><nowiki>------------------------------------------------ </nowiki><br />3Com a400-a47f <br />8139too 9400-94ff <br />cascade 4 2 <br />Creative 9800-9807 a000-a01f <br />dma 0080-008f <br />dma1 0000-001f <br />dma2 00c0-00df <br />EMU10K1 5 a000-a01f <br />eth0 10 <br />fpu 00f0-00ff <br />ide0 14 01f0-01f7 03f6-03f6 d800-d807 <br />ide1 15 0170-0177 0376-0376 d808-d80f <br />keyboard 1 0060-006f <br />Mouse 12 <br />parport0 0378-037a <br />PCI 0cf8-0cff 9400-94ff <br />pic1 0020-003f <br />pic2 00a0-00bf <br />rtc 8 0070-007f <br />serial 02f8-02ff 03f8-03ff <br />timer 0 0040-005f <br />usb-uhci 11 d000-d01f d400-d41f <br />vesafb 03c0-03df <br />VIA d000-d01f d400-d41f d800-d80f e400-e4ff e800-e80f </div> | ||
Si la commande < | Si la commande <tt>lsdev</tt> n'est pas fournie par votre distribution, essayez :<br /> | ||
<div class="code">$ more /proc/devices</div> | <div class="code">$ more /proc/devices</div> | ||
Ligne 60 : | Ligne 61 : | ||
Par exemple cela renvoie :<br /> | Par exemple cela renvoie :<br /> | ||
<div class="code"> | <div class="code"> processor : 0<br /> vendor_id : AuthenticAMD<br /> cpu family : 6<br /> model : 4<br /> model name : AMD Athlon(tm) Processor<br /> stepping : 2<br /> cpu MHz : 900.044<br /> cache size : 256 KB<br /> fdiv_bug : no<br /> hlt_bug : no<br /> f00f_bug : no<br /> coma_bug : no<br /> fpu : yes<br /> fpu_exception: yes<br /> cpuid level : 1<br /> wp : yes<br /> flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow<br /> bogomips : 1795.68<br /> </div> | ||
Pour connaître le pourcentage d'utilisation du processeur :<br /> | Pour connaître le pourcentage d'utilisation du processeur :<br /> | ||
Ligne 78 : | Ligne 79 : | ||
Voici la partie du résultat qui nous intéresse :<br /> | Voici la partie du résultat qui nous intéresse :<br /> | ||
<div class="code"> | <div class="code"> [ ... ]<br /> irq 0: 387420 timer irq 10: 0 eth0<br /> irq 1: 9396 keyboard irq 11: 9366 usb-uhci, usb-uhci<br /> irq 2: 0 cascade [4] irq 12: 113603 PS/2 Mouse<br /> irq 6: 2 irq 14: 6555 ide0<br /> irq 8: 1 rtc irq 15: 2 ide1<br /> </div> | ||
Ou pour '''tous''' les IRQs possibles :<br /> | Ou pour '''tous''' les IRQs possibles :<br /> | ||
Ligne 84 : | Ligne 85 : | ||
<div class="code">$ procinfo -i </div> | <div class="code">$ procinfo -i </div> | ||
Par exemple, cela affiche, en plus, les < | Par exemple, cela affiche, en plus, les <tt>IRQs</tt> 3 et 4, les ports série, qui ne sont pas utilisés ici.<br /><br /> La commande <tt>procinfo</tt> peut servir pour la mémoire, l'occupation du processeur... Bref, faites <tt>man procinfo</tt> pour en savoir plus.<br /><br /> Comme pour <tt>lsdev</tt>, la commande <tt>procinfo</tt> peut être manquante, alors faites aussi :<br /> | ||
<div class="code">$ more /proc/interrupts</div> | <div class="code">$ more /proc/interrupts</div> | ||
Ligne 90 : | Ligne 91 : | ||
=== La RAM et la SWAP === | === La RAM et la SWAP === | ||
Pour afficher la < | Pour afficher la <tt>RAM</tt> et la <tt>SWAP</tt> disponibles en <tt> Mo</tt> :<br /> | ||
<div class="code">$ free -mt</div> | <div class="code">$ free -mt</div> | ||
Ligne 96 : | Ligne 97 : | ||
Ce qui donne :<br /> | Ce qui donne :<br /> | ||
<div class="code"> | <div class="code"> total used free shared buffers cached<br /> Mem: 501 118 382 0 2 76<br /> -/+ buffers/cache: 38 462<br /> Swap: 509 0 509<br /> Total: 1011 118 892<br /> </div> | ||
Pour avoir plus d'informations sur la mémoire (RAM et SWAP) de GNU/Linux, allez voir le ''Trucs & Astuces'' : [http://lea-linux.org/trucs/item.98.html Aide mémoire sur la mémoire]. | Pour avoir plus d'informations sur la mémoire (RAM et SWAP) de GNU/Linux, allez voir le ''Trucs & Astuces'' : [http://lea-linux.org/trucs/item.98.html Aide mémoire sur la mémoire]. | ||
Ligne 140 : | Ligne 141 : | ||
Ce qui affiche, par exemple :<br /> | Ce qui affiche, par exemple :<br /> | ||
<div class="code"> | <div class="code">Disque /dev/ide/host0/bus0/target1/lun0/disc : 255 têtes, 63 secteurs, 4865 cylindres<br /> Unités = cylindres sur 16065 * 512 octets<br /><br /> Périphérique Amorce Début Fin Blocs Id Système<br /> /dev/ide/host0/bus0/target1/lun0/part1 * 1 62 497983+ 82 Echange Linux<br /> /dev/ide/host0/bus0/target1/lun0/part2 63 548 3903795 83 Linux natif<br /> /dev/ide/host0/bus0/target1/lun0/part3 549 1156 4883760 83 Linux natif<br /> /dev/ide/host0/bus0/target1/lun0/part4 1157 4865 29792542+ 5 Etendue<br /> /dev/ide/host0/bus0/target1/lun0/part5 1157 1764 4883728+ 83 Linux natif<br /> /dev/ide/host0/bus0/target1/lun0/part6 1765 2250 3903763+ 83 Linux natif<br /> /dev/ide/host0/bus0/target1/lun0/part7 2251 2736 3903763+ 83 Linux natif<br /> /dev/ide/host0/bus0/target1/lun0/part8 2737 3222 3903763+ 83 Linux natif<br /> /dev/ide/host0/bus0/target1/lun0/part9 3223 4865 13197366 83 Linux natif<br /> </div> | ||
C'est le retour que l'on obtient avec un système GNU/Linux utilisant Devfs. La vieille norme de nommage est conservée par des liens symboliques, faites donc :<br /> | C'est le retour que l'on obtient avec un système GNU/Linux utilisant Devfs. La vieille norme de nommage est conservée par des liens symboliques, faites donc :<br /> | ||
Ligne 146 : | Ligne 147 : | ||
<div class="code">$ ls -l /dev/hda* /dev/hdb* /dev/sda* /dev/sdb*</div> | <div class="code">$ ls -l /dev/hda* /dev/hdb* /dev/sda* /dev/sdb*</div> | ||
<br />afin de voir la correspondance entre < | <br />afin de voir la correspondance entre <tt>/dev/ide/host0/bus0/target1/lun0/part9</tt> et <tt>/dev/hdb9</tt>, par exemple.<br /><br /> Pour vérifier si le DMA est activé pour votre disque dur :<br /> | ||
<div class="code"><nowiki># /usr/sbin/hdparm -d /dev/hda</nowiki></div> | <div class="code"><nowiki># /usr/sbin/hdparm -d /dev/hda</nowiki></div> | ||
Ligne 152 : | Ligne 153 : | ||
Ce qui retourne : | Ce qui retourne : | ||
<div class="code">/dev/hda:<br /> | <div class="code">/dev/hda:<br /> using_dma = 1 (on)<br /> </div> | ||
<br />Pour tester les performances de votre cache et de votre disque dur :<br /> | <br />Pour tester les performances de votre cache et de votre disque dur :<br /> | ||
Ligne 160 : | Ligne 161 : | ||
Ce qui retourne :<br /> | Ce qui retourne :<br /> | ||
<div class="code">/dev/hda:<br /> | <div class="code">/dev/hda:<br /> Timing buffer-cache reads: 128 MB in 0.74 seconds =172.97 MB/sec<br /> Timing buffered disk reads: 64 MB in 2.27 seconds = 28.19 MB/sec<br /> </div> | ||
<br />Modifiez < | <br />Modifiez <tt>/dev/hda</tt> en fonction de votre disque dur.<br /><br /><u>NDR </u><nowiki>: Pour information, le fichier correspondant aux partitions est </nowiki><tt>/proc/partitions</tt>.<br /> | ||
=== Les systèmes de fichiers supportés === | === Les systèmes de fichiers supportés === | ||
Ligne 172 : | Ligne 173 : | ||
Ce qui renvoie :<br /> | Ce qui renvoie :<br /> | ||
<div class="code"> | <div class="code"> nodev rootfs<br /> nodev bdev<br /> nodev proc<br /> nodev sockfs<br /> nodev tmpfs<br /> nodev shm<br /> nodev pipefs<br /> ext3<br /> ext2<br /> nodev ramfs<br /> umsdos<br /> msdos<br /> vfat<br /> iso9660<br /> nodev nfs<br /> reiserfs<br /> nodev devpts<br /> nodev usbdevfs<br /> nodev usbfs<br /> </div> | ||
<br /><u>NDR </u><nowiki>: Ce n'est pas vraiment du matériel, car cela dépend de la compilation de votre noyau, mais bon... :-) </nowiki> | <br /><u>NDR </u><nowiki>: Ce n'est pas vraiment du matériel, car cela dépend de la compilation de votre noyau, mais bon... :-) </nowiki> | ||
Ligne 178 : | Ligne 179 : | ||
=== Les CDROMs, graveurs et DVDROMs === | === Les CDROMs, graveurs et DVDROMs === | ||
Il y a des chances pour qu'à l'installation votre distribution détermine vos lecteurs de CDROMs, DVDs et graveurs. Mais si ce n'est pas le cas, ou si vous souhaitez en savoir plus, voici comment nous pouvons déterminer quel ''dev'' il faut monter pour pouvoir utiliser ces lecteurs et graveurs.<br /><br /> Sous < | Il y a des chances pour qu'à l'installation votre distribution détermine vos lecteurs de CDROMs, DVDs et graveurs. Mais si ce n'est pas le cas, ou si vous souhaitez en savoir plus, voici comment nous pouvons déterminer quel ''dev'' il faut monter pour pouvoir utiliser ces lecteurs et graveurs.<br /><br /> Sous <tt>/proc/ide</tt> pour les IDE, sinon ce sera <tt>/proc/scsi</tt>, vous trouverez un <tt>ide1</tt> et un <tt>ide2</tt>. Sous ces répertoires vous retrouverez <tt>hda, hdb, hdc et/ou hdd</tt>. Et enfin, là, vous trouverez :<br /> | ||
* un fichier < | * un fichier <tt>media</tt> qui indique si c'est un cdrom, un disque dur ou autre<br /> Résultat de la commande <tt>cat media</tt> : <tt>cdrom</tt> | ||
* un fichier < | * un fichier <tt>model</tt> qui donne le modèle du média installé<br /> Résultat de la commande <tt>cat model</tt> : <tt>SONY CD-RW CRX140E</tt> | ||
<div class="code">/proc/ide/-+-ide1/-+-hda/<br /> | <div class="code">/proc/ide/-+-ide1/-+-hda/<br /> | |<br /> | `-hdb/<br /> |<br /> `-ide2/-+-hdc/-+-media<br /> | `-model<br /> `-hdd/<br /> </div> | ||
Pour voir en une seule fois vos périphériques IDE, faites :<br /> | Pour voir en une seule fois vos périphériques IDE, faites :<br /> | ||
Ligne 197 : | Ligne 198 : | ||
<div class="code">$ find /proc/ide -iname "media" -type f -print</div> | <div class="code">$ find /proc/ide -iname "media" -type f -print</div> | ||
<br />Pour savoir si votre graveur est reconnu en tant que graveur, faites (obligatoirement en < | <br />Pour savoir si votre graveur est reconnu en tant que graveur, faites (obligatoirement en <tt>root</tt>) : <br /><span class="ToRemove">Spécifique au noyau 2.4.x :</span> | ||
<div class="ker24"><div class="code"><nowiki># cdrecord -scanbus</nowiki></div><u>NDR </u><nowiki>: Pensez à l'</nowiki>[#modules émulation SCSI] pour un graveur IDE. </div> | <div class="ker24"><div class="code"><nowiki># cdrecord -scanbus</nowiki></div><u>NDR </u><nowiki>: Pensez à l'</nowiki>[#modules émulation SCSI] pour un graveur IDE. </div> | ||
Ligne 207 : | Ligne 208 : | ||
=== L'USB === | === L'USB === | ||
Afin de connaitre vos périphériques USB, vous avez la commande < | Afin de connaitre vos périphériques USB, vous avez la commande <tt>lsusb</tt> : | ||
<div class="code">$ /sbin/lsusb</div> | <div class="code">$ /sbin/lsusb</div> | ||
Ligne 215 : | Ligne 216 : | ||
<div class="code"> Bus 002 Device 001: ID 0000:0000 <br /> Bus 002 Device 002: ID 04e1:0201 Iiyama North America, Inc. Monitor Hub<br /> Bus 002 Device 003: ID 05dc:a400 Lexar Media, Inc. <br /> Bus 001 Device 001: ID 0000:0000 <br /> Bus 001 Device 002: ID 058f:9360 Alcor Micro Corp. <br /> </div> | <div class="code"> Bus 002 Device 001: ID 0000:0000 <br /> Bus 002 Device 002: ID 04e1:0201 Iiyama North America, Inc. Monitor Hub<br /> Bus 002 Device 003: ID 05dc:a400 Lexar Media, Inc. <br /> Bus 001 Device 001: ID 0000:0000 <br /> Bus 001 Device 002: ID 058f:9360 Alcor Micro Corp. <br /> </div> | ||
<br /> Pour avoir plus de | <br /> Pour avoir plus de détails, vous pouvez faire : <br /> | ||
<div class="code">$ /sbin/lsusb -v</div> | <div class="code">$ /sbin/lsusb -v</div> | ||
Hormis cela, vous pouvez consulter le répertoire < | Hormis cela, vous pouvez consulter le répertoire <tt>/proc/bus/usb</tt>. | ||
=== Tout le reste === | === Tout le reste === | ||
Ligne 231 : | Ligne 232 : | ||
<span class="ToRemove">Spécifique au noyau 2.4.x :</span> | <span class="ToRemove">Spécifique au noyau 2.4.x :</span> | ||
<div class="ker24"><div class="code"> [...] <br /> | <div class="ker24"><div class="code"> [...] <br />scsi2 : SCSI emulation for USB Mass Storage devices <br /> Vendor: LEXAR Model: JUMPDRIVE ELITE Rev: 1000 <br /> Type: Direct-Access ANSI SCSI revision: 02 <br />Attached scsi removable disk sde at scsi2, channel 0, id 0, lun 0 <br />SCSI device sde: 502880 512-byte hdwr sectors (257 MB) <br />sde: Write Protect is off sde: '''sde1''' [...]<br /> </div><div class="note">Comme vous pouvez le deviner, la clé USB en question ici est une ''Lexar JumpDrive Elite'' de 256 Mo.</div> </div> | ||
<br /><span class="ToRemove">Spécifique au noyau 2.6.x :</span> | <br /><span class="ToRemove">Spécifique au noyau 2.6.x :</span> | ||
<div class="ker26"><div class="code"> usb 2-1.2: new full speed USB device using uhci_hcd and address 3<br /> ubb: device 3 capacity nsec 502880 bsize 512<br /> ubb: device 3 capacity nsec 502880 bsize 512<br /> | <div class="ker26"><div class="code"> usb 2-1.2: new full speed USB device using uhci_hcd and address 3<br /> ubb: device 3 capacity nsec 502880 bsize 512<br /> ubb: device 3 capacity nsec 502880 bsize 512<br /> ubb: '''ubb1'''<br /> </div> </div> | ||
J'ai mis ici en gras le ''block special device'' (< | J'ai mis ici en gras le ''block special device'' (<tt>/dev/'''sde1''' ou '''ubb1'''</tt>) à utiliser pour la commande <tt>mount</tt>. | ||
=== Mini-conclusion === | === Mini-conclusion === | ||
Toutes ces commandes peuvent vous aider à mieux connaître votre système, mais surtout à le configurer et à l'optimiser.<br /><br /> Comme vous l'avez sûrement remarqué, le répertoire < | Toutes ces commandes peuvent vous aider à mieux connaître votre système, mais surtout à le configurer et à l'optimiser.<br /><br /> Comme vous l'avez sûrement remarqué, le répertoire <tt> /proc</tt> est très utile ! Sachez que, généralement, les outils s'appuient sur ce répertoire pour vous retourner les informations. Vous ne risquez rien à le parcourir et à faire des <tt>less</tt> des fichiers que vous y rencontrerez. En plus, c'est la seule méthode qui marchera sur toutes les distributions. | ||
== lshw : le couteau suisse de l'information système == | == lshw : le couteau suisse de l'information système == | ||
Votre distribution vous fournit peut être maintenant un outil à tout faire pour explorer votre configuration matérielle : < | Votre distribution vous fournit peut être maintenant un outil à tout faire pour explorer votre configuration matérielle : <tt>lshw</tt>. Cet outil va vous permettre de synthétiser des informations concernant la mémoire, la version du firmware, la configuration de la carte mère, la version du CPU et sa vitesse, la configuration du cache, la vitesse du bus... | ||
lshw va en fait lire dans tous les fichiers nécessaires (fichiers listés dans le man de l'outil) pour en récupérer les informations nécessaires. Le résultat peut être extrait au format texte, XML ou HTML. | lshw va en fait lire dans tous les fichiers nécessaires (fichiers listés dans le man de l'outil) pour en récupérer les informations nécessaires. Le résultat peut être extrait au format texte, XML ou HTML. | ||
Ligne 251 : | Ligne 252 : | ||
=== Affichage court === | === Affichage court === | ||
Une des sorties écran le plus simple reprend le modèle de la commande < | Une des sorties écran le plus simple reprend le modèle de la commande <tt>ioscan</tt> qu'on retrouve sur les systèmes HP-UX. | ||
<div class="code"><nowiki># lshw -short</nowiki><br /> | <div class="code"><nowiki># lshw -short</nowiki><br /> H/W path Device Class Description<br /> =======================================================<br /> system MS-6590<br /> /0 bus MS-6590<br /> /0/0 memory BIOS<br /> /0/4 processor AMD Athlon(tm) XP 2000+<br /> /0/4/5 memory L1 cache<br /> /0/4/6 memory L2 cache<br /> /0/1 memory System memory<br /> /0/e0000000 bridge VT8377 [KT400/KT600 AGP] Host Bridge<br /> /0/e0000000/1 bridge VT8235 PCI Bridge<br /> /0/e0000000/1/0 /dev/fb0 display NV17 [GeForce4 MX 440]<br /> /0/e0000000/6 eth1 network VT6102 [Rhine-II]<br /> /0/e0000000/8 eth0 network RTL-8029(AS) </div> | ||
où | où | ||
Ligne 266 : | Ligne 267 : | ||
Vous avez également la possibilité d'obtenir une description complète de votre configuration matérielle. Par défaut, le résultat est affiché sur la sortie standard. Pour la conserver il suffit donc de faire une redirection dans un fichier | Vous avez également la possibilité d'obtenir une description complète de votre configuration matérielle. Par défaut, le résultat est affiché sur la sortie standard. Pour la conserver il suffit donc de faire une redirection dans un fichier | ||
<div class="code"><nowiki># lshw > lshw.txt</nowiki><br /> # cat lshw.txt<br /> pingu<br /> | <div class="code"><nowiki># lshw > lshw.txt</nowiki><br /> # cat lshw.txt<br /> pingu<br /> description: Desktop Computer<br /> product: MS-6590<br /> vendor: MSI<br /> version: 1.0<br /> serial: 00000000<br /> capabilities: smbios-2.3 dmi-2.3<br /> configuration: chassis=desktop<br /> *-core<br /> description: Motherboard<br /> product: MS-6590<br /> vendor: MSI<br /> physical id: 0<br /> version: 1.0<br /> serial: 00000000<br /> slot: PCI2<br /> *-firmware<br /> description: BIOS<br /> vendor: American Megatrends Inc.<br /> physical id: 0<br /> version: 07.00T (04/02/01)<br /> size: 64KB<br /> capacity: 192KB<br /> [...]</div> | ||
=== Affichage XML / HTML === | === Affichage XML / HTML === | ||
lshw propose une option permettant une récupération des informations au format XML et/ou HTML. La commande est simple : | |||
<code multi># lshw -html</tt> | |||
Elle sort une page html sur la sortie standard. | |||
< | Pour afficher cette page, une commande du type : | ||
<code multi># lshw -html > /tmp/lshw.html ; konqueror file:/tmp/lshw.html</tt> | |||
fonctionne très bien. | |||
=== Client Gtk === | |||
Enfin, il existe un client Gtk : <tt>gtk-lshw</tt> ou <tt>lshw -X</tt> | |||
== Mon système GNU/Linux == | == Mon système GNU/Linux == | ||
Ligne 284 : | Ligne 291 : | ||
<div class="code">/etc/''nom-distribution''</div> | <div class="code">/etc/''nom-distribution''</div> | ||
<br />Il suffit donc de faire un < | <br />Il suffit donc de faire un <tt>cat</tt> de ce fichier.<br /><br /> Par exemple, pour la Mandrake c'est <tt>/etc/mandrake-release</tt> et pour la Slackware, <tt>/etc/slackware-version</tt>. | ||
=== Le nom de ma machine === | === Le nom de ma machine === | ||
Ligne 302 : | Ligne 309 : | ||
Pour connaître la configuration actuelle du noyau :<br /> | Pour connaître la configuration actuelle du noyau :<br /> | ||
* Soit vous savez où récupérer le < | * Soit vous savez où récupérer le <tt>.config</tt> de votre noyau | ||
* Soit utilisez le ''Trucs & Astuces'' : [http://lea-linux.org/trucs/item.161.html Récupérer le fichier .config] par Anne | * Soit utilisez le ''Trucs & Astuces'' : [http://lea-linux.org/trucs/item.161.html Récupérer le fichier .config] par Anne | ||
Ligne 308 : | Ligne 315 : | ||
* Avec l'éditeur de votre choix. | * Avec l'éditeur de votre choix. | ||
* Sous X avec : < | * Sous X avec : <tt><nowiki># make xconfig</nowiki></tt><br /> ou alors avec : <tt><nowiki># make menuconfig</nowiki></tt>, le tout en étant sous <tt>/usr/src/linux</tt>. <div class="warning">Attention à ne pas sauver !</div> | ||
=== Les modules du noyau === | === Les modules du noyau === | ||
Ligne 320 : | Ligne 327 : | ||
<div class="code">/usr/src/linux/Documentation</div> | <div class="code">/usr/src/linux/Documentation</div> | ||
et cherchez sans oublier les sous-répertoires. En particulier, lisez le fichier < | et cherchez sans oublier les sous-répertoires. En particulier, lisez le fichier <tt>modules.txt</tt>.<br /><br /> Pour avoir de plus amples informations sur un module particulier, et donc sur un ''driver'', faites :<br /> | ||
<div class="code">$ /sbin/modinfo nom-module</div> | <div class="code">$ /sbin/modinfo nom-module</div> | ||
Ligne 338 : | Ligne 345 : | ||
=== Les services (ou daemons) === | === Les services (ou daemons) === | ||
Il existe de nombreux outils pour gérer les services sur un système GNU/Linux. Mais ces outils dépendent beaucoup de la distribution, si elle est < | Il existe de nombreux outils pour gérer les services sur un système GNU/Linux. Mais ces outils dépendent beaucoup de la distribution, si elle est <tt>SysV</tt> ou <tt>BSD</tt>-like et si elle utilise <tt>inetd</tt> ou <tt>xinetd</tt>.<br /> Aujourd'hui les principales distributions sont <tt>SysV</tt> et utilisent <tt>xinetd</tt> sauf la Slackware.<br /><br /> Vous trouverez de l'aide et des articles sur le sujet ici-même.<br /> Entre autres :<br /> | ||
* [http://lea-linux.org/admin/daemons.php3 La gestion des daemons] par Philippe | * [http://lea-linux.org/admin/daemons.php3 La gestion des daemons] par Philippe | ||
* [http://lea-linux.org/admin/secur.php3 Sécuriser Linux] par Serge | * [http://lea-linux.org/admin/secur.php3 Sécuriser Linux] par Serge | ||
Mais pour savoir rapidement si votre distribution utilise < | Mais pour savoir rapidement si votre distribution utilise <tt>xinetd</tt>, faites simplement :<br /> | ||
<div class="code">$ ps -ef | grep -i inetd</div> | <div class="code">$ ps -ef | grep -i inetd</div> | ||
Ligne 349 : | Ligne 356 : | ||
Cela vous sortira soit :<br /> | Cela vous sortira soit :<br /> | ||
<div class="code"> | <div class="code">root 87 1 0 22:13 ? 00:00:00 /usr/sbin/inetd</div> | ||
Soit :<br /> | Soit :<br /> | ||
<div class="code"> | <div class="code">root 88 1 0 22:22 ? 00:00:00 /usr/sbin/xinetd</div> | ||
<br /> Et vous saurez si c'est < | <br /> Et vous saurez si c'est <tt>inetd</tt> ou <tt>xinetd</tt> qui est utilisé.<br /><br /> De plus pour savoir si le système d'initialisation (aussi dit d'init) est SysV (dit Système 5), vérifier dans le répertoire <tt>/etc/rc.d</tt> qu'il existe les répertoires : <tt>init.d, rc1.d, rc2.d,... , rc6.d</tt>. Sinon la distribution (ex: BSD, Slackware, Sourcemage, Nasgaïa) utilise un autre système d'init. | ||
=== Les processus === | === Les processus === | ||
Ligne 365 : | Ligne 372 : | ||
Ce qui affiche cet ''arbre'' :<br /> | Ce qui affiche cet ''arbre'' :<br /> | ||
<div class="code">'''init(1)-+'''-agetty(96)<br /> | <div class="code">'''init(1)-+'''-agetty(96)<br /> '''|'''-devfsd(14)<br /> '''|'''-eth0(73)<br /> '''|'''-gvim(319)<br /> '''|'''-inetd(85)<br /> '''|'''-kapmd(3)<br /> '''|-kdm(97)-+'''-X(99)<br /> | '''`-kdm(100)--icewm(111)-+-rxvt.bin(125)--bash(127)--pstree(349)'''<br /> | `-sylpheed(205)<br /> |-keventd(2)<br /> |-khubd(52)<br /> |-klogd(83)<br /> |-mdrecoveryd(9)<br /> |-modem_run(158)<br /> |-pppd(160)---pppoa2(162)---pppoa2(165)<br /> `-syslogd(80)<br /> </div> | ||
<br /> Nous avons donc sous les yeux tous les processus du système avec leur < | <br /> Nous avons donc sous les yeux tous les processus du système avec leur <tt>PID</tt> (Process Identifier) sous une forme nous permettant de comprendre qui est dépendant de qui. En conséquence, cela permet aussi de mieux comprendre le système et de voir ce qui tourne.<br /> | ||
=== Le serveur graphique X === | === Le serveur graphique X === | ||
Ligne 385 : | Ligne 392 : | ||
Ce qui retourne :<br /> | Ce qui retourne :<br /> | ||
<div class="code"> "1152x864" | <div class="code"> "1152x864" 85.00 1152 1216 1344 1600 864 865 868 900 -hsync -vsync </div> | ||
Cette commande, sans arguments, vous permettra aussi d'affiner votre résolution.<br /> Pour en savoir plus sur la configuration du serveur X :<br /> | Cette commande, sans arguments, vous permettra aussi d'affiner votre résolution.<br /> Pour en savoir plus sur la configuration du serveur X :<br /> | ||
Ligne 393 : | Ligne 400 : | ||
Ce qui retourne :<br /> | Ce qui retourne :<br /> | ||
<div class="code"> | <div class="code"> name of display: :0.0<br /> version number: 11.0<br /> vendor string: The X.Org Foundation<br /> vendor release number: 60801000<br /> X.Org version: 6.8.1<br /> maximum request size: 16777212 bytes<br /> motion buffer size: 256<br /> bitmap unit, bit order, padding: 32, LSBFirst, 32<br /> image byte order: LSBFirst<br /> number of supported pixmap formats: 7<br /> [...]<br /> </div> | ||
J'ai coupé car cela renvoie trop d'informations pour être affichées ici.<br /> | J'ai coupé car cela renvoie trop d'informations pour être affichées ici.<br /> | ||
Ligne 401 : | Ligne 408 : | ||
Pour avoir la liste des bibliothèques installées figurant dans les répertoires :<br /> | Pour avoir la liste des bibliothèques installées figurant dans les répertoires :<br /> | ||
* < | * <tt>/usr/lib</tt> | ||
* < | * <tt>/lib</tt> | ||
* Et les répertoires contenus dans le fichier < | * Et les répertoires contenus dans le fichier <tt>/etc/ld.so.conf</tt> | ||
Faites : | Faites : | ||
< | <code multi><nowiki># ldconfig -p</nowiki></tt> | ||
Mais pour savoir si la bibliothèque < | Mais pour savoir si la bibliothèque <tt>libc.so</tt> est installée, faites plutôt :<br /> | ||
< | <code multi><nowiki># ldconfig -p | grep -i libc.so</nowiki></tt> | ||
Ce qui a pour résultat : | Ce qui a pour résultat : | ||
< | <code multi>libc.so.6 (libc6, OS ABI: Linux 2.0.0) => /lib/libc.so.6</tt> | ||
Pour déterminer la version d'une bibliothèque installée, cela peut se révéler compliqué...<br /> Voici quelques ''méthodes'' que je connais :<br /> | Pour déterminer la version d'une bibliothèque installée, cela peut se révéler compliqué...<br /> Voici quelques ''méthodes'' que je connais :<br /> | ||
* Faire : < | * Faire : <tt>$ find / -iname "*config*" -type f -print | grep -i bin</tt>, vous retournera une liste d'exécutables de configuration. Il ne reste plus qu'à trouver celui qui semble correspondre, faire un <tt>man</tt> et à essayer : <tt>exécutable --version</tt> | ||
* Avec de la chance la version figure dans le nom du < | * Avec de la chance la version figure dans le nom du <tt>.so</tt> (cherchez le véritable <tt>.so</tt>, pas le lien symbolique). | ||
* Essayer d'exécuter la bibliothèque comme un exécutable. | * Essayer d'exécuter la bibliothèque comme un exécutable. | ||
* Cherchez dans le gestionnaire de paquets de votre distribution. | * Cherchez dans le gestionnaire de paquets de votre distribution. | ||
* Voir la < | * Voir la <tt>release-note</tt> de la version de votre distribution, si elle existe. | ||
* Allez sur le site [http://www.distrowatch.com/ DistroWatch] et consultez la page de votre distribution. | * Allez sur le site [http://www.distrowatch.com/ DistroWatch] et consultez la page de votre distribution. | ||
* La commande : < | * La commande : <tt>$ ldd -v ''nom-exécutable ou nom-bibliothèque''</tt> donne des informations de version mais je ne suis pas sûr de les comprendre... | ||
<u>NDR </u><nowiki>: Le terme </nowiki>''library'' est souvent abusivement traduit par "''librairie''" au lieu de "''bibliothèque''". Je lui préfère ce dernier, sachez simplement qu'il s'agit de la même chose. | <u>NDR </u><nowiki>: Le terme </nowiki>''library'' est souvent abusivement traduit par "''librairie''" au lieu de "''bibliothèque''". Je lui préfère ce dernier, sachez simplement qu'il s'agit de la même chose. | ||
Ligne 433 : | Ligne 440 : | ||
Pour savoir si un logiciel est installé, il y a les outils en relation avec le type de paquet utilisé par la distribution. Mais si vous prenez l'habitude d'installer à partir des sources, ces outils ne marchent plus. Donc les solutions universelles sont :<br /> | Pour savoir si un logiciel est installé, il y a les outils en relation avec le type de paquet utilisé par la distribution. Mais si vous prenez l'habitude d'installer à partir des sources, ces outils ne marchent plus. Donc les solutions universelles sont :<br /> | ||
< | <code multi>$ find / -iname "*nom-du-logiciel*" -type f -print</tt> | ||
Ou | Ou | ||
< | <code multi>$ locate nom-du-logiciel</tt> | ||
En général, pour connaître la version d'un logiciel, il suffit de faire :<br /> | En général, pour connaître la version d'un logiciel, il suffit de faire :<br /> | ||
< | <code multi>$ exécutable-du-logiciel --version</tt> | ||
Ou | Ou | ||
< | <code multi>$ exécutable-du-logiciel -v</tt> | ||
Pour savoir, quelles bibliothèques un exécutable utilise ou dont il a besoin :<br /> | Pour savoir, quelles bibliothèques un exécutable utilise ou dont il a besoin :<br /> | ||
< | <code multi>$ ldd exécutable</tt> | ||
Par exemple :< | Par exemple : <tt>$ ldd `which sylpheed`</tt>, retourne : | ||
< | <tt> libgmodule-1.2.so.0 => /opt/gnome/lib/libgmodule-1.2.so.0 (0x40017000) | ||
libglib-1.2.so.0 => /opt/gnome/lib/libglib-1.2.so.0 (0x4001a000) | |||
libdl.so.2 => /lib/libdl.so.2 (0x40046000) | |||
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4004a000) | |||
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40058000) | |||
libm.so.6 => /lib/libm.so.6 (0x40131000) | |||
libgdk_pixbuf.so.2 => /opt/gnome/lib/libgdk_pixbuf.so.2 (0x40154000) | |||
libgtk-1.2.so.0 => /opt/gnome/lib/libgtk-1.2.so.0 (0x40168000) | |||
libgdk-1.2.so.0 => /opt/gnome/lib/libgdk-1.2.so.0 (0x4028d000) | |||
libgpgme.so.6 => /usr/local/lib/libgpgme.so.6 (0x402bf000) | |||
libssl.so.0 => /usr/lib/libssl.so.0 (0x402d5000) | |||
libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x4038b000) | |||
libc.so.6 => /lib/libc.so.6 (0x4044b000) | |||
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) | |||
</tt> | |||
<u>NDR </u><nowiki>: J'ai utilisé la commande </nowiki><tt>ldd `which sylpheed`</tt> car <tt>ldd</tt> n'utilise pas le <tt>PATH</tt>, donc il faut lui donner le chemin d'accès de l'exécutable. Ce que fait <tt>which sylpheed</tt> pour l'exemple. | |||
=== Déterminer quelques versions === | === Déterminer quelques versions === | ||
Ligne 467 : | Ligne 488 : | ||
|- | |- | ||
| '''Le noyau Linux''' | | '''Le noyau Linux''' | ||
| < | | <tt>uname -r</tt> | ||
|- | |- | ||
| '''GCC, le compilateur''' | | '''GCC, le compilateur''' | ||
| < | | <tt>gcc --version</tt> | ||
|- | |- | ||
| '''XFree86, le serveur X''' | | '''XFree86, le serveur X''' | ||
| < | | <tt>XFree86 -version</tt> | ||
|- | |- | ||
| '''Xorg, l'''autre'' serveur X''' | | '''Xorg, l'''autre'' serveur X''' | ||
| < | | <tt>Xorg -version</tt> | ||
|- | |- | ||
| '''KDE (qt, kde, kde-config)''' | | '''[[KDE]] (qt, kde, kde-config)''' | ||
| < | | <tt>kde-config --version</tt> | ||
|- | |- | ||
| ''' | | '''[[GNOME]] et ses bibliothèques''' | ||
| < | | <tt>gnome-config --version</tt><br /><br /><tt>glib-config --version</tt><br /><br /><tt>gtk-config --version</tt><br /><br /><tt>gtkmm-config --version</tt> | ||
|- | |- | ||
| '''WindowMaker''' | | '''WindowMaker''' | ||
| < | | <tt>wmaker --version</tt> | ||
|- | |- | ||
| '''Fluxbox''' | | '''Fluxbox''' | ||
| < | | <tt>fluxbox -version</tt> | ||
|- | |- | ||
| '''Enlightenment''' | | '''Enlightenment''' | ||
| < | | <tt>enlightenment --version</tt> | ||
|- | |- | ||
| '''La bibliothèque Glibc''' | | '''La bibliothèque Glibc''' | ||
| < | | <tt>/lib/libc.so.6</tt> | ||
|- | |- | ||
| '''OpenSSL''' | | '''OpenSSL''' | ||
| < | | <tt>openssl version</tt> | ||
|- | |- | ||
| '''GnuPG (Gnu Privacy Guard)''' | | '''GnuPG (Gnu Privacy Guard)''' | ||
| < | | <tt>gpg --version</tt> | ||
|- | |- | ||
| '''La bibliothèque GPGme (GnuPG Made Easy)''' | | '''La bibliothèque GPGme (GnuPG Made Easy)''' | ||
| < | | <tt>gpgme-config --version</tt> | ||
|- | |- | ||
| '''L'éditeur Vi (ou Vim)''' | | '''L'éditeur Vi (ou Vim)''' | ||
| < | | <tt>vi --version</tt> | ||
|- | |- | ||
| '''...''' | | '''...''' | ||
| | | | ||
|} | |} | ||
Ligne 523 : | Ligne 544 : | ||
J'espère que vous avez appris quelque chose et que cela vous sera utile.<br /><br />N'hésitez pas à m'envoyer vos remarques. | J'espère que vous avez appris quelque chose et que cela vous sera utile.<br /><br />N'hésitez pas à m'envoyer vos remarques. | ||
<br/> | |||
<br/> | |||
'''<b>[[Admin-index|@ Retour à la rubrique Administration système]]</b>''' | |||
<br/> | |||
<div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jonesy le 09/09/2002.</div> | <div class="merci">Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jonesy le 09/09/2002.</div> |
Dernière version du 11 décembre 2023 à 10:31
Exploration de la configuration
Avec les remarques et conseils de Marck, Piem et Erwann. Et Anne pour le couteau suisse.
(v.4)
Avant propos
Ce document va essayer de répondre le mieux possible à ces deux questions :
- Quelle est ma configuration matérielle ?
- Quelle est ma configuration système et logicielle ?
Ce document peut être, d'une certaine façon, considéré comme une suite de Trucs & Astuces, car il vous fournit seulement une liste de commandes vous permettant de répondre aux deux questions ci-dessus. Par ailleurs, notez que la liste des commandes fournies n'est pas exhaustive.
Points de détail
Il vous est vivement recommandé, de faire un man sur les commandes avant de les lancer, ceci afin de connaître leurs fonctions et leurs options.
Absolument rien ne garantit que votre distribution fournisse et/ou installe toutes les commandes utilisées dans ce document.
Presque toutes les commandes citées ici sont des commandes en ligne, à exécuter en init 3 ou dans un terminal. Il existe aussi de nombreux outils graphiques pour décortiquer le système mais je ne les aborderai pas.
Enfin, il s'avère qu'en fonction de votre distribution et de la configuration générale du système, les commandes suivantes peuvent être lancées avec un utilisateur normal, dans le cas contraire utilisez le root. A vous de voir et de tester.
Mise en garde
Ce document aborde un sujet plutôt technique, il n'est pas forcément à la portée de tout le monde. Les commandes ne sont pas compliquées mais l'interprétation de leurs résultats peuvent l'être.
Mon matériel
Avec quelles options ?
Pour savoir avec quelles options noyau votre système a démarré, faire :
Ce qui retourne par exemple :
Cela pourra être utile pour comprendre pourquoi le système fait ou supporte ceci ou cela alors que nous ne lui avons dit nulle part. Normalement vous devriez retrouver ces options dans la configuration de votre loader.
Le matériel installé
Pour avoir une vue générale du matériel installé :
Ce qui retourne quelque chose comme ça:
------------------------------------------------
3Com a400-a47f
8139too 9400-94ff
cascade 4 2
Creative 9800-9807 a000-a01f
dma 0080-008f
dma1 0000-001f
dma2 00c0-00df
EMU10K1 5 a000-a01f
eth0 10
fpu 00f0-00ff
ide0 14 01f0-01f7 03f6-03f6 d800-d807
ide1 15 0170-0177 0376-0376 d808-d80f
keyboard 1 0060-006f
Mouse 12
parport0 0378-037a
PCI 0cf8-0cff 9400-94ff
pic1 0020-003f
pic2 00a0-00bf
rtc 8 0070-007f
serial 02f8-02ff 03f8-03ff
timer 0 0040-005f
usb-uhci 11 d000-d01f d400-d41f
vesafb 03c0-03df
VIA d000-d01f d400-d41f d800-d80f e400-e4ff e800-e80f
Si la commande lsdev n'est pas fournie par votre distribution, essayez :
et les autres commandes de cet article.
Le processeur
Afin de connaître les caractéristiques de votre processeur :
Par exemple cela renvoie :
vendor_id : AuthenticAMD
cpu family : 6
model : 4
model name : AMD Athlon(tm) Processor
stepping : 2
cpu MHz : 900.044
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception: yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
bogomips : 1795.68
Pour connaître le pourcentage d'utilisation du processeur :
Et enfin depuis combien de temps la machine n'a pas redémarré :
Les IRQs
Quels sont les IRQs utilisés :
Voici la partie du résultat qui nous intéresse :
irq 0: 387420 timer irq 10: 0 eth0
irq 1: 9396 keyboard irq 11: 9366 usb-uhci, usb-uhci
irq 2: 0 cascade [4] irq 12: 113603 PS/2 Mouse
irq 6: 2 irq 14: 6555 ide0
irq 8: 1 rtc irq 15: 2 ide1
Ou pour tous les IRQs possibles :
Par exemple, cela affiche, en plus, les IRQs 3 et 4, les ports série, qui ne sont pas utilisés ici.
La commande procinfo peut servir pour la mémoire, l'occupation du processeur... Bref, faites man procinfo pour en savoir plus.
Comme pour lsdev, la commande procinfo peut être manquante, alors faites aussi :
La RAM et la SWAP
Pour afficher la RAM et la SWAP disponibles en Mo :
Ce qui donne :
Mem: 501 118 382 0 2 76
-/+ buffers/cache: 38 462
Swap: 509 0 509
Total: 1011 118 892
Pour avoir plus d'informations sur la mémoire (RAM et SWAP) de GNU/Linux, allez voir le Trucs & Astuces : Aide mémoire sur la mémoire.
Les cartes PCI et AGP
Avoir une première idée des cartes PCI et AGP installées :
Personnellement, je préfère :
Ce qui retourne :
00:01.0 PCI bridge: VIA Technologies, Inc.: Unknown device 8305
00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super] (rev 22)
00:04.1 IDE interface: VIA Technologies, Inc. VT82C586 IDE [Apollo] (rev 10)
00:04.2 USB Controller: VIA Technologies, Inc. VT82C586B USB (rev 10)
00:04.3 USB Controller: VIA Technologies, Inc. VT82C586B USB (rev 10)
00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30)
00:09.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 11)
00:09.1 Multimedia controller: Brooktree Corporation Bt878 (rev 11)
00:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10000 (rev 07)
00:0a.1 Input device controller: Creative Labs SB Live! (rev 07)
00:0b.0 Ethernet controller: Unknown device 0001:8139 (rev 10)
01:00.0 VGA compatible controller: nVidia Corporation NV11 (rev a1)
Malgré le nom de la commande, nous pouvons voir que la dernière ligne est ma carte vidéo AGP.
Pour avoir plus d'informations sur les cartes :
Encore plus d'informations sur les cartes ?
Pour savoir quelles cartes sont Plug and Play :
NDR : Cette commande fait partie du paquet pcmcia-cs qui contient aussi d'autres commandes pour le matériel pcmcia. N'ayant pas de tel matériel, je ne les ai pas testées.
Les disques durs
La première chose, combien de partitions avez-vous sur chaque disque dur, de quel type sont-elles et comment s'appellent-t-elles ?
Ce qui affiche, par exemple :
Unités = cylindres sur 16065 * 512 octets
Périphérique Amorce Début Fin Blocs Id Système
/dev/ide/host0/bus0/target1/lun0/part1 * 1 62 497983+ 82 Echange Linux
/dev/ide/host0/bus0/target1/lun0/part2 63 548 3903795 83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part3 549 1156 4883760 83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part4 1157 4865 29792542+ 5 Etendue
/dev/ide/host0/bus0/target1/lun0/part5 1157 1764 4883728+ 83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part6 1765 2250 3903763+ 83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part7 2251 2736 3903763+ 83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part8 2737 3222 3903763+ 83 Linux natif
/dev/ide/host0/bus0/target1/lun0/part9 3223 4865 13197366 83 Linux natif
C'est le retour que l'on obtient avec un système GNU/Linux utilisant Devfs. La vieille norme de nommage est conservée par des liens symboliques, faites donc :
afin de voir la correspondance entre /dev/ide/host0/bus0/target1/lun0/part9 et /dev/hdb9, par exemple.
Pour vérifier si le DMA est activé pour votre disque dur :
Ce qui retourne :
using_dma = 1 (on)
Pour tester les performances de votre cache et de votre disque dur :
Ce qui retourne :
Timing buffer-cache reads: 128 MB in 0.74 seconds =172.97 MB/sec
Timing buffered disk reads: 64 MB in 2.27 seconds = 28.19 MB/sec
Modifiez /dev/hda en fonction de votre disque dur.
NDR : Pour information, le fichier correspondant aux partitions est /proc/partitions.
Les systèmes de fichiers supportés
Pour connaître la liste des systèmes de fichiers supportés par votre noyau, faites :
Ce qui renvoie :
nodev bdev
nodev proc
nodev sockfs
nodev tmpfs
nodev shm
nodev pipefs
ext3
ext2
nodev ramfs
umsdos
msdos
vfat
iso9660
nodev nfs
reiserfs
nodev devpts
nodev usbdevfs
nodev usbfs
NDR : Ce n'est pas vraiment du matériel, car cela dépend de la compilation de votre noyau, mais bon... :-)
Les CDROMs, graveurs et DVDROMs
Il y a des chances pour qu'à l'installation votre distribution détermine vos lecteurs de CDROMs, DVDs et graveurs. Mais si ce n'est pas le cas, ou si vous souhaitez en savoir plus, voici comment nous pouvons déterminer quel dev il faut monter pour pouvoir utiliser ces lecteurs et graveurs.
Sous /proc/ide pour les IDE, sinon ce sera /proc/scsi, vous trouverez un ide1 et un ide2. Sous ces répertoires vous retrouverez hda, hdb, hdc et/ou hdd. Et enfin, là, vous trouverez :
- un fichier media qui indique si c'est un cdrom, un disque dur ou autre
Résultat de la commande cat media : cdrom - un fichier model qui donne le modèle du média installé
Résultat de la commande cat model : SONY CD-RW CRX140E
| |
| `-hdb/
|
`-ide2/-+-hdc/-+-media
| `-model
`-hdd/
Pour voir en une seule fois vos périphériques IDE, faites :
Ce qui renvoie :
/proc/ide/ide1
/proc/ide/ide1/hdd
/proc/ide/ide1/hdc
/proc/ide/ide0
/proc/ide/ide0/hdb
/proc/ide/ide0/hda
Ou
Pour savoir si votre graveur est reconnu en tant que graveur, faites (obligatoirement en root) :
Spécifique au noyau 2.4.x :
Spécifique au noyau 2.6.x :
L'USB
Afin de connaitre vos périphériques USB, vous avez la commande lsusb :
Retourne :
Bus 002 Device 002: ID 04e1:0201 Iiyama North America, Inc. Monitor Hub
Bus 002 Device 003: ID 05dc:a400 Lexar Media, Inc.
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 002: ID 058f:9360 Alcor Micro Corp.
Pour avoir plus de détails, vous pouvez faire :
Hormis cela, vous pouvez consulter le répertoire /proc/bus/usb.
Tout le reste
Enfin, pour tout ce que l'on vient de voir et plus encore, il y a :
Cette commande retourne trop d'informations pour les restituer ici. Mais par exemple, pour savoir comment monter une clé USB, cela aide lorsque vous tombez sur ce genre d'informations :
Spécifique au noyau 2.4.x :
scsi2 : SCSI emulation for USB Mass Storage devices
Vendor: LEXAR Model: JUMPDRIVE ELITE Rev: 1000
Type: Direct-Access ANSI SCSI revision: 02
Attached scsi removable disk sde at scsi2, channel 0, id 0, lun 0
SCSI device sde: 502880 512-byte hdwr sectors (257 MB)
sde: Write Protect is off sde: sde1 [...]
Spécifique au noyau 2.6.x :
ubb: device 3 capacity nsec 502880 bsize 512
ubb: device 3 capacity nsec 502880 bsize 512
ubb: ubb1
J'ai mis ici en gras le block special device (/dev/sde1 ou ubb1) à utiliser pour la commande mount.
Mini-conclusion
Toutes ces commandes peuvent vous aider à mieux connaître votre système, mais surtout à le configurer et à l'optimiser.
Comme vous l'avez sûrement remarqué, le répertoire /proc est très utile ! Sachez que, généralement, les outils s'appuient sur ce répertoire pour vous retourner les informations. Vous ne risquez rien à le parcourir et à faire des less des fichiers que vous y rencontrerez. En plus, c'est la seule méthode qui marchera sur toutes les distributions.
lshw : le couteau suisse de l'information système
Votre distribution vous fournit peut être maintenant un outil à tout faire pour explorer votre configuration matérielle : lshw. Cet outil va vous permettre de synthétiser des informations concernant la mémoire, la version du firmware, la configuration de la carte mère, la version du CPU et sa vitesse, la configuration du cache, la vitesse du bus...
lshw va en fait lire dans tous les fichiers nécessaires (fichiers listés dans le man de l'outil) pour en récupérer les informations nécessaires. Le résultat peut être extrait au format texte, XML ou HTML.
Affichage court
Une des sorties écran le plus simple reprend le modèle de la commande ioscan qu'on retrouve sur les systèmes HP-UX.
H/W path Device Class Description
=======================================================
system MS-6590
/0 bus MS-6590
/0/0 memory BIOS
/0/4 processor AMD Athlon(tm) XP 2000+
/0/4/5 memory L1 cache
/0/4/6 memory L2 cache
/0/1 memory System memory
/0/e0000000 bridge VT8377 [KT400/KT600 AGP] Host Bridge
/0/e0000000/1 bridge VT8235 PCI Bridge
/0/e0000000/1/0 /dev/fb0 display NV17 [GeForce4 MX 440]
/0/e0000000/6 eth1 network VT6102 [Rhine-II]
/0/e0000000/8 eth0 network RTL-8029(AS)
où
- H/W path est le chemin matériel
- Device est le nom du périphérique
- Class est la catégorie de périphérique
- Description donne une description en quelques mots du périphérique
Affichage texte
Vous avez également la possibilité d'obtenir une description complète de votre configuration matérielle. Par défaut, le résultat est affiché sur la sortie standard. Pour la conserver il suffit donc de faire une redirection dans un fichier
# cat lshw.txt
pingu
description: Desktop Computer
product: MS-6590
vendor: MSI
version: 1.0
serial: 00000000
capabilities: smbios-2.3 dmi-2.3
configuration: chassis=desktop
*-core
description: Motherboard
product: MS-6590
vendor: MSI
physical id: 0
version: 1.0
serial: 00000000
slot: PCI2
*-firmware
description: BIOS
vendor: American Megatrends Inc.
physical id: 0
version: 07.00T (04/02/01)
size: 64KB
capacity: 192KB
[...]
Affichage XML / HTML
lshw propose une option permettant une récupération des informations au format XML et/ou HTML. La commande est simple :
# lshw -html
Elle sort une page html sur la sortie standard.
Pour afficher cette page, une commande du type :
# lshw -html > /tmp/lshw.html ; konqueror file:/tmp/lshw.html
fonctionne très bien.
Client Gtk
Enfin, il existe un client Gtk : gtk-lshw ou lshw -X
Mon système GNU/Linux
La distribution
Afin de connaître la version, voire le nom, de votre distribution, sachez qu'il existe souvent un fichier :
/etc/nom-distribution
Il suffit donc de faire un cat de ce fichier.
Par exemple, pour la Mandrake c'est /etc/mandrake-release et pour la Slackware, /etc/slackware-version.
Le nom de ma machine
Pour connaître le nom de votre machine :
$ hostname
Le nom de la machine, ou hostname, fait partie du paramétrage réseau d'une machine. Je ne peux donc que vous conseiller la lecture de l'Exploration de la configuration réseau afin d'en savoir plus.
Le noyau Linux
La version de votre noyau actuel est obtenue ainsi :
$ uname -r
Pour connaître la configuration actuelle du noyau :
- Soit vous savez où récupérer le .config de votre noyau
- Soit utilisez le Trucs & Astuces : Récupérer le fichier .config par Anne
Maintenant, vous avez deux solutions pour lire la configuration de votre noyau :
- Avec l'éditeur de votre choix.
- Sous X avec : # make xconfig
ou alors avec : # make menuconfig, le tout en étant sous /usr/src/linux. Attention à ne pas sauver !
Les modules du noyau
Tout d'abord, tous les modules se trouvent sous :
/lib/modules/version-du-noyau
Pour avoir une idée des modules à charger, vous pouvez utiliser les commandes sur les périphériques expliquées dans ce document. Sinon allez dans le répertoire :
/usr/src/linux/Documentation
et cherchez sans oublier les sous-répertoires. En particulier, lisez le fichier modules.txt.
Pour avoir de plus amples informations sur un module particulier, et donc sur un driver, faites :
$ /sbin/modinfo nom-module
Pour savoir quels sont les modules chargés en mémoire :
$ /sbin/lsmod
Exemple concret, pour savoir si le module d'émulation SCSI du graveur est chargé :
$ /sbin/lsmod | grep ide-scsi
Pour savoir si vous avez besoin de recompiler les modules du noyau afin d'avoir l'émulation :
$ find /lib/modules/`uname -r` -iname "ide-scsi*" -printCet exemple concret concerne les noyaux 2.4.x, mais la méthode est bien entendue toujours valide avec un noyau 2.6.x.
Les services (ou daemons)
Il existe de nombreux outils pour gérer les services sur un système GNU/Linux. Mais ces outils dépendent beaucoup de la distribution, si elle est SysV ou BSD-like et si elle utilise inetd ou xinetd.
Aujourd'hui les principales distributions sont SysV et utilisent xinetd sauf la Slackware.
Vous trouverez de l'aide et des articles sur le sujet ici-même.
Entre autres :
- La gestion des daemons par Philippe
- Sécuriser Linux par Serge
Mais pour savoir rapidement si votre distribution utilise xinetd, faites simplement :
$ ps -ef | grep -i inetd
Cela vous sortira soit :
root 87 1 0 22:13 ? 00:00:00 /usr/sbin/inetd
Soit :
root 88 1 0 22:22 ? 00:00:00 /usr/sbin/xinetd
Et vous saurez si c'est inetd ou xinetd qui est utilisé.
De plus pour savoir si le système d'initialisation (aussi dit d'init) est SysV (dit Système 5), vérifier dans le répertoire /etc/rc.d qu'il existe les répertoires : init.d, rc1.d, rc2.d,... , rc6.d. Sinon la distribution (ex: BSD, Slackware, Sourcemage, Nasgaïa) utilise un autre système d'init.
Les processus
Pour savoir quel processus est le processus père de quel(s) autre(s) :
$ pstree -ph
Ce qui affiche cet arbre :
init(1)-+-agetty(96)
|-devfsd(14)
|-eth0(73)
|-gvim(319)
|-inetd(85)
|-kapmd(3)
|-kdm(97)-+-X(99)
| `-kdm(100)--icewm(111)-+-rxvt.bin(125)--bash(127)--pstree(349)
| `-sylpheed(205)
|-keventd(2)
|-khubd(52)
|-klogd(83)
|-mdrecoveryd(9)
|-modem_run(158)
|-pppd(160)---pppoa2(162)---pppoa2(165)
`-syslogd(80)
Nous avons donc sous les yeux tous les processus du système avec leur PID (Process Identifier) sous une forme nous permettant de comprendre qui est dépendant de qui. En conséquence, cela permet aussi de mieux comprendre le système et de voir ce qui tourne.
Le serveur graphique X
Spécifique à XFree86 :
Pour connaître la version :
$ XFree86 -version Afin de mieux connaître votre configuration graphique, éditez en lecture le fichier :
/etc/X11/XF86Config-4 Si vous ne possédez pas ce fichier, ou pour une version de XFree86 antérieure aux versions 4 :
/etc/X11/XF86Config
Spécifique à Xorg :
Pour connaître la version :
$ Xorg -version Afin de mieux connaître votre configuration graphique, éditez en lecture le fichier :
/etc/X11/xorg.conf
Pour connaitre la résolution actuelle :
$ xvidtune -show
Ce qui retourne :
"1152x864" 85.00 1152 1216 1344 1600 864 865 868 900 -hsync -vsync
Cette commande, sans arguments, vous permettra aussi d'affiner votre résolution.
Pour en savoir plus sur la configuration du serveur X :
$ xdpyinfo
Ce qui retourne :
name of display: :0.0
version number: 11.0
vendor string: The X.Org Foundation
vendor release number: 60801000
X.Org version: 6.8.1
maximum request size: 16777212 bytes
motion buffer size: 256
bitmap unit, bit order, padding: 32, LSBFirst, 32
image byte order: LSBFirst
number of supported pixmap formats: 7
[...]
J'ai coupé car cela renvoie trop d'informations pour être affichées ici.
Les bibliothèques
Pour avoir la liste des bibliothèques installées figurant dans les répertoires :
- /usr/lib
- /lib
- Et les répertoires contenus dans le fichier /etc/ld.so.conf
Faites :
# ldconfig -p
Mais pour savoir si la bibliothèque libc.so est installée, faites plutôt :
# ldconfig -p | grep -i libc.so
Ce qui a pour résultat :
libc.so.6 (libc6, OS ABI: Linux 2.0.0) => /lib/libc.so.6
Pour déterminer la version d'une bibliothèque installée, cela peut se révéler compliqué...
Voici quelques méthodes que je connais :
- Faire : $ find / -iname "*config*" -type f -print | grep -i bin, vous retournera une liste d'exécutables de configuration. Il ne reste plus qu'à trouver celui qui semble correspondre, faire un man et à essayer : exécutable --version
- Avec de la chance la version figure dans le nom du .so (cherchez le véritable .so, pas le lien symbolique).
- Essayer d'exécuter la bibliothèque comme un exécutable.
- Cherchez dans le gestionnaire de paquets de votre distribution.
- Voir la release-note de la version de votre distribution, si elle existe.
- Allez sur le site DistroWatch et consultez la page de votre distribution.
- La commande : $ ldd -v nom-exécutable ou nom-bibliothèque donne des informations de version mais je ne suis pas sûr de les comprendre...
NDR : Le terme library est souvent abusivement traduit par "librairie" au lieu de "bibliothèque". Je lui préfère ce dernier, sachez simplement qu'il s'agit de la même chose.
Les logiciels en général
Pour savoir si un logiciel est installé, il y a les outils en relation avec le type de paquet utilisé par la distribution. Mais si vous prenez l'habitude d'installer à partir des sources, ces outils ne marchent plus. Donc les solutions universelles sont :
$ find / -iname "*nom-du-logiciel*" -type f -print
Ou
$ locate nom-du-logiciel
En général, pour connaître la version d'un logiciel, il suffit de faire :
$ exécutable-du-logiciel --version
Ou
$ exécutable-du-logiciel -v
Pour savoir, quelles bibliothèques un exécutable utilise ou dont il a besoin :
$ ldd exécutable
Par exemple : $ ldd `which sylpheed`, retourne :
libgmodule-1.2.so.0 => /opt/gnome/lib/libgmodule-1.2.so.0 (0x40017000)
libglib-1.2.so.0 => /opt/gnome/lib/libglib-1.2.so.0 (0x4001a000)
libdl.so.2 => /lib/libdl.so.2 (0x40046000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x4004a000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40058000)
libm.so.6 => /lib/libm.so.6 (0x40131000)
libgdk_pixbuf.so.2 => /opt/gnome/lib/libgdk_pixbuf.so.2 (0x40154000)
libgtk-1.2.so.0 => /opt/gnome/lib/libgtk-1.2.so.0 (0x40168000)
libgdk-1.2.so.0 => /opt/gnome/lib/libgdk-1.2.so.0 (0x4028d000)
libgpgme.so.6 => /usr/local/lib/libgpgme.so.6 (0x402bf000)
libssl.so.0 => /usr/lib/libssl.so.0 (0x402d5000)
libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x4038b000)
libc.so.6 => /lib/libc.so.6 (0x4044b000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
NDR : J'ai utilisé la commande ldd `which sylpheed` car ldd n'utilise pas le PATH, donc il faut lui donner le chemin d'accès de l'exécutable. Ce que fait which sylpheed pour l'exemple.
Déterminer quelques versions
Le composant
La commande
Le noyau Linux
uname -r
GCC, le compilateur
gcc --version
XFree86, le serveur X
XFree86 -version
Xorg, l'autre serveur X
Xorg -version
KDE (qt, kde, kde-config)
kde-config --version
GNOME et ses bibliothèques
gnome-config --version
glib-config --version
gtk-config --version
gtkmm-config --version
WindowMaker
wmaker --version
Fluxbox
fluxbox -version
Enlightenment
enlightenment --version
La bibliothèque Glibc
/lib/libc.so.6
OpenSSL
openssl version
GnuPG (Gnu Privacy Guard)
gpg --version
La bibliothèque GPGme (GnuPG Made Easy)
gpgme-config --version
L'éditeur Vi (ou Vim)
vi --version
...
A compléter vous-même... ;-)
Mini-conclusion
Comme pour le matériel, ce qui précède peut vous aider... Mais pour les logiciels la tâche est plus compliquée car beaucoup d'éléments entrent en considération comme : la distribution, le système de paquetage, la hiérarchie du système de fichiers...
Mot de la fin
J'espère que vous avez appris quelque chose et que cela vous sera utile.
N'hésitez pas à m'envoyer vos remarques.
Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jonesy le 09/09/2002.
Copyright
Copyright © 09/09/2002, Jonesy
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique, Contexte non commercial 2.0 :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/