Les périphériques IDE/Parallèles

De plus en plus de périphériques sur port parallèle apparaissent sur le marché. Moins coûteux que leur équivalent sur port PCMCIA, ils constituent une solution économique pour équiper les ordinateurs portables. L'interface parallèle offre un autre avantage : ils peuvent être aisément transportés et connectés sur plusieurs machines au gré de leur utilisation.

 

Le port parallèle était jusqu'alors utilisé uniquement pour les imprimantes. La première génération de ports parallèles était intégrée sur la carte vidéo (MDA) et ne fonctionnait qu'en mode SPP (Standard Parallel Port). Des imprimantes de plus en plus puissantes faisant leur apparition, les constructeurs se retrouvèrent vite à l'étroit dans le mode unidirectionnel de ce port. De nos jours, le mode couramment utilisé est EPP. Il permet d'envoyer et de recevoir des données via le port parallèle en utilisant physiquement les mêmes broches. Ainsi, il est possible de transmettre à la même vitesse dans un sens comme dans l'autre. On comprend aisément l'avantage lorsqu'il s'agit d'un scanner sur port parallèle où le flux de données provient principalement du périphérique.

THEORIE

Les périphériques IDE sur port parallèle sont légion. On trouve des lecteurs CD-ROM (Shuttle, Freecom, Micro Solution), des disques durs (Shuttle), des streamer (Hewlett-Packard) ou encore, des lecteurs de disquette grande capacité (Syquest, imation LS120).

Depuis l'avènement des nouveaux kernels (2.2), ce genre de périphérique est parfaitement supporté par Linux sous l'appellation PARIDE. Le support est composé de trois parties distinctes :

- le module de base PARIDE, qui fournit la plupart des méthodes d'accès au port parallèle

- une collection de composants haut niveau pour les différents types de périphériques :

pd : pour les disques IDE (disques durs)

pcd : pour les lecteurs CD-ROM ATAPI

pf : pour les disques ATAPI (LS120 par exemple)

pt : pour les lecteurs de bandes

pg : pour le support générique ATAPI

- une collection de pilotes bas niveau pour chaque adaptateur :

aten=ATEN EH-100, bpck=Microsolutions backpack,

comm=DataStor (ancien modèle) commuter adapter,

dstr=DataStor EP-2000,

epat=Shuttle EPAT,

epia=Shuttle EPIA,

fit2=Fidelity Intl. (Ancien modèle),

fit3=Fidelity Intl. TD-3000,

frpw=Freecom Power,

friq=Freecom IQ (ASIC-2),

kbic=KingByte KBIC-951A et KBIC-971A,

ktti=KT Tech. Phd,

on20=OnSpec 90c20,

on26=OnSpec 90c26.

Bien sûr, ne sont mentionnés ici que les constructeurs « officiels », mais un grand nombre de « clones » utilisent les mêmes puces et donc fonctionnent avec les pilotes énumérés ci-dessus.

LES FICHIERS SPECIAUX

Afin de pouvoir accéder à un périphérique en mode bloc, la présence d'un fichier spécial dans le répertoire /dev est indispensable. Théoriquement, vous devez trouver dans l'arborescence des sources du kernel un script permettant de créer automatiquement les fichiers spéciaux nécessaires. Le script est placé habituellement dans /usr/src/linux/drivers/block/paride/mkd ; il vous suffit de le lancer.

PRATIQUE

L'utilisation de ces périphériques sous Linux est très proche de celle des lecteurs ZIP. Il vous suffit, en somme, de recompiler un kernel approprié ou de charger les modules adéquats. Voici un exemple effectué avec un boîtier Pearl Case Atapi/pp (clone de Shuttle), dans lequel est placé un lecteur CD-ROM Goldstar 24X CRD8241B. Le système de test est basé sur un kernel 2.0.35 :

- dans un premier temps, on charge le module PARIDE :

$ insmod paride

paride : version 1.02 installed

- puis on charge le pilote bas niveau correspondant à l'adaptateur (ici Shuttle EPIA) :

$ insmod epia

paride : epia registered as protocol 0

- enfin, on charge le module haut niveau pour le type de périphérique dans le boîtier :

$insmod pcd

pcd 0 : pcd version 1.03s, major 46, nice 0

pcd 0 : epia 1.02, Shuttle EPIA at 0x378, mode 2 (8-bit), delay 1

pcd 0 : Master : CD-ROM CRD-8241B

Cette dernière commande nous informe de la présence du pilote epia utilisant l'adresse 0x378 correspondant au port parallèle lp1. Le lecteur CD-ROM est bien un CRD-8241B en configuration Master.

- juste histoire de vérifier, on affiche les modules chargés :

pcd 3 0

epia 3 1

paride 1 [pcd epia] 1

ne 2 1 (autoclean)

8390 2 [ne] 0 (autoclean)

nls_iso8859_1 1 1 (autoclean)

nls_cp437 1 1 (autoclean)

vfat 4 1 (autoclean)

opl3 3 0

sb 6 0

uart401 2 [sb] 0

sound 16 [opl3 sb uart401] 0

Module Pages Used by

A partir de là, il ne reste plus qu'à monter le CD-ROM comme à l'accoutumée par :

$ mount /dev/pcd0 /para_cdrom

Par rapport aux problèmes rencontrés habituellement sous DOS/Windows avec ce type de matériel, la prise en charge sous Linux est d'une facilité déconcertante.

PLUSIEURS PERIPHERIQUES

Le cas est rare, mais il est peut-être important d'en faire mention. Que se passe-t-il lorsque plusieurs périphériques sont connectés sur plusieurs ports parallèles ? En principe, plusieurs périphériques de type différent sur le même port ne devraient poser aucun problème étant donné leur différence d'ID. Ceci n'est valide qu'à condition d'utiliser PARPORT en plus de PARIDE.

En ce qui concerne l'utilisation de plusieurs ports parallèles, il suffit de spécifier l'adresse en paramètre :

insmod pcd drive0=0x378,1 drive1=0x3bs,1

INFORMATIONS

Les informations données ici devraient être suffisantes pour faire fonctionner la plupart des périphériques du marché. Si vous rencontrez des difficultés, reportez-vous dans un premier temps à la documentation fournie avec votre kernel. Chaque module y est clairement expliqué (en anglais).

Sur le Net, le site de référence (d'où proviennent les informations utilisées pour nos tests) est http://www.torque.net/linux-pp.html. Vous trouverez là des informations plus concrètes sur la mise en oeuvre des périphériques IDE/parallèle, mais aussi sur d'autres matériels comme les scanners, les graveurs, etc.


© Copyright 2000 Diamond Editions/Linux magazine France. - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".