USB et appareils photos numériques
En espérant que cela aide; vous êtes responsable de ce que vous faites.
Le port USB (Universal Serial Bus) est normalement reconnu lors d'une installation, surtout si votre souris USB fonctionne. Il est néanmoins possible de devoir l'initialiser après un changement de matériel.
Nous verrons que la manipulation fonctionnera pour certains périphériques de stockage de données utilisant l'USB, et les utilisateurs d'appareils photos numériques avec le port série trouveront un lien Internet les concernant.
1. La connexion USB
1.1 Détection
1.2 Le module: OHCI ou UHDI ?
1.3 Charger le
module
1.4 hotplug
2. Les Périphériques "mass-storage" USB
2.1 Le module usb-storage
2.2 Quel pilote de périphérique
pour un appareil photo?
2.3 Autres unité de stockages
2.4 Naviguer dans le périphérique
2.5 Les installations
faciles
3. Appareils photos USB non "mass-storage"
3.1 Appareils photos en mode PTP - Picture Transfert Protocol
3.2 Appareils photo sous format "propriétaires"
3.3 Appareils photo numériques et gphoto2
4. Documentation sur internet
1. La connexion USB
Si un port USB est présent sur votre PC, il devrait être reconnu lors de l'installation (noyau 2.2 ou 2.4).
1.1 La détection
Il est possible de s'en assurer en console, en mode super-utilisateur, avec la commande lsmod, qui liste les modules utilisés par le noyau. lsmod | grep USB pour sélectionner ceux qui nous intéressent.
Si aucun module n'est présent dans la liste mais que vous êtes sûr d'avoir au moins un port USB, il est toujours possible de vérifier que votre PC contient un port USB avec lspci ou lspci -v | less ("q" pour en sortir) ou, pour mieux sélectionner l'information: lspci | grep USB.
Vous devez normalement obtenir une information du genre.
00:0b.0 USB Controller: OPTi Inc. 82C861 (rev 10)
ou
00.11.2 USB Controller: VIA Technologies Inc. UHCI USB (rev 1b)
Sinon, c'est que vous ne possédez pas de contrôleur USB, ou qu'il est mal connecté. Un contrôle "matériel" est alors nécessaire.
Notez bien le nom de la puce juste après "controller", la second exemple indique même un nom qui a son importance: UHCI.
1.2 Charger le module: OHCI ou UHCI ?
Il existe en fait deux types de contrôleurs:
- OHCI pour les cartes Compaq, SiS, NEC, Apple, CMD, OPTi, ALI, Lucent...
- UHCI pour les cartes Intel, VIA...
Le noyau 2.6 ne devrait plus faire de distinction entre les deux, le module OHCI devenant universel. En attendant, si vous avez un nom de contrôleur mais pas de module chargé, vous en chargez un avec modprobe ohci ou modprobe uhdi
Après un reboot, un coup d'oeil au fichier visualisé par dmesg | less ou dmesg | grep USB permet de s'assurer que le système a bien reconnu le matériel et le bon module.
1.3 Editer /etc/fstab
Il faut alors éditer le fichier /etc/fstab pour que le système soit en mesure de profiter du module, en y ajoutant la ligne:
none /proc/bus/usb usbdevfs defaults 0 0
1.4 hotplug
Le service hotplug permet au PC de reconnaître une connexion à chaud; c'est-à-dire sans rebooter le système. On peut s'en passer, mais ce service est très pratique.
S'il est installé, le fichier (virtuel) /proc/sys/kernel/hotplug contient une chaîne qui indique l'adresse du fichier de commande hotplug. cat /proc/sys/kernel/hotplug renvoie normalement l'adresse /sbin/hotplug.
Pour installer le système hotplug:
- Debian: apt-get install hotplug
- Mandrake, RedHat, Fedora, SuSE: rpm -i hotplug-gtk-xxx
2. Les périphériques "mass-storage" USB
2.1 Le module usb-storage
Le module usb-storage permettra l'appareil d'être reconnu comme une unité de stockage de données SCSI. Cela peut être un appareil photo numérique, un lecteur de disquette, un ZIP, un CDROM, enfin toute mémoire pouvant se rattacher à un connecteur USB. Il est à noter que le périphérique connecté sera considéré comme SCSI par le module mass-storage.
Installation: modprobe usb-storage en mode super-utilisateur.
modconf permet, sous SuSE 7.3, de charger et décharger les modules.
Si tout a bien focnctionné, il devrait y avoir des informations à l'adresse /proc/scsi/scsi. Bien qu'affichant un poids de 0 Ko, cat /proc/scsi/scsi permet de voir ce que contient le fichier.
Si vous avez booté avec l'unité de stockage de masse allumée, ou si hotplug fonctionne et que vous avez allumé cette unité, le fichier /proc/scsi/scsi doit contenir des données sur l'appareil branché et allumé.
D'autre part, /proc/bus/usb/devices doit contenir tous les périphériques USB branchés: souris, graveur (en émulation), appareil photo (en mass-storage)… Cela ne sert pas à grand chose, mais cela rassure.
2.2 Quel pilote de périphérique pour un appareil photo?
C'est la lecture du fichier msg généré par dmesg > /home/toto/msg qui nous indique quel pilote utiliser. Pour un appareil photo en mode "normal": le fichier msg généré doit contient quelque chose du genre:
hub.c: USB new device connect on bus1/2/4, assigned device number 4 scsi1 : SCSI emulation for USB Mass Storage devices Vendor: ******* Model: ************* Rev: 4.10 Type: Direct-Access ANSI SCSI revision: 02 Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0 SCSI device sda: 126848 512-byte hdwr sectors (65 MB) sda: Write Protect is off /dev/scsi/host1/bus0/target0/lun0: p1
L'appareil photo étant considéré comme l'unité disque sda, on accède à son unique partition avec le pilote de périphérique sda1.
On peut éditer le fichier /etc/fstab en conséquence en y ajoutant
/dev/sda1 /home/toto/camera msdos noauto,user 0 0
(il est plus que probable que le formatage de la mémoire soit "msdos"; vfat fonctionne également) et en créant le fichier
mkdir /home/toto/camera
Enfin, n'oubliez pas de "monter" votre appareil une fois branché, et de le démonter avant de le débrancher, comme tout autre périphérique de données.
NB. Les descripteurs des périphériques SCSI sont généralement sdx, scdn, srn et sgn, x représentant une lettre et n un chiffre. Attendez-vous donc à trouver sda, sdb… scd0, scd1… sg0, sg1… sr0, sr1…
2.3 Autres unité de stockages
Selon la doc, scd0 (encore utilisé par une distribution; scd1 si scd0 est déjà utilisé) peut convenir pour un lecteur de CD-ROM, mais le mieux est de consulter /var/log/dmesg, ou dmesg |less, ou encore le fichier msg généré par dmesg >/home/tot/msg si vous êtes loggé en tant que toto. On le décrirait dans /etc/fstab par exemple comme suit:
/dev/scd0 /mnt/usbcdrom iso9660 ro,noauto,user 0 0
(ro pour read-only; le répertoire /mnt/usbcdrom est à créer)
Pour une partition de disque dur (au format Linux):
/dev/sda1 /mnt/ddusb ext2 defaults 1 2
(ou ext3 s'il s'agit d'un système de fichier journalisé)
Une clé USB fontionne de la même manière, pour autant qu'elle soit formatée dans un format reconnaissable. Si /etc/fstab comporte la ligne suivante:
/dev/sda1 /home/toto/camera auto noauto,user 0 0
vous devriez être capable de brancher (mais pas simultanément) votre appareil numérique et une unité USB-mass-storage dont le formatage est reconnu par le système. Par exemple,
/dev/sda1 /home/toto/camera vfat noauto,user 0 0
qui décrit la connexion de mon appareil-photo numérique, a automatiquement reconnu une clé USB.
NB. Divers formats sont possibles : auto, fat32, vfat, msdos, le premier étant normalement "universel". A vous de voir.
2.4 Naviguer dans le périphérique
Cette technique permet aux appareils photographiques digitaux sur mode "Normal" d'être reconnus comme un disque dur ou zip, et d'être accessibles en les montant sur le système de fichiers. On peut dès lors y naviguer avec les commande cd, ls, cp et mv; avec mc (midnight commander) ou un gestionnaire de fichier sous X.
On peut faire un petit fichier bash (appelé par exemple rapatr)
#! /bin/bash mount /dev/sda1 mv /home/toto/camera/*/*/* /home/toto/photos umount /dev/sda1
Si ce fichier est exécutable, il suffit de cliquer dessus pour rapatrier ses photos sur son disque dur. Pour le rendre exécutable: chmod 755 rapatr
Le fichier bash contient les "joker" /*/*/* parce que sur l'appareil en question, les fichiers à importer sont dans deux sous-sous-répertoires.
En montant n'importe quel périphérique (par exemple mount /mnt/ddusb pour le disque dur usb plus haut, on peut y naviguer avec mc, Nautilus ou Konqueror.
2.5 Les installations faciles
Les serveurs graphiques de certaines distributions sont capables de reconnaître par eux-mêmes un appareil en mode "Normal".
3. Les autres types d'appareils
3.1 Appareils en mode PTP - Picture Transfert Protocol
Développé par Kodak, ce standard est reconnu par Sony depuis 2001, Nikon et Canon depuis 2002. Tous les appareils sous ce standard devraient être couverts par gphoto2 (voir 4. Doc).
Certains appareils cumulent le mode PTP et le mode "normal" vu à la section 2.
3.2 Les appareils sous format propriétaire
Il faut espérer qu'une des applications (gphoto2…) gère la communication avec ce type d'appareil. C'est souvent le cas.
3.3 L'application gphoto 2
On en dit beaucoup de bien. Voir Appareils photo numériques et gphoto2 et www.gphoto.org .
4. La doc
Il n'y a vraiment pas grand chose concernant l'USB, si ce n'est pour la souris dans le "Linux Documentation Project".
- /usr/share/doc/HOWTO/HTML/fr/Hardware-HOWTO/usb.html (adresse de Mandrake 9.0) ne donne que quelques compatibilités concernant les appareils-photo.
Sur Internet:
USB en général:- www.linux-usb.org site dédié à la question
- http://www.linux-usb.org/USB-guide/book1.html
Les appareils photos (USB et série):
Description d'environ 500 modèles d'appareils digitaux quant à ses compatibilités GNU/Linux et la façon de communiquer.