ftape-HOWTO

Kai Harrekilde-Petersen, khp@login.dkuug.dk

Dernière mise à jour 17 juillet 1994 pour ftape-1.13b
Ce HOWTO présente l'essentiel de ce qu'il faut faire et ne pas faire pour utiliser avec succès le pilote ("driver") ftape sous Linux. Le pilote ftape gère uniquement les lecteurs compatibles aux normes QIC-80 et QIC-40. Ces lecteurs de bandes se connectent au contrôleur du lecteur de disquettes (par exemple à la place d'un second lecteur). En revanche, il ne gère pas les lecteurs de bandes SCSI ou QIC-02, ni les lecteurs de type DAT qui se connectent en général (toujours?) à un contrôleur SCSI. Ceci n'est qu'un des différents HOWTOs disponibles pour Linux. Vous pouvez obtenir la série complète à partir de The Linux Documentation home page. Ce HOWTO a été traduit de l'anglais par Loïc PRYLLI, lprylli@lip.ens-lyon.fr, dernière mise à jour 2 septembre 1994.

1. Droits de diffusion

Ceci constitue le `Frequently Asked Questions' (FAQ) / HOWTO guide pour l'interface ftape (ftape-HOWTO), Copyright (C) 1993,1994 Kai Harrekilde-Petersen.

Copyright :

Ce document peut être librement diffusé en entier, sous n'importe quelle forme et gratuitement. Une diffusion partielle est autorisée, à condition de conserver le message de copyright, et d'inclure une note précisant que ce n'est pas la version intégrale et indiquant où obtenir le guide complet. Sous les mêmes conditions, ce document peut être inclus dans une distribution commerciale, sans accord préalable. L'auteur aimerait cependant être informé d'un tel usage.

Ce HOWTO peut être traduit dans n'importe quel langage, à condition que la notice de copyright et les réserves d'utilisation soient préservées intactes, et qu'une note stipulant le traducteur soit ajoutée.

Réserves pour l'utilisation :

Bien que des efforts aient été faits pour fournir une information aussi correcte et à jour que possible, il est possible que l'usage des informations de ce document puisse conduire à une perte de données. AUCUNE GARANTIE n'est fournie en ce qui concerne l'information fournie par ce guide, et l'auteur ne peut pas être tenu pour responsable de quelque conséquence que ce soit pour tout dommage résultant de l'utilisation de ce guide.

2. Préliminaires

2.1 La version la plus récente de ftape - et où l'obtenir

A l'écriture de ce guide, ftape-1.13b est la version plus récente du pilote ftape, et peut être rapatriée à partir des sites suivants :

    tsx-11.mit.edu   [18.172.1.2]: /pub/linux/ALPHA/QIC-80/
    sunsite.unc.edu [152.2.22.81]: /pub/Linux/kernel/tapes/
    ftp.funet.fi  [128.214.248.6]: /pub/OS/Linux/BETA/QIC-80/

Vous devez obtenir les fichiers suivants : ftape-1.13b.tar.gz, ftape-1.13b.lsm et modules.tar.gz. Le fichier ftape-1.13b est le pilote proprement dit, le fichier .lsm est un fichier "Linux Software Map (LSM)" utilisé dans le cadre du projet LSM, et le fichier modules contient un ensemble d'utilitaires permettant de charger des pilotes dynamiquement. Note : si vous possédez une version ancienne des modules, par exemple les utilitaires modutils-0.99.14.tar.gz ou modutils-0.99.15.tar.gz, vous allez probablement avoir besoin de vous mettre à jour.

2.2 Développement du pilote ftape

Si vous voulez suivre le développement du pilote ftape, envisagez de souscrire à la rubrique TAPE sur la liste de distribution (mailing-list) Linux-activists. Pour ce faire, envoyez un courrier électronique (e-mail) à <linux-activists-request@niksula.hut.fi>, en mettant sur la première ligne (ou dans l'en-tête) `X-Mn-Admin: join tape'. Si vous envoyez un message vide (ou si le système automatique de réponse ne peut interpréter votre message), vous recevrez un guide sur comment écrire une requête.

Pour diffuser un courrier technique sur cette liste, écrivez à <linux-activists@niksula.hut.fi>, et n'oubliez pas que la première ligne (ou une ligne d'en-tête) doit contenir `X-Mn-Key: TAPE'.

2.3 Lecteurs supportés

Tous les lecteurs qui sont à la fois compatibles QIC-117 et soit QIC-40, soit QIC-80 doivent fonctionner avec le pilote ftape. Pour l'instant, les lecteurs suivants ont été utilisés avec succès :

La gestion du contrôleur FC-10 a été intégré dans le pilote ftape à partir de la version 1.12. Vous pouvez vous référer aux fichiers (en anglais) RELEASE-NOTES et Makefile dans la distribution ftape pour avoir plus de précisions.

Quelques lecteurs de bande (Iomega) mettent à tort l'indicateur `nouvelle-cartouche-chargée' (new-cartridge-loaded) à l'état actif chaque fois que le fichier de périphérique est ouvert. Ces lecteurs ne fonctionneront pas correctement avec les marques de fichiers du fait qu'après chaque fichier on se retrouve au début de la bande.

