BOOTPARAM(7)

NOM
bootparam - Introduction aux parametres de demarrage du noyau Linux.

DESCRIPTION
Le noyau Linux accepte un certain nombre d'options en ligne de commande, aussi appelees parametres de demarrage au moment ou il est charge. En general ceci est utilise principalement pour fournir au noyau des informations sur les parametres materiels, qu'il serait incapable de determiner seul, ou pour eviter/remplacer les valeurs qu'il detecterait normalement. Quand le noyau est demarre directement par le BIOS (par exemple depuis une disquette sur laquelle le noyau a ete copie en utilisant `cp zImage /dev/fd0'), il n'y a pas de possibilites de preciser des parametres. Aussi, afin de tirer parti de ces possibilites, vous devez utiliser un chargeur capable de transmettre les options, comme Lilo ou loadlin. Pour un petit nombre de parametres, on peut egalement modifier l'image du noyau elle-meme, en utilisant rdev(8). Le programme LILO (LInux LOader) ecrit par Werner Almesberger est le plus largement utilise. Il permet de demarrer des noyaux divers, et de memoriser la configuration dans un fichier de texte.(Voir lilo(8) et lilo.conf(5).) LILO peut demarrer DOS, OS/2 Linux, FreeBSD, etc..., et est assez souple d'emploi. L'autre chargeur classique de Linux est `LoadLin', un programme DOS, qui peut demarrer un noyau Linux depuis une session DOS (avec des arguments de demarrage) a condition que certaines ressources soient disponibles. Ceci est tres utile pour les personnes desireuses de lancer Linux depuis le DOS. LoadLin est egalement particulierement utile s'il y a des peripheriques qui necessitent un driver DOS pour placer le materiel dans un etat donne. Un exemple classique est celui des cartes sonores `Compatibles SoundBlaster' qui ont besoin d'un driver DOS pour manipuler des registres exotiques afin de placer la carte dans un mode compatible SB. Demarrer le DOS pour initialiser la carte avec le driver en question, puis charger Linux depuis le prompt du DOS avec LoadLin evitera la reinitialisation de la carte au redemarrage.

LISTE D'ARGUMENTS
La ligne de commande du noyau est consideree comme une liste de chaines de caracteres (les arguments) separees par des espaces. La plupart des argument de demarrages ont la forme suivante :

    nom[=valeur_1][,valeur_2]...[,valeur_10]

