Jean-Daniel Dodin jdanield (at) dodin.net
2 juin 2002
J'ai trouvé d'occasion, tout neuf, encore sous garantie, un graveur de CD SONY CRX-75A. C'est le modèle miniature, de la taille presque d'un boitier cristal pour CD.
Je pense que les gens s'en débarassent parce que c'est un modèle PCMCIA et qu'il ne marche donc qu'avec un portable. Tout le monde se rue sur l'USB.
Mais l'USB est encore aléatoire sous Linux...
J'avais vu l'appareil comme ``supporté'' dans la doc et je l'ai donc acheté de confiance. Effectivement, il marche, et même très bien, mais quelle galère... parce que les docs que j'ai trouvées sont mal faites.
Je suis presque certain que la présente documentation sera aussi utile pour d'autres modèles.
Linux est un système professionnel pour les professionnels, seuls les matériels professionnels sont donc supportés ``right out of the box'', et en particulier les systèmes SCSI. Seulement je ne suis pas ce genre de professionnel...
D'un autre coté, presque tous les PC, même de haut de gamme sont équipés des disques durs et lecteurs de CD ``IDE'', environ deux fois moins chers.
Les disques durs sont reconnus sans problème, les lecteurs de cd aussi, mais pas les graveurs.
Pour eux il faut utiliser un pilote spécial, ``ide-scsi'' qui transforme l'interface ide en interface scsi.
La plus part des documentation donnent des conseils du genre recompilation du Kernel qui sont complètement inutiles aujourd'hui. Le pilote ide-scsi est déja compilé et présent sur votre installation (chez moi SuSE 7.3).
Pour moi, la situation était encore compliquée par le fait que mon graveur n'est pas un modèle ide, mais un modèle PCMCIA (amovible). Donc le module PCMCIA doit être lancé et la doc, là encore est assez intimidante.
Il y a donc deux étapes: passage du PCMCIA vers l'ide, puis passage de l'ide au SCSI.
Il faut allumer l'accessoire (ici le graveur) avant de brancher la carte PCMCIA. Bien que le mode ``cardbus'' soit en principe supporté par Linux, il ne fonctionne pas ici. Il faut donc, sur la carte, pousser le minuscule inter sur le coté sur la position ``16 bits''. On peut brancher ``à chaud'' la première fois, mais le fonctionnement n'est pas garanti si on passe son temps à brancher et débrancher. Il y a une commande pour ca (cardctrl eject/insert), mais je n'ai pas testé le fonctionnement.
Il faut donc installer PCMCIA avec yast2, lanser à la main par rcpcmcia start si ce n'est pas déjà fait et la carte doit être reconnue comme /dev/hde. Vous devez voir les messages dans dmesg.
Il n'y a absolument rien à configurer :-). Si vous voulez vérifier, vous pouvez trouver la réfarence de la carte PCMCIA dans /etc/pcmcia/config, c'est CBIDE2.
Il se lance avec ``modprobe ide-scsi''.
lsmod permet de vérifier s'il est là.
ais pour qu'il puisse ``prendre le controle'' des périphériques il ne faut pas qu'ils soient déjà sous contrôle.
Il faut donc passer au kernel les options hde=ide-scsi et hdc=ide-scsi. Cette dernière est pour que, tant qu'à faire, votre lecteur de cd soit aussi vu comme scsi. Ces options sont à passer au démarrage pour les essais (linux hde=...) ou dans lilo.conf pour qu'ils soient permanents (append = ``hde=...'').
Il n'y a plus qu'à redémarrer votre machine, à vous connecter comme root, et à faire ``modprobe ide-scsi''.
Il n'y a aucun message visible, mais dans dmesg vous devez voir :
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
Vendor: TOSHIBA Model: DVD-ROM SD-C2402 Rev: 1709
Type: CD-ROM ANSI SCSI revision: 02
Vendor: SONY Model: CD-RW CRX700E Rev: 2.0a
Type: CD-ROM ANSI SCSI revision: 02
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
Attached scsi CD-ROM sr1 at scsi0, channel 0, id 1, lun 0
sr0: scsi3-mmc drive: 24x/24x cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.12
sr1: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda tray
Comme vous le voyez, mes deux lecteurs sont reconnus, le premier (lecteur) comme /dev/sr0 (0,0,0) et l'autre (graveur) comme /dev/sr1 (0,1,0).
Le problème c'est que j'ai vu partout qu'il fallait lancer ise-scsi avant toute autre chose, avec plein d'options à mettre dans modules.conf, alors qu'il n'y a rein besoin de tout ça :-), j'ai donc perdu beaucoup de temps...
Ensuite, j'ai pensé mettre ``modprobe ide-scsi'' dans /etc/init.d/boot.local, mais ce script est lancé avant les script d'initialisation, donc avant pcmcia, il ne trouve donc pas le sony...
La seule solution que j'ai trouvée (pour l'instant :-)), est de créer un script d'initialisation /etc/init.d/ide-scsi, qui contient juste ``modprobe ide-scsi'' et qui est lancé comme /etc/init.d/rc5.d/S12ide-scsi (lien symbolique vers le script), pour démarrer juste après pcmcia.
Ca marche nickel, mais c'est assez ``brute'', il n'y a ni start ni stop...
Un autre problème est cdrecord -scanbus.
C'est la fonction qui permet de savoir où sont les lecteurs scsi. Elle ne marche pas si le lecteur sony est seul (au début, je n'avais pas activé l'émulation scsi pour le lecteur cd), peut-être parce que l'adresse scsi est 0,0,0 dans ce cas. Une fois qu'on a vu que le rapport figure dans demesg, plus de problème :-).
L'outil de controle pcmcia est cardctrl, seules les options eject et insert sont peut-être nécessaires.
Pour graver, xcdroast en mode graphique (casse bonbon à configurer, mais la doc est bien faite), ou cdrecord en mode console...
Je suis maintenant passé à la suse 9.0. cdrecord est maintenant capable de graver sur des graveurs IDE (option ATAPI, voyez la doc), mais k3b, par exemple, le clone de néro :-) ne connait encore que les graveurs SCSI;
J'ai donc repris la page ci-dessus pour faire ma configuration. J'ai pas mal galéré car SuSE écrit quelque part des options de démarrage du noyau qui lancent l'ide-scsi trop tôt. Arréter et redémarrer ce module ne sert à rien.
Il faut donc naviguer dans yast ou simplement modifier le fichier /etc/sysconfig/kernel et supprimer les options de démarrages du noyau (toutes, elles ont la forme cdrom, ide-scsi...). Ensuite mettre en place le script contenant modprobe ide-scsi dans /etc/rc.d/ide-scsi, par exemple. J'ai rendu ce script exécutable, comme ses copains, sans être sur que ce soit nécessaire, puis j'ai placé juste après le départ de pcmcia dans rc5.d un lien symbolique S09ide-scsi pointant vers le script.
Et ca marche :-).
Yast2 (au moins sur la 9.0) est cassé par cette modification, en ce qui concerne la source d'installation. Il faut en plus adapter les liens /dev/cdrom et /dev/cdrecorder vers sr0 et sr1, Yast2 n'utilisant pas /media/* mais /devcd*.
2004-05-04