NOTE : Si jamais vous possédez un lecteur qui fonctionne correctement, et qui n'est pas listé ci-dessus, envoyez s'il vous plaît un courrier au responsable de ce guide (khp@login.dkuug.dk).

2.4 Lecteurs NON-gérés

De manière générale, AUCUN lecteur se connectant au port parallèle n'est géré, en effet ces lecteurs utilisent plusieurs interfaces propriétaires différentes, qui sont très éloignés du standard QIC-117.

Le contrôleur Colorado TC-15 (et ses sosies) ne sont pas gérés par l'interface ftape. Le Colorado FC-10 est le seul contrôleur qui peut être utilisé. Le support pour celui-ci a été intégré dans ftape version 1.12.

Le Irwin AX250L (et l'unité de sauvegarde interne IBM) ne fonctionne pas avec ftape. En effet, ils utilisent bien le standard QIC-117 mais pas le standard QIC-80 (ils utilisent à la place le format propriétaire servoe (Rhomat) de Irwin). L'auteur n'a aucune information sur le format Rhomat, ni où l'on peut la trouver. Désolé.

Le COREtape light ne fonctionne pas (encore). Quelques caractéristiques sont connues sur ce lecteur, mais on n'a pas encore réussi à lui faire accepter les données d'initialisation. Il n'est pas sûr qu'on arrive un jour à le faire marcher avec ftape.

2.5 Compilation et installation de l'interface ftape

Un guide d'installation est fourni dans la distribution ftape (le fichier Install-guide en anglais), lisez-le s'il vous plaît.

2.6 Où obtenir les sources du noyau (kernel) ?

Vous pouvez obtenir les sources du noyau à l'endroit où vous avez eu les sources de ftape. Ces sources sont disponibles dans les sites suivants (et n'importe quelle site miroir).

    tsx-11.mit.edu [18.172.1.2]: /pub/linux/sources/system/
    sunsite.unc.edu [152.2.22.81]: /pub/Linux/kernel/
    ftp.funet.fi [128.214.248.6]: /pub/OS/Linux/PEOPLE/Linus

Vous trouverez un certain nombre de sous-répertoires, dont deux nommés respectivement v1.0 et v1.1. Ils contiennent (bien évidemment) les versions v1.0 et v1.1 du noyau. Il est suggéré de choisir la version 1.1.< ... >.

2.7 Peut-on formater des bandes sous Linux ?

Pour le moment, non ! Cela est à l'étude, mais mieux vaut ne pas attendre que ce soit terminé. En attendant, vous allez devoir utiliser MessyDos (arghhh !) ou acheter des bandes préformatées. Cependant, la présence de secteurs défectueux n'est PAS vérifiée sur certaines bandes préformatées. Par sécurité, si le pilote ftape rencontre une bande sans blocs défectueux, un message d'avertissement sera émis.

