
La commande lsdev n'étant pas sur toutes les distributions principales, voyez : more /proc/devices Et les autres commandes de cet article.
|
|
more /proc/cpuinfo Par exemple cela renvoie : processor : 0 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 |
Quels sont les IRQs utilisés :
procinfo
Voici la partie du résultat qui nous intéresse ici :
[ ... ]
|
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 |
Pour afficher la RAM et la SWAP disponibles en Mo :
free -mt
Ce qui donne :
|
total used free shared buffers cached Mem: 501 118 382 0 2 76 -/+ buffers/cache: 38 462 Swap: 509 0 509 Total: 1011 118 892 |
Avoir une première idée des cartes PCI et AGP installées :
scanpci
Personnellement, je préfère :
/sbin/lspci
Ce qui retourne :
|
00:00.0 Host bridge: VIA Technologies, Inc.: Unknown device 0305 (rev 02) 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. Interrogation : est-ce dépendant de la carte mère et de sa façon de gérer les IRQ ?
Pour avoir plus d'informations sur les cartes :
/sbin/lspci -v
Encore plus d'informations sur les cartes ?
/sbin/lspci -vv
Pour savoir quelles cartes sont Plug and Play :
lspnp
NDR : Cette commande fait parti du package 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.
La première chose, combien de partitions avez-vous sur chaque disque dur, de quel type sont-elles et comment s'appellent-t-elles ?
/sbin/fdisk -l
Ce qui affiche, par exemple :
|
Disque /dev/ide/host0/bus0/target1/lun0/disc : 255 têtes, 63 secteurs, 4865 cylindres 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 :
ls -l /dev/hda* /dev/hdb* /dev/sda* /dev/sdb*
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 :
/usr/sbin/hdparm -d /dev/hda
Ce qui retourne :
/dev/hda:
using_dma = 1 (on)
Pour tester les performances de votre cache et de votre disque dur :
/usr/sbin/hdparm -Tt /dev/hda
Ce qui retourne :
/dev/hda:
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.
Pour connaître la liste des systèmes de fichiers supportés par votre noyau, faites :
|
more /proc/filesystems Ce qui renvoie : nodev rootfs nodev bdev nodev proc nodev sockfs nodev tmpfs nodev shm nodev pipefs ext2 minix umsdos msdos vfat iso9660 nodev devfs nodev nfs nodev autofs reiserfs nodev devpts nodev usbdevfs |
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 mounter 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
|
/proc/ide/-+-ide1/-+-hda/ | | | `-hdb/ | `-ide2/-+-hdc/-+-media | `-model `-hdd/ Pour voir en une seule fois vos périphériques IDE, faires : find /proc/ide -type d -print Ce qui renvoie : /proc/ide /proc/ide/ide1 /proc/ide/ide1/hdd /proc/ide/ide1/hdc /proc/ide/ide0 /proc/ide/ide0/hdb /proc/ide/ide0/hda |
Ou
find /proc/ide -iname "media" -type f -print
Pour savoir si votre graveur est reconnu en tant que graveur, faites (obligatoirement en root) : cdrecord -scanbus
NDR : Pensez à l'émulation SCSI pour un graveur IDE.
A part aller voir dans le répertoire /proc/bus/usb , je n'ai trouvé que l'outil graphique suivant pour savoir ce qu'il y a sur les ports USB :
usbview
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 more des fichiers que vous y rencontrerez.
En plus, c'est la seule méthode qui marchera sur toutes les distributions.
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.
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 !
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 oubliez 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 :
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*" -print
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.
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, c'est soit un système BSD, soit un autre système d'init comme celui de la Slackware.
Pour savoir simplement 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.
La version de votre serveur X, XFree86 :
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
Et pour affiner la configuration de XFree :
xvidtune
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 library est installée, faites plutôt :
ldconfig -p | grep -i library
Ce qui a pour résultat, avec library égale à libc.so par exemple :
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 : cd / && find . -iname "*config*" -type f -print | grep -i bin , vous retournera une liste d'exécutables de configuration pour diverses choses. 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 package 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ûre 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.
Pour savoir si un logiciel est installé, il y a les outils en relation avec le type de packages 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 :
cd / && 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. |
| Le composant | La commande |
| Le noyau Linux | uname -r |
| GCC, le compilateur | gcc --version |
| XFree86, le serveur X | XFree86 -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 |
| 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 |
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 package, la hiérarchie du système de fichiers...