ou `nom' est un mot-cle unique utilise pour identifier la partie du noyau a laquelle les valeurs (eventuelles) sont associees. Les arguments multiples sont presentes les uns apres les autres, separes par des espaces, avec le format ci-dessus.Notez que la limte a 10 valeurs est reelle, le code actuel n'en accepte pas plus. (Neanmoins, vous pouvez re-utiliser le meme mot-cle avec jusqu'a 10 parametres supplementaires dans certaines situations inhabituelles, en esperant que la fonction d'initialisation les supportera). La plupart du traitement a lieu dans linux/init/main.c. Tout d'abord le noyau verifie si l'argument est l'un des mots-cles root=,nfsroot=,nfsaddrs=,ro,rw,debug, ou init. La signification de ces options est donnee plus bas. Ensuite il parcourt une liste de fonctions d'initialisation (contenue dans la table bootsetups) pour verifier si la chaine de l'argument specifiee (par exemple `foo') est associee avec une fonction d'initialisation (`foo_setup()') pour un peripherique ou une partie du noyau. Si l'on transmet la ligne foo=3,4,5,6 alors le noyau cherchera dans la table bootsetups si `foo' est enregistre. S'il l'est, le noyau appellera la fonction associee a `foo' (foo_setup()) en lui passant les arguments 3, 4, 5 et 6 donnes sur la ligne de commande. Tout ce qui est de la forme `foo=bar' et qui ne concerne pas une fonction d'initialisation est interprete comme une variable d'environnement a fixer. Un exemple (utile ?) serait l'utilisation de `TERM=vt100' comme argument de demarrage. Les arguments restants, qui n'ont pas ete interceptes par le noyau, et qui ne sont pas interpretes comme des variables d'environnement, seront passes au processus numero un, habituellement init. L'argument le plus courant dans ce cas est `single' qui indique a init de demarrer en mode mono-utilisateur, sans lancer les demons. Regardez la page de manuel de la version d'init installe sur votre systeme pour connaitre les arguments qu'il accepte.

ARGUMENTS GENERAUX NON SPECIFIQUES A UN PERIPHERIQUE

  `init=...'
Ceci fournit une commande initiale a faire executer par le noyau. Si ce parametre n'est pas fourni, ou est introuvable, le noyau essaiera successivement : /etc/init, /bin/init, /sbin/init, /bin/sh et paniquera si tout cela echoue.

  `nfsaddrs=...'
Ceci permet de fournir une adresse de demarrage nfs. Cette adresse est utilisee en cas de demarrage depuis un reseau.

  `nfsroot=...'
Ceci indique le nom nfs de la racine. Si cette chaine ne commence ni par '/' ni par ',' ni par un chiffre, elle est alors prefixee automatiquement par `/tftpboot/'. Ceci est utilise en cas de demarrage depuis un reseau.

  `no387'
(Uniquement si la constante CONFIG_BUGi386 est definie.) Certains coprocesseurs i387 ont des bugs qui apparaisssent en mode protege 32 bits. par exemple, les premiers ULSI-387 bloquaient le systeme durant l'execution des operations en virgule flottante. Si l'argument `no387' est indique, Linux ignore le coprocesseur mathematique meme s'il en detecte un. Bien sur, le noyau doit etre compile avec l'option d'emulation mathematique.

  `no-hlt'
(Uniquement si la constante CONFIG_BUGi386 est definie.) Certaines puces i486DX-100 anciennes ont un probleme avec l'instruction `hlt', en ceci qu'elle ne pouvaient pas reprendre fiablement le cours des operations apres l'utilisation de `hlt'. L'option `no-hlt' indique a Linux d'utiliser une boucle infinie quand il n'a rien a faire et de ne pas arreter le CPU.

  `root=...'
Cet argument indique au noyau quel peripherique doit etre utilise comme systeme de fichiers racine pendant le demarrage. La configuration par defaut est determinee lors de la compilation du noyau, et est generalement egale a la racine du systeme de fichiers utilise lors de la compilation. Pour surcharger cette valeur, et selectionner par exemple le second lecteur de disquette, on utilisera `root=/dev/fd1'. (le peripherique racine peut egalement etre configure en utilisant rdev(8).) Le peripherique racine peut etre specifie de maniere symbolique ou numerique. Une specification symbolique a la forme /dev/XXYN, ou XX designe un type de peripherique (`hd' pour un disque dur compatible ST-506, avec Y dans l'intervalle `a'-`d'; `sd' pour un disque compatible SCSI, avec Y dans `a'-`e'; `ad' pour un disque Atari ACSI, avec Y dans `a'-`e', `ez' pour un disque amovible EZ135 sur le port paralle, avec Y=`a', `xd' pour un disque compatible XT, Y etant `a' ou `b'; `fd' pour un lecteur de disquette, Y etant le numero - fd0 serait DOS `A:', et fd1 `B:'), Y la lettre ou le numero du lecteur, et N le numero (en decimal) de la partition (absent pour les disquettes). Les noyaux recents autorisent de nombreux autres types de peripheriques principalement pour les CD-ROMs: nfs, ram, scd, mcd, cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd, bpcd. (Le type nfs indique un boot sur reseau, et ram se rapporte a un disque virtuel en memoire). Notez bien que cela n'a rien a voir avec la designation des peripheriques dans le systeme de fichiers, le prefixe `/dev/' est purement conventionnel. La specification numerique, plus compliquee et moins portable, du peripherique racine en utilisant les numeros majeur/mineur est egalement acceptee. (par exemple /dev/sda3 a pour nombres majeur 8, mineur 3, et peut donc etre mentionne ainsi : `root=0x803'.)

  `ro' et `rw'
L'option `ro' indique au noyau de monter le systeme de fichiers racine en lecture seule (read-only), ainsi les programmes de verification de la coherence du systeme de fichiers pourront travailler su un systeme au repos. Aucun processus ne peut ecrire sur le systeme de fichiers en question jusqu'a ce qu'il soit remonte en lecture/ecriture (Read/Write), avec un `mount -w -n -o remount /'. (Voir mount(8).) L'option `rw' indique au noyau de monter le systeme de fichiers racine en lecture/ecriture. C'est l'option par defaut. Le choix entre lecture-seule et lecture/ecriture peut aussi etre fixe avec rdev(8).

  `reserve=...'
Cet argument permet de proteger une zone de ports d'entrees/sorties de l'auto-detection. La forme de l'option est :

    reserve=base_IO,longueur[,base_IO,longueur]...

Dans certaines machines il peut etre necessaire d'empecher les drivers de rechercher des peripheriques dans des regions specifiques. En effet, certains materiels peuvent mal reagir a l'auto-detection, ou seraient mal reconnus. L'option reserve indique une zone de ports d'entrees/sorties qu'il ne faut pas examiner. Un driver de peripherique n'utilisera pas une region reservee, a moins qu'une autre option le lui indique explicitement. Par exemple, la ligne de commande

    reserve=0x300,32 blah=0x300

empeche tous les drivers, sauf `blah' d'examiner 0x300-0x31F.

  `mem=...'
L'appel BIOS, defini dans les specifications du PC, qui indique la quantite de memoire installee n'est prevu que pour la detection de 64 Mo au plus. Linux utilise cet appel BIOS pendant le demarrage pour obtenir la quantite de memoire installee. SI vous avez plus de 64 Mo, vous devez utiliser cet argument de demarrage pour indiquer au noyau la valeur exacte. Cette valeur est fournie en decimal ou en hexadecimal (prefixe 0x), et les suffixes `k' (kilo-octets) ou `M' (mega-octets) peuvent etre utilises. Voici un extrait d'une note de Linus sur l'utilisation du parametre `mem=' : ``Le noyau acceptera n'importe quelle valeur fournie pour le parametre `mem=xx' et s'il s'avere que vous lui avez menti, il va se planter horriblement tot ou tard. Ce parametre indique la plus haute adresse memoire accessible, ainsi `mem=0x1000000' signifie que vous avez 16 Mo de RAM par exemple. Pour une machine avec 96 Mo cela deviendrait `mem=0x6000000'. NOTE NOTE NOTE: certaines machines peuvent utiliser le sommet de la memoire pour cacher le BIOS ou n'importe quoi d'autre, aussi vous ne pourrez pas adresser les 96 Mo en entier. L'inverse est aussi vrai, certaines cartes meres vont projeter la memoire physique recouverte par le BIOS juste au-dessus de la memoire accessible, auquel cas vous auriez acces a 96Mo + 384ko par exemple. Si vous faites croire a Linux qu'il dispose de plus de memoire que ce qu'il a en realite, des sales trucs vont se produire : peut-etre pas tout de suite, mais plus tard a coup sur.''

  `panic=N'
Par defaut, le noyau ne redemarrera pas automatiquement apres un cas de panique, mais cette option permet d'indiquer un delai (en seconde) entre la panique, et le redemarrage automatique. Ce delai peut egalement etre configure en utilisant "echo N > /proc/sys/kernel/panic".

  `reboot=[warm|cold][,[bios|hard]]'
(Uniquement si la constante CONFIG_BUGi386 est definie.) Depuis le noyau 2.0.22, reboot(2) effectue par defaut un redemarrage a froid. Certains ont demande la restauration de l'ancienne valeur par defaut `reboot=warm'. Un redemarrage a froid peut etre necessaire pour reinitialiser certains peripheriques, mais risque de detruire des donnees presentes dans le cache disque. Un redemarrage a chaud peut etre plus rapide. Par defaut, le redemarrage est effectue materiellement (hard) en demandant au controleur de clavier de baisser le niveau de la ligne reset. Il existe toutefois des cartes meres ou cela ne fonctionne pas, l'option `reboot=bios' permet alors de redemarrer de maniere logicielle, en appelant le BIOS.

  `nosmp' et `maxcpus=N'
(Seulement si la constante __SMP__ est definie.) L'option `nosmp' ou `maxcpus=0' empeche totalement l'activation du mode SMP. Une option `maxcpus=N' limite le nombre maximum de CPU actives en mode SMP.

ARGUMENTS DE DEMARRAGE POUR LES DEVELOPPEURS DU NOYAU

  `debug'
Les messages du noyau sont manipules par le demon de journalisation klogd, ainsi ils peuvent etre stockes sur disque. Les messages disposant d'une priorite superieure a la valeur console_loglevel sont aussi affiches sur la console (Voir <linux/kernel.h>.). Par defaut, cette variable est positionnee pour journaliser tout ce qui est plus important que les messages de debugging. Cet argument de demarrage indiquera au noyau d'afficher egalement les messages de la priorite DEBUG. Le niveau de la console peut aussi est modifiee pendant l'execution, avec une option de klogd. Voir klogd(8).

  `profile=N'
Il est possible d'activer les fonctions de suivi du noyau si l'on desire s'assurer de l'emplacement ou le noyau consomme ses cycles CPU. Le suivi est active en remplissant la variable prof_shift avec une valeur non-nulle. Ceci peut etre effectue soit en definissant la constante CONFIG_PROFILE durant la compilation, soit en indiquant l'option `profile=' au demarrage. La valeur recue par la variable prof_shift sera N s'il est fourni, ou CONFIG_PROFILE_SHIFT si cette variable existe ou 2 par defaut. La signification de la variable correspond a la finesse du suivi. A chaque top d'horloge, si le systeme execute du code du noyau, un compteur est incremente :

    profile[adresse >> prof_shift]++;

Les informations brutes concernant le suivi peuvent etre lue dans /proc/profile. Vous prefererez probablement utiliser un outil comme readprofile.c pour les examiner. L'ecriture dans /proc/profile effacera les compteurs.

  `swap=N1,N2,N3,N4,N5,N6,N7,N8'
Ceci permet de configurer les huit parametres max_page_age, page_advance, page_decline, page_initial_age, age_cluster_fract, age_cluster_min, pageout_weight, bufferout_weight qui controlent l'algorithme de swap du noyau. A n'utiliser que par les developpeurs du noyau.

  `buff=N1,N2,N3,N4,N5,N6'
Ceci permet de configurer les six parametres max_buff_age, buff_advance, buff_decline, buff_initial_age, bufferout_weight, buffermem_grace qui controlent la gestion des buffers du noyau. A n'utiliser que par les developpeurs du noyau.

ARGUMENTS DE DEMARRAGE POUR DISQUES VIRTUELS
(Uniquement si le noyau a ete compile avec l'option CONFIG_BLK_DEV_RAM.) Il est generalement deconseille d'utiliser un disque virtuel sous Linux. Le systeme gerera mieux la memoire disponible tout seul. Neanmoins, pendant le demarrage, ou durant la creation de disquettes de demarrage, il peut etre utilie de charger le contenu d'une disquette sur un disque virtuel. Il peut egalement arriver sur certain systemes que des modules particuliers concernant les systemes de fichiers ou le materiel aient besoin d'etre charges avant l'acces au disque principal. Sous Linux 1.3.48, la gestion des disques virtuels a ete profondement modifiee. Auparavant la memoire etait allouee de maniere statique, avec un parametre `ramdisk=N' qui indiquait la taille. (On pouvait egalement configurer la taille du disque directement dans l'image du noyau a la compilation, ou avec rdev(8).) Actuellement, les disques virtuels utilisent les buffers caches, et grossissent dynamiquement. Pour obtenir plus d'information (par exemple comment utiliser rdev(8) avec les nouveaux disques virtuels), consultez le fichier /usr/src/linux/Documentation/ramdisk.txt. Il y a quatre parametres, deux booleens et deux entiers.

  `load_ramdisk=N'
Si N=1, un disque virtuel est charge en memoire, si N=0 pas de chargement (comportement par defaut).

  `prompt_ramdisk=N'
Si N=1, demander l'insertion d'une disquette (comportement par defaut) Si N=0, ne rien demander (donc ce parametre n'est jamais utilise...)

  `ramdisk_size=N' or (obsolete) `ramdisk=N'
Fixer la taille maximale du disque virtuel a N Ko. Par defaut la valeur est de 4096 Ko (4 Mo).

  `ramdisk_start=N'
Indiquer le numero de bloc de depart (l'emplacement sur la disquette ou demarre le contenu du disque virtuel). Ceci est utile dans le cas ou l'image du disque virtuel suit une image de noyau.

  `noinitrd'
(Uniquement si le noyau a ete compile avec les options CONFIG_BLK_DEV_RAM et CONFIG_BLK_DEV_INITRD.) On peut actuellement compiler le noyau pour qu'il utilise initrd. Quand cette possibilite est activee, le processus de demarrage charge le noyau et un disque virtuel initial. Puis le noyau convertit initrd en un disque virtuel "normal" qui est monte en lecture/ecriture a la racine. Ensuite /linuxrc est execute. A la suite de quoi le vrai systeme de fichiers est monte a la racine, et le systeme initrd est deplace en /initrd. Finalement, la sequence de demarrage habituelle (appel de /sbin/init) est executee. Pour une description detaillee des possibilites de initrd, voyez le fichier /usr/src/linux/Documentation/initrd.txt. L'option `noinitrd' indique au noyau que contrairement aux options avec lesquelles il a ete compile, il ne doit pas effectuer les etapes sus-mentionnees, mais au contraire laisser les donnees de initrd sous /dev/initrd. (Ce peripherique ne peut etre utilise qu'une seule fois, les donnees sont liberees des que le dernier processus les ayant utilise a referme /dev/initrd.)

ARGUMENTS DE DEMARRAGE POUR PERIPHERIQUES SCSI
Notations generales pour cette section iobase -- Le premier port d'entree/sortie utilisee par l'hote SCSI. Il est indique en notation hexadecimale, habituellement dans l'intervalle 0x200 a 0x3ff. irq -- L'interruption materielle pour laquelle la carte est configuree. Les valeurs possibles dependent de la carte en question, mais sont generalement 5, 7, 9, 10, 11, 12, et 15. Les autres valeurs sont plutot utilisees par des peripheriques comme les disques IDE, les lecteurs de disquettes, les ports serie, etc... scsi-id -- L'identifiant utilise par l'adaptateur pour se distinguer sur le bus SCSI. Peu d'adaptateurs permettent de modifier cette valeur, qui est plutot figee en interne. La valeur classique est 7 mais les cartes Seagate et Future Domain TMC-950 utilisent 6. parity -- Le fait que l'hote SCSI attendent que le peripherique lui fournisse ou non une valeur de parite pour toutes les informations. Un 1 valide le controle de parite, un 0 le desactive. Encore une fois, tous les adaptateurs ne supportent pas la modification de ce comportement comme argument de demarrage.

  `max_scsi_luns=...'
Un peripherique SCSI peut contenir plusieurs `sous-peripheriques' en lui-meme. L'exemple courant est celui des nouveaux lecteurs de CD-ROM qui gerent plusieurs disques en meme temps. Chaque CD est adresse par un numero d'unite logique, `Logical Unit Number' (LUN). Mais la plupart des peripheriques SCSI, comme les disques durs, ou les lecteurs de bande, n'ont qu'un seul sous-peripherique avec un LUN nul. Certains peripheriques SCSI mal concus ne peuvent pas etre testes sur plusieurs LUN, aussi, si la constante CONFIG_SCSI_MULTI_LUN n'est pas definie, les noyaux recents n'examineront que le LUN zero. Pour indiquer le nombre de LUN a examiner au demarrage, on indiquera `max_scsi_luns=n' comme argument, n etant un nombre entre 1 et 8. Pour eviter les ennuis decrits ci-dessus, on utilisera n=1 avec des peripheriques a problemes.

  Configuration des lecteurs de bande SCSI
Certaines configurations au demarrage des lecteurs de bandes SCSI peuvent etre effectuees ainsi :

    st=buf_size[,write_threshold[,max_bufs]]

Les deux premiers nombres sont indiques en Ko. La valeur par defaut de buf_size est 32 Ko, et la taille maximum exageree est 16 384 Ko. Le nombre write_threshold represente la valeur a partir de laquelle le buffer est effectivement ecrit sur la bande, par defaut 30 Ko. Le nombre maximum de buffers varie avec le nombre de lecteur detectes, et vaut 2 par defaut. Un exemple d'utilisation serait :

    st=32,30,2

Des details complets se trouvent dans le fichier README.st, du repertoire scsi des sources du noyau.

  Configuration Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI
Les numeros aha se referent aux cartes, et les numeros aic a la veritable puce SCSI placee sur ces cartes, y compris la Soundblaster-16 SCSI. Le code de detection pour ces hotes SCSI recherche un BIOS installe, et si aucun n'est present, la carte ne sera pas trouvee. Alors il vous faudra utiliser un argument de la forme :

    aha152x=iobase[,irq[,scsi-id[,reconnect[,parity]]]]

Si le driver a ete compile avec les options de debugging, une sixieme valeur peut specifier le niveau de debugging. Tous les parametres sont identiques a ceux decrits au debut de cette section et la valeur reconnect permettra au peripherique de se deconnecter/reconnecter si elle est non nulle. Un exemple d'utilisation serait :

    aha152x=0x340,11,7,1

Notez que tous les parametres doivent etre indiques dans l'ordre, ce qui signifie que pour specifier une parite, il faut egalement specifier les valeurs de iobase, irq, scsi-id et reconnect.

  Configuration Adaptec aha154x
Les cartes aha1542 disposent d'un controleur de disquettes i82077, mais pas les cartes aha1540. Ce sont des cartes maitresses sur le bus, et ont un parametre indiquant leur ``gentillesse'' dans le partage du bus avec d'autres peripheriques. Les arguments de demarrage ressemblent a

    aha1542=iobase[,buson,busoff[,dmaspeed]]

Les valeurs acceptables de iobase sont habituellement 0x130, 0x134, 0x230, 0x234, 0x330, ou 0x334. Des cartes clones peuvent proposer d'autres valeurs. Les valeurs buson, et busoff se referent au nombre de micro-secondes pendant lesquelles la carte maitrise le bus ISA. Les valeurs par defaut sont 11 micro-secondes on, et 4 micro-secondes off, ainsi d'autres cartes (comme les cartes ethernet ISA LANCE) ont la possibilite d'acceder au bus ISA. La valeur dmaspeed se raporte au debit (en Mo/sec) utilise pour les transferts DMA (Direct Memory Access). La valeur par defaut est 5 Mo/sec. Des cartes recentes vous permettent de choisir cette valeur dans une configuration logicielle, les anciennes en positionnant des cavaliers. On peut utiliser des valeurs jusqu'a 10 Mo/sec, a condition que la carte mere soit capable de les gerer. Il faut experimenter prudemment pour les valeurs depassant 5 Mo/sec.

  Configuration Adaptec aha274x, aha284x, aic7xxx
Ces cartes peuvent accepter un argument de la forme :

    aic7xxx=extended,no_reset

La valeur extended, si elle est non nulle, indique que la translation etendue ([NDT] ??) est validee pour les gros disques. La valeur no_reset, si elle est non nulle, indique que le driver ne doit pas reinitialiser le bus SCSI lors du demarrage de l'hote.

  Configuration des hotes SCSI AdvanSys (`advansys=')
Le pilote AdvanSys accepte jusqu'a quatre adresses d'entree/sortie qui seront examinees pour detecter une carte SCSI AdvanSys. Notez que ces valeurs, si elles sont utilisees ne modifie en rien la detection des peripheriques EISA ou PCI. Elles ne concernent que les cartes ISA ou VLB. De plus si le pilote a ete compile avec les options de debugging, on peut configurer le niveau de debugging avec le parametre 0xdeb[0-f] parameter. Le niveau des messages de debugging est configure avec la valeur 0-f permettant ainsi d'acceder a 16 niveaux de messages.

  AM53C974

    AM53C974=host-scsi-id,target-scsi-id,max-rate,max-offset

  Configuration des hotes SCSI BusLogic (`buslogic=')

    BusLogic=N1,N2,N3,N4,N5,S1,S2,...

Pour une description detaillee des parametres de ligne de commande concernant les peripheriques BusLogic, consultez le fichier /usr/src/linux/drivers/scsi/BusLogic.c (lignes 3149-3270 dans la version de noyau dont je dispose). Le texte ci-dessous en est un extrait tres abrege. Les parametres N1-N5 sont des entiers, les parametres S1,... des chaines de caracteres. N1 correspond a l'adresse d'E/S ou l'adaptateur (Host Adapter) est site. N2 est la taille de la file d'attente (Tagged Queue Depth) pour les peripheriques qui supportent le `Tagged Queuing'. N3 est le temps de demarrage du bus (Bus Settle Time) en secondes. Il s'agit de la duree d'attente entre un reset materiel d'un adaptateur hote qui declenche un reset du bus SCSI, et toute autre commande SCSI. N4 sont des options locales (pour un adaptateur hote). N5 sont des options globales (pour tous les adaptateurs hotes). Les chaines d'options sont utilisees pour obtenir un controle sur le `Tagged Queuing' (TQ:Default, TQ:Enable, TQ:Disable, TQ:<Per-Target-Spec>), sur l' Error Recovery (ER:Default, ER:HardReset, ER:BusDeviceReset, ER:None, ER:<Per-Target-Spec>), et sur la detection de l'adaptateur hote (NoProbe, NoProbeISA, NoSortPCI).

  configuration EATA/DMA
La liste par defaut des ports d'entree/sortie a examiner peut etre modifiee avec

    eata=iobase,iobase,....

  Configuration Future Domain TMC-8xx, TMC-950
Si votre carte n'est pas detectee au demmarrage du systeme, vous devrez utiliser un argument de boot de la forme :

    tmc8xx=mem_base,irq

La valeur mem_base etant l'adresse utilisee par la carte pour projeter ses ports d'entree/sortie en memoire. C'est generalement l'une des valeurs suivantes : 0xC8000, 0xCA000, 0xCC000, 0xCE000, 0xDC000, ou 0xDE000.

  configuration IN2000

    in2000=S

ou S est une chaine d'elements mots-cles[:valeur], separes par des virgules. Les mots-cles reconnus sont (certains necessitent des valeurs) : ioport:addr, noreset, nosync:x, period:ns, disconnect:x, debug:x, proc:x. Pour des details sur ces parametres, voir /usr/src/linux/drivers/scsi/in2000.c.

  configuration NCR5380 et NCR53C400
L'argument de demarrage est de la forme

    ncr5380=iobase,irq,dma

ou

    ncr53c400=iobase,irq

Si la carte n'utilise pas les interruptions, une valeur d'IRQ de 255 (0xff) permettra de les desactiver. Une valeur IRQ de 254 reclame une autodetection. On trouvera plus de details dans le fichier /usr/src/linux/drivers/scsi/README.g_NCR5380.

  configuration NCR53C8xx

    ncr53c8xx=S

ou S est une chaine d'elements mots-cles:valeur, separes par des virgules. Les mots-cles reconnus sont : mpar (master_parity), spar (scsi_parity), disc (disconnection), specf (special_features), ultra (ultra_scsi), fsn (force_sync_nego), tags (default_tags), sync (default_sync), verb (verbose), debug (debug), burst (burst_max). Pour des details sur les valeurs correspondantes, voir /usr/src/linux/drivers/scsi/ncr53c8xx.c.

  configuration NCR53c406a

    ncr53c406a=iobase[,irq[,fastpio]]

Utiliser irq = 0 pour un fonctionnement sans interruption. Fixer fastpio a 1 pour un mode pio rapide, et a 0 pour un mode lent.

  configuration IOMEGA PPA3

    ppa=iobase[,speed_high[,speed_low[,nybble]]]

Ici, iobase est l'adresse du port parallele (par defaut 0x378), speed_high est le delai du port en phase de donnees, indique en micro-secondes (par defaut 1), speed_low est le delai du port dans les autres cas (par defaut 6 micro-secondes). nybble est un booleen fixant le mode nybble (4-bits), faux par defaut. Voir aussi /usr/src/linux/drivers/scsi/README.ppa.

  Configuraton Pro Audio Spectrum
La PAS16 utilise une puce SCSI NC5380, et les modeles recents permettent une configuration de la carte sans avoir recours aux cavaliers. L'argument de demarrage est de la forme :

    pas16=iobase,irq

La seule nouveaute est que l'on peut indiquer la valeur 255 pour l'IRQ, ce qui configure le driver pour un fonctionnement sans interruptions, au prix d'une degradation des performances. La valeur usuelle pour iobase est 0x388.

  Configuration Seagate ST-0x
Si votre carte n'est pas detectee au boot, vous devrez utiliser un argument de demarrage de la forme :

    st0x=mem_base,irq

La valeur mem_base etant l'adresse utilisee par la carte pour projeter ses ports d'entree/sortie en memoire. C'est generalement l'une des valeurs suivantes : 0xC8000, 0xCA000, 0xCC000, 0xCE000, 0xDC000, ou 0xDE000.

  Configuration Trantor T128
Ces cartes, basees egalement sur une puce NCR5380, acceptent les options suivantes :

    t128=mem_base,irq

Les valeurs acceptables de mem_base sont : 0xCC000, 0xC8000, 0xDC000, 0xD8000.

  Configuration UltraStor 14F/34F
La liste par defaut des ports d'entree/sortie a examiner peut etre modifiee avec

    eata=iobase,iobase,....

  Configuration WD7000

    wd7000=irq,dma,iobase

  Configuration du controleur SCSI Commodore Amiga A2091/590

    wd33c93=S

ou S est une chaine d'options separees par des virgules. Les options reconnues sont : nosync:bitmask, nodma:x, period:ns, disconnect:x, debug:x, clock:x, next. Pour plus de details, voir /usr/src/linux/drivers/scsi/wd33c93.c.

DISQUES DURS

  Parametres des disques IDE et des lecteurs CD-ROM
Le driver IDE accepte plusieurs parametres, principalement pour indiquer la geometrie du disque avec des controleurs obsoletes. Les specifications du disque sont indiquees en utilisant `hdX=' avec X dans l'intervalle `a'-`h'. Les options communes a plusieurs disques sont indiquees avec le prefixe `hd='. Notez que l'utilisation d'un prefixe specifique a un disque avec une option non specifique marchera egalement comme prevu. Notez encore que `hd=' peut etre utilise pour faire reference au disque suivant, non specifie, dans la sequence (a, ..., h). Les options `hd=' sont presentees brievement ci-dessous, regardez le fichier README.ide dans linux/drivers/block pour plus de details.

  Les options `hd=cyls,heads,sects[,wpcom[,irq]]'
Ces options sont utilisees pour indiquer la geometrie physique du disque. Seules les trois premieres valeurs sont necessaires. Les nombres de cylindres/tetes/secteurs seront ceux utilises par fdisk. La valeur de compensation en ecriture (write precompensation wpcom) est ignoree pour les disques IDE. L'IRQ indiquee sera utilisee avec le controleur du disque dur, et n'est donc pas reellement specifique au disque.

  L'option `hd=serialize'
L'interface double IDE CMD-640 est mal concue, en ceci que lorsqu'un disque sur la seconde interface est utilise simultanement au disque sur la premiere interface, les donnees seront corrompues. Utiliser cette option indique au driver de s'assurer que les deux disques ne sont jamais utilises en meme temps.

  L'option `hd=dtc2278'
Cette option indique au driver que vous avez une interface IDE DTC-2278D. Le driver essaiera alors d'utiliser des operations specifiques DTC, afin de valider la seconde interface, et d'obtenir des transferts rapides.

  L'option `hd=noprobe'
Ne pas examiner ce disque. Par exemple

    hdb=noprobe hdb=1166,7,17

va desactiver la recherche, mais indique quand meme les parametres geometriques du disque, ainsi il sera reconnu comme peripherique bloc valide, et pourra donc etre utilise.

  L'option `hd=nowerr'
Certains disques ont appparament le bit WRERR_STAT positionne en permanence. Ceci autorise le driver a ignorer ce bit.

  L'option `hd=cdrom'
Ceci indique au driver IDE qu'il y a un lecteur de CD-ROM compatible ATAPI attache a la place d'un disque dur normal. Dans la plupart des cas, le CD-ROM est identifie automatiquement, mais a defaut cette option peut vous aider.

  Options du driver Standard ST-506 (`hd=')
Le driver Standard peut accepter des arguments concernant la geometrie des disques similaires a ceux du driver IDE. Notez cependant qu'il n'attendra que 3 valeurs (cylindres/tetes/secteurs) et tout ce qui suivra sera ignore silencieusement. De plus il n'accepte que l'option `hd=' en argument, `hda=' et autres ne seront pas valides. Le format est le suivant :

    hd=cylindres,tetes,secteurs

Si deux disques sont installes, on repete une seconde fois l'argument, avec les parametres du deuxieme disque.

  Options du driver XT(`xd=')
Si vous avez la malchance d'utiliser encore ces vieilles cartes 8 bits qui transferent les donnees avec une vitesse phenomenale de 125 Ko/s voici des informations qui vous concernent. Si la carte n'est pas reconnue, il faut utiliser un argument de boot de la forme :

    xd=type,irq,iobase,dma_chan

La valeur type indique le fabricant de la carte ainsi : 0=generique, 1=DTC, 2,3,4=Western Digital, 5,6,7=Seagate, 8=OMTI. La seule difference parmi les differents types du meme fabricant est la chaine de caracteres utilisee pour la detection du BIOS, mais qui n'est donc pas utilisee si le type est indique explicitement. La fonction xd_setup() ne verifie pas les valeurs, et suppose que vous avez bien saisi les quatre. Ne la decevez pas ! Voici un exemple d'utilisation pour un controleur WD1002 avec un BIOS desactive en utilisant le parametre de controleur XT `default' :

    xd=2,5,0x320,3

  Disques amovibles Syquest's EZ*

    ez=iobase[,irq[,rep[,nybble]]]

Peripheriques bus IBM MCA
Voir egalement /usr/src/linux/Documentation/mca.txt.

  Disques durs ESDI PS/2
Il est possible d'indiquer la geometrie desiree durant le demarrage :

    ed=cyls,tetes,secteurs.

Pour un ThinkPad-720, ajoutez l'option

    tp720=1.

  Configuration de sous-systemes SCSI IBM Microchannel

    ibmmcascsi=N

ou N est le pun (ID SCSI) du sous-systeme.

CD-ROMs (Non-SCSI/ATAPI/IDE)

  L'Interface Aztech
la syntaxe pour ce type de carte est :

    aztcd=iobase[,magic_number]

Si l'on fournit un numero magique valant 0x79 alors le driver demarrera quelque soit la version du materiel, meme inconnue. Toutes les autres valeurs sont ignorees.

  CDROM `backpack' MicroSolutions
Syntaxe :

    bpcd=iobase

  l'Interface Sony CDU-31A and CDU-33A
Cette interface CD-ROM est presente sur certaines cartes sonores Pro Audio Spectrum et sur d'autres cartes fournies par Sony. La syntaxe est la suivante :

    cdu31a=iobase,[irq[,is_pas_card]]

Fournir une valeur d'IRQ nulle indique au driver que les interruptions materielles ne sont pas supportees (comme sur certaines cartes PAS). Si votre carte supporte les interruptions, vous devez les utiliser car cela reduit grandement l'utilisation du CPU par le driver. La valeur de is_pas_card doit etre `PAS' si l'on utilise une carte Pro Audio Spectrum, et rien sinon.

  L'interface Sony CDU-535
La syntaxe de cette interface CD-ROM est la suivante :

    sonycd535=iobase[,irq]

Un zero peut etre utilise comme iobase en tant que valeur fictive si l'on veut seulement indiquer la valeur d'IRQ.

  L'Interface GoldStar
La syntaxe pour cette interface est :

    gscd=iobase

  L'interface ISP16
Syntaxe :

    isp16=[iobase[,irq[,dma[,type]]]]

(trois entiers et une chaine). Si le type indique est `noisp16', l'interface ne sera pas configuree. Sinon les autres types possibles sont : `Sanyo", `Sony', `Panasonic' et `Mitsumi'.

  L'Interface Mitsumi Standard
La syntaxe pour cette interface CD-ROM est :

    mcd=iobase,[irq[,wait_value]]

La valeur wait_value est utilise comme delai interne pour les personnes qui ont des problemes avec leur lecteur, et est implemente ou non en fonction d'une directive #define a la compilation. Le Mitsumi FX400 est un lecteur CD-ROM IDE/ATAPI et n'utilise pas le driver mcd.

  L'Interface Mitsumi XA/MultiSession
Il s'agit du meme materiel que le precedent, mais le pilote de peripherique a des possibilites etendues. Syntaxe:

    mcdx=iobase[,irq]

  L'Interface Optics Storage
la syntaxe pour ce type de carte est :

    optcd=iobase

  L'Interface Phillips CM206
La syntaxe pour ce type de carte est :

    cm206=[iobase][,irq]

Le driver suppose que les nombres entre 3 et 11 sont des valeurs d'IRQ, et ceux entre 0x300 et 0x370 des ports d'entrees/sorties. Ainsi on peut specifier une seule valeur ou les deux, dans un ordre quelconque. Il accepte egalement `cm206=auto' pour valider l'autodetection.

  L'Interface Sanyo
La syntaxe pour ce type de carte est :

    sjcd=iobase[,irq[,dma_channel]]

  L'Interace SoundBlaster Pro
La syntaxe pour ce type de carte est :

    sbpcd=iobase,type

ou type est l'une des chaines suivantes (respecter majuscules/minuscules) : `SoundBlaster', `LaserMate', ou `SPEA'. La valeur pour iobase est celle de l'interface CD-ROM, et non pas celle de la partie son de la carte.

PERIPHERIQUES ETHERNET
Chaque peripherique utilise des parametres specifiques, mais ils partagent tous au moins une valeur d'IRQ, une base d'Entree/Sortie et un nom. Dans sa forme la plus generique la ligne d'argument est la suivante :

    ether=irq,iobase[,parm_1[,...parm_8]],nom

le premier argument non-numerique est considere comme le nom. La valeur de parm_n (si elle existe) a une signification differente pour chacun des drivers. Habituellemement les valeurs parm_n sont utilisees pour indiquer des options comme l'adresse d'une memoire partagee, la selection d'interface, le canal DMA, etc... L'utilisation la plus courante de ce parametre est de forcer la detection d'une seconde carte ethernet, car l'attitude par defaut consiste a n'en detecter qu'une seule. Ceci peut etre effectue simplement avec :

    ether=0,0,eth1

Notez que les valeurs nulles pour irq et iobase dans l'exemple precedent indiquent au driver d'effectuer l'auto-detection. Le Ethernet-HowTo contient une documentation tres complete sur l'utilisation de plusieurs cartes, et sur les valeurs des param_n specifiques aux cartes ou drivers. Les lecteurs interesses se refereront a la section traitant de leur carte dans ce document.

LES LECTEURS DE DISQUETTES
Il existe de nombreuses options pour le driver de lecteurs de disquettes, et elles sont listees dans le fichier README.fd du repertoire linux/drivers/block. Les informations suivantes sont extraites de ce fichier.

  floppy=mask,allowed_drive_mask
Utiliser la valeur mask comme masque binaire des lecteurs valides. Par defaut, seules les unites 0 et 1 de chaque controleurs de disquettes sont valides, car certains peripheriques non-standard (cartes meres ASUS PCI motherboards) bloquent le clavier quand on accede aux unites 2 ou 3. Cette option est quelque peu obsolete avec la configuration cmos.

  floppy=all_drives
Valide tous les lecteurs. Utilisez ceci si vous disposez de plus de deux lecteurs connectes sur un meme controleur.

  floppy=asus_pci
Ne valide que les unites 0 et 1 (option par defaut).

  floppy=daring
indique au driver que le controleur a un comportement correct. Ceci permet des operations plus efficaces et plus rapides, mais peut echouer avec certains controleurs.

  floppy=0,daring
indique au driver que le controleur doit etre utilise avec mefiance.

  floppy=one_fdc
indique au driver que vous n'avez qu'un seul controleur (attitude par defaut).

  floppy=two_fdc or floppy=adresse,two_fdc
indique au driver que vous disposez de deux controleurs. Le second est suppose se trouver a l'adresse indiquee. Si l'adresse est absente, on suppose qu'elle vaut 0x370.

  floppy=thinkpad
indique au driver que vous avez un Thinkpad. Les Thinkpads utilisent une convention inversee pour le changement de disques.

  floppy=0,thinkpad
indique au driver que vous n'avez pas de Thinkpad.

  floppy=drive,type,cmos
fixe le type cmos du lecteur, et valide le lecteur. Ceci est utile si vous avez plus de deux lecteurs de disquettes (seulement deux sont indiques dans la configuration cmos), ou si votre BIOS utilise un type de memoire cmos non-standard. Indiquer CMOS a 0 pour les deux premiers disques (defaut), fera lire la memoire cmos par le driver pour ces deux disques.

  floppy=unexpected_interrupts
Afficher un message d'avertissement si une interruption inattendue est recue (comportement par defaut).

  floppy=no_unexpected_interrupts or floppy=L40SX
Ne pas afficher de message d'avertissement si une interruption inattendue est recue. Ceci est necessaire sur les laptops IBM L40SX dans certains modes videos. (Il semble y avoir une interaction entre la video et les disquettes. Les interruptions inattendues n'affectent que les performances et peuvent etre ignorees en toute securite).

LE CONTROLEUR SON
Le driver sonore ne peut accepter que des arguments pour surcharger les valeurs definies a la compilation. Ceci n'est pas recommande car il est assez complexe. Les options sont decrites dans le fichier Readme.Linux du repertoire linux/drivers/sound. Il accepte des arguments de boot de la forme :

    sound=device1[,device2[,device3...[,device10]]]

ou chaque valeur de deviceN utilise le format 0xTaaaId, avec : T - Type de peripherique : 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, 7=SB16-MPU401 aaa - Adresse d'entree/sortie en hexadecimal I - Interruption en hexadecimal (10=A, 11=B, ...) d - Canal DMA Comme vous le voyez c'est assez complique, et il vaut mieux compiler un noyau avec ses propres valeurs. L'utilisation de l'argument de demarrage `sound=0' desactivera totalement le driver sonore.

DRIVERS ISDN

  Le driver ISDN ICN
Syntaxe :

    icn=iobase,membase,icn_id1,icn_id2

ou icn_id1,icn_id2 sont deux chaines permettant d'identifier la carte dans les messages du noyau.

  Le driver ISDN PCBIT
Syntaxe :

    pcbit=membase1,irq1[,membase2,irq2]

ou membaseN est l'adresse de depart de la memoire partagee de la Nieme carte, et irqN est la configuration d'interruption de la Nieme carte. Par defaut IRQ vaut 5 et membase 0xD0000.

  Le driver ISDN Teles
Syntaxe :

    teles=iobase,irq,membase,protocol,teles_id

ou iobase est l'adresse du port d'entree/sortie de la carte, membase est l'adresse de depart de la memoire partagee, irq le canal d'interruption utilise par la carte, et teles_id un identificateur ASCII unique.

DRIVERS DE PORT SERIE

  Le driver RISCom/8 Multiport Serial(`riscom8=')
Syntaxe :

    riscom=iobase1[,iobase2[,iobase3[,iobase4]]]

Plus de details sont disponibles dans /usr/src/linux/Documentation/riscom8.txt.

  Le driver DigiBoard (`digi=')
Si l'on utilise cette option, elle dit avoir exactement six parametres. Syntaxe :

    digi=status,type,altpin,numports,iobase,membase

Les parametres peuvent etre fournis sous forme d'entiers ou de chaines. Si l'on utilise es chaines, iobase et membase doivent ete indiques en hexadecimal. Les argument entiers sont, dans l'ordre : status (Enable(1) activer ou Disable(0) desactiver la carte), type (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)), altpin (Enable(1) activer ou Disable(0) desactiver la seconde configuration des broches), numports (nombre de ports sur la carte), iobase (Port d'entree/sortie de la carte (en hexa)), membase (Adresse de base de la fenetre memoire (en hexa)). Ainsi, les deux chaines d'arguments suivantes sont equivalentes :

    digi=E,PC/Xi,D,16,200,D0000
    digi=1,0,0,16,0x200,851968

Plus de details sont disponibles dans /usr/src/linux/Documentation/digiboard.txt.

  Le driver Baycom Serial/Parallel Radio Modem
Syntaxe :

    baycom=iobase,irq,modem

Il y a exactement 3 parametres. Si vous avez plusieurs cartes, utilisez plusieurs commandes `baycom='. Le parametre modem est une chaine prenant l'une des valeurs suivantes ser12, ser12*, par96, par96*. Ici * indique la gestion logicielle du DCD doit etre activee, et ser12/par96 correspond au type de modem supporte. Pour plus de details, consultez /usr/src/linux/drivers/net/README.baycom.

  Le driver Soundcard radio modem
Syntaxe :

    soundmodem=iobase,irq,dma[,dma2[,serio[,pario]]],0,mode

Tous les parametres sont des entiers, sauf les deux derniers. La valeur 0 est necessaire pour eviter un bug dans le code de demarrage. Le parametre `mode' est ne chaine avec la syntaxe hw:modem, ou hw correspond a sbc, wss, ou wssfdx et modem correspond a afsk1200, ou fsk9600.

PILOTE D'IMPRIMANTE

  `lp='
Dans les noyaux plus recents que le 1.3.75, on peut indiquer au pilote d'imprimante les ports a utiliser et ceux a ne pas utiliser. Ceci permet d'eviter que le pilote n'examine tous les ports, afin que d'autres pilotes (PLIP, PPA) les utilisent. Le format de l'argument, est une suite de paires (adresse entree/sortie, irq). Par exemle lp=0x3bc,0,0x378,7 permet d'utiliser le port 0x3bc sans IRQ (polling), et utilisera l'irq 7 pour le port 0x378. Le port 0x278 (s'il existe) ne sera pas examine car l'autodetection n'a lieu qu'en l'absence d'argument `lp='. Pour desactiver completement le pilote d'imprimante, utilisez lp=0.

  Driver WDT500/501
Syntaxe :

    wdt=io,irq

DRIVERS SOURIS

  `bmouse=irq'
Le driver busmouse n'accepte qu'un seul parametre, la valeur d'IRQ materielle a utiliser.

  `msmouse=irq'
Ceci est exactement la meme chose pour le driver msmouse.

  souris ATARI

atamouse=threshold[,y-threshold]

    Si un seul argument est fourni, il sera utilise a la fois pour les seuils x-threshol et y-threshold. Sinon, le premier argument est x-threshold et le second y-threshold. Ces valeurs doivent etre dans l'intervalle 1 a 20 inclus. La valeur par defaut est 2.

PERIPHERIQUES VIDEO

  `no-scroll'
Cette option indique a pilote de console de ne pas utiliser de defilement materiel (quand le defilement est gere en deplacant l'adresse de l'ecran dans la memoire video sans deplacer les donnees). Ceci est necessaire pour certaines machines Braille.

AUTHEURS
Linus Torvalds (et de nombreux autres)

VOIR AUSSI
klogd(8), lilo.conf(5), lilo(8), mount(8), rdev(8) Cette page de manuel a ete concue a partir du Boot-Parameter-HOWTO version 1.0.1 ecrit par Paul Gortmaker. Des complements d'information seront donc trouves dans ce document (ou une version plus recente).