2.8 Quels programmes de formatage peut-on utiliser sous DOS?

Les suivants ont été utilisés avec succès :

Les programmes suivants sont connus pour être plus ou moins bogués.

En fait, la plupart des logiciels sous DOS devraient marcher. Le Conner Backup Basics v1.0 a un paramètre erroné (quelqu'un a dû mal lire les spécifications QIC-80 !), ce qui est corrigé dans la version 1.1. Dennis T. Flaherty (dennisf@denix.elk.miles.com) a rapporté que les propriétaires d'un Conner C250MQ peuvent obtenir la nouvelle version 1.1 en appelant au 1-800-230-5638 (aux Etats-unis) pour demander une mise à jour (en échange du prix correspondant à la disquette). Signalons que les versions pour Windows fonctionnent très bien.

On peut utiliser Central Point Backup, mais il gaspille de la place quand il rencontre un point défectueux sur la bande.

NOTE : Si vous utilisez un logiciel de formatage sous DOS, qui n'est pas mentionné ci-dessus, prière d'écrire au responsable du guide (khp@login.dkuug.dk) de manière à rajouter l'information pertinente.

3. Sauvegarde et Restauration

3.1 Stocker une archive sur une bande

Les programmes classiques que vous pouvez utiliser sont `tar', `dd' et `cpio'. Vous devrez aussi utiliser `mt' pour exploiter complètement le potentiel de vos bandes et de l'interface ftape. Pour commencer, il est recommandé de choisir `tar', qui permet d'archiver un ensemble de répertoires et de récupérer de manière isolée des fichiers d'une sauvegarde précédente. Il paraîtrait que cpio crée des archives plus compactes, et soit plus souple que tar, mais l'auteur n'a pas essayé. Pour effectuer par exemple, une sauvegarde des sources de votre noyau en utilisant tar, vous devez faire (en supposant que les sources soient dans /usr/src/linux) :

        cd /usr/src
        tar cf /dev/ftape linux

Dans ce cas, les fichiers ne seront pas compressés, mais l'écriture sur la bande en sera plus continue. Si vous voulez cette fois utiliser la compression (et que vous possédez tar 1.11.2), il suffit d'inclure le drapeau(*) -z, par exemple : `tar czf /dev/ftape linux'

Pour plus d'informations sur l'utilisation de tar, dd et mt, regardez dans les pages de références (man pages) et dans les fichiers texinfo qui sont fournis avec les distributions correspondantes.

(*) tar suppose que le premier argument se constitue d'options, donc le `-' n'est pas vraiment nécessaire, autrement dit les deux commandes suivantes sont identiques : `tar xzf /dev/ftape' et `tar -xzf /dev/ftape'

3.2 Restaurer une archive

Maintenant, restaurons la sauvegarde des sources du noyau que nous venons de faire dans la section write-backup ci-dessus. Pour cela tapez simplement :

        tar xf /dev/ftape

Si lors de la sauvegarde vous avez utilisé la compression, tapez plutôt :

        tar xzf /dev/ftape

Lorsque vous utilisez la compression, gzip va se plaindre de données superflues à la fin de l'archive (et cela va produire un message `broken pipe'). Ceci peut être ignoré sans problème.

Pour les autres programmes utilitaires, lisez le manuel correspondant s'il vous plaît.

3.3 Tester une archive

tar a une option (-d) qui permet de détecter les différences entre deux archives. Pour tester votre sauvegarde des sources du noyau, tapez

        tar df /dev/ftape

