Linux SCSI HOWTO Drew Eckhardt, drew@cs.colorado.edu, version francaise Jean Zundel. v2.15, 20 March 1995 Ce HOWTO couvre le sous-systeme SCSI de Linux, tel qu'implemente dans la revision 1.1.74 du noyau Linux et le nouveau code alpha. Les revi- sions anterieures du code SCSI _n_e _s_o_n_t _p_a_s _s_u_p_p_o_r_t_e_e_s, et peuvent dif- ferer significativement en termes de pilotes implementes, de perfor- mances et d'options disponibles. 11.. IInnttrroodduuccttiioonn 11..11.. LLiicceennccee Les redistributions non-commerciales d'une copie exacte sous toute forme, physique ou electronique, sont autorisees sans permission expresse de l'auteur. Les traductions sont de meme autorisees sans permission expresse si elles comprennent une note concernant le traducteur. La redistribution commerciale est autorisee et encouragee, a condition que l'auteur en soit averti et qu'il ait la possibilite de fournir une version a jour. Les citations breves peuvent etre utilisees sans consentement prealable de l'auteur. Le travail derivant de ce document doit soit inclure une copie exacte de ce fichier, soit permettre l'acces a une copie exacte du document. Dans ce dernier cas, un pointeur vers la copie en question doit etre clairement mise en evidence. En bref, nous desirons promouvoir la dissemination de cette information a travers tous les canaux possibles. Nous desirons cependant garder le copyright sur les documents HOWTO, etre informes de tout projet de redistribution de ces HOWTO pour nous assurer que des documents caducs ne circulent pas trop et que TOUTES les informations fournies par les HOWTO soit distribuees. Si vous avez des questions sur le projet de documentation Linux, vous pouvez contacter Matt Welsh, le coordinateur des HOWTO Linux, a mdw@sunsite.edu. Les questions concernant ce document lui-meme doivent etre envoyees a Drew Eckardt, drew@Colorado.EDU. Les questions et remarques concernant la traduction francaise doivent etre adressees a Jean Zundel, jean.zundel@lill.frmug.fr.net. 11..22.. RReemmaarrqquuee iimmppoorrttaannttee IIMMPPOORRTTAANNTT :: LLEESS CCOOMMPPTTEESS--RREENNDDUUSS DDEE BBOOGGUUEESS QQUUII NNEE SSUUIIVVEENNTT PPAASS LLAA PPRROOCCEEDDUURREE SSOOUULLIIGGNNEEEE EENN SSEECCTTIIOONN 22 SSEERROONNTT IIGGNNOORREESS.. Pour plus d'informations, vous pouvez rejoindre le canal SCSI de la liste des activistes Linux ; ecrivez a linux-activists- request@joker.cs.hut.fi. avec la ligne X-Mn-Admin: join SCSI dans l'en-tete, ainsi qu'a la liste SCSI Linux en ecrivant a majordomo@vger.rutgers.edu avec la ligne subscribe linux-scsi dans le texte. Je suis conscient que ce document n'est pas des plus agreables a l'utilisation, et qu'il peut contenir des inexactitudes et des approximations. Si vous avez des commentaires constructifs a faire sur la facon d'ameliorer la situation, libre a vous de m'ecrire a ce sujet. 22.. PPrroobblleemmeess ccoouurraannttss Cette section dresse la liste de certains des problemes couramment rencontres. Si rien ici ne repond a vos questions, il vous faudra egalement consulter les sections concernant votre adaptateur et les peripheriques posant probleme. 22..11.. DDeeffaaiillllaanncceess ggeenneerraalleess Les erreurs aleatoires proviennent frequemment du cablage et des terminaisons. Certains produits, comme ceux qui sont construits autour des circuits NCR les plus recents, integrent un filtrage digital et une negation active du signal, et ne sont pas tres sensibles aux problemes de cablage. D'autres, comme les Adaptec 154xC, 154xCF et 274x, sont _e_x_t_r_e_m_e_m_e_n_t sensibles et peuvent echouer avec des cables qui fonctionnent avec d'autres systemes. Je le repete : certains adaptateurs s'averent eexxttrreemmeemmeenntt sensibles aux problemes de cablage et de terminaison et ceux-ci doivent donc etre verifies avant toute chose en cas d'ennui. Pour minimiser les problemes, il faut utiliser des cables qui : 1. Respectent la norme SCSI-II 2. Possedent une impedance caracteristique de 132 ohms 3. Proviennent tous de la meme source afin d'eviter des incompatibilites d'impedance 4. Proviennent d'un fournisseur repute comme Amphenol. La puissance de terminaison doit etre fournie par _t_o_u_s les peripheriques sur le bus SCSI, a travers une diode pour eviter tout retour de courant, afin qu'une puissance suffisante soit disponible aux extremites du cable ou elle est necessaire. Afin d'eviter des dommages physiques en cas de court-circuit, TERMPWR doit passer par un fusible ou un autre systeme de limitation de courant. Si plusieurs peripheriques, plusieurs cables externes ou du FAST SCSI 2 sont utilises, une terminaison parfaite forcee ou active est requise au deux bouts du bus SCSI. Voir la FAQ comp.periphs.scsi pour plus d'informations sur la terminaison active. 22..22.. LLaa lliiggnnee ddee ccoommmmaannddee dduu nnooyyaauu D'autres parties de la documentation se referent a une ``ligne de commande du noyau'' (kernel command line). La ligne de commande du noyau est un ensemble d'options que l'on peut specifier depuis le prompt LILO: apres un nom d'image, ou bien dans le champ append de votre fichier de configuration LILO (LILO >= .14 utilise /etc/lilo.conf, les versions anterieures utilisant /etc/lilo/config). Demarrez votre systeme avec LILO, et frappez l'une des touches Alt, Ctrl ou majuscule quand il propose un prompt. LILO devrait repondre par boot: On peut alors selectionner une image de noyau a lancer, ou les lister avec ``?'' (NdT : sur un clavier francais). Par exemple boot: ? ramdisk floppy harddisk Pour demarrer ce noyau avec les options de ligne de commande que vous avez selectionnees, entrez simplement son nom suivi d'une liste d'options delimitees par des espaces, en finissant par un retour chariot. Les options prennent la forme : variable=valuelist Ou valuelist peut etre une valeur unique ou une liste de valeurs delimitees par des virgules, sans espace. A l'exception du periph- erique racine, les valeurs individuelles sont des nombres, et peuvent etre specifiees en decimal ou en hexadecimal. Par exemple, pour demarrer Linux avec un clone d'Adaptec 1520 non reconnu au demarrage, on peut entrer boot: floppy aha152x=0x340,11,7,1 Si vous desirez ne pas entrer tout ceci a chaque fois, il est aussi possible d'utiliser l'option ``append'' du fichier de configuration de LILO pour les versions .13 et ulterieures. Par exemple, append="aha152x=0x340,11,7,1" 22..33.. UUnn ppeerriipphheerriiqquuee SSCCSSII aappppaarraaiitt aa ttoouuss lleess IIDD ppoossssiibblleess Dans ce cas, vous avez declare le peripherique a la meme adresse que le controleur (typiquement 7, bien que certaines cartes utilisent d'autres adresses, comme 6 pour certaines cartes Future Domain). Changez les reglages de cavaliers. 22..44.. UUnn ppeerriipphheerriiqquuee aappppaarraaiitt aa ttoouutteess lleess LLUUNN ppoossssiibblleess Le peripherique contient un code en ROM defectueux. On peut temporairement essayer d'utiliser l'option de ligne de commande du noyau max_scsi_luns=1 Si ceci fonctionne, il existe une liste de peripheriques defectueux dans les sources du noyau, dans la variable blacklist de drivers/scsi/scsi.c. Ajoutez votre peripherique a cette liste et envoyez le patch a Linus. 22..55.. VVoouuss oobbtteenneezz ddeess sseennssee eerrrroorr aalloorrss qquuee vvoouuss ssaavveezz qquuee lleess ppeerriipphheerriiqquueess ssoonntt ccoorrrreeccttss Cela est parfois provoque par une terminaison ou des cables defectueux. Voir ``'': Defaillance generale 22..66.. UUnn nnooyyaauu ccoonnffiigguurree aavveecc llee rreesseeaauu nnee ffoonnccttiioonnnnee ppaass.. Les routines d'autodetection de la plupart des pilotes de reseaux ne sont pas passives et peuvent interferer avec certains des pilotes SCSI. 22..77.. PPeerriipphheerriiqquuee ddeetteeccttee,, mmaaiiss iimmppoossssiibbllee dd''yy aacccceeddeerr.. Un peripherique SCSI est detecte par le noyau, mais vous etes incapable d'y acceder ; par exemple, mkfs /dev/sdc, tar xvf /dev/rst2, etc., echouent. Vous n'avez pas de fichier special dans /dev pour le peripherique. Les peripheriques Unix sont identifies par leur type, bloc ou caractere (les peripheriques bloc passent par le buffer cache, ce qui n'est pas le cas des peripheriques caractere), par un nombre majeur (c.a.d. quel pilote est utilise ; le bloc majeur 8 correspond aux peripheriques SCSI) et un nombre mineur (c.a.d. a quelle unite on accede pour un pilote donne ; le caractere majeur 4, mineur 0 est la premiere console virtuelle, mineur1 la suivante, etc). Mais ce genre d'acces par nommage direct aux peripheriques enfreindrait le principe unix/Linux : ``Tout est fichier'', ce qui fait que des fichiers speciaux de peripheriques caractere et bloc sont crees sous /dev. Ceci vous permet d'acceder au troisieme peripherique SCSI par /dev/sdc, au premier port serie par /dev/ttyS0, etc. La methode preferentielle pour creer un fichier consiste a utiliser le script MAKEDEV : cd /dev et de lancer MAKEDEV (en tant que root) pour les peripheriques a creer. Par ex. : les jokers ``devraient'' marcher ; par ex. ``devrait'' creer des entrees pour tous les peripheriques disque SCSI (ceci doit creer les fichiers allant de /dev/sda a /dev/sdp, avec quinze entrees de partition pour chacun) ``devrait'' creer les entrees pour /dev/sdc et les quinze partitions permises sur /dev/sdc, etc. Je dis ``devrait'' parce qu'il s'agit la du comportement standard sous unix ; le script MAKEDEV peut ne pas se conformer a cette regle, ou peut avoir restreint le nombre de peripheriques qu'il creera. Si la baguette magique de MAKEDEV ne suffit pas, il vous faudra creer les entrees de peripheriques a la main avec la commande mknod. Les types bloc/caractere et les nombres majeurs et mineurs sont specifies pour divers peripheriques SCSI a la sous-section 3 : Fichiers de peripheriques, dans la section appropriee. Prenez ces nombres, et entrez (en tant que root) mknod /dev/periph b|c majeur mineur Exemple : mknod /dev/sdc b 8 32 mknod /dev/rst0 c 9 0 22..88.. BBllooccaaggeess SSCCSSII dduu ssyysstteemmee De nombreuses causes possibles sont envisageables. Reportez vous egalement a la section concernant votre adaptateur pour des solutions specifiques. Il existe des cas dans lesquels les blocages semblent se produire quand plusieurs peripheriques fonctionnent en meme temps. Vous pouvez alors essayer de contacter le fabriquant des peripheriques et voir si des mises a jour du logiciel en ROM susceptibles de corriger le probleme sont disponibles. Si possible, essayez un cable SCSI different, ou essayez sur un autre systeme. De mauvais blocs sur le disque, ou une mauvaise gestion du DMA par la carte mere (pour les adaptateurs qui l'utilisent) peuvent causer ce probleme. De nombreuses autres conditions peuvent mener a ce type d'evenement. Ces problemes surviennent parfois quand plusieurs peripheriques fonctionnent sur le meme bus en meme temps. Dans ce cas, si votre pilote d'adaptateur supporte plus d'une commande en suspens (outstanding command) a la fois, essayez de reduire cette valeur a 1 et voyez si les choses s'arrangent. Si vous avez des unites a bande ou des lecteurs de CD-ROM lents sur le bus, cette solution peut ne pas s'averer satisfaisante. 22..99.. CCoonnffiigguurraattiioonn eett ccoonnssttrruuccttiioonn dduu nnooyyaauu Les pilotes SCSI non utilises consomment de la memoire et aggravent les problemes sur les petits systemes parce que la memoire du noyau n'est pas paginable. Il vous faut donc construire un noyau adapte a votre systeme, ne comprenant que les pilotes dont vous avez besoin. cd /usr/src/linux Si vous utilisez un peripherique racine different de celui en cours, ou quelque chose d'autre que du VGA 80x25, et que vous ecrivez sur une disquette de demarrage, vous devez editer le makefile, et vous assurer que les lignes ROOT_DEV = et SVGA_MODE = correspondent a ce que vous desirez. Si vous avez installe des patches, vous pouvez desirer que tous les fichiers soient reconstruits. Dans ce cas, entrez make mrproper Que vous ayez execute make mrproper ou non, entrez make config et repondez aux questions de configuration. Lancez ensuite make depend et finalement make Une fois la compilation terminee, vous pouvez mettre a jour la configuration de lilo, ou ecrire une disquette de demarrage en lancant make zdisk 22..1100.. LLeess LLUUNNSS aauuttrreess qquuee 00 nnee ffoonnccttiioonnnneenntt ppaass Ce probleme arrive frequemment avec les SCSI -> MFM, RLL, ESDI, SMD, et les cartes bridge similaires. A un moment donne, nous en sommes arrives a conclure que de nombreux peripheriques SCSI-I etaient extremement defectueux, et nous avons ajoute le code suivant ______________________________________________________________________ /* Certains peripheriques scsi-1 ne gerent pas lun != 0. Je suppose que les peripheriques scsi-2 font mieux. */ if((scsi_result[2] & 0x07) == 1 && (scsi_result[3] & 0x0f) == 0) break; ______________________________________________________________________ a scan_scsis() dans drivers/scsi/scsi.c. Si vous supprimez ce code, vos anciens peripheriques devraient etre correctement detectes si vous n'avez pas utilise l'option de ligne de commande du noyau max_scsi_luns, ou la definition NO_MULTI_LUN au moment de la compilation. 33.. CCoommpptteess--rreenndduuss ddee bboogguueess ((BBuugg RReeppoorrttss)) Les developpeurs SCSI de Linux ne maintiennent pas forcement les anciennes revisions du code en raison de contraintes d'espace. Si donc vous n'utilisez pas le dernier noyau Linux diffuse publiquement (remarquez que de nombreuses distributions, comme MCC, SLS, Yggdrasil, etc. restent souvent un ou meme vingt patches en arriere), il y a de grandes chances pour que nous soyons incapables de resoudre votre probleme. En consequence, avant de rendre compte d'un bug, veuillez verifier s'il persiste avec le dernier noyau publiquement disponible. Si apres vous etre mis a jour, et apres avoir lu ce document en detail, vous pensez toujours etre en presence d'un bug, envoyez un compte-rendu (bug report) au canal SCSI de la liste de diffusion ou il sera lu par de nombreuses personnes ayant contribue aux pilotes SCSI de Linux. Dans votre compte-rendu, veuillez fournir le plus d'informations possible concernant votre configuration materielle, le texte exact et tous les messages que Linux affiche au moment du demarrage, quand la condition d'erreur se produit, ainsi que l'endroit de l'erreur dans le code source. Utilisez les procedures indiquees en Section 2.1 : Capture des messages et en Section 2.2 : Localisation de la source d'un panic(). Une quantite insuffisante d'informations peut conduire a un mauvais diagnostic de votre probleme, ou a ce que les developpeurs decident qu'il existe d'autres problemes plus interessants a resoudre. En conclusion, si nous ne pouvons pas reproduire votre bug, et que vous ne pouvez pas nous dire ce qui ne va pas, il ne sera pas resolu. 33..11.. CCaappttuurree ddeess mmeessssaaggeess Si vous n'avez pas lance de systeme de trace de messages du noyau : Assurez-vous que le systeme de fichiers /proc est monte. grep proc /etc/mtab Si ce n'est pas le cas, montez-le mkdir /proc chmod 755 /proc mount -t proc /proc /proc Copiez la revision et les messages du noyau dans un fichier log cat /proc/version >/tmp/log cat /proc/kmsg >>/tmp/log Faites Ctrl-C apres une seconde ou deux. Si vous faites tourner un traceur, vous devrez chercher dans les fichiers de trace appropries (/etc/log/sylog.conf devrait vous aider a les localiser), ou utiliser dmesg. Si Linux n'est pas encore demarre, formatez une disquette sous DOS. Notez que si vous avez une distribution qui monte la disquette racine depuis le lecteur et non depuis un disque virtuel en RAM, vous devrez formatter une disquette lisible dans le lecteur non utilise, ou utiliser leur option de demarrage par disque virtuel. Lancez Linux depuis la disquette de demarrage de votre distribution, de preference en mode mono-utilisateur en utilisant un disque RAM comme racine. mkdir /tmp/dos Inserez la disquette dans un lecteur libre pour monter la racine, et montez- la. Par ex. mount -t msdos /dev/fd0 /tmp/dos ou mount -t msdos /dev/fd1 /tmp/dos Copiez-y votre trace cp /tmp/log /tmp/dos/log Demontez votre disquette DOS umount /tmp/dos Et arretez Linux shutdown Redemarrez sous DOS, et inserez votre fichier de trace dans un message en utilisant votre logiciel de communications favori. 33..22.. LLooccaalliissaattiioonn ddee llaa ssoouurrccee dd''uunn ppaanniicc(()) Comme d'autres unix, quand une erreur fatale se produit, Linux appelle la fonction panic(). A l'inverse d'autres unix, Linux ne produit pas de core dump vers le peripherique de swap ou de dump avant de redemarrer automatiquement. Un resume d'informations utiles est affiche afin que l'utilisateur le copie a la main. Par ex. : Unable to handle kernel NULL pointer dereference at virtual address c0000004 current->tss,cr3 = 00101000, %cr3 = 00101000 *pde = 00102027 *pte = 00000027 Oops: 0000 EIP: 0010:0019c905 EFLAGS: 00010002 eax: 0000000a ebx: 001cd0e8 ecx: 00000006 edx: 000003d5 esi: 001cd0a8 edi: 00000000 ebp: 00000000 esp: 001a18c0 ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018 Process swapper (pid: 0, process nr: 0, stackpage=001a09c8) Stack: 0019c5c6 00000000 0019c5b2 00000000 0019c5a5 001cd0a8 00000002 00000000 001cd0e8 001cd0a8 00000000 001cdb38 001cdb00 00000000 001ce284 0019d001 001cd004 0000e800 fbfff000 0019d051 001cd0a8 00000000 001a29f4 00800000 Call Trace: 0019c5c6 0019c5b2 0018c5a5 0019d001 0019d051 00111508 00111502 0011e800 0011154d 00110f63 0010e2b3 0010ef55 0010ddb7 Code: 8b 57 04 52 68 d2 c5 19 00 e8 cd a0 f7 ff 83 c4 20 8b 4f 04 Aiee, killing interrupt handler kfree of non-kmalloced memory: 001a29c0, next= 00000000, order=0 task[0] (swapper) killed: unable to recover Kernel panic: Trying to free up swapper memory space In swapper task - not syncing Prenez le nombre hexadecimal figurant a la ligne EIP:, dans ce cas 19c905, et cherchez dans /usr/src/ linux/zSystem.map le nombre le plus grand inferieur ou egal a cette adresse. 0019a000 T _fix_pointers 0019c700 t _intr_scsi 0019d000 t _NCR53c7x0_intr Ceci vous indique dans quelle fonction l'erreur se trouve. Recompilez le fichier source qui definit cette fonction en activant les informations de debug, ou le noyau entier si vous le preferez en editant /usr/src/linux/Makefile et en ajoutant un ``-g'' a la definition de CFLAGS. ##standard CFLAGS # Par exemple, CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe devient CFLAGS = -g -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe Reconstruisez le noyau, de facon incrementale ou en faisant un make clean make Rendez le noyau demarrable en lui creant une entree dans votre /etc/lilo.conf image = /usr/src/linux/zImage label = experimental et en relancant LILO en tant que root, ou en creant une disquette de demarrage make zImage Redemarrez et enrregistrez le nouveau EIP de l'erreur. Si script est installe, vous pouvez le demarrer, et il tracera votre session de mise au point dans le fichier typescript. Maintenant, lancez gdb /usr/src/linux/tools/zSystem et entrez info line * Par exemple, info line *0x19c905 A quoi GDB repondra quelque chose comme (gdb) info line *0x19c905 Line 2855 of ``53c7,8xx.c'' starts at address 0x19c905 and ends at 0x19c913 . Enregistrez cette information. Entrez ensuite list < numero de ligne> Par ex., ______________________________________________________________________ (gdb) list 2855 2850 /* printk("scsi%d : target %d lun %d unexpected disconnect\n", 2851 host->host_no, cmd->cmd->target, cmd->cmd->lun); */ 2852 printk("host : 0x%x\n", (unsigned) host); 2853 printk("host->host_no : %d\n", host->host_no); 2854 printk("cmd : 0x%x\n", (unsigned) cmd); 2855 printk("cmd->cmd : 0x%x\n", (unsigned) cmd->cmd); 2856 printk("cmd->cmd->target : %d\n", cmd->cmd->target); 2857 if (cmd) { 2858 abnormal_finished(cmd, DID_ERROR << 16); 2859 } 2860 hostdata->dsp = hostdata->script + hostdata->E_schedule / 2861 sizeof(long); 2862 hostdata->dsp_changed = 1; 2863 /* SCSI PARITY error */ 2864 } 2865 2866 if (sstat0_sist0 & SSTAT0_PAR) { 2867 fatal = 1; 2868 if (cmd && cmd->cmd) { 2869 printk("scsi%d : target %d lun %d parity error.\n", ______________________________________________________________________ Bien sur, quit vous sortira de GDB. Enrtegistrez aussi cette information, car elle fournira un contexte au cas ou les noyaux des developpeurs different du votre. 44.. HHootteess Cette section donne des informations specifiques sur les divers adaptateurs hotes qui sont suportes d'une maniere ou d'une autre sous Linux. 44..11.. MMaatteerriieell ssuuppppoorrttee eett nnoonn ssuuppppoorrttee Pilotes des noyaux de distributions : Adaptec 152x, Adaptec 154x (y compris les clones de Bustek et les cartes DTC 329x), Adaptec 174x, Adaptec 274x/284x/2940, les cartes se conformant au protocole EATA-DMA (toutes les DPT PMXXXXX/XX et SKXXXXX/XX sauf la PM2001, certaines cartes de NEC and ATT), Future Domain 850, 885, 950, et les autres cartes dans cette serie (mais pas les 840, 880 et 881 a moins de faire le patch approprie), Future Domain 16x0 avec les circuits TMC-1800, TMC-18C30 ou TMC18C50, NCR53c8x, les ports SCSI de la PAS16, Seagate ST0x, Trantor T128/T130/T228, Ultrastor 14F, 24F et 34F, et Western Digital 7000. Pilotes alpha : Richoh GSI-8 Nombre de pilotes alpha sont disponibles via FTP anonyme depuis Pilotes en cours de developpement, mais qui ne sont pas encore publiquement disponibles, et modifications necessaires pour faire fonctionner des pilotes existants avec d'autres cartes : DPT PM2001 Les annonces SERONT effectuees quand les pilotes seront disponibles pour alpha tests publics. En attendant, ne faites pas perdre du temps aux developpeurs en leur demandant par courrier des dates de sortie, etc. +o NCR53c8x0/7x0 +o Un pilote NCR53c8xx a ete developpe, et devrait supporter ces circuits au prix de modifications allant de mineures a severes. +o NCR53c720 - changements dans la detection, modification de l'assembleur pour utiliser les registres du 720 +o NCR53c710 - changements dans la detection, modification de l'assembleur, modification du code NCR pour utiliser les interruptions fatales ou les interruptions non fatales generees par GPIO pour la completion de commande. +o NCR53c700, NCR53c700-66 - changements dans la detection, dans l'initialisation, modification du code NCR pour ne pas utiliser DSA, modification du code Linux pour gerer les changements de contexte. +o Famille NCR53c9x +o Qlogic Hotes SCSI qui ne marchent pas : +o Tous adaptateurs parallele-> SCSI +o Cartes Rancho SCSI +o et Grass Roots SCSI. Hotes SCSI qui ne marcheront JAMAIS : +o Cartes DTC non-compatibles Adaptec (y compris les 3270 et 3280). Les informations de programmation peuvent etre obtenues en signant un accord de non-diffusion avec DTC. Cela veut dire qu'il serait impossible de distribuer un pilote Linux s'il etait ecrit, puisque le respect de l'accord impliquerait de ne pas distribuer de source, en violation de la GPL, et le respect de la GPL signifierait la distribution du source, en violation de l'accord. Si vous voulez faire tourner Linux sur un materiel non supporte, l'alternative consiste soit a ecrire un pilote par vous-meme (Eric Youngdale et moi-meme sommes en general disposes a repondre aux questions techniques concernant les pilotes SCSI de Linux, soit d'en charger quelqu'un. 44..11..11.. PPlluussiieeuurrss aaddaappttaatteeuurrss hhootteess Avec certains adaptateurs (Cf. ``'' : Guide d'achat : comparaison des caracteristiques), on peut utiliser plusieurs adaptateurs hotes du meme type dans le meme systeme. Dans ce cas, c'est generalement celui qui se trouve a l'adresse la plus basse qui est scsi0, celui a l'adresse suivante est scsi1, etc. Dans tous les cas, il est possible d'utiliser plusieurs adaptateurs de types differents, pourvu qu'aucune de leurs adresses n'entre en conflit avec les autres. Les controleurs SCSI sont scrutes dans l'ordre specifie par le tableau builtin_scsi_hosts[ ] de drivers/scsi/hosts.c, l'ordre etant actuellement 1. Ultrastor 2. Adaptec 151x/152x 3. Buslogic 4. Adaptec 154x 5. Adaptec 174x 6. Future Domain 16x0 7. Always IN2000 8. Generic NCR5380 9. PAS16 10. Seagate 11. Trantor T128/T130 12. NCR53c8xx 13. EATA-DMA 14. WD7000 15. pilote de mise au point. Dans la plupart des cas (par exemple, si vous n'essayez pas d'utiliser a la fois des pilotes Buslogic et Adaptec), cette liste peut etre changee a votre convenance (comme en gardant les memes peripheriques quand de nouveaux sont ajoutes au systeme sur un nouveau controleur) en deplacant les entrees individuelles. 44..22.. PPrroobblleemmeess hhaabbiittuueellss 44..22..11.. TTiimmee--oouuttss SSCCSSII Assurez-vous que les interruptions sont correctement autorisees, et qu'il n'y a aucun conflit d'IRQ, de DMA ou d'adresse avec d'autres cartes. 44..22..22.. EEcchheecc ddeess rroouuttiinneess dd''aauuttooddeetteeccttiioonn ssuurr lleess ccaarrtteess qquuii ssee ffiieenntt aauu BBIIOOSS ppoouurr ll''aauuttooddeetteeccttiioonn Si votre adaptateur SCSI est l'un des suivants : +o Adaptec 152x +o Adaptec 151x +o Adaptec AIC-6260 +o Adaptec AIC-6360 +o Future Domain 1680 +o Future Domain TMC-950 +o Future Domain TMC-8xx +o Trantor T128 +o Trantor T128F +o Trantor T228F +o Seagate ST01 +o Seagate ST02 +o Western Digital 7000 et n'est pas detecte au demarrage, par exemple avec le message scsi : 0 hosts ou qu'un message scsi%d : type n'est pas affiche pour chaque adaptateur SCSI supporte, installe dans le systeme, votre probleme reside peut-etre dans la routine d'autodetection qui ne reconnait pas votre carte. L'autodetection echouera avec les pilotes qui utilisent le BIOS pour l'autodetection s'il est desactive. Verifiez que votre BIOS est active, et n'entre pas en conflit avec d'autres BIOS de peripheriques. L'autodetection echouera si la ``signature'' de la carte et/ou l'adresse du BIOS ne correspondent pas a ce qu'attend la routine. Si le BIOS est installe, utilisez le DOS et DEBUG pour trouver une signature qui reperera votre carte - Par exemple, si votre carte reside en 0xc8000, faites sous DOS debug d c800:0 q et envoyez un message au canal SCSI de la liste de diffusion avec le message ASCII resultant, avec la longueur et l'offset depuis l'adresse de base (0xc8000 dans ce cas). Remarquez que le texte eexxaacctt est requis, et que vous devez fournir les portions hexa et ASCII du texte. Si aucun BIOS n'est installe et que vous utilisez un pilote Adaptec 152x, Trantor T128 ou Seagate, vous pouvez forcer la detection par une option de ligne de commande ou de compilation. Consultez la sous-section appropriee concernant votre carte SCSI ainsi que ``''. 44..22..33.. EEcchheeccss aavveecc lleess ccaarrtteess uuttiilliissaanntt ddeess EE//SS mmaappppeeeess eenn mmeemmooiirree (Y compris les cartes Trantor T128 et Seagate, mais pas les pilotes Adaptec, Generic NCR5380, PAS16 et Ultrastor) Cela se produit souvent quand les ports d'E/S mappes en memoire sont incorrectement caches. L'espace d'adressage de la carte doit etre marquee incachable dans le reglage XCMOS. Si ce n'est pas possible, vous devrez entierement desactiver le cache. Si vous avez specifie manuellement l'adresse de la carte, souvenez- vous que Linux a besoin de l'adresse reelle de la carte, et non du segment sur 16 bits auquel la documentation peut se referer. Par exemple, 0xc8000 serait correct, 0xc800 ne fonctionnerait pas et provoquerait une corruption de la memoire. 44..22..44.. ````kkeerrnneell ppaanniicc :: ccaannnnoott mmoouunntt rroooott ddeevviiccee'''' aauu ddeemmaarrrraaggee sur une disquette contenant un pilote ALPHA Il vous faudra editer l'image binaire du noyau (avant ou apres l'avoir ecrit sur la disquette), et modifier quelques champs de deux octets (petit-boutien) afin de garantir son fonctionnement sur votre systeme. 1. peripherique de swap par defaut a l'offset 502, doit etre mis a 0x00 0x00 2. taille du disque virtuel en 504, doit etre regle sur la taille de la disquette en Ko : 5,25" = 1200, 3,5" = 1440. Ce qui veut dire que les octets sont 3,5" : 0xA0 0x05 5,25" : 0xB0 0x04 3. peripherique racine en 508, doit etre 0x00 0x00, c'est a dire le peripherique de demarrage. Ecrivez le fichier sur une disquette par dd ou rawrite. Inserez la disquette dans le premier lecteur, attendez qu'il vous demande le root disk, et inserez celui de votre distribution. 44..22..55.. IInnssttaallllaattiioonn dd''uunn ppiilloottee ddee ppeerriipphheerriiqquuee nnoonn iinncclluuss ddaannss llee nnooyyaauu ddee llaa ddiissttrriibbuuttiioonn Vous devez commencer avec la version du noyau utilisee par l'auteur du pilote. On trouve en general une reference a cette revision dans la documentation du pilote. On trouve diverses revisions du noyau sur dans linux-version.tar.gz Ils sont egalement mirrorises sur tsx-11.mit.edu et d'autres sites. cd /usr/src. Enlevez vos anciens sources Linux, mais si vous voulez en garder une copie de sauvegarde mv linux linux-old Desarchivez gunzip ,< IRQ> ,< SCSI-ID> , < RECONNECT> Generalement, SCSI-ID sera a 7 et RECONNECT different de zero. Pour forcer la detection a 0x340, IRQ 11, et SCSI-ID 7, en permettant la deconnexion/reconnexion, vous devez utiliser l'option de ligne de commande suivante : aha152x=0x340,11,7,1 PPrroobblleemmeess dduuss aa ll''aanncciieennnneettee,, rreessoolluuss ppaarr mmiissee aa jjoouurr :: Le pilote echoue avec des cartes VLB. Il existait un probleme de temporisation avec les noyaux anterieurs a la revision 1.0.5. DDeeffiinniittiioonnss :: AAUUTTOOCCOONNFF :: utiliser la configuration que renvoie le controleur (uniquement 152x) IIRRQQ :: forcer le canal d'interruption (9,10,11 or 12) (defaut 11) SSCCSSII__IIDD :: forcer le scsiid de AIC-6260 (0-7) (defaut 7) RREECCOONNNNEECCTT :: forcer la deconnexion/reconnexion/multiple ccoommmmaannddee eenn aatttteennttee :: mettre a non-zero pour activer, zero pour desactiver. DDOONNTT__SSNNAARRFF :: Ne pas enregistrer les ports (pl12 et en-dessous) SSKKIIPP__BBIIOOSSTTEESSTT :: Ne pas tester la signature du BIOS (AHA-1510 ou BIOS desactive) PPOORRTTBBAASSEE :: Forcer la base des ports. Ne pas essayer de detecter 44..44.. AAddaapptteecc 115544xx,, AAMMII FFaassttDDiisskk VVLLBB,, BBuussllooggiicc,, DDTTCC 332299xx ((SSttaannddaarrdd)) CCoonnffiigguurraattiioonnss ssuuppppoorrtteeeess :: PPoorrttss :: 0x330 et 0x334 IIRRQQss :: 9, 10, 11, 12, 14, 15 CCaannaauuxx DDMMAA :: 5, 6, 7 IIOO :: port mapped, bus master AAuuttooddeetteeccttiioonn :: fonctionne avec toutes les configurations supportees, ne demande pas de BIOS installe. FFoorrccaaggee dd''aauuttooddeetteeccttiioonn :: aucun NNoottee :: Les cartes sans suffixe, ainsi que les premieres cartes dont le suffixe est 'A' ne supportent pas le scatter/gather, et ne fonctionnent donc pas. On peut cependant les faire plus ou moins fonctionner si AHA1542_SCATTER est mis a 0 dans drivers/scsi/aha1542.h. NNoottee :: Buslogic fabrique une serie de cartes compatibles par logiciel avec l'Adaptec 1542, et celles-ci existent sous les formes ISA, VLB et EISA. PPrroobblleemmeess dduuss aa ll''aanncciieennnneettee,, rreessoolluuss ppaarr mmiissee aa jjoouurr :: 1. Les revisions du noyau Linux anterieures a .99.10 ne supportent pas la revision 'C'. 2. Les revisions du noyau Linux anterieures a .99.14k ne supportent pas les options de la revision 'C' concernant +o le support du BIOS pour le mapping etendu des disques > 1 Go +o Support du BIOS pour > 2 disques +o Support du BIOS pour l'autoscan du bus SCSI 3. Les revisions du noyau Linux anterieures a la .99.15e ne supportent pas la 'C' avec le support du BIOS active pour > 2 disques et le support du BIOS desactive pour le mapping etendu des disques > 1Go. 4. Les revisions du noyau Linux anterieures a la .99.14u ne supportent pas les revisions 'CF' de la carte. 5. Les revisions du noyau Linux anterieures a la 1.0.5 ont un effet de competition (race condition) quand plusieurs peripheriques sont raccordes en meme temps. PPrroobblleemmeess hhaabbiittuueellss :: 1. On obtient des erreurs inattendues avec une carte 154xC ou 154xCF. Les premiers exemplaires des cartes 154xC avaient un slew rate important sur l'un des signaux SCSI, ce qui donnait des reflexions de signal quand des cables d'impedance incorrecte etaient utilises. Les nouvelles cartes ne se comportent pas vraiment mieux, et souffrent egalement d'une extreme sensibilite au cablage et a la terminaison. Voyez egalement Problemes habituels numeros 2 et 3 et la section ``'': Problemes habituels, et la section ``'': Defaillance generale. 2. Erreurs inattendues avec une 154xC ou 154x connectee a la fois a des peripheriques internes et externes. Il s'agit probablement d'un probleme de terminaison. Il faut desactiver le switch 1 pour utiliser l'option logicielle de desactivation de terminaison de l'adaptateur hote. Voyez egalement Problemes habituels numeros 2 et 3 et la section ``'': Problemes habituels, et la section ``'': Defaillance generale. 3. Le sous-systeme SCSI se bloque completement. Il existe des cas dans lesquels les bloquages semblent se produire quand plusieurs peripheriques sont simultanement en activite. Dans ce cas, vous pouvez essayer de contacter le fabricant des peripheriques afin de voir si des mises a jour de logiciel embarque susceptibles de corriger le probleme sont disponibles. En dernier recours, vous pouvez rentrer dans aha1542.h et changer AHA1542_MAILBOX en 1. Ceci vous limitera a une seule commande en suspens a la fois sur le bus SCSI, et peut ameliorer la situation. Cette solution peut se reveler problematique si vous utilisez des lecteurs de bandes ou des CD-ROM lents sur le bus. Voyez egalement Problemes habituels numeros 2 et 3 et la section ``'': Problemes habituels, la section ``'': Defaillance generale, et la section ``'' : Blocages SCSI. 4. Un message ``Interrupt received, but no mail'' est affiche au demarrage et vos peripheriques SCSI ne sont pas detectes. Desactivez les options du BIOS destinees au support du mapping etendu pour les disques > 1Go, le support de plus de deux disques, et pour l'autoscan du bus. Ou installez une version de Linux superieure ou egale a .99.14k. 44..55.. AAddaapptteecc 117744xx CCoonnffiigguurraattiioonnss ssuuppppoorrtteeeess :: SSlloottss :: 1-8 PPoorrttss :: carte EISA, sans objet IIRRQQss :: 9, 10, 11, 12, 14, 15 CCaannaauuxx DDMMAA :: carte EISA, sans objet IIOO :: port mapped, bus master AAuuttooddeetteeccttiioonn :: fonctionne avec toutes les configurations supportees FFoorrccaaggee dd''aauuttooddeetteeccttiioonn :: aucun NNoottee :: Cette carte n'est plus fabriquee par Adaptec. PPrroobblleemmeess hhaabbiittuueellss :: 1. Si le pilote de l'Adaptec 1740 affiche le message ``aha1740: Board detected, but EBCNTRL = %x, so disabled it.'' votre carte a ete desactivee parce qu'elle ne tournait pas en mode etendu. Les cartes tournant en mode 1542 standard ne sont pas supportees. 44..66.. AAddaapptteecc 227744xx,, 228844xx,, 229944xx ((SSttaannddaarrdd)) Des revisions plus recentes peuvent etre trouvees sur Configurations supportees : 227744xx:: SSlloottss EEIISSAA :: 1-12 IIRRQQss :: Toutes IIOO :: port mapped, bus master 228844xx :: PPoorrttss :: Tous IIRRQQss :: Toutes CCaannaauuxx DDMMAA :: Tous 229944xx PCI NNoottee :: Le BIOS DOIT etre active NNoottee :: Le canal B des cartes 2742AT est ignore. 44..77.. TToouujjoouurrss IINN22000000 ((AALLPPHHAA)) Pilote ALPHA disponible sur . Le pilote est in2000.tar.z, le noyau bootable est zImage PPoorrtt :: 0x100, 0x110, 0x200, 0x220 IIRRQQss :: 10, 11, 14, 15 DDMMAA :: inutilise IIOO:: port mapped AAuuttooddeetteeccttiioonn :: BIOS non requis FFoorrccaaggee dd''aauuttooddeetteeccttiioonn :: aucun PPrroobblleemmeess hhaabbiittuueellss :: 1. On connait certains problemes sur les systemes qui ont des disques IDE et avec le swapping. 44..88.. EEAATTAA:: DDPPTT SSmmaarrttccaacchhee,, SSmmaarrttccaacchhee PPlluuss,, SSmmaarrttccaacchhee IIIIII ((SSttaannddaarrdd)) CCaarrtteess ssuuppppoorrtteeeess :: Toutes celles qui supportent le protocole EATA-DMA (pas la PM2001). DDPPTT SSmmaarrttccaacchhee :: PM2011 PM2012A PM2012B SSmmaarrttccaacchhee IIIIII :: PM2021 PM2022 PM2024 PM2122 PM2124 PM2322 SSmmaarrttRRAAIIDD :: PM3021 PM3222 PM3224 nombre de ces cartes sont aussi disponibles en version SKXXXX, qui sont egalement suportees. CCoonnffiigguurraattiioonn ssuuppppoorrtteeeess :: SSlloottss :: Tous PPoorrttss :: Tous IIRRQQss :: Toutes, level & edge triggered CCaannaauuxx DDMMAA :: ISA ALL, EISA/PCI sans objet IIOO :: port mapped, bus master CCaannaauuxx SSCCSSII :: Tous AAuuttooddeetteeccttiioonn :: fonctionne avec toutes les configurations supportees CCoommppiillaattiioonn :: diskgeometry dans eata_dma.h pour les geometries inhabituelles provenant du vieil utilitaire DPTFMT. La derniere version du pilote EATA-DMA et un disque de demarrage Slackware devrait etre disponible sur : PPrroobblleemmeess hhaabbiittuueellss :: 1. Le pilote IDE detecte l'interface ST-506 de la carte EATA. a. Cela ressemblera a l'un des deux exemples suivants : hd.c: ST-506 interface disk with more than 16 heads detected, probably due to non-standard sector translation. Giving up. (disk % d: cyl=% d, sect=63, head=64) hdc: probing with STATUS instead of ALTSTATUS hdc: MP0242 A, 0MB w/128KB Cache, CHS=0/0/0 hdc: cannot handle disk with 0 physical heads hdd: probing with STATUS instead of ALTSTATUS hdd: MP0242 A, 0MB w/128KB Cache, CHS=0/0/0 hdd: cannot handle disk with 0 physical heads Si le pilote IDE se sent vraiment mal, c'est a dire que vous ne pouvez pas acceder a votre (vrai) materiel IDE, changez le port d'E/S et/ou l'IRQ de la carte EATA. b. Si le pilote IDE trouve du materiel qu'il peut gerer, par exemple des disques durs d'une capacite <=504 Mo, il allouera le port d'E/S et l'IRQ ce qui fait que le pilote EATA ne pourra pas les utiliser. Dans ce cas, changez egalement le port d'E/S et l'IRQ (!= 14, 15). 2. Certaines vieilles cartes SK2011 ont un logiciel embarque defectueux. Contactez le support clientele pour obtenir une mise a jour. 44..99.. 3366CC7700.. FFuuttuurree DDoommaaiinn 1166xx00 aavveecc cciirrccuuiitt TTMMCC--11880000,, TTMMCC--1188CC3300,, TTMMCC--1188CC5500 oouu TTMMCC-- CCoonnffiigguurraattiioonnss ssuuppppoorrtteeeess :: BBIIOOSS :: 2.0, 3.0, 3.2, 3.4, 3.5 AAddrreesssseess dduu BBIIOOSS :: 0xc8000, 0xca000, 0xce000, 0xde000 PPoorrttss :: 0x140, 0x150, 0x160, 0x170 IIRRQQss :: 3, 5, 10, 11, 12, 14, 15 DDMMAA :: inutilise IIOO:: port mapped AAuuttooddeetteeccttiioonn :: fonctionne avec toutes les configurations supportees, requiert un BIOS installe FFoorrccaaggee dd''aauuttooddeetteeccttiioonn :: aucun PPrroobblleemmeess dduuss aa ll''aanncciieennnneettee,, rreessoolluuss ppaarr mmiissee aa jjoouurr :: 1. Les versions anciennes ne supportent pas le circuit TMC-18C50, et echoueront avec les nouvelles cartes. 2. Les versions anciennes ne disposent pas des signatures les plus courantes pour l'autodetection. 3. Les versions anterieures a celle de Linux 1.0.9 et 1.1.6 ne supportent pas le nouveau circuit SCSI ou le BIOS 3.4. 44..1100.. NNCCRR55338800 // TT113300BB ggeenneerriiqquuee CCoonnffiigguurraattiioonnss ssuuppppoorrtteeeess eett nnoonn ssuuppppoorrtteeeess :: PPoorrttss:: tous IIRRQQss:: toutes DDMMAA:: inutilise IIOO:: port mapped AAuuttooddeetteeccttiioonn :: aucune FFoorrccaaggee dd''aauuttooddeetteeccttiioonn :: CCoommppiillaattiioonn :: Definir GENERIC_NCR5380_OVERRIDE en tant que tableau de n- uplets avec port, irq, dma, type de carte - par exemple _____________________________________________________________ #define GENERIC_NCR5380_OVERRIDE {{0x330, 5, DMA_NONE, BOARD_NCR5380}} _____________________________________________________________ pour une carte NCR5380 avec un port 330, IRQ 5. ________________________________________________________________ #define GENERIC_NCR5380_OVERRIDE {{0x350, 5, DMA_NONE, BOARD_NCR53C400}} ________________________________________________________________ pour une T130B avec un port 0x350. Les anciennes versions du code eliminent l'entree BOARD_* . Les IRQ symboliques IRQ_NONE and IRQ_AUTO peuvent etre utilisees. LLiiggnnee ddee ccoommmmaannddee dduu nnooyyaauu :: +o ncr5380=port,irq +o ncr5380=port,irq,dma +o ncr53c400=port,irq 255 peut etre utilise pour aucune IRQ, 254 pour autodetection d'IRQ. PPrroobblleemmeess hhaabbiittuueellss :: 1. Utilisation de la carte T130B avec l'ancien pilote NCR5380 generique (release 6 pre-publique) qui ne supporte pas l'option de ligne de commande ncr53c400. Les registres compatibles NCR5380 se situent a l'offset 8 depuis l'adresse de base. Si votre adresse est 0x350, il vous faut donc utiliser ncr53480=0x358,254 sur la ligne de commande du noyau. PPrroobblleemmeess dduuss aa ll''aanncciieennnneettee,, rreessoolluuss ppaarr mmiissee aa jjoouurr :: 1. Le noyau se bloque pendant un acces disque avec une T130B ou d'autres cartes NCR53c400 Les versions de la release 6 pre-publique du pilote de la NCR5380 generique ne supporte pas les interruptions sur ces cartes. Mettre a jour. NNootteess :: le pilote generique ne supporte pas encore le DMA, ni le pseudo- DMA. 44..1111.. NNCCRR5533cc88xxxx ((SSttaannddaarrdd)) CCoonnffiigguurraattiioonnss ssuuppppoorrtteeeess eett nnoonn ssuuppppoorrtteeeess :: AAddrreesssseess ddee bbaassee :: Toutes IIRRQQss :: Toutes CCaannaauuxx DDMMAA :: PCI, sans objet IIOO:: port mapped, bus mastering AAuuttooddeetteeccttiioonn :: requiert un BIOS PCI et en utilise les routines pour rechercher les peripheriques et lire l'espace de configuration Le pilote utilise les valeurs preprogrammees dans certains registres a l'initialisation, un BIOS doit donc etre installe. PPrroobblleemmeess dduuss aa ll''aanncciieennnneettee,, rreessoolluuss ppaarr mmiissee aa jjoouurr :: 1. Certaines versions de Linux avaient un probleme avec le swapping. Voir la section ``'' : Le systeme plante au swapping 2. Les vieilles versions de Linux ne reconnaissaient pas les cartes ...815 et ...825. PPrroobblleemmeess hhaabbiittuueellss :: 1. De nombreux utilisateurs ont rencontre des problemes ou le circuit fonctionnait correctement sous DOS, mais echouait sous Linux avec un timeout sur le test 1 en raison d'une interruption perdue. Il s'agit souvent d'une inadequation entre le jumper materiel de l'IRQ pour un peripherique sur la carte mere et la valeur presente dans la CMOS. Il peut aussi s'agir d'un INTB, INTC ou INTD PCI selectionne sur une carte PCI dans un systeme qui ne supporte que l'INTA PCI. Enfin, PCI devrait utiliser des interruptions declenchees par le niveau (level-sensitive) plutot que par le front du signal (edge-triggered). Verifiez que votre carte est reglee pour etre level-sensitive, et en cas d'echec, essayez edge- triggered car votre systeme peut etre defectueux. Ce probleme est frequent avec certaines cartes-meres Viglen, dont les reglages de cavaliers d'IRQ ne correspondent PAS a ce qui est indique dans la documentation. On m'a dit que l'IRQ 5 est en fait l'IRQ 9, ceci dependant en fait de votre systeme. 2. Des blocages se produisent en utilisant en meme temps un S3928P, X11 et le circuit NCR en meme temps. Il existe des dysfonctionnements dans (au moins) certains circuits S3928P. A eviter. 3. Un message s'affiche au demarrage, disant que l'I/O mapping a ete desactive parce que les bits 0..1 de l'adresse de base indiquent un ``non I/O mapping'' Il s'agit la d'un bug du BIOS sur certaines machines qui se solde par des lectures de dwords des registres de configuration renvoyant les words de 16 bits echanges. 4. Certains systemes ont des problemes si le ``write posting'' PCI ou le tamponnage CPU->PCI sont actives. En cas de probleme, desactivez ces options. 5. Certains systemes avec le logiciel NCR SDMS sur un ROM BIOS embarque et dans le BIOS systeme sont incapable de booter le DOS. La desactivation de l'image en premier lieu devrait regler ce probleme. 6. Certains systemes possedent des BIOS completement defectueux. N'envoyez aucun rapport de bug avant d'etre sur de disposer de la derniere ROM du fournisseur. +o Les cartes Intel P90 requierent la revision 1.00.04.AX1 44..1122.. SSeeaaggaattee SSTT00xx//FFuuttuurree DDoommaaiinn TTMMCC--88xxxx//TTMMCC--99xxxx CCoonnffiigguurraattiioonnss ssuuppppoorrtteeeess eett nnoonn ssuuppppoorrtteeeess :: AAddrreesssseess ddee bbaassee :: 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000 IIRRQQss :: 3, 5 DDMMAA :: inutilise IIOO:: memory mapped AAuuttooddeetteeccttiioonn :: ne recherche que l'adresse, l'IRQ est censee etre 5, demande un BIOS installe. FFoorrccaaggee dd''aauuttooddeetteeccttiioonn :: AA llaa ccoommppiillaattiioonn :: Definir OVERRIDE par l'adresse de base, CONTROLLER par FD ou SEAGATE selon le cas, et IRQ par l'IRQ. lliiggnnee ddee ccoommmmaannddee dduu nnooyyaauu :: st0x=adresse,irq ou tmc8xx=adresse,irq (ne fonctionne que pour .99.13b et au-dela) PPrroobblleemmeess dduuss aa ll''aanncciieennnneettee,, rreessoolluuss ppaarr mmiissee aa jjoouurr :: 1. Les versions anterieures a celle du noyau .99.12 de Linux avaient un probleme de handshaking avec certains peripheriques lents. Voici ce qui se passe quand vous ecrivez des donnees sur le bus a. Ecrire l'octet sur le registre de donnees, qui est asserted au bus b. time_remaining = 12us c. attendre tant que time_remaining > 0 et que REQ n'est pas asserted d. si time_remaining > 0, assert ACK e. attendre tant que time_remaining > 0 et que REQ est asserted f. deassert ACK Le probleme se produit sur des peripheriques lents, qui exe- cutent les commandes pendant la lecture, ou le handshake REQ/ACK prend plus de 12us ; REQ ne passe pas a false alors que c'est ce a quoi s'attend le pilote, qui se met a envoyer plusieurs octets de donnees a chaque impulsion REQ. 2. Sous Linux .99.12, un bug a ete introduit quand j'ai corrige le code d'arbitrage, provoquant ainsi des echecs de selections sur certains systemes. Probleme regle avec .99.13. 44..1122..11.. PPrroobblleemmeess hhaabbiittuueellss 44..1122..11..11.. TTiimmeeoouuttss ddee ccoommmmaannddee Ceux-ci se produisent quand Linux essaye de lire la table de partition ou au cours d'autres acces aux disques. La carte est livree reglee par defaut pour MS-DOS, c'est a dire que les interruptions sont desactivees. Pour les reactiver sur la Seagate, utilisez le cavalier W3 (ST01) ou JP3 (ST02) et connectez les broches F-G pour selectionner l'IRQ 5. 44..1122..11..22.. CCeerrttaaiinnss ppeerriipphheerriiqquueess nnee ffoonnccttiioonnnneenntt ppaass Le pilote ne peut pas gerer certains peripheriques, en particulier les lecteurs de bandes et les CD-ROM bas de gamme. La Seagate relie le handshaking REQ/ACK du bus SCSI aux signaux IO CHANNEL READY et (optionnellement) OWS du bus du PC. Elle ne vous dit malheureusement pas quand le compteur du chien de garde s'arrete, et il n'y a pas moyen d'etre sur que REQ est descendu, et vous pouvez finir par voir un pulse REQ comme plusieurs pulses. La solution implique l'utilisation d'une courte boucle destinee a voir si REQ est descendu, avec un timeout au cas ou on n'attrape pas la transition due a une interruption, etc. Il en resulte une degradation des performances, et il n'est donc pas desirable de l'appliquer a tous les peripheriques SCSI. Elle est selectionnee pour chaque peripherique avec le champ ``borken'' du peripherique SCSI concerne dans le tableau scsi_devices. En cas de problemes, vous devriez essayer d'ajouter votre peripherique a la liste de ceux pour lesquels borken n'est pas remis a zero (actuellement, uniquement les CD-ROM TENEX). 44..1122..11..33.. FFuuttuurree DDoommaaiinn nnee ffoonnccttiioonnnnee ppaass Une carte Future Domain (comme les 840, 841, 880 et 881) ne fonctionne pas. Quelques cartes Future Domain utilisent le mapping de registre de la Seagate, et les bits MSG et CD du registre d'etat sont echanges. Il faut editer seagate.h, echanger les definitions de STAT_MSG et de STAT_CD, et recompiler le noyau avec CONTROLLER defini en SEAGATE, IRQ et OVERRIDE etant correctement specifies. 44..1122..11..44.. HHDDIIOO__RREEQQ oouu HHDDIIOO__GGEETTGGEEOO eecchhoouueenntt Des messages d'erreurs s'affichent pendant le fdisk du disque, indiquant que les ioctl HDIO_REQ ou HDIO_GETGEO ont echoue... Il faut preciser les tetes, les secteurs et les cylindres. Vous pouvez le faire depuis le menu de fonctions supplementaires. Voyez la section ``'' : Partitionnement 44..1122..11..55.. ffddiisskk eecchhoouuee Apres avoir specifie manuellement la geometrie du disque, les tentatives ulterieures de lectures de la table de partition se soldent par des messages d'erreur du type : limite de partition hors d'une limite de cylindre, les limites physiques ne concordent pas (partition boundary not on a cylinder boundary, physical and logical boundaries don't match), etc. Voir la section ``'' : Partitionnement 44..1122..11..66.. AA ffoonnccttiioonnnnee uunn tteemmppss,, mmaaiiss pplluuss mmaaiinntteennaanntt Certains systemes qui fonctionnaient avant la .99.13 echouent avec les nouvelles versions de Linux. Les anciennes versions assignaient les registres CONTROL et DATA dans un ordre different de celui de la documentation, ce qui plantait certains systemes. Les nouvelles versions assignent correctement les registres, mais cela plante d'autres systemes. Le code de seagate.c ressemble actuellement a ceci : ______________________________________________________________________ cli(); DATA = (unsigned char) ((1<> 11002244.. Au moment du partitionnement, un message s'affiche, du type ``cylinder > 1024'', ou vous etes incapables de demarrer a partir d'une partition comprenant un cylindre logique depassant le cylindre 1024. Il s'agit d'une limitation du BIOS. Voir la section ``'' : Geometrie des disques pour une explication. 55..22..22.. IIll vvoouuss eesstt iimmppoossssiibbllee ddee ppaarrttiittiioonnnneerr ````//ddeevv//hhdd** '''' Les /dev/hd* ne sont pas des peripheriques SCSI, utilisez des /dev/sd*. Voir la section ``'': Fichiers peripheriques, et la section ``'', Geometrie des disques pour les noms de peripheriques la procedure corrects. 55..22..33.. IImmppoossssiibbllee dd''eejjeecctteerr llee ssuuppppoorrtt dd''uunn ppeerriipphheerriiqquuee eexxttrraaccttiibbllee.. Linux essaye de bloquer la porte du lecteur quand un support est charge afin d'empecher la corruption du systeme de fichier due a un changement de support inopine. Faites un umount de vos disques avant de les ejecter. 55..22..44.. IImmppoossssiibbllee ddee ddeemmaarrrreerr ppaarr LLIILLOO ddeeppuuiiss uunn ddiissqquuee SSCCSSII Dans certains cas, le pilote SCSI et le BIOS sont en desaccord sur la geometrie correcte a utiliser, et LILO plante apres avoir affiche 'LI' au demarrage et/ou d'autres problemes. La solution consiste a determiner la geometrie du disque utilisee sous DOS, et en faire une entree pour votre disque dans /etc/lilo/disktab. (NdT : cette facon de faire est obsolete, voir /usr/doc/lilo/README). Vous pouvez aussi utiliser l'option de fichier de configuration ``linear''. 55..22..55.. ffddiisskk rreeppoonndd ppaarr You must set heads sectors and cylinders. You can do this from the extra functions menu. et la geometrie du disque est ``oubliee'' quand fdisk est relance. Voir la section ``'' : Partitionnement 55..22..66.. UUnn sseeuull ddiissqquuee eesstt ddeetteeccttee ssuurr uunnee ccaarrttee bbrriiddggee oouu pplluussiieeuurrss ddiissqquueess ssoonntt ccoonnnneecctteess.. Linux ne recherchera pas les LUN apres zero sur les peripheriques SCSI anterieurs a la norme ANSI SCSI revision 1. Si vous voulez que des peripheriques soient reconnus sur d'autres LUN, il vous faudra modifier drivers/scsi/scsi.c:scan_scsis(). 55..22..77.. LLee ssyysstteemmee ssee bbllooqquuee aauu sswwaapp Il semble que ceci ait ete corrige, essayez de passer a la 1.1.38. 55..22..88.. LLeess ddiissqquueess CCoonnnneerr CCFFPP11006600SS ssee ccoorrrroommppeenntt Il s'agit d'un bug du microcode de la lecture en avance et du cache. From Soenke Behrens of Conner tech. support: Ces dernieres semaines, nous avons eu plusieurs appels de clients affirmant avoir rencontre de graves problemes avec les disques SCSI Conner CFP1060 1Go sous le systeme d'exploitation Linux. Les symptomes consistaient en systemes de fichiers corrompus (inodes endommages) indiques par e2fsck a chaque demarrage systeme et d'autres erreurs similaires. Il existe maintenant une correction disponible pour les clients possedant un CFP1060x (revisions de microcode 9WA1.62/1.66/1.68) et Linux. Pour appliquer la mise a jour, vous aurez besoin d'un disque de demarrage DOS et des pilotes ASPI pour acceder au disque dur. La mise a jour charge le nouveau code de queuing et lookahead dans la RAM SCSI non-volatile du disque. Si vous rencontrez des problemes avec un disque dont la revision de microcode est la 9WA1.60, vous devrez contacter le centre de service Conner le plus proche pour proceder a la mise a jour. La revision du microcode se trouve sur l'etiquette du disque, et en dessous, sur l'etiquette de l'un des circuits integres. Si vous pensez pouvoir faire vous-meme la mise a jour, appelez Conner Technical Support Europe et gardez votre revision de microcode a portee de main. On peut joindre Conner Technical Support Europe au +44-1294-315333, et Conner Technical Support aux USA au 1-800-4CONNER. Soenke Behrens European Technical Support 55..33.. FFiicchhiieerrss ppeerriipphheerriiqquueess Les disques SCSI utilisent le numero majeur de peripherique bloc 8, et il n'existe pas de peripheriques ``raw'' a la BSD. 16 numeros mineurs sont alloues a chaque disque SCSI, avec mineur % 16 == 0 etant le disque entier, les mineurs 1 <= (mineur % 16) <= 4 etant les quatre partitions primaires, les mineurs 5 <= (mineur % 16) <= 15 etant les partitions etendues. En raison des contraintes imposees par l'utilisation de Linux d'un dev_t de 16 bits, seuls 8 bits etant alloues au nombre mineur, les nombres mineurs de disques SCSI sont assignes dynamiquement en commencant par le plus bas des HOST/ID/LUN SCSI. Par exemple, une configuration peut ressembler a ceci (avec un adaptateur hote) : Peripherique Cible Lun Disque SCSI Seagate 84 Mo 0 0 /dev/sda SCSI-> SMD bridge disk 0 3 0 /dev/sdb SCSI-> SMD bridge disk 1 3 1 /dev/sdc Wangtek tape 4 0 aucun Maxtor 213 Mo 6 0 /dev/sdd etc. La convention de nommage est /dev/sd{lettre} pour le peripherique disque entier ((mineur % 16) == 0) /dev/sd{lettre}{partition} pour les partitions sur ce peripherique (1 < = (mineur % 16) < = 15) Par exemple Peripherique type majeur mineur /dev/sda bloc 8 0 /dev/sda1 bloc 8 1 /dev/sda2 bloc 8 2 /dev/sda3 bloc 8 3 etc. 55..44.. PPaarrttiittiioonnnneemmeenntt Vous pouvez partitionner vos disques SCSI avec le programme de partitionnement de votre choix, sous DOS, OS/2, Linux ou tout autre systeme d'exploitation qui supporte le systeme standard de partitionnement. La facon correcte de lancer le programme fdisk de Linux consiste a preciser le peripherique sur la ligne de commande. Par exemple, pour partitionner le premier disque SCSI, fdisk /dev/sda Si vous ne precisez pas explicitement le peripherique, le programme de partitionnement peut prendre /dev/hda par defaut, qui n'est pas un disque SCSI. Dans certains cas, fdisk repondra par You must set heads sectors and cylinders. You can do this from the extra functions menu. Command (m for help): et/ou afficher un message comme quoi l'ioctl HDIO_REQ ou HDIO_GETGEO a echoue. Dans ce cas, vous devez specifier manuellement la geometrie du disque comme indique a la sous-section ``'' : Geometrie des disques au moment de lancer fdisk, ainsi que dans /etc/disktab si vous desirez demarrer le noyau depuis ce disque avec LILO. Si vous avez specifie manuellement la geometrie du disque, les tentatives ulterieures de lancement de fdisk donneront le meme message d'erreur. C'est normal, car les PC ne stockent pas les informations concernant la geometrie du disque dans la table de partition. En tout etat de cause, il n'y a _AUCUN PROBLEME_, et vous pourrez acceder aux partitions que vous avez cree sur le disque avec Linux. Le code d'installation de quelques fournisseurs pourra buter dessus, auquel cas vous devrez contacter ledit fournisseur afin d'insister pour qu'il corrige ce code. Dans certains cas, vous obtiendrez un message d'avertissement concernant une partition finissant apres le cylindre 1024. Si vous creez une de ces partitions, vous serez incapable de demarrer les noyaux de Linux depuis cette partition par LILO. Remarquez cependant que cette restriction n'empeche pas la creation d'une partition racine situee partiellement ou entierement au-dessus de cette limite des 1024 cylindres, puisqu'il est possible de creer une petite partition /boot en dessous de la limite ou de demarrer des noyaux depuis des partitions existantes. 55..55.. GGeeoommeettrriiee ddeess ddiissqquueess Sous Linux, chaque disque est vu tel que l'adaptateur SCSI hote le voit : N blocs, numerotes de 0 a N-1, tous sans erreurs, alors que le DOS et le BIOS ont ete concus a une date anterieure aux disques intelligents et favorisent une geometrie arbitraire en tetes / cylindres / secteurs au lieu d'un adressage lineaire. Ceci peut poser probleme au moment de partitionner les disques sous Linux, puisqu'il n'existe aucune maniere portable de connaitre l'idee que se font le DOS et le BIOS de la geometrie du disque. Dans la plupart des cas, un ioctl() avec HDIO_GETGEO peut etre implemente pour renvoyer cette geometrie. Malheureusement, quand le fournisseur (comme Seagate) a choisi une geometrie perverse, non-standard et non- documentee, cette facon de faire devient impossible et la geometrie doit etre specifiee manuellement. Dans ce dernier cas, vous disposez de plusieurs options : 1. Si vous ne desirez pas utiliser le DOS, ni demarrer des noyaux depuis ce disque avec LILO, creez une translation telle que tetes * cylindres * secteurs * 512 < la taille de votre disque en octets (un megaoctet est defini comme 2^20 octets). (NdT : 1 Mo est aussi souvent egal a 10^6 octets pour de nombreux fabriquants de disques dur...) 1 < = tetes < = 256 1 < = cylindres < = 1024 1 < = secteurs < = 63 2. Utilisez la geometrie du disque. Dans certains cas, cela implique une reconfiguration du disque afin que celui-ci se trouve en SCSI ID 0, et la desactivation du deuxieme disque IDE (si vous en avez un). Vous pouvez utiliser soit un programme comme NU, soit le programme suivant : ___________________________________________________________________ begin 664 dparam.com MBAZ``##_B+^!`+N!`(H'0SP@=/D\,'5:@#]X=`6`/UAU4(!_`3AU2H!_`P!U M1(I7`H#J,(#Z`7L6N]T!,=*Y M"@#W\8#",$N(%PG`=>^)VK0)S2'#=7-A9V4Z(&1P87)A;2`P>#@P#0H@("!O L Ces programmes peuvent fonctionner avec certains des lecteurs de CD- ROM non-SCSI si le lecteur implemente les memes ioctl que les pilotes SCSI. 66..33.. FFiicchhiieerrss ddee ppeerriipphheerriiqquueess Les CD-ROM SCSI utilisent le majeur 11. Les mineurs sont alloues dynamiquement (voir section 4 : Disques, sous-section 4.3 : Fichiers de peripheriques pour un exemple), le premier CD-ROM trouve etant le mineur 0, le second le mineur 1, etc. La convention de nommage standard est /dev/sr{chiffre} par exemple /dev/sr0 /dev/sr1 etc. 77.. BBaannddeess Cette section donne des informations specifiques aux lecteurs de bande SCSI. 77..11.. MMaatteerriieell ssuuppppoorrttee eett nnoonn ssuuppppoorrttee Les lecteurs utilisant a la fois des longueurs de blocs fixes et variables, plus petites que la longueur du tampon du pilote (32 Ko dans les sources de distribution), sont supportes. Les parametres (taille de blocs, tamponnage, densite) sont fixes par des ioctl (generalement avec le programme mt), et restent actifs apres que le peripherique ait ete ferme et reouvert. Pratiquement tous les lecteurs devraient fonctionner, comme : +o Les Archive Viper QIC, y compris les modeles 150M and 525M +o Les Exabyte 8mm +o Les Wangtek 5150S +o Les DAT Wangdat 77..22.. PPrroobblleemmeess hhaabbiittuueellss 77..22..11.. LLeecctteeuurr ddee bbaannddee nnoonn rreeccoonnnnuu aauu ddeemmaarrrraaggee.. Essayez de demarrer avec une bande dans le lecteur. 77..22..22.. DDeess bbaannddeess ccoommpprreennaanntt pplluussiieeuurrss ffiicchhiieerrss nnee ppeeuuvveenntt eettrree ccoorr-- rreecctteemmeenntt lluueess.. En lisant une bande comprenant plusieurs fichiers, le premier tar reussit, un second echoue silencieusement, et un reessai de ce second tar reussit. Le programmes de niveau utilisateur, comme tar, ne comprennent pas les marques de fichier. Le premier tar lit jusqu'au bout du fichier. Le second essaie de lire la marque de fichier, n'obtient rien, mais la bande continue jusqu'a la fin de la marque de fichier. Le troisieme tar reussit puisque la bande se trouve au debut du fichier suivant. Utilisez mt sur le peripherique no-rewind (sans-rembobinage) pour avancer jusqu'au fichier suivant. 77..22..33.. LLaa ddeeccoommpprreessssiioonn eecchhoouuee.. La decompression de programmes ne peut gerer les zeros remplissant le dernier bloc du fichier. Il vous faut enrober vos fichiers compresses dans un fichier .tar afin d'empecher les warnings et les erreurs ; par exemple, au lieu de faire tar cfvz /dev/nrst0 file.1 file.2 ... faites tar cfvz tmp.tar.z file.1 file.2 ... tar cf /dev/nrst0 tmp.tar.z 77..22..44.. PPrroobblleemmeess dd''eecchhaannggee ddee bbaannddeess eennttrree ssyysstteemmeess.. Vous ne pouvez pas lire une bande fabriquee avec un autre systeme d'exploitation ou un autre systeme d'exploitation ne peut lire une bande ecrite sous Linux. Des systemes differents utilisent frequemment des tailles de blocs differentes. Sur un peripherique bande utilisant une taille de blocs fixe, vous obtiendrez des erreurs au moment de lire des blocs ecrits avec une taille de blocs differente. Pour lire ces bandes, vous devez fixer la taille de bloc du lecteur de bande pour qu'elle corresponde a la taille utilisee au moment ou la bande a ete ecrite, ou a taille variable. NNoottee : Il s'agit ici de la taille de bloc materiel, et non du facteur de blocage utilise avec tar, dump, etc. Il est possible de le faire avec la commande mt : mt setblk ou mt setblk 0 pour avoir un support de taille de bloc variable. Remarquez que ces options de mt ne sont PAS supportees avec la version GNU de mt qui est incluse dans certaines distributions Linux. Vous devez donc utiliser la commande mt SCSI de Linux derivee de la version BSD. Le source devrait etre disponible depuis 77..22..55.. MMeessssaaggee dd''eerrrreeuurr ````NNoo ssuucchh ddeevviiccee'''' Toute tentative d'acces a la bande se traduit par un ``No such device'' ou un mesage d'erreur similaire. Verifiez le type de votre peripherique bande ; il ddooiitt etre un peripherique de type caractere dont les nombres majeur et mineur correspondent a ceux qui ont ete precises en sous-section C, Fichiers de peripheriques. 77..22..66.. LLaa bbaannddee lliitt ccoorrrreecctteemmeenntt aa uunnee cceerrttaaiinnee ddeennssiittee,, ll''eeccrriittuurree eecchhoouuee De nombreux lecteurs de bandes supportent la lecture a des densite faibles pour des raisons de compatibilite, mais ne peuvent ecrire dans ces conditions. C'est exactement le cas avec les lecteurs QIC, qui lisent les vieilles bandes de 60 Mo mais n'ecrivent qu'aux formats 120, 150, 250 et 525 Mo. 77..33.. FFiicchhiieerrss ddee ppeerriipphheerriiqquueess Les bandes SCSI utilisent le fichier de peripherique caractere majeur 9. En raison des contraintes imposees par l'utilisation de Linux d'un dev_t de 16 bits dont seuls 8 bits sont alloues au nombre mineur, les nombres mineurs de bande SCSI sont assignes dynamiquement en commencant par le plus petit des HOST/ID/LUN SCSI. Les peripheriques avec rembobinage sont numerotes a partir de zero ; la premiere bande SCSI, /dev/rst0 etant c 9 0, la seconde, /dev/rst1 c 9 1, etc. Les peripheriques sans rembobinage ont le huitieme bit positionne dans le nombre mineur, c'est a dire que /dev/nrst0 est c 9 128. La convention de nommage standard est _/_d_e_v_/_n_r_s_t_{_c_h_i_f_f_r_e_} pour les peripheriques sans rembobinage, et _/_d_e_v_/_r_s_t_{_c_h_i_f_f_r_e_} pour ceux avec rembobinage. 88.. GGeenneerriiqquuee Cette section fournit des informations specifiques au pilote SCSI generique. 88..11.. MMaatteerriieell ssuuppppoorrttee Le pilote de peripherique generique fournit une interface permettant d'envoyer des comandes SCSI a tout peripherique SCSI : disques, bandes, CD-ROM, robots de chargement de support, etc. Tout ce qui est electriquement compatible avec votre carte SCSI devrait fonctionner. 88..22.. PPrroobblleemmeess hhaabbiittuueellss Aucun :-). 88..33.. FFiicchhiieerrss ddee ppeerriipphheerriiqquueess Les peripheriques generiques SCSI utilisent un majeur caractere 21. En raison des contraintes imposees par l'utilisation de Linux d'un dev_t de 16 bits, les nombres mineurs sont assignes dynamiquement a partir de zero, un par peripherique, ou : /dev/sg0 correspond a la plus basse des cibles/lun numeriques sur la premiere carte SCSI. 99.. GGuuiiddee dd''aacchhaatt Une question frequemment posee est : ``Linux supporte un grand nombre de cartes differentes ; quel adaptateur hote SCSI dois-je acheter'' ? La reponse depend des performances que vous en attendez, de la carte- mere, et des peripheriques SCSI que vous projetez de raccorder a votre machine. 99..11.. TTyyppeess ddee ttrraannssffeerrtt Le facteur de performance le plus important (en terme de vitesse et de reponse interactive pendant les E/S SCSI) est le type de transfert utilise. 99..11..11.. HHaannddsshhaakkee aa ssccrruuttaattiioonn sseeuullee ((ppuurree ppoolllleedd hhaannddsshhaakkiinngg)).. Une carte d'E/S pure polled utilisera la CPU pour la totalite de la gestion SCSI, y compris REQ/ACK. Meme une CPU rapide sera moins performante pour gerer la sequence REQ/ACK qu'une simple machine a etats finis, et donnera des taux de transferts d'environ 150 Ko/s sur une machine rapide, et peut-etre 60 Ko/s sur une machine lente (a travers le systeme de fichiers). Le pilote devra egalement rester a l'interieur d'une boucle aussi longtemps que le bus SCSI sera occupe, occupant ainsi pres de 100% d'utilisation de la CPU et provoquant une tres mauvaise reactivite pendant les E/S SCSI. Les CD-ROM lents qui ne font pas de deconnexion/reconnexion tuent litteralement toute interactivite avec ces cartes. DDeeccoonnsseeiillllee.. 99..11..22.. HHaannddsshhaakkee aa ssccrruuttaattiioonn ((IInntteerrlloocckkeedd PPoolllleedd hhaannddsshhaakkiinngg)) Le cartes qui utilisent des E/S interlocked polled sont essentiellement similaires aux cartes pure polled, mais les signaux REQ/ACK SCSI sont transmis au bus du PC. Hormis ces signaux, toute la gestion SCSI reste devolue a la CPU. Des taux de transfert de 500-600 Ko/s par le systeme de fichier sont possibles sur ces cartes. De meme qu'avec les cartes a scrutation seule, le pilote doit rester a l'interieur d'une boucle serree tant que le bus SCSI est occupe, l'occupation de la CPU dependant ainsi des taux de transfert des peripheriques et de la deconnexion/reconnexion. Elle peut varier entre 25% pour les CD simple vitesse qui gerent correctement la deconnexion/reconnexion, et 100% pour les lecteurs plus rapides ou les CD-ROM defectueux qui ne peuvent pas se deconnecter/reconnecter. Sur mon 486-66, avec une T128, j'utilise 90% de mon temps CPU pour arriver a un taux de transfert de 547 Ko/s sur un disque capable de 1080 Ko/s en crete. Quelquefois acceptable pour les unites de bandes et les CD-ROM lents quand le prix est un critere essentiel. 99..11..33.. SSccrruuttaattiioonn ppaarr FFIIFFOO ((FFIIFFOO ppoolllleedd)) Les cartes qui utilisent les E/S a scrutation par FIFO (First In, First Out) mettent un petit tampon (typiquement 8 Ko) entre la CPU et le bus SCSI, et implementent souvent un certain niveau d'intelligence. En consequence, la CPU n'est bloquee que le temps d'envoyer les donnees a vitesse maximale vers la FIFO et de gerer le reste de la gestion des interruptions pour les conditions de FIFO vide, deconnexion/reconnexion, etc. Le taux de transfert devrait etre suffisant pour gerer la plupart des peripheriques SCSI, et on a pu mesurer jusqu'a 4 Mo/s en utilisant des commandes SCSI brutes pour lire directement des blocs de 64 Ko sur un Seagate Barcuda avec une Adaptec 1520. L'utilisation de la CPU depend du taux de transfert des peripheriques, les plus rapides generant plus d'interruptions ce qui demande plus de temps CPU. Bien que ce dernier puisse atteindre 75% avec des peripheriques rapides, le systeme reste en general utilisable. Ces cartes fournissent d'excellentes performances en interactif avec des peripheriques defectueux qui ne se deconnectent/reconnectent pas (comme les CD-ROM de bas de gamme). Recommande pour les utilisateurs aux finances limitees. 99..11..44.. DDMMAA eessccllaavvee ((SSllaavvee DDMMAA)) Les pilotes de cartes qui utilisent le DMA esclave programment le controleur DMA du PC pour un canal quand ils font un transfert de donnees, puis rendent le controle au CPU. Les taux de transfert de pointe sont en general handicapes par le mediocre controleur DMA des PC, une carte 8-bits ayant meme eu des problemes a depasser 140-150 Ko/s avec une certaine carte-mere. L'utilisation de la CPU est tres raisonnable, legerement moindre que ce que l'on connait avec des cartes d'E/S a scrutation par FIFO. Ces cartes sont tres tolerantes avec les peripheriques defectueux qui ne se deconnectent/reconnectent pas, typiquement les CD-ROM bon marche. Acceptable pour les bandes, les lecteurs de CD-ROM lents, etc. 99..11..55.. BBuuss--mmaasstteerriinngg DDMMAA Ces cartes sont intelligentes. Les pilotes de ces cartes mettent une commande SCSI, la cible et la LUN de destination, et l'endroit ou les donnees doivent arriver dans une structure, et disent a la carte ``Hep, j'ai une commande pour toi''. Le pilote rend la main aux programmes en train de tourner, et finalement la carte SCSI revient et dit que c'est fait. L'intelligence se situant dans le logiciel embarque et non au niveau du pilote, ce dernier supporte en general plus de caracteristiques : transferts synchrones, tagged queuing, etc. Avec les patches de clustered read/write (lectures/ecritures regroupees), le taux de transfert de pointe en passant par le systeme de fichiers approche les 100% en ecriture et 75 % en lecture. L'utilisation de la CPU est minimale, independante de la charge d'E/S, avec une mesure de 5% pendant l'acces a un CD-ROM double vitesse sur une Adaptec 1540 et de 20% pendant un transfert a 1,2 Mo/s sur un disque SCSI. Recommande dans tous les cas ou l'argent n'est pas un facteur crucial, ou la carte-mere n'est pas defectueuse (certaines cartes-meres ne fonctionnent pas avec les bus-masters), et des applications ou le temps d'obtention des donnees est plus important que le debit (le temps de traitement du au bus master peut atteindre 3-4 ms par commande). 99..22.. SSccaatttteerr//ggaatthheerr La deuxieme caracteristique la plus importante en matiere de performance est le support du scatter/gather. Le temps d'execution d'une commande SCSI est significatif : il se compte en millisecondes. Les bus master intelligentes comme l'Adaptec 1540 peuvent prendre 3-4 ms pour traiter une commande SCSI avant meme que la cible soit atteinte. Sur les peripheriques non bufferises, ce temps de traitement est toujours suffisant pour laisser passer une revolution, donnant ainsi un taux de transfert de 60 Ko/s (avec un disque a 3600 t/m) par bloc transfere a la fois. Afin de maximiser les performances, il faut donc minimiser le nombre de commandes SCSI necessaires au transfert d'une certaine quantite de donnees en en transferant plus par commande. En raison de la conception du buffer cache de Linux, des blocs contigus sur disque ne le sont pas en memoire. Les patches read/write en cluster permettent a 4 Ko de rester contigus. La quantite maximale de donnees qui peuvent etre transferes par commande SCSI sera donc 1 Ko * nombre de regions de scatter/gather sans patches read/write en cluster, 4 Ko * regions avec. Nous avons experimentalement determine que 64 Ko etait une quantite raisonnable de donnees transferables par une seule commande, ce qui signifie 64 tampons de scatter/gather avec les patches de read/writes en cluster, et 16 sans. Le passage de 16 Ko a 64 Ko par transfert nous a permis de constater une amelioration allant de 50% pour l'ecriture et la lecture a travers le systeme de fichiers, a 75% et 100% respectivement en utilisant une carte Adaptec 1540. 99..33.. MMaaiillbbooxx oouu ppaass ?? Un grand nombre d'adaptateurs hotes intelligents, comme l'Ultrastor, la WD7000, les Adaptec 1540 et 1740, et la Buslogic ont utilise une interface similaire a une boite aux lettres, ou les commandes SCSI sont executees en mettant une structure de commande SCSI a un endroit precis (la boite aux lettres), en avertissant la carte (par exemple par un flag de courrier envoye), et en attendant la reponse (arrivee du courrier). Avec cette interface de programmation de haut niveau, les utilisateurs peuvent souvent mettre leur carte a jour avec une nouvelle revision pour beneficier de nouvelles caracteristiques, comme le SCSI FAST + WIDE, sans changer de logiciel. Les pilotes tendent vers plus de simplicite, peuvent implementer un jeu de caracteristiques plus etendues et sont plus stables. D'autres adaptateurs intelligents, comme la famille NCR53c7/8xx et les circuits Adaptec AIC-7770/7870 (y compris les cartes 274x, 284x et 2940), utilisent une interface de programmation de haut niveau. Il se peut que cette option se revele plus rapide car le traitement peut etre deplace du processeur de la carte vers une CPU rapide, permettre une meilleur flexibilite dans l'implementation de certaines caracteristiques (comme le mode cible pour des peripheriques arbitraires), et ces cartes peuvent etres fabriquees pour moins cher (ce dont les consommateurs beneficient dans certains cas, comme les NCR). Par contre, les pilotes tendent a devenir plus complexes, et doivent etre modifies pour profiter des caracteristiques specifiques aux nouveaux circuits. 99..44.. TTyyppeess ddee bbuuss Il faut ensuite prendre en consideration le type de bus et faire un choix entre ISA, EISA, VESA et PCI. Les publicites vantent frequemment des bandes passantes ridicules, fondees sur des pointes de taux de transferts, et sur la fiction, ce qui n'est pas tres utile. J'ai prefere mettre en avant des chiffres realistes provenant de performances mesurees avec divers peripheriques. 99..44..11.. IISSAA La bande passante depasse legerement 5 Mo/s pour les peripheriques a bus-mastering. Avec un bus ISA, l'arbitrage entre bus masters est realise par le venerable controleur 8237 qui donne des temps d'acquisition de bus assez eleves. Les pilotes d'interruptions sont a trois etats et edge-triggered (declenches par le front du signal), ce qui veut dire que les interruptions ne peuvent etre partagees. L'ISA est en general non bufferise, et le bus hote/memoire est donc bloque chaque fois qu'un transfert se produit. Aucun mecanisme n'est fourni permettant d'eviter l'engorgement du bus. 99..44..22.. VVEESSAA La bande passante est d'environ 30 Mo/s. Certains systemes VESA depassent les caracteristiques du bus, se rendant ainsi incompatibles avec certaines cartes, et ce fait est donc a prendre en compte avant d'acquerir du materiel sans garantie. Le VESA n'est en general pas bufferise, et le bus hote/memoire est donc bloque chaque fois qu'un transfert se produit. 99..44..33.. EEIISSAA La bande passante tourne autour de 30 Mo/s, les operations de bus- mastering etant en general plus rapides que sur VESA. Certains systemes EISA peuvent bufferiser le bus, permettant des transferts en mode rafale et minimisant l'impact sur les performances de la CPU. Les pilotes d'interruption peuvent etre soit trois-etats edge-triggered, soit actives par niveau, a collecteur ouvert, permettant ainsi le partage d'interruptions avec les pilotes qui le supportent. L'EISA allouant un espace d'adressage separe pour chaque carte, il est en general moins sensible aux conflits de ressources que l'ISA ou le VESA. 99..44..44.. PPCCII La bande passante tourne autour de 60 Mo/s. La plupart des systemes PCI implementent des tampons de write posting sur le bridge hote, permettant ainsi des vitesses differentes des deux cotes et donc un impact minimal sur les performances bus/CPU. Les drivers d'interruptions PCI sont a collecteur ouvert et actives par niveau, autorisant ainsi le partage d'interruptions avec les pilotes qui le supportent. Des mecanismes empechent l'engorgement du bus, et empechent egalement tant le maitre que l'esclave de suspendre une operation de bus-mastering. PCI fournissant un mecanisme de plug-and-play avec des registres de configuration modifiables sur chaque carte, dans un espace d'adressage separe, un systeme PCI correctement implemente est donc plug-and-play. PCI est extremement strict quant a la longueur de trace, la charge, les specification mecaniques, etc, et devrait devenir plus fiable que VESA ou ISA. Pour resumer, PCI est le meilleur bus PC, bien qu'il ait des inconvenients. Il n'est pas encore parvenu a maturite, et bien que la plupart des fabricants aient aplani les difficultes, il reste toujours des stocks de vieux materiel PCI bogue et de BIOS defectueux. C'est pourquoi je recommande _fermement_ une garantie de retour sur le materiel. Meme si les dernieres cartes-meres sont vraiment plug-and- play, celles qui sont plus anciennes peuvent demander quelques reglages par cavaliers et par logiciel (par exemple pour les assignations d'interruptions) de la part de l'utilisateur. Et, bien que la plupart des utilisateurs aient resolu leurs problemes avec PCI, cela a en general pris du temps et c'est pour cette raison que je ne peux pas recommander l'achat d'un systeme PCI s'il est crucial de disposer rapidement d'un systeme operationnel. Pour la plupart des peripheriques SCSI lents, comme les disques d'un headrate de 2 Mo/s ou moins, les CD-ROM ou les bandes, il n'y aura que peu de differences de performances entre les differents bus PC. En ce qui concerne les disques rapides actuels (les unites de plusieurs giga-octets ont en general une headrate de 4-5 Mo/s, et au moins une compagnie dispose d'une unite a tetes paralleles en alpha-test avec un headrate de 14 Mo/s), les performances se trouveront nettement ameliorees par des controleurs sur des bus rapides, un utilisateur notant une amelioration d'un facteur de 2,5X en passant d'une carte Adaptec 1542 ISA a une NCR53c810 PCI. A l'exception de situations ou le write-posting PCI ou un mecanisme de bufferisation similaire est employe, tous les bus seront inaccessibles quand l'un d'entre eux sera occupe. Donc, bien que la saturation du bus n'interfere pas avec la performance SCSI, elle aura un impact negatif sur la performance interactive. Par exemple, avec un disque SCSI a 4 Mo/s sur un bus ISA, vous aurez perdu 80% de votre bande passante, et vous ne pourriez transferer des images qu'a 6 Mo/s sur un systeme ISA/VESA ; et un impact similaire serait ressenti dans la plupart des cas sur les processus en arriere-plan. Il faut noter que le fait d'avoir plus de 16 Mo de memoire n'empeche pas d'utiliser une carte SCSI bus-mastering ISA. Au contraire de nombre de systemes d'exploitation mal concus, Linux utilise un double tampon pour la DMA avec un controleur ISA vers une zone de memoire situee au-dessus de 16 Mo. Les performances au cours de ces transferts ne diminuent que de 1,5%, ce qui est tres peu sensible. Enfin, les differences de prix entre les bus masters fournies avec diverses interfaces sont souvent minimales. A la suite de tout ceci, certains bus auront votre preference. SSttaabbiilliittee,, rraappiiddiittee dd''iinnssttaallllaattiioonn eett mmaauuvvaaiisseess ggaarraannttiieess ddee rreettoouurr EISA ISA VESA PCI PPeerrffoorrmmaanncceess eett iinnssttaallllaattiioonnss ppeerrssoonnnneelllleess PCI EISA VESA ISA Comme je l'ai deja souligne, l'impact sur les performances sera essentiellement determine par le choix entre bus mastering et les autres modes de transfert, et le type de bus sera bien moins important au moment d'acquerir un controleur SCSI. 99..55.. PPlluussiieeuurrss ppeerriipphheerriiqquueess Si vous mettez plusieurs peripheriques sur votre bus SCSI, vous voudrez peut-etre que l'adaptateur/pilote que vous envisagez supporte plus d'une commande en suspens (outstanding command) a la fois. Ce point est tres important si vous melangez des peripheriques de differentes vitesses, comme un lecteur de bande et un disque dur. Si le pilote Linux ne supporte qu'une commande en attente a la fois, l'acces au disque peut etre bloque pendant qu'une bande est en train de se rembobiner, par exemple. Avec deux disques durs, le probleme passera inapercu, bien que la vitesse totale de transfert approche plus la moyenne que la somme des vitesses individuelles. 99..66.. SSCCSSII--II,, SSCCSSII--IIII,, SSCCSSII--IIIIII FFAASSTT eett WWIIDDEE,, eettcc.. Au cours du temps, SCSI a evolue, de nouvelles revisions du standard offrant de meilleures vitesses de transfert, de meilleures methodes pour accelerer la capacite de transfert, des commandes standardisees pour de nouveaux peripheriques et de nouvelles commandes pour les peripheriques deja supportes. Les niveaux de revision ne signifient pas grand-chose par eux-meme. A part des differences mineures comme SCSI-II ne permettant pas l'option ``single initiator'' de SCSI-I, la norme SCSI est compatible avec les versions anterieures, les nouvelles caracteristiques etant presentees an tant qu'options. La decision d'appeler un adaptateur SCSI, SCSI-II ou SCSI-III releve presque entierement du marketing. 99..77.. CCoommppaarraaiissoonn ddeess ccaarraacctteerriissttiiqquueess ddeess ppiillootteess Comparaison des caracteristiques des pilotes (les circuits supportes sont listes entre parentheses) Pilote Mode de transfert Commandes simultanees SG >1 total/LUN Limite aha152x FIFO(8k) Polled 1s/1s 255s (AIC6260, AIC6360) aha1542 Busmastering DMA 8s/1s 16 O aha1740 Busmastering DMA 32s 16 aha274x Busmastering DMA 4s/1s 255s O buslogic Busmastering DMA O 64s, 8196h eata dma Busmastering DMA 64s/16s 64s O fdomain FIFO(8k) Polled 1s 64s TMC1800 sauf TMC18c30 TMC18c30, avec 2k FIFO TMC18c50, TMC36c70 in2000* FIFO(2k) Polled 1s 255s g NCR5380 Pure Polled 16s/2s 255s O (NCR5380, NCR53c80, NCR5381, NCR53c400) gsi8* Slave DMA 16s/2s 255s (NCR5380) PAS16 Pure Polled ou 16s/2s 255s O (NCR5380) Interlocked Polled (ne marche pas sur certains systemes) seagate Interlocked Polled 1s 255s N wd7000 Busmastering DMA 8s 1 t128 Interlocked Polled 16s 255s O (NCR5380) ultrastor Busmastering DMA O 53c7,8xx Busmastering DMA 1s/1s 255s O (NCR53c810) Notes : 1. les pilotes marques d'un '*' ne sont pas inclus dans le noyau de distribution, et les images binaires de demarrage peuvent ne pas etre disponibles. 2. les nombres suffixes par un 's' sont des limites arbitraires fixees par logiciel et peuvent etre changes par une definition au moment de la compilation. 3. Les limites materielles sont indiquees par un suffixe 'h', et peuvent differer des limites logicielles actuellement imposees par les pilotes Linux. 4. les nombres non suffixes peuvent indiquer des limites soit materielles, soit logicielles. 99..88.. CCoommppaarraaiissoonn ddeess ccaarrtteess Carte Pilote Bus Prix ($) Notes Adaptec AIC-6260 aha152x ISA circuit, pas carte Adaptec AIC-6360 aha152x VLB circuit, pas carte (Utilise dans la plupart des cartes VESA/ISA multi-IO avec SCSI, les cartes-meres Zenon) Adaptec 1520 aha152x ISA Adaptec 1522 aha152x ISA $80 1520 avec FDC Adaptec 1510 aha152x ISA 1520 sans ROM, pas d'autodetection. Adaptec 1540C aha1542 ISA Adaptec 1542C aha1542 ISA 1540C avec FDC Adaptec 1540CF aha1542 ISA FAST SCSI-II Adaptec 1542CF aha1542 ISA $200 1540CF avec FDC Adaptec 1740 aha1740 EISA n'est plus produite Adaptec 1742 aha1740 EISA idem, 1740 avec FDC Adaptec 2740 aha274x EISA Adaptec 2742 aha274x EISA avec FDC Adaptec 2840 aha274x VLB Adaptec 2842 aha274x VLB avec FDC Always IN2000 in2000 ISA Buslogic 445S aha1542, VLB $250 FAST SCSI-II, terminaison buslogic active, avec FDC Buslogic 747S aha1542 EISA FAST SCSI-II, terminaison buslogic active, avec FDC Buslogic 946S buslogic PCI FAST SCSI-II, terminaison active. DPT PM2011 eata dma ISA FAST SCSI-II DPT PM2012A eata dma EISA FAST SCSI-II DPT PM2012B eata dma EISA FAST SCSI-II DPT PM2021 eata dma ISA $245 FAST SCSI-II DPT PM2022 eata dma EISA $449 FAST SCSI-II terminaison active DPT PM2024 eata dma PCI $395 FAST SCSI-II terminaison active DPT PM2122 eata dma EISA $595 FAST SCSI-II terminaison active DPT PM2124 eata dma PCI $595 FAST SCSI-II terminaison active DPT PM2322 eata dma EISA FAST SCSI-II terminaison active DPT PM3021 eata dma ISA $1595 FAST SCSI-II multichannel raid/simm sockets terminaison active DPT PM3122 eata dma EISA $1795 FAST SCSI-II multichannel/raid terminaison active DPT PM3222 eata dma EISA $1795 FAST SCSI-II multichannel raid/simm sockets terminaison active DPT PM3224 eata dma PCI $1995 FAST SCSI-II multichannel raid/simm sockets terminaison active DPT DTC 3 aha1542 EISA Devrait marcher, mais en raison de restrictions concernant la diffusion de la documentation, le materiel DTC n'est pas supporte DTC 3292 aha1542 EISA 3290 avec FDC DTC 3292 aha1542 EISA 3290 avec FDC Future Domain 1680 fdomain ISA FDC Future Domain 3260 fdomain PCI NCR53c810 (cartes 53c7,8xx PCI $70 circuit, pas carte. de FIC, Chaintech, la carte ne comprend pas Nextor, Gigabyte, etc. de BIOS, bien que beaucoup CM avec ce circuit par de cartes meres non AMI, ASUS, J-Bond, equipees de NCR aient le etc. Courant dans BIOS SDMS. les systemes DEC PCI) NCR53c815 ( 53c7,8xx PCI $115 NCR53c810 plus Intel PCISCSIKIT, bios NCR8150S, etc) NCR53c825 53c7,8xx PCI Variante WIDE de NCR53c815. Notez que le pilote Linux actuel ne tient pas compte des transferts WIDE. Pro Audio Spectrum 16 pas16 ISA Carte son avec SCSI Seagate ST01 seagate ISA $20 IOS ne marche qu'avec certaines unites Seagate ST02 seagate ISA $40 ST01 avec FDC Sound Blaster 16 SCSI aha152x ISA Carte son avec SCSI Western Digital 7000 wd7000 ISA avec FDC Trantor T128 t128 ISA Trantor T128F t128 ISA T128 avec FDC et support des IRQ hautes Trantor T130B g NCR5380 ISA Ultrastor 14F ultrastor ISA avec FDC Ultrastor 24F ultrastor EISA avec FDC Ultrastor 34F ultrastor VLB Notes: 1. Trantor a recemment ete achete par Adaptec, et certains produits sont vendus sous ce dernier nom. 2. Ultrastor s'est place sous le regime du Chapitre 11 de la loi US sur les faillites, ce qui fait que le support technique est actuellement inexistant. 3. Diverses cartes Buslogic autres que les 545S, 445S, 747S et 946S _devraient_ fonctionner, bien qu'a ma connaissance aucune n'ait ete testee. 4. Le prix de $70 pour les cartes NCR53c810 n'est pas une faute de frappe ; il comprend l'ensemble de pilotes ASPI/CAM pour DOS, OS/2 et Windows (acces 32 bits), et d'autres pilotes sont disponibles en telechargement gratuit. Si vous ne pouvez pas en trouver une a ce prix, essayez Technoland au 1-800-292-4500 ou 1-408-992-0888, InteliSys au (703)385-0347, Superpower 1 (800) 736-0007, SW (swt@netcom.com) 214-907-0871 fax 214-907-9339 Insight Electronics au 1-609-985-5556 vend des cartes NCR8150S '815 pour $115 si vous n'avez pas de BIOS NCR SDMS dans votre ROM principale. 5. Les circuits SCSI Adaptec recents presentent une sensibilite inhabituelle aux problemes de cablage et de terminaison. Je ne peux donc pas recommander les revisions 154x C et CF, ni la serie 2xxx. Remarquez que les problemes de fiabilite ne s'appliquent pas aux anciennes revisions 154x B, 174x A, ni, a ma connaissance, aux cartes basees sur les AIC-6360/AIC-6260. De meme, la qualite de leur support technique s'est notablement degrade, de longs delais devenant de plus en plus courants et leurs employes paraissent ignorants (suggerant certains reglements de non-diffusion concernant certains documents alors qu'il n'y en avait aucun) et hostiles (par exemple, refusant de passer la main a quelqu'un d'autre quand ils ne pouvaient pas repondre). Si les utilisateurs desirent se faire tenir par la main, ou exprimer une opinion politique, ils devraient prendre ce point en consideration. Sinon, les Adaptec 1510 sont meilleures que les autres cartes ISA dans la meme gamme de prix, et il est possible de faire d'excellentes affaires avec les cartes 154x B et 1742 d'occasion et provenants de surplus, ce qui compense, a mon avis, les problemes de support. 6. Tous les prix donnes pour les controleurs DPT sont officiels. Les prix couramment pratiques devraient etre considerablement inferieurs. Toutes les cartes peuvent etre mises a niveau avec du cache et des modules raid, la plupart etant egalement disponibles en version Wide et/ou Differential. 99..99.. RReessuummee La plupart des utilisateurs ISA, EISA et VESA seront probablement satisfaits par une carte Buslogic, en raison de ses performances, de caracteristiques comme la terminaison active, et de sa compatibilite avec l'Adaptec 1540. Il existe un grand nombre de modeles disponibles avec des interfaces pour bus EISA, ISA, PCI et VESA, en single ended et differentiel, et en largeurs de bus SCSI de 8 et 16 bits. Ceux qui possedent des systemes PCI devraient songer aux cartes a base de NCR53c810. Ce sont des controleurs SCSI bus-mastering, disponibles pour $70 a l'unite (moins cher que l'Adaptec 1520), et encore moins cher pour de plus grandes quantites (j'ai vu $62 pour 20 unites). Non contentes d'etre les cartes SCSI les moins cheres, les cartes NCR sont aussi plus rapides que les Adaptec 2940 et Buslogic BT-946, et font preuve d'excellentes performances sous Linux (jusqu'a 4 Mo/s a travers le systeme de fichiers) en depit d'options d'optimisation desactivees dans le pilote actuel. Les inconvenients de ces cartes par rapport aux Buslogic sont qu'elles ne sont pas compatibles Adaptec 1540, n'ont pas de terminaison active, et a ma connaissance ne sont supportees que par DOS+Windows, OS/2, Windows NT, SCO, NeXTStep et FreeBSD. Le pilote Linux semble actuellement assez stable sur la plupart des systemes (nous avons deplace plusieurs giga-octets de donnees vers des peripheriques a base de NCR sans probleme), etonnamment rapide (jusqu'a 4 Mo/s a travers le systeme de fichier) et il s'enrichira de nouvelles fonctionnalites dans le futur. Malheureusement, l'implementation actuelle du pilote Linux ne supporte pas la deconnexion/reconnexion, ce qui fait qu'il vous sera impossible d'acceder aux disques SCSI pendant le rembobinage ou la retension des bandes SCSI. Ceux qui desirent une carte SCSI non-PCI pas trop chere trouveront probablement leur bonheur avec une Adaptec 154x B ou 174x A d'occasion ou provenant de surplus, ou avec un quelconque clone Adaptec 1520 (environ $80) s'ils desirent du materiel neuf. Ces cartes offrent un taux de transfert et des performances en interactif corrects pour un prix modeste.