(site sans réclame)
GNU/Linux  –  Installer Debian  –  Cont@ct  –  S'abonner

Périphériques et pilotes

En UNIX les périphériques sont considérés comme des fichiers, savoir où ils se situent et comment s'y connecter est souvent une nécessité pour la bonne administration d'un système.

1. fstab

Le fichier /etc/fstab contient les connexions entre périphériques et leur situation sur l'arborescence des fichiers. Avec Debian, il contient quelque chose qui ressemble à ça:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump> <pass>
proc            /proc           proc    defaults         0     0
/dev/hda1       none            swap    sw               0     0
/dev/hda2       /               ext3    defaults,errors=remount-ro 0     1
/dev/hda3       /home           ext3    rw,auto          0     0
/dev/hda4       /data           ext3    rw,user,noauto   0     0
/dev/sda1       /media/usbkey   auto    rw,user,noauto   0     0
/dev/hdb        /media/cdrom    udf,iso9660 user,noauto  0     0

Attention: ne changez rien à la partition / , qui risquerait de rendre le système non bootable

mount

Monte un périphérique quelque part dans le système de fichiers.

mount -o loop -t iso9660 image.iso /repertoire monte une image CD comme système de fichier visible en /repertoire
mount -o loop -t ext3 fichier.img /data monte un fichier issu de la commande dd ci-après comme système de fichier

dd copie brute de périphérique

dd if=/dev/sdb1 of=/home/toto/cle-usb.img copie l'entièreté du media en /dev/sdb1 (clé USB par exemple) dans un fichier

foremost récupère des fichiers effacés