Si vous n'avez pas la page de manuel de tar, vous n'êtes pas (forcément) perdu. tar possède une aide en ligne : essayez `tar --help 2>&1 | more'

3.4 Comment stocker plus d'un fichier tar sur une bande

Pour stocker plus d'un fichier tar sur une bande, vous devez utiliser l'utilitaire mt. Vous l'avez sûrement déjà, si vous possédez l'une des distributions de Linux, par exemple Slackware ou Debian.

tar génère une seule archive sur la bande et ne sait pas comment naviguer entre plusieurs archives sur une même bande, il se contente de faire des lectures ou des écritures sur le fichier de périphérique. mt est dédié aux manipulations de bande, embobiner ou rembobiner pour se positionner sur une archive spécifique, mais ne sait pas lire ou écrire des données sur la bande. Comme vous l'avez sans doute deviné, c'est l'association de tar et mt qui permet d'obtenir la fonctionnalité désirée.

En utilisant le fichier spécial nrft[0-3] (nftape), vous pouvez vous servir de `mt' pour positionner la bande à la place désirée (par exemple `mt -f /dev/nftape fsf 2' pour embobiner jusqu'à passer deux ``marques de fichiers'', autrement dit sauter deux fichiers tar), et ensuite de tar pour lire ou écrire les données appropriées.

3.5 Ajouter des fichiers à une archive

"Est-il possible d'étendre une archive (un fichier tar), c'est à dire sauvegarder une archive, puis plus tard, de lui rajouter des fichiers"

La réponse est NON. La documentation de tar vous dira d'utiliser `tar -Ar', mais ça ne fonctionnera pas à cause de limitations du pilote ftape actuel.

3.6 Monter/démonter (Mount/unmounting) des bandes.

Dans la mesure où une bande ne contient pas un ``système de fichiers'', il n'y a aucune raison pour à vouloir monter/démonter une bande pour restaurer le contenu de la bande, vous l'insérez dans le lecteur et exécutez la commande `tar' (ou la commande que vous utilisez d'habitude pour accéder au lecteur).

"Y a t-il une commande explicite de (dé)montage de la bande ?"

Aucune. Le périphérique (device) /dev/ftape est de type `caractère', et ne peut donc être appliqué à la commande [u]mount. Seuls les périphériques de type `bloc' le peuvent.

4. Questions fréquemment posées

4.1 Peut-on échanger des bandes avec un utilisateur de DOS?

Ce n'est pas possible pour l'instant. Ce problème est cependant à l'étude. Les logiciels DOS se conforment aux spécifications QIC-80 en ce qui concerne la disposition du systèmes de fichiers DOS, et ce doit être a priori facile d'écrire un programme capable de lire le format DOS. En fait, créer une interface utilisateur agréable est sûrement un problème plus compliqué.

4.2 Comment faire `....' avec tar?

Ces questions concernent le programme tar : lisez s'il vous plaît la page de manuel (man page) et la page info correspondante. Si vous ne les possédez pas, essayez `tar --help --> --2>&1 | more'.

