
  SRM Firmware Howto
  Version  originale  : David Mosberger <mailto:davidm@azstar-
  net.com>   (Traduction    francaise    :    Nicolas    Jadot
  (njadot@etu.info.unicaen.fr))
  v0.5, 17 August 1996

  Ce  document  decrit  la  maniere  de demarrer une station Linux/Alpha
  utilisant le firmware SRM, lequel est  normalement utilise pour demar-
  rer  Digital  Unix.  (NDT : le firmware est un micro-code embarque sur
  une puce, en quelque sorte l'equivalent du BIOS des PC) En general, il
  est  preferable  d'utiliser MILO a la place du programme aboot sachant
  que MILO est parfaitement adapte aux besoins de Linux. Cependant, MILO
  n'existe pas sur tous les systemes et ne permet pas encore de demarrer
  sur un reseau. Dans ces cas la, utiliser la console SRM est  peut-etre
  la bonne solution.

  A  moins  que  vous soyiez interesses par les details techniques, vous
  pouvez passer directement a la section ``''

  1.  Comment SRM demarre-t-il un systeme d'exploitation ?

  Toutes les versions de SRM peuvent demarrer a partir d'un disque  SCSI
  et les versions destinees aux plates-formes recentes, comme les Noname
  et AlphaStations, peuvent de plus demarrer depuis  une  disquette.  Le
  demarrage  reseau  via  bootp  est  egalement supporte.  Notez que les
  anciennes versions de SRM (notamment celles pour Jensen) ne  pouvaient
  pas  demarrer  depuis une disquette. Le demarrage depuis un disque IDE
  n'est pas supporte.

  Le demarrage de Linux avec SRM s'effectue en deux  etapes  :  d'abord,
  SRM charge et transfere le controle a un chargeur secondaire. Ensuite,
  ce chargeur secondaire met en  place  l'environnement  de  Linux,  lit
  l'image  du noyau depuis un systeme de fichiers sur disque et donne la
  main a Linux.

  A l'heure actuelle  il existe deux chargeurs secondaires pour Linux  :
  le  chargeur  brut   fourni  avec  le  noyau Linux et aboot, distribue
  separement. Ces deux chargeurs sont decrits en details ci-dessous.

  1.1.  Charger le chargeur secondaire

  SRM est ignorant des  systemes  de  fichiers  et  des  partitions  des
  disques. Il s'attend simplement a ce que le chargeur secondaire occupe
  un certain nombre de secteurs physiques consecutifs, commencant a  une
  adresse   donnee.  L'information  concernant  la  taille  du  chargeur
  secondaire et l'adresse de son premier secteur est  stockee  dans  les
  512  premiers  octets.  Plus  precisement  ,  l'entier  long  occupant
  l'adresse 480 contient la  taille  du  chargeur  secondaire  et  celui
  occupant  l'adresse  488  donne  le  nombre  de  secteurs  de decalage
  jusqu'au debut du chargeur. Le premier secteur contient  egalement  un
  drapeau a l'adresse 496 qui vaut toujours 0 et une somme de controle a
  l'adresse 504. Cette somme de controle est simplement la somme des  63
  premiers entiers longs du premier secteur.

  Si cette somme est correcte, SRM continue et lit le nombre de secteurs
  indique par la taille en commencant par celui indique  dans  le  champ
  numero  de  secteur  et  les  place  en  memoire virtuelle a l'adresse
  0x20000000. Si la lecture se termine avec succes, SRM effectue un saut
  a l'adresse 0x20000000.

  2.  Le chargeur brut

  Les sources de ce chargeur peuvent etre trouves dans le repertoire

               linux/arch/alpha/boot

  des  sources  du  noyau  Linux.  Ce programme charge le noyau Linux en
  lisant START_SIZE  octets  en  commencant  a  l'adresse  BOOT_SIZE+512
  (egalement  en  octets).  Les  constantes START_SIZE et BOOT_SIZE sont
  definies dans le fichier  d'en-tete  linux/include/asm-alpha/system.h.
  START_SIZE  doit etre au moins aussi eleve que la taille de l'image du
  noyau (i.e, la somme des tailles des segments .text, .data, et .bss ).
  De  meme,  BOOT_SIZE  doit  etre  au  moins aussi eleve que l'image du
  chargeur. Ces deux constantes doivent avoir comme valeur  un  multiple
  entier  de  la  taille  d'un secteur, soit 512 octets. Les valeurs par
  defaut sont 2Mo pour START_SIZE et 16Ko pour BOOT_SIZE. Notez  que  si
  vous  voulez  demarrer  depuis  une  disquette  de  1.44Mo, vous devez
  reduire START_SIZE a 1400Ko et vous assurer que la taille du noyau que
  vous voulez demarrer ne depasse pas cette valeur.

  Pour  construire  un chargeur brut, tapez simplement make rawboot dans
  /usr/src/linux.  Ceci  devrait  produire  dans   arch/alpha/boot   les
  fichiers suivants :

     tools/lxboot:
        Le premier secteur du disque. Il contient l'adresse et la taille
        du prochain fichier au format decrit ci-dessus.

     tools/bootlx:
        Le lanceur brut qui chargera le fichier ci-dessous

     vmlinux.nh:
        L'image brute du noyau constituee des segments .text,  .data  et
        .bss  du  fichier  objet /usr/src/linux/vmlinux. L'extension .nh
        indique que ce fichier n'a pas l'entete d'un fichier objet.

  La concatenation de ces trois fichiers  devrait  etre  ecrite  sur  le
  disque  a  partir  duquel  vous  voulez  demarrer.  Par  exemple, pour
  demarrer depuis une disquette, inserez une disquette  vierge  dans  le
  lecteur, soit /dev/fd0 et ensuite tapez :

       cat tools/lxboot tools/bootlx vmlinux >/dev/fd0

  Vous  pouvez  maintenant  arreter  le  systeme  et demarrer depuis une
  disquette en utilisant  la commande boot dva0.

  3.  Le chargeur aboot

  Si vous utilisez le firmware SRM, aboot  est  la  meilleure  facon  de
  demarrer Linux. Il supporte :

  o  demarrage direct depuis divers systemes de fichiers (ext2, ISO9660,
     et UFS, le systeme de fichiers de Digital Unix),

  o  lancement de fichiers objets executables (ELF et ECOFF),

  o  lancement de noyaux compresses,

  o  demarrage par reseau (en utilisant le protocole bootp),

  o  table de partitions au format Digital  Unix  (compatible  avec  les
     tables de partitions de BSD),

  o  demarrage  interactif et configurations par defaut des consoles SRM
     qui n'acceptent pas les longues chaines d'option.

  3.1.  Se procurer et installer aboot

  Les  codes  sources  les  plus  recents  d'aboot  sont  disponibles  a
  l'adresse                  ftp://ftp.azstarnet.com/pub/linux/axp/aboot
  <ftp://ftp.azstarnet.com/pub/linux/axp/aboot>. La  description  de  ce
  manuel s'applique a aboot pour les versions 0.5 et suivantes.

  Une  fois  que vous avez telecharge et extrait l'archive tar, jetez un
  oeil  aux  fichiers  README  et  INSTALL  pour  lire  les   directives
  d'installation.  En  particulier, assurez vous que les variables, dans
  les fichiers Makefile et include/config.h sont correctes vis-a-vis  de
  votre  environnement  .   Normalement,  vous  ne  devriez  pas avoir a
  changer quoi que ce soit pour compiler sous Linux, mais c'est toujours
  une  bonne chose de verifier. Si la configuration vous convient, tapez
  simplement make pour lancer la compilation (si  vous  n'effectuez  pas
  cette operation sous Linux, sachez que aboot requiert GNU make).

  Apres  l'execution  de  make, le repertoire aboot devrait contenir les
  fichiers suivants :

     aboot
        L'executable reel (fichier objet ECOFF ou ELF),

     bootlx
        Comme ci-dessus, mais ce fichier ne contient  que  les  segments
        text, data et bss (ce fichier n'est pas un fichier objet),

     sdisklabel/writeboot
        Un utilitaire pour installer aboot sur un disque dur,

     tools/e2writeboot
        Un  utilitaire  pour  installer aboot sur un systeme de fichiers
        ext2 (n'est en general utilise que pour les disquettes),

     tools/isomarkboot
        Un utilitaire pour installer aboot sur un  systeme  de  fichiers
        iso9660 (utilise par les distributeurs de CD-ROM),

     tools/abootconf
        Un utilitaire pour configurer aboot s'il est installe.

  3.2.  Installation sur disquette

  Le  lanceur  peut  etre  installe  sur  une  disquette en utilisant la
  commande e2writeboot (note : ceci ne peut se faire sur un  Jensen  car
  son  firmware n'implante pas le demarrage depuis une disquette). Cette
  commande necessite que le disque ne soit pas trop fragmente car elle a
  besoin  de  trouver  suffisament  de  secteurs  contigus  pour stocker
  l'image entiere de aboot (actuellement, environ 90Ko). Si  e2writeboot
  echoue  a  cause de ca, reformatez la disquette et reessayez (par ex.,
  avec fdformat(1)). Par exemple, la procedure suivante  installe  aboot
  sur  une  disquette  en supposant que la disquette est dans le lecteur
  correspondant a /dev/fd0 :

       fdformat /dev/fd0
       mke2fs /dev/fd0
       e2writeboot /dev/fd0 bootlx

  3.3.  Installation sur disque dur

  Sachant que  la  commande  e2writeboot  peut  echouer  sur  un  disque
  hautement  fragmente  et  comme  le reformattage d'un disque dur ne se
  fait pas sans peine, il est generalement plus  sur  d'installer  aboot
  sur  un  disque  dur  en utilisant la commande swriteboot.  swriteboot
  necessite que les premiers secteurs soient reserves aux procedures  de
  demarrage.  Nous suggerons que le disque soit partitionne de maniere a
  ce que la premiere partition commence a une  adresse  correspondant  a
  2048  secteurs.  Cela laisse 1Mo d'espace ibre pour stocker aboot. Sur
  un  disque  partitionne  de  cette  facon  ,  il  est  alors  possible
  d'installer  aboot comme decrit ci-dessous (en supposant que le disque
  correspond a /dev/sda.) :

       swriteboot /dev/sda bootlx

  Sur un Jensen, vous devrez laisser un peu plus d'espace,  sachant  que
  vous  devrez  egalement stocker le noyau a cet endroit - 2Mo devraient
  suffire en utilisant une image compressee. Utilisez  swriteboot  comme
  decrit a la section ``'' pour ecrire bootlx avec le noyau Linux.

  3.4.  Installation sur CD-ROM

  Pour  construire  un CD-ROM amorcable avec SRM, construisez simplement
  aboot comme decrit ci-dessus.  Assurez-vous  ensuite  que  le  fichier
  bootlx  est  present  sur le systeme de fichiers iso9660 (e.g., copiez
  bootlx dans le repertoire ou est monte le systeme de  fichiers)  ,  et
  lancez  mkisofs sur ce repertoire). Apres cela, la seule chose restant
  a faire est de marquer le systeme de  fichiers  comme  amorcable  avec
  SRM. Cela est realise grace a une commande de la forme :

       isomarkboot filesystem bootlx

  La   commande  ci-dessus  necessite  que  filesystem  est  un  fichier
  contenant le systeme de fichiers iso9660  et que bootlx  a  ete  copie
  dans la racine de ce systeme de fichiers. C'est tout !

  3.5.  Construire un noyau Linux

  Un noyau Linux amorcable peut etre construit par les etapes suivantes.
  Durant le make config, assurez-vous de repondre  "oui"  ("yes")  a  la
  question concernant le lancement du noyau par SRM.

       cd /usr/src/linux
       make config
       make dep
       make boot

  La  derniere commande construira le fichier arch/alpha/boot/vmlinux.gz
  qui peut alors etre copie sur le disque a partir duquel  vous  desirez
  demarrer.  Dans  notre exemple precedent concernant la disquette, cela
  donnerai :

       mount /dev/fd0 /mnt
       cp arch/alpha/boot/vmlinux.gz /mnt
       umount /mnt

  3.6.  Demarrer Linux

  Avec le  firmware  SRM  et  aboot  installe,  le  demarrage  de  Linux
  s'effectue generalement avec une commande de la forme :

       boot devicename -fi filename -fl flags

  Les  arguments  filename  et  flags  sont optionels. S'ils ne sont pas
  specifies, SRM utilise les  valeurs  par  defaut  contenues  dans  les
  variables  d'environnement BOOT_OSFILE et BOOT_OSFLAGS.  La syntaxe et
  la signification de ces deux arguments est decrite plus en detail  ci-
  dessous.

  3.6.1.  Nom du fichier boot

  L'argument filename est de la forme :

       [n/]filename

  n  est  un simple nombre dans l'intervalle 1..8 qui donne le numero de
  la partition de demarrage. filename est le chemin d'acces au fichier a
  lancer.  Par  exemple,  pour  demarrer depuis la deuxieme partition du
  sixieme disque SCSI, vous entreriez :

       boot dka600 -file 2/vmlinux.gz

  Ou, pour demarrer depuis le premier lecteur de disquette :

       boot dva0 -file vmlinux.gz

  Si un disque n'a pas de table des partitions, aboot considere  que  le
  disque  contient  une  partition  ext2  commencant  au premier bloc du
  disque. Cela permet de demarrer depuis une disquette.

  Le numero de partition 0 est utilise pour demander le demarrage depuis
  un disque qui ne contient pas (encore) de systeme de fichiers. Si l'on
  specifie le numero de "partition" 0,  aboot  considere  que  le  noyau
  Linux  suit  directement  l'image  de aboot. Une telle chose peut etre
  realisee avec la commande swriteboot. Par exemple, pour configurer  un
  demarrage  sans  systeme  de  fichiers  depuis  /dev/sda,  on pourrait
  utiliser la commande :

       swriteboot /dev/sda bootlx vmlinux.gz

  Demarrer  un  systeme  de  cette  facon  n'est   pas   obligatoirement
  necessaire.  La raison d'etre de cette fonctionnalite est de permettre
  l'installation de Linux sur un systeme qui ne peut demarrer depuis une
  disquette (e.g., le Jensen).

  3.6.2.  Drapeaux de demarrage

  Plusieurs  drapeaux de demarrage peuvent etre specifies. La syntaxe en
  est :

       -flags "options..."

  Ou "options..." est une combinaison des  options  suivantes  (separees
  par des espace). Il y a encore plus d'options, en fonction des pilotes
  que le noyau a installe. Les options listees ci-apres ne sont  la  que
  pour illustrer l'idee generale :

     load_ramdisk=1
        Copie le systeme de fichiers racine depuis une disquette vers un
        disque virtuel en memoire avant de lancer le systeme. Ce  disque
        virtuel  sera  utilise  en lieu et place du peripherique racine.
        Ceci est utile pour  demarrer  Linux  sur  une  machine  qui  ne
        possede qu'un lecteur de disquettes.

     floppy=str

     root=dev
        Selectionne  le  peripherique  dev  comme  systeme  de  fichiers
        racine. Le peripherique peut etre specifie comme la  combinaison
        des   numeros   major/minor   du   fichier  de  peripherique  en
        hexadecimal (e.g., 0x802 pour /dev/sda2) ou un nom de fichier de
        peripherique (e.g.,/dev/fd0, /dev/sda2).

     single
        Lance le systeme en mode mono-utilisateur.

     kgdb
        Autorise kernel-gdb (ne fonctionne que si CONFIG_KGDB est active
        ; un deuxieme systeme Alpha doit etre connecte  par  voie  serie
        pour que cela fonctionne).

  Quelques  implementations de SRM (e.g., celle du Jensen) sont limitees
  et n'autorisent que les chaines d'options de courte longueur (e.g., au
  plus  8  caracteres).  Dans ce cas la, aboot peut etre demarre avec le
  drapeau  de  demarrage  "i".  Avec  ce  drapeau,  aboot  demandera   a
  l'utilisateur  d'entrer  une  chaine  d'options  pouvant atteindre 256
  caracteres. Par exemple :

       boot dka0 -fl i
       aboot> 3/vmlinux.gz root=/dev/sda3 single

  Comme demarrer de cette  facon  devient  rapidement  penible  ,  aboot
  autorise  l'utilisateur  a  definir  des raccourcis pour les lignes de
  commande frequemment utilisees. En particulier, une option donnee  par
  un  chiffre  --  option  --> (0-9) demande a aboot d'utiliser l'option
  correspondante dans le fichier /etc/aboot.conf. Un exemple de  fichier
  aboot.conf est donne ci-dessous :

       #
       # aboot default configurations
       #
       0:3/vmlinux.gz root=/dev/sda3
       1:3/vmlinux.gz root=/dev/sda3 single
       2:3/vmlinux.new.gz root=/dev/sda3
       3:3/vmlinux root=/dev/sda3
       8:- root=/dev/s.
TAKETHIS <902196044@p6.f157.n5020.z2.ftn>
Path: newspeer.monmouth.com!newsfeed.gamma.ru!Gamma.RU!demos!ddt.demos.su!f400.n5020!f238.n5020!f1851.n5020!f509.n5020!f157.n5020!not-for-mail
Newsgroups: fido7.ru.christianity
Distribution: fido7
X-Comment-To: Volcov Andrej
Approved: gateway@fido7.ru
From: Vladimir Gorpenko <Vladimir.Gorpenko@p6.f157.n5020.z2.fidonet.org>
Date: Mon, 03 Aug 98 20:59:36 +0400
Subject: Сyевеpие
Message-ID: <902196044@p6.f157.n5020.z2.ftn>
References: <901893717@p71.f3.n5009.z2.ftn>
Organization: Огоpошенный сyдьбою, ты все же не отчаивайся!
X-FTN-AREA: RU.CHRISTIANITY
X-FTN-MSGID: 2:5020/157.6 35c66b4c
X-FTN-REPLY: 2:5009/3.71 35c1ce55
X-FTN-TID: FastEcho 1.40 1234
X-FTN-Tearline: GoldED 2.50+
X-FTN-Origin: Огоpошенный сyдьбою, ты все же не отчаивайся! (fidonet 2:5020/157.6)
X-FTN-SEEN-BY: 460/111 463/58 68 4615/21 5000/7 5003/15 5011/13 5020/37 68 69 79
X-FTN-SEEN-BY: 5020/157 204 214 215 238 241 400 423 427 443 509 525 620 642 644
X-FTN-SEEN-BY: 5020/1103 1381 1851 2200 5022/5 5023/1 11 5030/115 568 5035/10
X-FTN-SEEN-BY: 5040/47 5049/6 256 5054/3 9 5059/2 5061/15 5075/10 5077/3 5080/80
X-FTN-SEEN-BY: 5100/21
X-FTN-PATH: 5020/157 509 1851 238
X-FTN-PATH: 5020/400
Lines: 17
Xref: newspeer.monmouth.com fido7.ru.christianity:2084      

   Здpавствуй, Volcov!

31 Jul 98 14:00 Volcov Andrej писал Vladimir Gorpenko следующее:

 VG>> Это весьма пpискоpбно. Значит, утеpян текст и даже вpяд ли удастся
 VG>> найти где-то сделанную для него подбоpку цитат. Извини, я не смогу
 VG>> повтоpить эту pаботу.

 VA> Пoдcкaжи мнe, кaк oпoзнaть тoт твoй тeкcт, ecли oн был нaпиcaн в эxe, y
 VA> мeня вeдeтcя apxив кoнфepeнции, мoгy нaйти eгo тaм.

   Попpобуй найти слово "помазание". Или "Помазание". Пpавда, может быть, что
это было в вангоде.

   С уважением,
      Vladimir