foremost /dev/sdb1 -t jpg recopie sous certaines conditions (type de formatage de la partition, fichiers d'un seul tenant...) les fichiers effacés d'un périphérique de stockage dans un répertoire.

-t pour préciser les types de fichiers (jpeg, mov, pdf, avi, etc.)
-o pour préciser le nom du répertoire de sortie (output/ par défaut)

2. Connexions

2.1 Périphériques USB

La connexion USB (Universal Serial Bus) est maintenant quasi incontournable. Le choix du connecteur n'a en général pas d'importance, le système étant capable de repérer l'endroit et le type de périphérique connecté.

Les périphériques de stockage USB (clés USB, appareils photos...) étaient auparavant reconnus avec les pilotes sr0, sr1... ou sg0, sg1... Ils sont actuellement reconnus comme étant des disques "scsi" et utilisent les descripteurs sda, sdb... grâce au fichier /etc/fstab tel qu'édité ci-dessus,

mount /dev/sda1

suffit pour monter la clé USB dans un répertoire existant (ici /media/usbkey), alors que sans la ligne dans /etc/fstab, la commande serait:

mount -t vfat /dev/sda1 /media/usbkey

Les transferts ne se faisant pas nécessairement pas en temps réel, il faut démonter les périphériques USB de stockage pour être sûr que les fichiers soient effectivement copiés ou effacés.

Pour chercher des informations sur un périphérique USB, il suffit d'un lsusb (paquet usbutils) dans une console pour faire apparaître tous les périphériques raccordé par cette interface:

toto@Tour:~$ lsusb
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 03f0:4117 Hewlett-Packard Printing Support
Bus 002 Device 003: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
Bus 001 Device 003: ID 04a9:2220 Canon, Inc. CanoScan LIDE 25
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  ...

nous montre qu'il y a deux hubs USB (l'un en version 1.1 et l'autre, plus rapide, en version 2.0), une imprimante, une souris et un scanner. Chaque périphérique a un numéro personnel de style hhhh:hhhh (chiffres hexadécimaux). En cas de problème avec l'imprimante (par exemple la nécessité d'un driver), il suffit souvent de rechercher 03f0:4117+linux dans un moteur de recherche. Deux périphériques de marques différentes utilisant la même puce auront le même numéro.

Les systèmes graphiques Gnome et KDE montent en gé&néral d'eux-même les périphériques. Cela signifie que l'introduction d'un média moderne (CDROM, la plupart des clés USB et appareils photo, certains baladeurs numériques...) provoque l'apparition d'une boîte de dialogue permettant l'ouverture d'une fenêtre, mais un hub USB sans alimentation n'a pas toujours le courant nécessaire pour le déclenchement du système lors de l'introduction du périphérique. Pour démonter un périphérique avec l'automount de KDE, remonter dans le répertoire parent de celui ouvert par l'introduction de la fiche USB, clic droit sur l'icone du périphérique et Enlever en toute sécurité (ou Libérer le périphérique). Si l'on a fermé une fenêtre par inadvertence, on peut retrouver la clé montée à l'adresse media:/ dans une fenêtre de konqueror.

Pour les modems USB, voir la page dédiée.

2.2 Périphériques IDE-ATAPI

Les périphérique IDE-ATAPI sont maintenant considérés par le système comme Serial-ATA

Le mode IDE_ATAPI fait correspondre les quatres ports aux descripteurs hda, hdb, hdc, hdd

/dev/hda Primary Master (maître au premier contrôleur)
/dev/hdb Primary Slave (esclave au premier contrôleur)
/dev/hdc Secondary Master (maître au second contrôleur)
/dev/hdd Secondary Slave (esclave au second contrôleur)

Il est possible de savoir où se trouve ces périphériques soit en ouvrant sa tour, soit en accédant au BIOS à l'ouverture de l'ordinateur, en général en appuyant sur la touche [Del] ou [Suppr]. Les flux d'un contrôleur à l'autre sont censés être les plus rapides (l'un lit et l'autre écrit): il vaut mieux éviter de mettre le disque dur et le CD/DVD sur le même contrôleur.

2.3 Périphériques Serial-ATA

/dev/sda pour le premier disque dur "scsi"
/dev/sdb pour le second disque dur "scsi"...

/dev/sr0 ou /dev/scd0 pour les CD/DVD Serial-ATA.

2.4 Disquette 3 pouces 1/2

Il faudra probablement créer le descripteur du lecteur de disquettes

# mknod /dev/fd0 b 2 0 ?

Pour automatiser le montage, il faut insérer la ligne suivante (en n'oubliant pas de créer le répertoire /floppy). auto pourrait devoir être remplacé par vfat pour les disquettes msdos, ou ext2 pour les disquettes formatées sous Linux.

/dev/sda1       /floppy  auto  rw,user,noauto   0     0

noauto pour un montage à la demande. Il est intéressant alors de prévoir une icone sur le bureau KDE et éditer

2.5 La connexion "série"

L'antique connexion "série" RS232 a surtout été utilisée par les premières souris, anciens modems, pda et quelques imprimantes. Elle se présente sous deux aspects (DB9 et DB25):

-------------  -----------------------------
\ . . . . . /  \ . . . . . . . . . . . . . /
 \ . . . . /    \ . . . . . . . . . . . . /
  ---------      -------------------------

Malgré le nombre de connecteurs, seuls trois sont actifs. La plus petite donnée significative pour l'humain, l'octet, doit être envoyée sous forme d'une série de huit valeurs binaires, d'où le nom.

Les connexions "série" sont décrites par les descripteurs de périphérique /dev/tty0, /dev/tty1, etc. Au besoin, on les crée de cette manière:

[su] mknod /dev/tty0 c 4 0
[su] mknod /dev/tty1 c 4 1

2.6 La connexion "parallèle"

Elle servait surtout à relier imprimantes et scanners (pour ces derniers, très peu sont utilisables avec GNU/Linux). Les huit valeurs binaires de chaque octet sont envoyées simultanément par huit canaux, d'où le nom de connexion parallèle.

La connexion parallèle utilise une connexion DB25 (voir "connexion série ci-dessus) du côté PC, et Centronic du côté imprimante.

Les connexions "parallèles" sont décrites par les descripteurs de périphérique /dev/lp0, /dev/lp1, etc. Au besoin, on les crée de cette manière:

[su] mknod /dev/lp0 c 6 0
[su] mknod /dev/lp1 c 6 1

3. Stockage et cartes-mémoires

3.1 Mode USB

Les clé USB fonctionnent si le système de fichiers qu'elle utilise est reconnu par le système Linux, à moins qu'il ne faille un logiciel spécifique sous Windows ou Mac.

SanDisk et le disque externe Passport DD de 500Go sont accessibles en lecture et écriture (système de fichier de type FAT)

ALL in 1 card Reader est reconnu comme une clé USB. Comme son nom l'indique, il reconnaît beaucoup de cartes-mémoires de différents types.

Un iPod a été ouvert et lu par l'automount de KDE 3.5.1, mais pas de tentative d'écriture en l'absence de logiciel de restauration de fichiers en cas de problème.

Un appareil photo en mode USB s'ouvre comme une clé USB. Certains ne connaissent que le mode PTP, il faut alors utiliser le logiciel Gphoto2 ou le protocole gphotofs.

3.2 Appareils photos en mode non-USB

gphoto2 + gtkam

# apt-get install gphoto2 gtkam

Lancer gtkam en simple utilisateur et tenter une reconnaissance de l'appareil relié ouvert.

gphotofs

Si l'appareil est trop nouveau (le DMC-TZ6, heureusement reconnu en mode USB standard, n'est pas reconnu au 1er juin 2009 par gphoto2), on peut tenter d'utiliser le protocole gphotofs

# apt-get install gphotofs
# gphotofs /votrerepertoire -o allow_other

Il se peut qu'il faille attendre un certain temps avant que la connexion ne s'établisse.

4. Imprimantes

Si le serveur d'impression n'a pas été installé avec le système, il faut charger (cups remplace cupsys depuis Debian 5.0 Lenny):

[su] apt-get install cups foomatic-db foomatic-engine

Dans KDE, on configure l'imprimante dans Menu» Configuration» Imprimantes, onglet Ajouter -> Ajouter une imprimante/classe et suivre le décours du paramétrage. Un autre accès à cette configuration se situe dans les périphériques du centre de configuration KDE.

Il peut être intéressant de configurer l'impression avec l'onglet Imprimante» configurer (format de papier, qualité brouillon, marges...)

Attention: il est possible que le mot de passe super-utilisateur soit demandé, mais que la fenêtre de login soit cachée par la fenêtre principale. Pour permettre à l'utilisateur toto de paramétrer l'imprimante sans devoir saisir le mot de passe superutilisateur, ajouter toto au groupe lpadmin avec [su] addgroup toto lpadmin

4.1 Imprimantes HP Deskjet

La configuration suivant l'installation d'un paquet pnm2ppa permet de choisir son modèle:

[su] apt-get install pnm2ppa

Pour repréciser le choix: [su] dpkg-reconfigure pnm2ppa

4.2 Imprimante HP LaserJet 1018 (avec Internet!)

Avec Debian/Squeeze, l'imprimante HP1018 fonctionne avec le pilote fourni avec le système, même si un pilote externe est demandé lors du branchement de l'imprimante.

Cette manip devrait également fonctionner pour les imprimantes suivantes: HP LaserJet 1000, HP LaserJet 1005, HP LaserJet 1020, Minolta 2200, Minolta 2300, Minolta 2430 et Minolta Color PageWorks/Pro L. D'autres supports sur foo2zjs.rkkda.com

Il est nécessaire de produire un firmware qui devra être envoyé à l'imprimante à chaque fois qu'elle aura été éteinte. Une compilation sera nécessaire. Il faut installer les logiciels de développement:

Récupérer le fichier foo2zjs.tar.gz à l'adresse http://foo2zjs.rkkda.com, qui donne quelques explications. Décompresser le fichier: tar -zxf foo2zjs, entrer dans le répertoire créé: cd foo2zjs et préparer l'installation: make.

Récupérer un fichier par Internet (alternativement: 1000, 1005, 1020, 2200, 2300, 2430 et cpwl):

./getweb 1018

Installer avec [su] make install et relancer CUPS avec [su] make cups

Charger le firmware sur l'imprimante: # cat /usr/share/foo2zjs/firmware/sihp1018.dl > /dev/usb/lp0

"Créer" son imprimante avec Configuration -> Périphériques -> Imprimantes...

Note: il devrait être possible d'automatiser le chargement au lancement du PC à partir de /etc/init.d ou /etc/rc.d... ou au branchement de l'imprimante avec hotplug. Une solution pas trop technique est de créer un fichier texte (nommons-le hp):

#! /bin/bash
cat /usr/share/foo2zjs/firmware/hp1018.hp > /dev/usb/lp0

et puis de le rendre exécutable:

chmod 755 hp

Sous KDE, il suffit de glisser-copier l'icone de ce fichier vers la barre de tâche et de le lancer à la demande.

Il faudra bien sûr par la suite configurer l'imprimante comme indiqué plus haut.

5. Scanner et reconnaissance de caractères

5.1 Scanner (mode USB)

[su] apt-get install xsane

Pour Sarge, certains scanners trop neufs n'étaient pas disponibles, il fallait récupérer et compiler les sources sanebackends (quelque chose comme sanebackends-1.0.18.tar.gz). Dans Etch et Lenny, le paquetage libsane-extras contient des pilotes non inclus dans libsane: epkowa (quelques scanners EPSON), geniusvp2 (Genius ColorPage-Vivid Pro II), hp_rts88xx (HP ScanJet 4400C, HP ScanJet 4470C), ls5000 (Nikon LS5000 ED, Coolscan 5000 ED)

Le paquetage sane-utils contient les utilitaires en mode texte sane-find-scanner et scanimage -L , qui détecte les scanners. À réaliser en simple utilisateur, puis en super-ultilisateur si nécessaire.

sane-find-scanner cherche les scanners sur les ports SCSI ou USB, et généralement pas le port parallèles; les scanner sur port parallèle sont rarement pas supportés par GNU/Linux. Ils ont heureusement tendance à disparaître.

found USB scanner (vendor=0x04a9 [Canon], product=0x2220 [CanoScan], chip=LM9832/3) at libusb:001:003

scanimage -L donne une ligne décrivant le périphérique:

device `plustek:libusb:001:003' is a Canon CanoScan LiDE25 flatbed scanner

Les deux lignes retournées ci-dessus indiques qu'un descripteur de périphérique /dev/bus/usb/002/003 devrait exister.

ls -l /dev/bus/usb/001/003 nous retourne effectivement

crw-rw-r-- 1 root scanner 189, 2 sep 15 11:53 /dev/bus/usb/001/003

scanimage > fichier numérise l'image dans différents format. Essayez man scanimage pour plus d'informations.

xsane ne reconnaît pas toujours le périphérique. Il s'agit le plus souvent d'une question de droits, il suffit alors d'ajouter l'identificateur de chaque utilisateur à la ligne du fichier /etc/group contenant scanner:

...
scanner:x:111:toto,boema,bompa
...

Cela se fait aisément par la commande:

[su] addgroup toto scanner

Pour une numérisation grossière permettant de visualiser le document afin d'en sélectionner une plage: Menu Fenêtre -> Aperçu

5.2 Reconnaissance de caractères

gocr

Pour numériser un texte imprimé, il faut installer un logiciel, par exemple gocr

[su] apt-get install gocr

et vérifier les paramètres dans Xsane dans Préférence -> Configuration -> OCR, avec Commande d'OCR: gocr ; Options d'entrée: -i ; Options de sortie: -o et GUI output fd: -x.

La reconnaissance de caractères ne fonctionnera de façon optimale qu'avec une résolution assez grande: 400, et mieux encore, 600ppp en noir/blanc. Lorsque le texte est scanné, la fenêtre visionneuse s'ouvre. Appuyez sur l'icone [ABC/DEF].

Les résultats sont donnés au format UTF-8. Pour récupérer un texte accentué si votre système utilise ISO-8859-1, récupérez le texte du fichier out.txt dans kwrite, puis Outils» encodage» Unicode (utf-8), puis copier-coller vers un autre fichier ouvert en ISO-8859-1. Attention: si le caractère n'existe pas en iso-8859-1, un éditeur comme gedit ne le sauvegardera pas.

tesseract

Le paquet tesseract-ocr (et tesseract-ocr-fra) permet également la numérisation d'une image *.tif en noir/blanc (sortie est le fichier .txt qui sera produit, extension txt ajoutée):

tesseract votre-image.tif sortie -l fra

Comparaison de gocr et tesseract

tesseract parvient mieux à séparer les lettres collées alors que gocr tend à les ignorer; ce dernier est plus pratique, puisqu'il ne faut pas sauvegarder l'image au format .tif pour ensuite la traiter à la ligne de commande.

6. Webcam

Pour les caméras dotées d'une puce gspca: SunPlus, Sonix, Z-star, Vimicro, Conexant, Etoms, Mars-semi, Pixart et Transvision.

Ceci pourrait aussi concerner les webcam externes reliées par USB, mais cette partie a été écrite à partir d'une webcam intégrée à un portable, et requérait l'ouverture du wifi par le bouton ad hoc.

lsusb (paquet usbutils)donne la ligne

Bus 001 Device 003: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 WebCam

KInfoCenter de KDE a trouvé dans les Périphériques USB: OHCI Host Controller (1) PC Camera: Z-Star Corp.

Avec Debian Etch, il faut installer le module gspca-modules-2.6.18-6-686 pour le noyau 2.6.18 (pour le 2.6.24: il faut compiler gspca-source. Avec Lenny, les modules gspca-modules-2.6.24-xxx existent. Ne pas oublier [su] modprobe gspca

C'est au moment de l'ouverture du wifi que le descripteur de périphérique /dev/video0 est créé; il est possible de le créer soi même avec mknod /dev/video0 c 81 0 .

ls -l /dev/video0 permet de s'assurer qu'il existe bien:

crw-rw---- 1 root video 81, 0 2008-12-29 12:13 /dev/video0

Il faut qu'il fasse partie du groupe video: éditer (super-utilisateur) le fichier /etc/group: ajouter son identifiant (ici: l'utilisateur toto) au groupe video

video:x:44:toto

[su] addgroup toto video fonctionne également

La Z-star semble ne connaître que la résolution 320x200 sur 24 bits.

6.1 camorama

camorama 0.17 est une application graphique permettant de prendre des photos et de les sauvegarder dans un répertoire, mais il vaut mieux d'abord passer par la définition des préférences:

Edition / Préférences

Affichage

6.2 camE

camE est une récriture de xawtv, ce qui les dispense de donner de bonnes explications

camE -s pour une seule photo
camE pour toutes les secondes, mais comment ça s'arrête?

7. Palm pilot (pour mémoire)

Raccorder un Palm Pilot (Tungsten, Zire et m50x; compatibles: Visor, Clié, Handera, TRGPro...?) à un PC par port série ou USB permet de sauver les données ou restaurer celles qui y ont été introduites.

Lancer l'application HotSync sur le Palm, puis paramétrer la connexion par Menu -> Config. Connexion -> Nouv. Choisir Se connecter au PC via Station/Câble. Il faudra lancer la synchonisation d'abord sur le périphérique avant de lancer la synchronisation.

7.1 Pilot en connexion série

Les programmes de communication qui se connectent au Palm-Pilot par le port série RS232 recherchent parfois /dev/pilot. On crée alors un lien symbolique /dev/pilot qui renverra vers /dev/ttySn, où n est un chiffre de 0 à 3 pour les connecteurs connus sous Windows et Atari comme COM1, COM2, COM3 ou COM4. Pour relier l'appareil à la deuxième connexion série (si par exemple la souris occupe la première):

[su] ln -s /dev/tty1 /dev/pilot

Une fois ce lien créé, il ne sera plus à refaire. Pour le visualiser:

ls -l /dev/pilot

7.2 Pilot en connexion USB

Charger le module visor:

[su] modprobe visor

Celui-ci utilise le module usbserial, qui sera chargé s'il ne l'est déjà. lsmod | grep visor permet de s'assurer qu'ils sont bien présents, ainsi que usbcore. Pour automatiser le chargement de ces modules lors du boot, on ajoute leur nom (dans l'ordre: usbserial, puis visor) dans /etc/modules (Debian).

S'il faut créer les descripteurs de périphériques USB et obtenir les droits de lecture et d'écriture:

[su] mknod /dev/ttyUSB0 c 188 0
[su] mknod /dev/ttyUSB1 c 188 1
[su] chmod 666 /dev/ttyUSB*

7.3 Connexion avec pilot-xfer (console)

Testé avec PalmIIIxe (RS232) et Tungsten E (USB)

Depuis 2004, pilot-xfer est distribué avec le paquet pilot-link, une suite pour Palm et compatibles, comprenant aussi d'autres services. Si le répertoire /home/toto/palm existent, on réalise un backup (du périphérique vers le répertoire palm du PC):

pilot-xfer -b /home/toto/palm

En cas de perte de fichiers sur le périphérique, on restaure les fichiers, du PC vers le périphérique:

pilot-xfer -r /home/toto/palm

man pilot-link pour d'autres commandes, comme l'import/export de données sous forme de texte

Auparavant, pilot-xfer cherchait le périphérique /dev/pilot. Il suffisait de créer le lien symbolique

ln -s /dev/ttyUSB1 /dev/pilot
ln -s /dev/ttyS0 /dev/pilot

Il est possible qu'il faille maintenant préciser le pilote dans la commande:

pilot-xfer -p /dev/ttyUSB1 -b ~/palm

7.4 Connexion avec kpilot

Testé avec Tungsten E, devrait fonctionner avec Visor, Clié, Zire et m50x

Actuellement, il ne faut plus créer les descripteurs /dev/ttyUSB0 et 1, le logiciel le fait de lui-même. Lancer l'assistant de configuration qui permet de rechercher le périphérique. Il peut être intéressant de configurer les barres d'outil et d'y faire apparaître les afficheurs de carnet d'adresses, de mémos et autres databases.

La sauvegarde de l'utilisateur "toto" se situe à l'adresse

/home/toto/.kde/share/apps/kpilot/DBBackup/toto

Le premier menu "Fichiers" donne les modes de synchronisation (échange de données entre le périphérique et le PC):

Le second menu est surtout intéressant pour Configuration/Configurer Kpilot:

Par ailleurs, kpilot permet d'importer un fichier texte comme mémo, ou d'exporter un mémo en fichier texte: positionner l'onglet "Afficheur de mémo".