Si votre version de tar est v1.11.1 ou antérieure, considérez la mise à jour à v1.11.2. Cette version peut appeler GNU zip directement (autrement dit : elle supporte l'option de compression -z) et a de plus une aide intégrée élaborée. D'autre part, elle compile sans problème pour Linux.

4.3 Les transferts de DMA ftape donnent lieu à des erreurs ECC.

Malheureusement il y a quelques cartes graphiques SVGA qui ne décodent pas correctement leurs adresses. Ceci se produit typiquement quand les zones tampons de ftape sont dans la région 0x1a0000 à 0x1c0000. Il arrive alors que les cycles d'écriture DMA soient faussés et qu'un octet écrit sur deux ait une valeur fausse (0xff). Ces problèmes ont été rapportés avec à la fois des cartes SVGA et des cartes ethernet. Nous connaissons au moins une carte (déficiente?) ATI 16bit VGA qui cause ce problème.

La solution la plus simple est de mettre la carte dans un emplacement 8bit (ce n'est souvent pas suffisant pour reconfigurer la carte en 8bit). Déplacer la zone tampon ftape n'est qu'une solution partielle, a priori toutes les zones tampons DMA utilisées dans Linux peuvent avoir ce problème ! Mettons nous bien d'accord : ce comportement n'a rien à voir avec le pilote ftape.

4.4 insmod indique que la version du noyau est erronée

Le programme insmod vérifie que la version du noyau courant est la même que celle mémorisée dans le pilote ftape lors de la compilation. C'est une chaîne de caractères dans kernel-version.h, (par exemple : char kernel_version[] = "1.0.4";) qui est extraite du noyau au moment où vous exécutez `make dep'. Si vous avez cette erreur lorsque vous essayer d'insérer le pilote ftape, supprimer le fichier `kernel-version.h' (dans la distribution ftape), tapez `make dep ; make' à nouveau pour recompiler et vous devez alors avoir une version à jour de kernel-version.h. Souvenez-vous que cette opération doit être renouvelée chaque fois que vous passez à une version différente du noyau.

4.5 Le noyau 1.1.0 ne compile plus avec l'option de support pour ftape.

(Bien que ce problème ne soit pas été reporté fréquemment, je le cite quand même au cas où !)

Cela vient d'une erreur typographique (et d'un hacker (programmeur) qui n'utilisait pas ftape lui-même de sorte qu'il ne lui est jamais arrivé de tester le code qu'il écrivait). Cela a été corrigé dans patch1.gz qui peut être trouvé sur les sites ftp usuels.)

4.6 Où sont les exécutables/sources/man-pages pour tar/mt/cpio/dd ?

Tous ces outils sont développés dans le cadre du projet GNU, et les sources (ainsi que les pages de manuel) peuvent être récupérées à partir de pratiquement n'importe quel site ftp dans le monde entier (y compris ftp.funet.fi, tsx-11.mit.edu, et sunsite.unc.edu). Dans tous les cas on peut les récupérer à partir du site officiel GNU : prep.ai.mit.edu [18.71.0.38]:/pub/gnu. Les versions les plus récentes (au 26 mars 94) sont :

        cpio:   2.3 (cpio-2.3.tar.gz
        dd:     3.9 (fileutils-3.9.tar.gz)
        mt:     2.3 (cpio-2.3.tar.gz)
        tar:    1.11.2 (tar-1.11.2.tar.gz)
        gzip:   1.2.4 (gzip-1.2.4.tar.gz)

Ils compilent tous sans modifications sur Linux v1.0.4 / libc v4.5.19 / gcc v2.5.8 (Le programme rmt nécessite quelques adaptations, mais n'est pas indispensable puisqu'il est seulement utilisé pour accéder à distance à un lecteur de bande).

5. Déboguer le pilote ftape

5.1 Le noyau/ftape se plante lorsque je fais `...' - est-ce un bogue ?

Non, c'est une caractéristique voulue ;-)

Plus sérieusement, un logiciel fiable ne doit pas se planter. C'est particulièrement vrai pour le noyau qui ne peut pas ou plutôt ne devrait pas planter. Si le noyau se plante lorsque vous utilisez ftape, et que vous pouvez montrer que c'est le pilote ftape qui en est responsable, alors considérez cela comme une erreur importante qui Doit Etre Corrigée. Ecrivez les détails de votre situation aux responsables du développement (voir section email-addrs ci-dessous).

5.2 ftape n'arrête pas de dire `... new tape' (nouvelle bande), que doit-on faire ?

[Note : cette méthode ne marche plus; l'auteur ne sait pas pour l'instant remédier à cette situation]

Pour arrêter cela, faîtes (de mémoire) : loggez vous en tant que root et faites `rmmod ftape'. ftape doit faire quelques `ratés', donner a peu près trois `segmentations fault', et expirer définitivement.

Observez le témoin (LED) de votre lecteur de disquettes (vous en avez bien un, n'est ce pas?). Si il reste allumé de manière permanente, vous avez mis dans le mauvais sens le câble du lecteur de disquettes. Vérifiez le câble entre le contrôleur, le lecteur de bande et le lecteur de disquettes. En général, l'un (ou plusieurs) d'un des connecteurs a été mis dans le mauvais sens (dessus dessous), de sorte que l'emplacement 1 (broche 1) d'une extrémité se connecte à l'emplacement 34 (broche 34) de l'autre côté de la connexion. (Tous les emplacements pairs sont mis à la terre, donc votre lecteur de disquettes devrait aussi être inutilisable). Ne vous inquiétez pas; cela ne peut pas abîmer votre matériel.

5.3 OK il y a bel et bien un bogue .... euhh.... une caractéristique - Comment soumettre un rapport ?

Premièrement, assurez-vous que le problème est reproductible. Les erreurs aléatoires sont très embêtantes, du fait qu'elles sont impossibles à isoler :-/ Voilà une liste rapide à vérifier/reporter :

Augmenter le niveau de traçage jusqu'à 7 (juste en-dessous du niveau maximum) et exécuter la commande fautive de nouveau. Récupérer les données de traçage à partir du `journal' du noyau ou de /proc/kmsg, cela dépendant d'où vous abritez vos messages d'erreur. N'essayez pas de `filtrer' les traces obtenues. Vous pourriez considérer certaines choses superflues alors qu'elles sont essentielles pour retrouver le bogue. Décrivez exactement ce que vous avez fait, et ce qui s'est passé sur votre système. En effet, il est possible que nous ne puissions pas reproduire l'erreur parce que nous utilisons un lecteur différent ou une autre version du noyau.

5.4 Comment changer le niveau de traçage ?

Il y a deux manières de le faire : soit vous pouvez changer le niveau de traçage par défaut (la variable `tracing' dans le fichier `ftape-rw.c') et recompiler, soit tapez

        mt /dev/ftape fsr <tracing-level>

L'utilisation de la commande `fsr' avec mt est une sorte de bidouille, et est destinée à disparaître.

5.5 Lors de l'utilisation de /dev/nftape, il y a beaucoup de message superflus ... pourquoi ?

Cela vient d'un problème `historique', avant la version 0.9.10. De nos jours, les périphériques `non-rembobinants' fonctionnent correctement. Si votre version est ancienne, il est vivement recommandé de se mettre à jour avec la version 1.13b.

6. Aide au développement de ftape.

6.1 J'ADORE tout simplement ce pilote ftape, comment puis-je aider les développeurs.

Vous pouvez aider les développeurs de ftape en répondant aux questions des utilisateurs sur les `newsgroups'. Il y a beaucoup d'utilisateurs débutants, qui ont juste besoin d'une réponse très simple à leur question, par exemple `Où puis-je trouver le ftape-HOWTO'. En général postez s'il vous plaît votre réponse directement sur le `newsgroup', de manière à en faire profiter d'autres utilisateurs.

C'est la meilleure manière d'apporter votre contribution, avec bien sûr le fait de tester le pilote et d'écrire des rapports de disfonctionnements précis.

6.2 Je voudrais aider à développer `...'Qui dois-je contacter?

Vous trouverez une liste des développeurs ci-dessous. Si quelqu'un travaille déjà sur un projet similaire ou identique, contactez cette personne directement. Si au contraire, vous avez un programme où des ajouts sur lesquels personne ne travaille, contactez <khp@login.dkuug.dk> (et NON Bas, du fait qu'il est surchargé de travail et a peu de temps pour répondre aux questions.

Programme de formatage : (pas encore commencé)

Kai Harrekilde-Petersen, khp@login.dkuug.dk

Cesare Mastroianni, cece@dist.dist.unige.it

le pilote ftape proprement dit :

Bas Laarhoven, bas@vimec.nl

ECC code : (ne vous joignez pas à nous, nous sommes déjà assez nombreux)

Kai Harrekilde-Petersen, khp@login.dkuug.dk

Bas Laarhoven, bas@vimec.nl

David Mosberger-Tang, davidm@cs.arizona.edu

Ning Mosberger-Tang, tn@cs.arizona.edu

ftape-HOWTO :

Kai Harrekilde-Petersen, khp@login.dkuug.dk version française : lprylli@lip.ens-lyon.fr

format logique QIC-80 (lecture/écriture au format DOS) :

Guido Muench, odiug@pool.Informatik.RWTH-Aachen.de

Kai Harrekilde-Petersen, khp@login.dkuug.dk

mirror server hosted at Truenetwork, Russian Federation.