  MIPS HOWTO
  Ralf Bchle, ralf@gnu.org
  V 0.1, 13 mars 1998

  Ce MANUEL dcrit le portage MIPS du systme d'exploitation Linux, des
  problmes courants et de leur solutions ainsi que de certaines  possi
  bilits (voire plus). Il tente aussi d'tre une petite aide pour les
  autres personnes qui lirait cette FAQ dans l'espoir de trouver des
  informations qui, actuellement, pourrait etre fournis ailleurs.
  ______________________________________________________________________

  Table des matires






















































  1. Qu'est-ce-que Linux/MIPS ?

  2. Quel est le matriel que Linux/MIPS supporte ?

     2.1 Les plates-formes matrielles :
        2.1.1 L'Acer PICA :
        2.1.2 Les sries Baget/MIPS :
        2.1.3 Cobalt Qube et Raq
        2.1.4 La Netpower 100
        2.1.5 La Nintendo 64
        2.1.6 L'indy de Silicon Graphics
           2.1.6.1 Nombres bizarres de mmoire possible
           2.1.6.2 Problmes rencontrs avec des PROM Indy
           2.1.6.3 Support de ELF dans les vieilles version de PROM
           2.1.6.4 Pourquoi y-a-t-il tant de mmoire rserv sur mon Indy ?
        2.1.7 La Silicon Graphics Challenge S
        2.1.8 Silicon Graphics Indigo
        2.1.9 Console srie sur des machines SGI
        2.1.10 Les machines bases sur le motorola 68k comme l'Iris 3000
        2.1.11 Le VisPC SGI
        2.1.12 Autres machines de Silicon Graphics
        2.1.13 La Playstation Sony
        2.1.14 Le SNI RM200C
        2.1.15 Le SNI RM200
        2.1.16 Le SNI RM300C
        2.1.17 Le SNI RM400
        2.1.18 Le P4032 algorithmique
        2.1.19 Le P5064 algorithmique
        2.1.20 Les sries DECstation
        2.1.21 Le MIPS Magnum 4000 / Olivetti M700-10
        2.1.22 Le MIPS Magnum 4000SC
        2.1.23 Les VaxStations
     2.2 Les types de processeurs
        2.2.1 La famille des R2000 et des  R3000
        2.2.2 Le R6000
        2.2.3 La famille des R4000 et des R5000
        2.2.4 Le R8000
        2.2.5 Le R10000

  3. Les distributions Linux.

     3.1 La RedHat

  4. Les ressources rseaux de Linux/MIPS.

     4.1 Les serveurs FTP anonymes.
     4.2 Les serveurs CVA anonymes.
     4.3 Les serveurs Web.
     4.4 Les Mailing lists.

  5. L'installation de Linux/MIPS et les problmes courants.

     5.1 Quand le boot sur NFS choue.
     5.2 Noyau compil eux-mmes choue lors du boot.
     5.3 Le boot sur le noyau d'un Indy choue avec les messages d'erreurs de la PROM
     5.4 Ou puis-je positionner le type little endian pour mon SNI ?
     5.5 ld plante avec le signal 6

  6. Milo

     6.1 Construire Milo
     6.2 Pandora

  7. Les modules chargeables

  8. Comment initialiser un crosscompiler?
     8.1 Besoins en espace disque
     8.2 Ordre des octets
     8.3 Noms de configuration
     8.4 Installation de GNU Binutils.
     8.5 Assert.h
     8.6 Premire installation d'egcs
     8.7 float.h
     8.8 Installer les sources du noyau
     8.9 Installer la GNU libc
     8.10 Reconstruire encore egcs
     8.11 Devrais-je construire les compilateurs C++, Objective C ou F77 ?
     8.12 GDB

  9. Littrature

     9.1 Voir un MIPS fonctionner (See MIPS Run)
     9.2 Le guide du dveloppeurs MIPS (The MIPS Programmer's Handbook)
     9.3 Architecture des ordinateurs - Une approche quantitative (Computer Architecture - A Quantitative Approach)

  10. Les nouvelles de Linux/MIPS



  ______________________________________________________________________

  11..  QQuu''eesstt--ccee--qquuee LLiinnuuxx//MMIIPPSS ??

  Linux/MIPS est un portage du trs rpandu clone UNIX Linux vers
  l'architecture MIPS. Linux/MIPS fonctionne sur un grand nombre de
  systme techniquement trs diffrent qui s'tend des petits systmes
  embarqus et des serveurs jusqu' des grosses machines bureautique et
  les serveurs qui, au moins  l'poque o ils ont t introduit sur le
  march, tait les meilleurs de leur classe.


  Les avantages de Linux/MIPS par rapport aux autres sytmes
  d'exploitation en ce moment sont :

    Le systme complet Linux se compose de seulement de Logiciels
     Libres,

    L'excellent qualit-prix,

    L'existance d'une importante quantit de logiciels dont une grande
     partie est encore en Logiciel Libre,

    Un compatibilit binaire  travers un nombre croissant de plates-
     formes,

    Une petite empreinte rendant Linux/MIPS appropri pour plusieurs
     systmes embarqus.

  En rsum, Linux a t mis en projet et embarqu avec Fahrvergngen.
  Cependant, comme d'habitude, votre kilomtrage devrait varier et vous
  devrez vrifier que Linux convienne pour votre projet ce que ce
  document prtent essayer de faire.


  22..  QQuueell eesstt llee mmaattrriieell qquuee LLiinnuuxx//MMIIPPSS ssuuppppoorrttee ??

  22..11..  LLeess ppllaatteess--ffoorrmmeess mmaattrriieelllleess ::

  Plusieurs machines sont utilisables avec un nombre diffrent d'options
  CPU dont pas tous sont actuellement support. S'il vous plait,
  regardez la section "Type de processeurs" pour tre sur que votre type
  de CPU soit support. C'est une liste de machines qui font fonctionner
  Linux/MIPS, des systmes o Linux/MIPS peut tre port ou bien des
  systmes que les gens ont intrt  faire fonctionner avec Linux/MIPS.


  22..11..11..  LL''AAcceerr PPIICCAA ::

  L'Acer PICA est driv de l'architecture Mips Magnum 4000. Il a un CPU
  R4400PC fonctionnant  133 Mhz ou optionnellement  150 Mhz, plus une
  mmoire cache de second niveau de 512 Kb (optionnellement 2 Mb) ; la
  carte gfx  G364 du Magnum a t remplac par une carte S3 968 base
  sur celui-ci. Le systme est support  l'exception du serveur X.


  22..11..22..  LLeess ssrriieess BBaaggeett//MMIIPPSS ::

  Les sries Baget incluent plusieurs botes qui possdent des
  processeurs R3000 : Baget 23, Baget 63 et Baget 83. Les Baget 23 et 63
  ont une carte mre BT23-201 ou BT23-202 avec respectivement un R3500A
  (qui est un composant R3000A simplifi)  25 MHz et un R3081E  50
  MHz.


  La carte BT23-201 a un bus VME et comporte les puces VIC068, VAC068
  comme contrleurs systmes. La carte BT23-202 a un bus interne PCI et
  un bus externe VME. Le support pour la carte BT23-201 a t faite par
  Gleb Raiko (rajko@mech.math.msu.su) et Vladimir Roganov
  (vroganov@msiu.ru) avec un petite aide de Serguei Zimin
  (zimin@msiu.ru). Le support pour la BT23-202 est en train d'tre
  dvelopp avec le Baget 23B qui est compos de 3 cartes BT23-201 avec
  un bus VME partag.


  Le Baget 83 est mentionn ici uniquement pour tre complet. Il a
  seulement 2 Mb de RAM et c'est trop peu pour faire fonctionner Linux.
  Le code du Baget/MIPS a t fusionn avec le port DECstation ; les
  sources pour les deux plates-formes sont  l'adresse decstation.unix-
  arg.org.


  22..11..33..  CCoobbaalltt QQuubbee eett RRaaqq

  Les sries de produits Cobalt Qube sont des systmes de serveur de
  faible cot bass sur un IDT R5230. Cobalt a dvelopp sa propre
  variante de Linux/MIPS pour s'adapter aussi bien que possible aux
  besoins particuliers de Qube. Au dpart le noyau Qube a t driv 
  partir de Linux/MIPS 2.1.56, report ensuite vers la version 2.0.30
  par gard  la stabilit, puis optimis. Les noyaux Cobalt sont
  tlchargeable  partir du site ftp www.cobaltnet.com. Le support
  Cobalt Qube n'a jamais t intgr dans les noyaux officiels
  Linux/MIPS 2.1.x.


  22..11..44..  LLaa NNeettppoowweerr 110000

  Le Netpower 100 est apparemment un Acer PICA dguis. Il devrait, par
  consquent, tre support mais ce n'a pas t test. Si un problme
  apparat alors, c'est probablement la dtection de la machine.


  22..11..55..  LLaa NNiinntteennddoo 6644


  La Nintendo 64 est une console de jeux base sur le R4300 avec 4 Mb de
  RAM. Ses puces graphiques ont t dvelopp par Silicon Graphics pour
  Nintendo. En ce moment, ce portage est encore un rve et il continuera
  de l'tre jusqu' ce que Nintendo dcide de publier les informations
  techniques ncessaires. La question qui reste est de savoir si c'est
  une bonne ide.


  22..11..66..  LL''iinnddyy ddee SSiilliiccoonn GGrraapphhiiccss

  L'indy est (principalement), en ce moment, la seule machine de Silicon
  Graphics support. L'unique carte graphique supporte est la carte
  Newport aka "XL" graphique. L'indy existe avec un grand nombre
  d'options de CPU  des taux d'horloge variables, tous sont supports.
  Il n' y a, pour l'instant, aucun serveur X possible pour l'indy ; Alan
  Cox (alan@lxorguk.ukuu.org.uk) est en train de travailler sur l'une
  d'entre elles.


  22..11..66..11..  NNoommbbrreess bbiizzaarrrreess ddee mmmmooiirree ppoossssiibbllee

  Au dmarrage, le noyau sur l'Indy rapportera la mmoire possible avec
  un message du type :

   27976k/163372k available (1220k kernel code, 2324k
  data)




  La grosse diffrence entre la premire paire de nombres est du 
  l'aire de 128 Mb dans l'espace d'adressage de la mmoire de l'Indy qui
  reflte les 128 premiers Mb de la mmoire. La diffrence entre les 2
  nombres sera toujours proche de 128 Mb et n'indique pas un quelconque
  problme.


  22..11..66..22..  PPrroobbllmmeess rreennccoonnttrrss aavveecc ddeess PPRROOMM IInnddyy

  Plusieurs personnes ont rapport l'existence de ces problmes avec
  leur machine aprs les avoir mis  jour typiquement  partir de parts
  en excdent. Il y a plusieurs versions possibles de PROM pour l'Indy.
  Les machines, dotes d'une version d'une vieille PROM, et qui ont t
  mis  jour vers une variante d'un trs rcent CPU comme un module
  R4600SC ou R5000SC peuvent se cracher pendant l'auto_test avec un
  message du type :

       Exception: < vector=Normal>
       Status register: 0x30004803< CU1,CU0,IM7,IM4,IPL=???,MODE=KERNEL,EXL,IE>
       Cause register: 0x4000< CE=0,IP7,EXC=INT>
       Exception PC: 0xbfc0b598
       Interrupt exception
       CPU Parity Error Interrupt
       Local I/O interrupt register 1: 0x80 < VR/GIO2>
       CPU parity error register: 0x80b< B0,B1,B3,SYSAD_PAR>
       CPU parity error: address: 0x1fc0b598
       NESTED EXCEPTION #1 at EPC: 9fc3df00; first exception at PC: bfc0b598




  Dans ce cas, vous devrait mettre  jour votre PROM de la machine vers
  une version plus rcente ou retourner vers un version du CPU plus
  vieille.  Habituellement les modules R4000SC ou R4400SC devrait
  fonctionner dans ce cas-l. Juste pour tre bien clair, ceci est un
  problme qui n'a pas de rapport avec Linux. Ceci est mentionn ici
  uniquement parce que plusieurs utilisateurs de Linux ont pos des
  questions  propos de a.


  22..11..66..33..  SSuuppppoorrtt ddee EELLFF ddaannss lleess vviieeiilllleess vveerrssiioonn ddee PPRROOMM

  Les vieilles versions de PROM ne reconnaissent pas le format binaire
  ELF utilis par le noyau de Linux, ce qui empche de booter
  directement sur Linux. La solution prfrable pour a, est,
  videmment, une mise  jour de la PROM. Une autre possibilit est
  d'utiliser Sash d'IRIX 5 ou une version  plus rcente pour booter le
  noyau. Sash sait comment charger les binaires ELF et ne fait pas
  attention si c'est un noyau IRIX ou Linux. Tapez simplement ``Sash''
  sur l'cran de la prom. Vous devriez obtenir un autre prompt shell,
  cette fois  partir de Sash. Maintenant lancer Linux comme d'habitude.


  Sash peut lire les systmes de fichiers EFS et XFS, ou lire le noyau 
  partir du bootp / tftp. Ce qui veut dire que si vous tentez d'utiliser
  Sash pour booter le noyau d'un disque local, vous devrez encore avoir
  une installation minimal d'IRIX sur votre systme.


  22..11..66..44..  PPoouurrqquuooii yy--aa--tt--iill ttaanntt ddee mmmmooiirree rrsseerrvv ssuurr mmoonn IInnddyy ??

  Au dmarrage, le message `Memory: ...' sur un Indy dit qu'il y a 128
  Mb de RAM rserv. Ceci est ok ; exactement comme l'architecture PC
  qui possde un interval dans son espace de mmoire de 640 Kb  1024
  Kb, l'Indy possde une aire de taille 128 Mb dans sa place mmoire o
  les 128 premiers Mb de sa mmoire sont reflts. Linux connat ce
  problme et donc ignore cette partie de mmoire, ainsi que le message.


  22..11..77..  LLaa SSiilliiccoonn GGrraapphhiiccss CChhaalllleennggee SS

  Cette machine est trs similaire  l'Indy ; la diffrence est qu'il
  n'a pas de clavier et de carte GFX mais possde un adaptateur SCSI
  additionnelle bas sur le WD33C95. Cet adaptateur hte n'est pas
  encore support.


  22..11..88..  SSiilliiccoonn GGrraapphhiiccss IInnddiiggoo

  Cette machine est uniquement mentionn ici car, occasionnellement, des
  gens le confonde avec un Indy. La srie Indigo a pourtant une
  architecture diffrente et par consquent n'est pas encore implment.
  Andrew R. Baker (andrewb@uab.edu) a annonc un projet universitaire
  pour porter Linux vers l'Indigo  partir du 2 janvier 1999.


  22..11..99..  CCoonnssoollee ssrriiee ssuurr ddeess mmaacchhiinneess SSGGII

  Vrifiez que le noyau que vous tes en train d'utiliser inclus le
  driver appropri pour une interface et une console srie. Mettez la
  variable d'environnement de la console ARC soit  la valeur d1 soit 
  d2 pour l'Indy et le Challenge S par rapport  l'interface srie que
  vous utilisez comme console.

  Si vous avez le problme qui affiche tous les messages du noyau sur la
  console srie lors du dmarrage alors que tout est manquant lorsque
  l'initialisation dbute, alors vous avez probablement le mauvais setup
  pour /dev/console. Vous pouvez trouver plus d'informations  propos de
  cela dans la documentation du  source du noyau Linux ; il est dans
  /usr/src/linux/Documentation/serial-console.txt. Si le source du noyau
  est install.





  22..11..1100..  LLeess mmaacchhiinneess bbaasseess ssuurr llee mmoottoorroollaa 6688kk ccoommmmee ll''IIrriiss 33000000

  Il y a de trs vieilles machines, srement de plus de 10 ans  l'heure
  qu'il est. Comme ces machines ne sont pas bases sur les processeurs
  MIPS, ce document n'est pas le meilleur moyen pour chercher des
  informations. Cependant, dans le but de rendre les choses plus
  simples, ces machines ne sont pas courrament support.


  22..11..1111..  LLee VViissPPCC SSGGII

  Celui-ci est actuellement un systme bas sur l'architecture x86, par
  consquent pas couvert par cette FAQ. Mais pour fournir des rponses
  simples  votre recherche, voila : Ken Klingman
  (kck@mailbox.esd.sgi.com) a post le 17 janvier 1999 dans la liste
  lectronique Linux de SGI :

  Nous somme en train de travailler dessus. Nous sommes actuellement
  tout prs de fournir un support systme de bas niveau dans la release
  2.2. Les logiciels uniquement sous X et OpenGl devrait suivre
  relativement vite, mais le matriel acclr pour OpenGL est encore
  remis. Allez  www.precisioninsight.com pour des nouvelles  propos du
  matriel acclr pour OpenGL.



  Pour plus d'informations, lisez la documentation du noyau Linux 
  partir des versions 2.2.0. Il y a des informations additionnelles
  possibles sur le web  www.linux.sgi.com/intel/. Notez que les gens de
  SGI/MIPS et SGI/Intel travaille indpendamment les uns des autres, par
  consquent les sources dans le CVS anonyme sur linux.linux.sgi.com
  peut ou ne peut pas fonctionner sur les machines Intel ; nous ne
  testons pas a.


  22..11..1122..  AAuuttrreess mmaacchhiinneess ddee SSiilliiccoonn GGrraapphhiiccss

  Aujourd'hui, aucune autre machine de Silicon Graphics n'est support.
  Ceci s'applique aussi aux trs vieux systme bass sur le Motorola
  68k.


  22..11..1133..  LLaa PPllaayyssttaattiioonn SSoonnyy

  La station de jeux Sony est bas sur un R3000 driv et utilise un
  ensemble de composants graphiques dvelopp par Sony lui-mme. Alors
  que la machine, en thorie, devrait tre capable de faire fonctionner
  Linux, un portage est difficile puisque jusqu'ici Sony n'a pas fournis
  les informations technique ncessaire. Ceci laisse encore la question
  de l'utilit d'un portage sans rponses. Donc, pour rsumer, rien n'a
  encore t ajout bien que, jusqu'ici, normment de personne aient
  montr leur intrt pour l'utilisation de Linux sur une station de
  jeux.


  22..11..1144..  LLee SSNNII RRMM220000CC

  A l'oppos du RM200 (voir plu bas), cette machine possde des slots
  EISA et PCI. Le RM200 est support  l'exception de la possibilit du
  contrleur SCSI sur carte NCR53c810A.


  22..11..1155..  LLee SSNNII RRMM220000

  Si votre machine possde  la fois les slots EISA et PCI, alors c'est
  un RM200C ; s'il vous plat voyez juste au-dessus. A cause des lgres
  diffrences architecturales, cette machine n'est pas support en ce
  moment dans les sources officiels. Michael Engel
  (engel@numerik.math.uni-siegen.de) s'est dbrouill pour rendre son
  RM200 utilisable partiellement mais les patches ne sont pas encore
  inclues dans les sources officiels du Linux/MIPS.

  22..11..1166..  LLee SSNNII RRMM330000CC

  Le RM300 est techniquement trs similaire au RM200C. Il devrait tre
  support par le noyau Linux courant, mais nous n'avons reus aucun
  rapport.


  22..11..1177..  LLee SSNNII RRMM440000

  Le RM400 n'est pas support.


  22..11..1188..  LLee PP44003322 aallggoorriitthhmmiiqquuee

  Le port P4032 fonctionne toujours, au moment de l'criture de ce
  manuel, avec le noyau Linux 2.1.36.


  22..11..1199..  LLee PP55006644 aallggoorriitthhmmiiqquuee

  Le P5064 est simplement une variante 64 bits du P4032 bas sur le
  R5000. Il n'est pas encore support mais un port Linux sera prt
  bientt.


  22..11..2200..  LLeess ssrriieess DDEECCssttaattiioonn

  Le support pour les stations DEC est en cours de dveloppement, Paul
  M. Antoine l'ayant dbut. Aujourd'hui la plus part du travail est
  fait par Harald Koerfgen (harald.koergfgen@netcologne.de) et d'autres
  personnes. Sur l'InterNet, des informations en rapport aux stations
  DEC peuvent tre trouv  .  Le but est de supporter tous les
  diffrents parfums des stations DEC qui existent.

  Voici la liste des modles des stations DEC que nous connaissons :

    2100, nom de code  PMAX,

    3100, identique que le 2100 sauf le R2000A/R2010A @ 16 MHz

    5000/xx (Personal DECstation), nom de code MAXine

    5000/1xx, nom de code 3MIN

    5000/200, nom de code 3MAX

    5000/2x0, nom de code 3MAX+

    5100, nom de code MIPSMATE

  Le 2100 possde un processeur R2000A/R2010A  12 MHz, le 5000/240 un
  processeur  40 MHz (Qu'est-ce-qu'avait le 5k/260 ?) et le 5100 un
  processeur R3000A  20 MHz. Les autres 5000 mentionn ont un
  processeur R3000A/R3010A  20, 25, ou 33 MHz. Le MAXine et le 3MIN ont
  le processeur et le cache sur une carte fille spar qui peuvent tre
  chang avec un processeur R4000  50 MHz.


  Au moment de cette rdaction, les drivers des matriels sries et
  Ethernet pour les IC qui sont sur la carte ont t dvelopp, la 3MIN
  boot en simple utilisateur.


  22..11..2211..  LLee MMIIPPSS MMaaggnnuumm 44000000 // OOlliivveettttii MM770000--1100

  Ces deux machines sont presque compltement identique. Revenons sur
  l'initiative d'ACE, Olivetti a brevet le projet Jazz et distribu la
  machine avec Windows NT comme OS. MIPS Computers Systems, Inc. ont
  achet eux-mmes le projet Jazz et l'ont distribu en tant que sries
  de machine MIPS Magnum 4000. Les systmes Magnum 4000 sont distribus
  avec les systmes d'exploitation Windows NT et RISC/OS.

  Les caractristiques matriels de la machine dpendait du systmes
  d'exploitation qui tait install. Linux/MIPS supporte uniquement la
  caractristique "little endian" sur ces deux types de machines. Depuis
  que le M700-10 est uniquement distribu comme une machine NT, tous les
  machines M700-10  ont cette caractristiques d'installes. Le cas du
  MIPS Magnum est quelque peu plus complexe. Si votre machine a t
  configur en "big endian" pour RISC/OS alors vous avez besoin de
  recharger la caractristique "little endian". Cette caractristique a
  t  l'origine incluse sur une disquette avec chaque Magnum. Si vous
  n'avez pas la moindre disquette, vous pouvez la tlcharger via le ftp
  anonyme  ftp.fnet.fr.

  Il est possible de reconfigurer le M700 pour des oprations en
  positionnant les variables d'environnement "ConsoleIn" et "ConsoleOut"
  du matriel  multi()serial(0)term(). Puis essayez la commande
  "listdev" qui montrera les matriels ARC possibles.

  Dans bien des cas, comme lorsque la carte graphique G364 est manquante
  mais o la console est toujours configur pour utiliser un mode
  graphique normal, il sera ncessaire de configurer le jumper JP2 sur
  la carte. Aprs le prochain reset, la machine rebootera avec la
  console sur le COM2.

  22..11..2222..  LLee MMIIPPSS MMaaggnnuumm 44000000SSCC

  Le MIPS Magnum 4000SC est le mme que le Magnum 4000 (voir plus bas) 
  l'exception qu'il utilise un CPU R4000SC.

  22..11..2233..  LLeess VVaaxxSSttaattiioonnss

  Comme le nom l'indique dj, cette machine est un membre de la famille
  VAX de Digital Equipment. Il est mentionn ici car beaucoup de
  personne le confonde souvent avec les MIPS de Digital bas sur la
  famille des stations DEC  cause de leur numrotation semblable. Ces
  deux familles d'architecture partagent de petites similitudes
  techniques. Malheureusement, la VaxStation, comme toutes la famille
  des VAX, n'est pas support.


  22..22..  LLeess ttyyppeess ddee pprroocceesssseeuurrss

  22..22..11..  LLaa ffaammiillllee ddeess RR22000000 eett ddeess  RR33000000

  Le R2000 est le processeur MIPS originel. C'est un processeur 32 bits
  qui avait une horloge  8 MHz dans les annes 85 quand le premier
  processeur MIPS arriva sur le march. Plusieurs versions possdent une
  vitesse d'horloge plus rapide : par exemple, le R3000 est un modle
  100% compatible du R2000, il est juste plus rapide. A cause de leur
  importante compatibilit, quand ce document parle du R3000, dans bien
  des cas, il se passe la mme chose pour le R2000.

  Le R3000 est simplement un R2000 plus un FPU R3010 et 64k de mmoire
  cache fonctionnant  plus de 40MHz et tous cela intgr sur la mme
  carte. Le support du processeur R3000 est mis au point en ce moment
  par de nombreuses personnes. Harald Koerfgen
  (harald.koerfgen@netcologne.de) et Gleb O. Raiko
  (raiko@niisi.msk.ru)ont tous les deux travaill indpendamment sur des
  patches qui ne sont pas encore intgr dans les sources officiels de
  Linux/MIPS.


  22..22..22..  LLee RR66000000

  Quelques fois des gens confonde le R6000, un processeur MIPS, avec le
  RS6000, une sries de stations de travail vendu par IBM. Donc si vous
  avez lu ce document dans l'espoir de trouver plus d'informations de
  Linux sur les machines IBM, vous avez lu le mauvais document.

  Le R6000 n'est pas encore support en ce moment. C'est un processeur
  MIPS 32 bits ISA 2 et un morceau de silicone plutt intressant et
  bizarre. Il a t dvelopp et produit par une compagnie appel BIT
  Technology. Plus tard, NEC pris la suite de la production de semi-
  conducteur. Il tait construit avec la technologie ECL, la mme
  technologie que l'on utilisait et que l'on utilise encore pour
  construire des composants extrmement rapide comme ceux utiliss dans
  les ordinateurs Cray. Le processeur avait ses TLB implment comme une
  partie du dernier couple de lignes de la mmoire cache primaire
  externe, une technologie appel TLB slice. Ceci veut dire que sa MMU
  est substantiellement diffrent de celles de la srie R3000 ou R4000,
  ce qui est encore une des raisons qui explique pourquoi le processeur
  n'est pas support.


  22..22..33..  LLaa ffaammiillllee ddeess RR44000000 eett ddeess RR55000000

  Linux supporte la plus part des membres de la famille des R4000. En ce
  moment, il y a les R4000PC, R4400PC, R4300, R4600, R4700, R5000,
  R5230, R5260. Plusieurs autre fonctionnent probablement assez bien.

  Ceux qui ne sont pas support sont les CPU R4000MC et R4400MC (ce sont
  des systmes multiprocesseurs) ainsi que les systmes R5000 avec une
  mmoire cache de second niveau contrl par CPU. Ce qui veut dire que
  le cache est contrl par le R5000 lui mme par opposition aux
  contrleurs de mmoire cache de second niveau externe. La diffrence
  est importante car, contrairement aux autres systmes, spcialement
  les PC, sur les MIPS, le cache est visible sur l'architecture et
  ncessite d'tre contrl par software.

  spcial remerciement  Ulf Carlsson (grim@zigzegv.ml.org) qui a
  amlior le module CPU en dbugant le support R4000SC / R4400SC.


  22..22..44..  LLee RR88000000

  Le R8000 n'est toujours pas support en partie  cause de son
  processeur qui est relativement rare et est uniquement utilis dans
  quelques machines SGI, en partie  cause des dveloppeurs de
  Linux/MIPS qui n'ont pas de tels machines.

  Le R8000 est un morceau de silicone plutt intressante. A la
  diffrence des autres membres de la famille MIPS, c'est un ensemble de
  7 composants. Son cache et son architecture TLB est plutt diffrent
  des autres membres de la famille MIPS. Il est n dans le but de
  permettre que le point flottant rcompense Silicon Graphics avant que
  le R10000 soit fini.

  22..22..55..  LLee RR1100000000

  LE R10000 est n'est pas encore support  cause des dveloppeurs de
  Linux/MIPS qui n'ont de machine R10000.
  33..  LLeess ddiissttrriibbuuttiioonnss LLiinnuuxx..

  33..11..  LLaa RReeddHHaatt

  Pour MIPSeb, il y a la Rough Cuts Linux, nouveau nom de la Hard Hat
  Linux, qui est plus qu'une simple Red Hat Linux 5.1 porte pour
  MIPSeb. Vous pouvez l'obtenir  l'adresse
  ftp.linux.Sgi.com/pub/hardhat. Il est encore empaquet avec les
  distributions du M68k, de l'UltraSparc et du PowerPC dans un paquet
  appel "Rough Cuts" distribu par Red Hat, et on peut l'obtenir l o
  les produits de Red Hat sont vendus. Un moyen trs pratique pour
  l'obtenir sans avoir  tlcharger 280 Mb, c'est de passer commande 
  Rough Cuts directement  partir de la Red Hat  l'adresse
  www.redhat.com/products.phtml/RC1000. De plus, il y a une distribution
  bas sur la Red Hat 5.2 fait pour les Qubes Cobalt; ces binaires
  fonctionneront parfaitement sur d'autres architectures MIPSel, fournis
   intel.cleveland.lug.net/pub/Mipsel.


  44..  LLeess rreessssoouurrcceess rrsseeaauuxx ddee LLiinnuuxx//MMIIPPSS..

  44..11..  LLeess sseerrvveeuurrss FFTTPP aannoonnyymmeess..

  Les deux principaux serveurs FTP anonymes pour Linux/MIPS sont :

    ftp.linux.sgi.com Ce serveur devrait satisfaire presque tous vos
     envies ftp en rapport  Linux/MIPS. Vraiment.

    ftp.fnet.fr Ce serveur est, en ce moment, un petit peu dmod. Il
     est cit ici principalement pour tre exhaustif et pour les
     personnes qui trouve leur intrt dans des logiciels
     prhistoriques.

  Sur tous ces serveurs ftp, il y a une liste de sites miroirs que vous
  pourrez utiliser pour des accs plus rapides.


  44..22..  LLeess sseerrvveeuurrss CCVVAA aannoonnyymmeess..

  Pour ceux qui veulent toujours rester au bord du gouffre et veulent
  viter d'avoir  tlcharger des patches ou des fichiers compltement
  "tar" (tarballs), nous avons aussi des serveurs CVS anonymes. En
  utilisant un serveur CVS, vous pouvez vrifier l'arbre des sources de
  Linux/MIPS avec la commande suivante :

     cvs -d :pserver:cvs@linus.linux.sgi.com:/cvs login
     (Uniquement utile si vous vous connect pour la premire fois sur le serveur CVS anonyme, le mot de passe est "cvs")
     cvs -d :pserver:cvs@linus.linux.sgi.com:/cvs co <depot>



  ou vous insrez Linux, libc ou gdb pour <dpt>.

  L'autre archive CVS importante de la communaut Linux est
  vger.rutgers.edu o un nombre important de code a t rassembl avant
  d'tre envoy vers Linus pour distribution. Bien que vger lui mme
  n'offre plus d'accs anonymes, il y a des sites miroir qui fournissent
  des accs anonymes. Pour des explications sur la manire d'y accder
  voir . Les modules qui ont de l'intrt sont "linux", "modutils",
  "pciutils" et "netutils".


  44..33..  LLeess sseerrvveeuurrss WWeebb..

  Les deux serveurs web primaires anonymes pour Linux/MIPS sont

    www.linux.sgi.com Ce serveur couvre la plus grande partie de
     Linux/MIPS; c'est un peu le centre SGI mais depuis que Linux/MIPS
     essaye d'tre le mme sur chaque plate-forme, la plus part de ces
     informations intressent tous les utilisateurs.

    lena.fnet.fr Ce serveur est en ce moment plutt dsuette; il est
     inclus ici principalement pour tre exhaustif.

  Tous ces serveurs ont des miroirs disperss partout  travers le
  monde; vous devrait pouvoir utiliser un avec de meilleur performance.


  44..44..  LLeess MMaaiilliinngg lliissttss..

  Il y a 3 listes de mails orientes Linux/MIPS :

    linux-mips@fnet.fr Cette liste de mails est utilis par la plus
     part des communications de toutes sortes apparents non-SGI. La
     souscription est faite manuellement par une personne; envoyez votre
     requte de souscription  linux-mips-mips@fnet.fr. Vous pouvez
     quitter la liste en envoyant

     unsubscribe <votre adresse e-mail>



    linux@engr.sgi.com Cette liste de mails possde en ce moment le
     plus de trafic. C'est un peu le centre de SGI mais elle est,
     nanmoins, intressante spcialement pour les dveloppeurs car un
     bon nombre d'ingnieurs de SGI ont souscrits  cette liste. La
     souscription  cette liste est faite via Majordomo
     (majordomo@engr.sgi.com); envoyez seulement un e-mail avec les mots
     "subscribe linux-mips". Pour se ds-inscrire envoyez "unsubscribe
     linux-mips". Notez que vous devez tre inscrit si vous voulez
     envoyer des e-mails. Le nombre croissant de spams nous a forc 
     mettre en place cette police.

    linux-mips@vger.rutgers.edu Cette liste de mail n'a pas normment
     de trafic car la plus part des gens ont tendance  utiliser une des
     listes ci-dessus. l'inscription est faite par Majordomo
     (majordomo@vger.rutgers.edu); envoyez juste un e-mail avec les mots
     "subscribe linux-mips". Et pour ce dsinscrire "unsubscribe linux-
     mips".


  55..  LL''iinnssttaallllaattiioonn ddee LLiinnuuxx//MMIIPPSS eett lleess pprroobbllmmeess ccoouurraannttss..

  55..11..  QQuuaanndd llee bboooott ssuurr NNFFSS cchhoouuee..

  Habituellement, la raison est que les gens ont dcompact l'archive
  tar sous IRIX et pas sous linux. Etant donn que la reprsentation des
  fichiers matriels sous NFS n'est pas standardis entre les variantes
  Unix, a plante. Le symptme est que le systme plante avec le message
  d'erreur "Warning: unable to open an initial console." juste aprs le
  montage du systme de fichiers NFS.

  Maintenant, la correction est d'utiliser un systme Linux (pas
  obligatoirement sous MIPS) pour dcompacter l'archive d'installation
  dans le serveur NFS. Le serveur NFS doit tre lui-mme du type UNIX.


  55..22..  NNooyyaauu ccoommppiill eeuuxx--mmmmeess cchhoouuee lloorrss dduu bboooott..

  Lorsque j'ai construit mon propre noyau, il s'est crach. Sur un Indy,
  le message de crach ressemble  celui qui suit; le mme problme
  frappe aussi d'autres machines mais peut avoir l'air compltement
  diffrent.

     Exception: < vector=UTLB Miss>
     Status register: 0x300004803< CU1,CU0,IM4,IPL=???,MODE=KERNEL,EXL,IE>
     Cause register: 0x8008< CE=0,IP8,EXC=RMISS>
     Exception PC: 0x881385cc, Exception RA: 0x88002614
     exception, bad address: 0x47c4
     Local I/O interrupt register 1: 0x80 < VR/GIO2>
     Saved user regs in hex ( <&>gpda 0xa8740e48, &_regs 0xa8741048):
       arg: 7 8bfff938 8bfffc4d 880025dc
       tmp: 8818c14c 8818c14c 10 881510c4 14 8bfad9e0 0 48
       sve: 8bfdf3e8 8bfffc40 8bfb2720 8bfff938 a8747420 9fc56394 0 9fc56394
       t8 48 t9 8bfffee66 at 1 v0 0 v1 8bfff890 k1 bad11bad
       gp 881dfd90 fp 9fc4be88 sp 8bfff8b8 ra 88002614

     PANIC: Unexpected exception



  Ce problme est caus par un bug qui n'est pas encore fix dans
  Binutils version suprieur  2.7. Pour corriger, change la ligne
  suivante dans le fichier arch/mips/Makefile :

     LINKFLAGS       = -static -N


  en :

     LINKFLAGS       = -static




  55..33..  LLee bboooott ssuurr llee nnooyyaauu dd''uunn IInnddyy cchhoouuee aavveecc lleess mmeessssaaggeess
  dd''eerrrreeuurrss ddee llaa PPRROOMM


     >> boot bootp()/vmlinux
     73264+592+11520+331680+27848d+3628+5792 entry: 0x8df9a960
     Setting $netaddres to 192.168.1.5 (from server deadmoon)
     Obtaining /vmlinux from server deadmoon

     Cannot load bootp()/vmlinux
     Illegal f_magic number 0x7f45, expected MIPSELMAGIC or MIPSEBMAGIC.



  Ce problme arrive seulement pour des Indy avec de trs vielle
  versions qui ne peuvent par grer les formats binaires ELF que Linux
  utilise. Une solution  ce problme est en train d'tre mise en place.


  55..44..  OOuu ppuuiiss--jjee ppoossiittiioonnnneerr llee ttyyppee lliittttllee eennddiiaann ppoouurr mmoonn SSNNII ??

  Les systmes SNI peuvent oprer  la fois en modes big endian et
  little endian. En ce moment, Linux/MIPS supporte uniquement le
  matriel little endian. C'est un peu malchanceux tant donn que SNI
  n'a pas utilis ce matriel pour gagner du temps, puisqu'il se penche
  sur NT.

  Quand le matriel fonctionne en mode big endian, le matriel  l'air
  semblable  un Indy SGI  qui est dj support, par consquent fix le
  support SNI sera relativement facile. Les programmeurs systmes
  intresss peuvent prendre contact avec Ralf Bchle (ralf@gnu.org).


  55..55..  lldd ppllaannttee aavveecc llee ssiiggnnaall 66


     collect2: ld terminated with signal 6 [Aborted]



  C'est un bug connu dans les trs vielles versions de binutils. Vous
  devrez la mettre  jour  la version 2.8.1 plus utiliser des patches
  trs rcents.


  66..  MMiilloo

  Milo est la chargeur de boot utilis pour les systmes MIPS little
  endian avec le matriel ARC, en ce moment la famille Jazz et le SNI RM
  200. Alors que Milo utilise le mme nom et a un but similaire  la
  version Alpha de Milo, ces deux milos n'ont rien en commun. Ils sont
  dvelopps par diffrentes personnes, ne partage pas de code et
  fonctionne sur des plate-formes matrielles diffrentes. Le fait
  qu'ils possdent tous les deux le mme nom est juste une sorte
  d'"accident" historique.

  Il est projet de ne plus utiliser Milo pour les besoins futures.


  66..11..  CCoonnssttrruuiirree MMiilloo

  La procdure de construction de Milo est dcrit en dtail dans les
  fichiers README dans le paquet Milo. Etant donne que Milo dpend des
  fichiers d'en-tte du noyau qui ont chang de nombreuses fois, Milo ne
  peut souvent pas tre construit facilement; cependant, la distribution
  Milo inclus les binaires pour  la fois Milo et Pandora.


  66..22..  PPaannddoorraa

  Pandora est un simple dbuggeur. Il a t dvelopp au dbut dans le
  but d'analyser des systmes non-documents. Pandora inclus un des-
  assembleur, des fonctions d'analyse de mmoire et plus. Si vous voulez
  seulement utiliser Linux, vous n'avez pas besoin d'installer Pandora.
  Quoiqu'il prenne peu de place.


  77..  LLeess mmoodduulleess cchhaarrggeeaabblleess

  Utiliser les modules Linux/MIPS est plutt facile; il a march comme
  prvu pour des personnes qui l'ont utilis sur d'autres systmes
  Linux. Si vous dsirez travailler sur un systme modulaire, alors vous
  devrez avoir au moins la version de noyau 980919 et modutils install
  avec une version suprieur  2.1.121. Des versions plus vielles ne
  fonctionneront pas.


  88..  CCoommmmeenntt iinniittiiaalliisseerr uunn ccrroossssccoommppiilleerr??

  Avant tout, allez tlcharger les paquetages sources suivants :

    binutils-2.8.1.tar.gz

    egcs-1.0.2.tar.gz

    glibc-2.0.6.tar.gz

    glibc-crypt-2.0.6.tar.gz

    glibc-localedata-2.0.6.tar.gz

    glibc-linuxthreads-2.0.6.tar.gz

  C'est les versions courantes recommandes. Des versions plus vielles
  peuvent ou ne peuvent pas fonctionner. Si vous essayez d'utiliser des
  versions plus vielles, s'il vous plat n'envoyez pas de rapport de
  bugs ; nous n'y attacherons aucune importance. Lors de l'installation,
  s'il vous plat, installez tous dans l'ordre : binutils, egcs puis
  glibc. A moins que vous ayez des versions plus vieilles dj install,
  changer l'ordre fera chouer le processus. La description suivante de
  l'installation mentionne un nombre de patches que vous pouvez prendre
  des paquets SRPM respectifs sur ftp.linux.sgi.com. Cependant, depuis
  que ces paquets SRPM ont pour but d'tre compil nativement, il n'est
  pas possible de juste les recompiler.


  88..11..  BBeessooiinnss eenn eessppaaccee ddiissqquuee

  Pour l'installation, vous aurez  choisir un dossier pour
  l'installation. Je ferais rfrence  ce dossier ensuite avec
  <prefix>.Pour ne pas avoir de problmes, il vaut mieux la mme valeur
  pour <prefix> que pour votre gcc natif. Par exemple, si votre gcc est
  install dans /usr/bin/gcc alors choisissez /usr pour <prefix> Vous
  devez utiliser la mme valeur <prefix> pour tous les paquetages que
  vous allez installer.

  Pendant la compilation, vous aurez besoin d'environ 31 Mb d'espace
  disque pour binutils; pour l'installation, vous aurez besoin de 7 Mb
  d'espace disque pour une partition sur <prefix> La construction d'egcs
  requiert 71 Mb et l'installation 14 Mb. La librairie GNU libc a besoin
  de 149 Mb d'espace disque durant la compilation et 33 Mb pour
  l'installation. Notez que ces nombres sont juste une indication et
  devrait diffrer significativement pour diffrents processeurs et
  architectures de systme d'exploitation.


  88..22..  OOrrddrree ddeess oocctteettss

  Une des caractristiques spciales de l'architecture MIPS est que tous
  les processeurs except le R8000 peuvent tre configur pour
  fonctionner soit en mode big endian soit en mode little endian.
  L'ordre des octets signifie la manire dont le processeur garde les
  nombres de plusieurs octets en mmoire. Les machines big endian garde
  l'octet de poids fort au bas de l'adresse tandis que les machines
  little endian le garde  l'adresse la plus haute. Pensez que c'est
  comme si vous criviez des nombres de plusieurs chiffres de gauche 
  droite et vice versa.

  Dans le but d'initialiser le compilateur crois correctement, vous
  devez connatre l'ordre des octets de la cible du compilateur crois.
  Si vous ne le savez pas, vrifiez la section "Plate-formes
  matrielles" pour l'ordre des octets des machines.


  88..33..  NNoommss ddee ccoonnffiigguurraattiioonn

  Plusieurs paquetages bas sur autoconf supporte plusieurs
  architectures diffrentes et plusieurs systme d'exploitation. Dans le
  but de faire la diffrence entre toutes ces configurations, les noms
  sont construits comme suit <cpu>-<compagnie>-<SE> ou mme
  <cpu>-<compagnie>-<noyau>-<SE>. Exprimant cette manire, les noms de
  configurations de Linux/MIPS sont mips-inconnu-linux-gnu pour des
  cibles big endian pour mipsel-inconnu-linux-gnu pour des cibles little
  endian. Ces noms sont un peu long et peuvent tre raccourcie en mips-
  linux ou misel-linux. Vous devez utiliser les mme noms de
  configurations pour tous les paquetages qui comprend votre
  environnement de compilation crois. Ainsi, bien que des noms comme
  mips-sni-linux ou misel-sni-linux sont de noms de configurations
  lgales, utilisez plutt mips-linux ou mipsel-linux; Ce sont des noms
  de configurations connu pour les autres paquetages comme les sources
  du noyau Linux et autrement ils devraient tre changs pour la
  compilation crois. Je rfrerais  ces noms de configurations cibles
  aprs avec <cible>.


  88..44..  IInnssttaallllaattiioonn ddee GGNNUU BBiinnuuttiillss..

  Ceci est la premire et la plus simple des parties - au moins aussi
  longtemps que vous essaierez d'installer le parfum d'UNIX aprs un mi-
  chemin plutt sain. Entrez juste dans le dossier avec assez d'espace
  libre et suit les commandes suivantes :

     gzip -cd binutils-<version>.tar.gz | tar xf -
     cd binutils-<version>
     patch -p1 < ../binutils-<version>-mips.patch
     ./configure --prefix=<prefix> --target=<target>
     make CFLAGS=-O2
     make install



  Ceci fonctionne habituellement trs bien. Sur certaines machines
  l'utilisation de  GCC 2.7.X comme compilateur est rput pour dposer
  des core/ C'est un bug connu de GCC et peut tre rpar en passant 
  la version 2.8.1 ou  egcs.


  88..55..  AAsssseerrtt..hh

  Des personnes possdent un vieux en-tte de fichiers assert.h
  install, probablement un reste de l'installation d'un vieux
  compilateur crois. Ce fichier devrait causer aux scripts autoconf de
  planter silencieusement; il n'tait jamais ncessaire et tait
  uniquement install  cause d'un bug dans un version trs vieille de
  GCC. Vrifiez si le fichier <prefix>/<cible>/include/assert.h existe
  dans votre installation. S'il en est ainsi, effacez le simplement : il
  n'aurait jamais du tre install.

  88..66..  PPrreemmiirree iinnssttaallllaattiioonn dd''eeggccss

  Maintenant la partie la moins rigolote commence : c'est le soi-disant
  problme de bootstrap. Dans note cas, cela veut dire que le processus
  d'installation d'egcs a besoin d'une glibc dj install, mais nous ne
  pouvons pas compiler glibc parce que nous n'avons pas encore de
  compilateurs croiss qui fonctionnent. Par chance, vous sauterez cette
  tape si c'est la premire fois que vous installez un compilateur
  crois. Plus tard, lorsque vous aurez dj la glibc installe, les
  choses seront beaucoup plus calme. Donc maintenant, faites :

     gzip -cd egcs-<version>.tar.gz | tar xf -
     cd egcs-<version>
     for i in egcs-1.0.2-libio.patch egcs-1.0.2-hjl.patch \
           egcs-1.0.2-rth1.patch egcs-1.0.2-rth2.patch egcs-1.0.2-rth3.patch \
           egcs-1.0.2-rth4.patch egcs-1.0.2-hjl2.patch egcs-1.0.2-jim.patch \
           egcs-1.0.2-haifa.patch egcs-1.0.1-objcbackend.patch \
           egcs-1.0.2-mips.patch; do patch -p1 -d < ../$i; done
     ./configure --prefix=<prefix> --with-newlib --target=<cible>
     cd gcc
     make LANGUAGES="c"


  Notez que nous avons dlibrment pas construit gcov, protoize,
  unprotoize et les librairies. Gcov n'a aucun sens dans l'environnement
  d'un compilateur crois et protoize et unprotoize pourrait mme
  effacer vos programmes natifs - c'est un bug dans les makefiles de
  gcc. Finalement, nous ne pouvons pas construire la librairies car nous
  n'avons pas encore installer glibc. Si tout a russit, lancez
  l'installation avec :

    make LANGUAGES="c" install




  88..77..  ffllooaatt..hh

  Un autre problme de bootstrap est que la construction de GCC a besoin
  de lancer des programmes sur la machines o GCC gnrera le code, mais
  lorsqu'un compilateur crois fonctionne sur un type de machine
  diffrente, cela ne peut pas marcher. Lors de la construction de GCC,
  cela se passe pour le fichier d'en-tte float.h. Par chance, il y a
  une solution simple : tlcharger le fichier d'en-tte d'un des
  serveurs ftp de Linux/MIPS ou prend le d'une des paquetages de
  binaires de Linux/MIPS natif. Plus tard, lors de la recompilation ou
  habituellement lors de la mise  jour d'egcs, le fichier float.h dj
  install sera dj l puisque float.h change rarement. Installez le
  avec :

     cp float.h <prefix>/<cible/<version>/include/float.h



  o <version> est le numro de version interne de la version d'egcs que
  vous utilisez. Pour egcs 1.0.2, par exemple, vous utiliserez
  egcs-2.90.27 pour <version>. Si ce n'est pas sur - ls est votre
  copain.


  88..88..  IInnssttaalllleerr lleess ssoouurrcceess dduu nnooyyaauu

  L'installation des sources du noyau est simple. Placez les juste dans
  les dossiers de votre choix et configurez les comme des fichiers qui
  seraient gnrs par la procdure qui les installerait. C'est du mme
  type que d'habitude lors des configurations des sources du noyau pour
  une compilation native. Le seul problme est que vous devrez
  rencontrer dedans est que vous devrez avoir besoin d'installer des
  programmes GNU requie comme bash ou crire par dessus la version des
  programmes fournis par le constructeur en plaant la version GNU
  plutt dans la variable PATH. Lors de la configuration, vous devrez
  rpondre  la question "Utilisez vous un compilateur crois ?" ("Are
  you using a crosscompiler?"), c'est l'option CONFIG_CROSSCOMPILER 
  "yes". Lorsque vous avez finis avec la configuration, tapez "make
  clean"; "make depend"; "make". La dernire commande make gnrera le
  fichier d'en-tte <linux/version.h> dont la compilation des programmes
  dpend. Ce fichier est gnr ds le dbut de la commande make, donc
  si vous n'tes pas intress actuellement dans la construction d'un
  noyau, vous devrez interrompre la compilation aprs que ce fichier ait
  t construit. a pourrait tre une bonne ide, cependant, compilez
  quand mme le noyau comme un test pour votre compilateur crois
  nouvellement construit.

  Si vous dsirez uniquement le compilateur crois pour la construction
  du noyau, c'est fait. La librairie libc du compilateur crois est
  uniquement requis pour tre capable de compiler les applications
  utilisateur.


  88..99..  IInnssttaalllleerr llaa GGNNUU lliibbcc

  Faire :

     gzip -cd glibc-2.0.6.tar.gz | tar xf -
     cd glibc-2.0.6
     gzip -cd glibc-crypt-2.0.6.tar.gz | tar xf -
     gzip -cd glibc-localedata-2.0.6.tar.gz | tar xf -
     gzip -cd glibc-linuxthreads-2.0.6.tar.gz | tar xf -
     patch -p1 <../glibc-2.0.6-mips.patch
     mkdir build
     cd build
     CC=<target>-gcc BUILD_CC=gcc AR=<cible>-ar RANLIB=<ciblegt;-ranlib \
           ../configure --prefix=/usr --host=<cible> \
           --enable-add-ons=crypt,linuxthreads,localedata --enable-profile
     make



  Vous avez maintenant une GNU libc compile qui doit encore tre
  install. Ne tapez pas juste

  make install


  Cela crirait par dessus vos fichiers systmes  chaud avec des
  fichiers spcifiques Linux/MIPS ce qui aurait des effets dsastreux.
  Au lieu de cela, installez GNU libc dans d'autre dossiers arbitraires
  <autredos>  partir du quel nous dplacerons les parties que nous
  avons besoin pour la compilation crois dans le dossier cible actuel :

     make install_root=<autredos> install



  Maintenant cd dans <autredos> et finallement installez la GNU libc
  manuellement :

     cd usr/include
     find . -print | cpio -pumd <prefix>/<cible>/include
     cd ../../lib
     find . -print | cpio -pumd <prefix>/<cible>/lib
     cd ../usr/lib
     find . -print | cpio -pumd <prefix>/<cible>/lib




  La GNU Libc contiens aussi une vaste documentation online. Votre
  systme devrait dj avoir une version de cette documentation
  install, donc si vous ne voulez pas installer les pages d'infos, qui
  vous sauveront un peu plus d'un megaoctet, ou si vous l'avez dj
  install, sautez  la prochaine tape :

     cd ../info
     gzip -9 *.info*
     find . -name \*.info\* -print | cpio -pumd >prefix</info




  Si vous ne booter votre installation, c'est maintenant finis.




  88..1100..  RReeccoonnssttrruuiirree eennccoorree eeggccss

  La premire tentative de construction de egcs sera stopp par
  l'absence de la GNU libc. Maintenant que nous avons la libc install,
  nous pouvons reconstruire egcs mais cette fois aussi complet que peut
  l'etre un compilateur crois :

     gzip -cd egcs-<version>.tar.gz | tar xf -
     cd egcs-<version>
     for i in egcs-1.0.2-libio.patch egcs-1.0.2-hjl.patch \
           egcs-1.0.2-rth1.patch egcs-1.0.2-rth2.patch egcs-1.0.2-rth3.patch \
           egcs-1.0.2-rth4.patch egcs-1.0.2-hjl2.patch egcs-1.0.2-jim.patch \
           egcs-1.0.2-haifa.patch egcs-1.0.1-objcbackend.patch \
           egcs-1.0.2-mips.patch; do patch -p1 <../$i; done
     ./configure --prefix=>prefix< --target=<cible>
     make LANGUAGES="c c++ objective-c f77"




  Comme vous pouvez le voir, la procdure est la meme que la premire
  fois  l'exception que nous avons enlevez l'option --with-newlib.
  Cette option tait ncessaire pour viter l'arret de la construction
  de libgcc  cause de l'absence de libc. Maintenant installez avec :

     make LANGUAGES="c c++ objective-c f77" install




  Vous avez presque finis. Tout ce que vous devez faire maintenant est
  de rinstaller float.h qui a t ffac par la dernire commande make
  install. Vous devrez faire cela chaque fois que vous rinstallerez
  egcs comme compilateur crois. Si vous pensez ne pas avoir besoin des
  compilateur d'Objective C ou de F77, vous pouvez les ommetre   partir
  des commandes ci-dessus; chacune d'elles vous feront gagner environ 3
  Mb. Ne construisez pas gcov, protoize ou unprotoize.


  88..1111..  DDeevvrraaiiss--jjee ccoonnssttrruuiirree lleess ccoommppiillaatteeuurrss CC++++,, OObbjjeeccttiivvee CC oouu FF7777
  ??

  The answer to this question largely depends on your use of your
  crosscompiler environment.  If you only intend to rebuild the Linux
  kernel then you have no need for the full blown setup and can safely
  omit the Objective C and F77 compilers.  You must, however, build the
  C++ compiler, because building the libraries included with the egcs
  distribution requires C++.


  88..1122..  GGDDBB

  La construction de GDB comme dbugeur crois est uniquement
  intressant pour les dveloppeurs du noyau; pour eux, GDB devrait leur
  simplifier la vie. Une telle initialisation de dbogage alg est
  consistitu toujours de deux parties : le dbugeur alg GDB
  fonctionne sur une machine et la machine cible fonctionne sous le
  noyau Linux/MIPS qui est dbugu. Les machines sont typiquement
  interconnect avec une ligne srie. Le noyau de la machine cible a
  besoin d'etre quip avec une "souche de dbugeur" qui communique avec
  la machine hote GDB utilsant le protocole srie alg.

  Dpendant de l'architecture cible, vous devriez implmenter la souche
  de dbogeur vous meme. En gnral, vous devrez seuelemnt crire des
  routines trs simple pour la srie. La tache est plutot simplifie par
  le fait que la plupart des machines utilisent un matriel srie
  similaire typiquement bas sur le 8250, 16450 ou des drivs.

  99..  LLiittttrraattuurree

  99..11..  VVooiirr uunn MMIIPPSS ffoonnccttiioonnnneerr ((SSeeee MMIIPPSS RRuunn))

  Auteur : Dominic Sweetman, publi par Morgan Kaufmann, ISBN
  1-55860-410-3.

  Il a pour but d'etre un guide plutot comprhensif pour la
  programmation MIPS, l o il diffre de la programmation des autes CPU
  32 bits. C'est la premire fois que quelqu'un essaye d'crireune
  explication lisible et comprhensive et considre l'immense gamme de
  CPU MIPS possible, et devrait etre trs utile pour quelqu'un
  programmant son MIPS qui n'est isol par quelqu'autre systme
  d'exploitation. Et l'auteur est un enthousiaste pro-unix-libre qui a
  souscrit  la liste de mails Linux/MIPS.

  John Hennessey, pre de l'architecture MIPS, tait assez bienveillant
  pour crire dans la prface " ... ce livre est la meilleur combinaison
  de n'importe quel livre complet et lisible sur l'architecture MIPS..."

  Il inclus un contexte sur les CPU RISC, une description de
  l'architecture et de l'ensemble des instructions incluant les
  instructions du "co_processeur 0" utilis pour le controle du CPU; des
  sections sur les caches, les exceptions, la gestion mmoire et les
  nombres  virgule flottante. Il y a un guide dtaill sur le langage
  assembleur, il toffe sur le portage et de beaux exemples logiciels
  fournis par devoir.

  On peu l'avoir  :

     (europe)

    (US)

  et n'importe o chez les bons marchands de journaux. Il a 512 pages et
  coute environ 50$ aux USA et 39.95 en Angleterre.

  J'ai voulu lister deux autres livres aussi, tous les deux de Morgan
  Kaufmann et peuvent etre command  l'adresse www.mkp.com ou dans de
  bons marchands de journaux :


  99..22..  LLee gguuiiddee dduu ddvveellooppppeeuurrss MMIIPPSS ((TThhee MMIIPPSS PPrrooggrraammmmeerr''ss HHaannddbbooookk))

  Auteurs : Farquhar et Bunce, publi par Morgan Kaufmann, ISBN
  1-55860-297-6.

  Une introduction lisible pour la pratique de la programmation bas
  niveau d'un MIPS, par l'auteur de PMON. Sa force : beaucoup
  d'exemples; sa faiblesse : ne parle pas d'importants parties de
  l'architecture (tel que la gestion de la mmoire, des nombres 
  virgules flottantes et les caches avancs) parce qu'il n'y a pas de
  caractristiques dans les produits "fix" LSI, ce livre a l'intention
  d'etre un partenaire.


  99..33..  AArrcchhiitteeccttuurree ddeess oorrddiinnaatteeuurrss -- UUnnee aapppprroocchhee qquuaannttiittaattiivvee ((CCoomm
  ppuutteerr AArrcchhiitteeccttuurree -- AA QQuuaannttiittaattiivvee AApppprrooaacchh))

  Auteurs : Hennessy & Patterson, publi chez Morgan Kaufmann, ISBN
  1-58860-329-8.

  La bible de l'architecture de l'ordinateur moderne et qui doit etre
  lue si vous voulez comprendre ce que font les programmes qui
  fonctionnent vite ou lentement. Est-ce qu'il parle des MIPS ? Et bien,
  c'est presque entirement  propos de quelque chose proche de MIPS...
  Son unique dfaut est sa taille et son poids - mais  la diffrence de
  gros bouquin, c'est pire  chaque page.


  1100..  LLeess nnoouuvveelllleess ddee LLiinnuuxx//MMIIPPSS

  Un partie de ce chapitre est vraiment historique...

    04-Dcembre-98 Ariel Faigon annonce que SGI a joins Linux
     International.

    13-Octobre-98 Ralf Bchle fixe le support pour les  CPU R4000SC /
     R4400SC.

    12-Octobre-98 Vladimir Roganov rapporte que son systme R3000 est
     maintenant assez stable pour compiler GDB.

    03-Octobre-98 Harald Krfgen rapporte que sa DECstation 5000/133
     fonctionne maintenant en mode single user.  Flicitation!

    29-Septembre-98 Ralf starts rcrit sa FAQ pour se rapprocher de la
     ralit.

    10-Juin-98 ftp.linux.sgi.com offre maintenant un accs CVS anonyme.

    01-Fevrier-98 Le premier produit commercial bas sur Linux/MIPS est
     annonc.

    26-Janvier-98 Du temps gaspill de plus dans cette liste parce que
     le mainteneur est fainant^H^H^H^H ocup  programmer. Le driver
     pour le NCR53c8xx a t modifi et a t test avec succs avec
     plusieurs machines, dont la plus connue est le SNI RM200. Mme
     mieux, la version initial semble tre sur.

     Dj, il y a quelques temps, Thomas Bogendrfer a implment les
     changements ncessaire pour le NCR53C9x driver aka ESP driver, donc
     il y a maintenant un support SCSI pour les adaptateurs intgrs
     dans le MIPS Magnum 4000, l'Olivetti M700-10 et l'Acer PICA.

    28-Novembre-97 Premire sorti public des binaires client X11.

    30-Aout-97 Ouh, encore une fois du temps est gaspills dans cette
     page. Beaucoup de chose s'est pass dans cette intervalle et le
     mainteneur de ces pages est une personne fainante qui prfre
     plutt coder et programmer son systme qu'crire des docs...

     SGI possde maintenant son propre serveur Linux/MIPS atteignable 
     l'adresse www.linux.sgi.com,  avec beaucoup d'information
     spcifique  SGI et pas mal de liens. Le serveur est encore
     atteignable  l'adresse ftp.linux.sgi.com. En plus des binaires,
     sources et docs spcifique aux machines de Silicon Graphics, ce
     serveur a, en plus, tous les autres matires de Linux/MIPS en
     stock. Possible uniquement sur ce serveur est l'archive CVS des
     dveloppeurs pour tlchargement. Dsol, pas encore de CVS
     anonymes.

     Silicon Graphics a support la plus part du travail sur Linux/MIPS
     des dveloppeurs cls de Linux avec le matriel. Il en rsulte que
     le travail a maintenant avanc plus rapidement et Ralf n'est plus
     le cheval de trait solitaire...

     Dj, il est possible pour pas mal de temps que le portage de
     l'Indy soit maintenant dans l'arbre des sources du noyau standard.

     Mission longue, mais finallement atteinte : Thomas Bogendoerfer a
     contribu aux patches pour le driver du NCR53C9x pour le Mips
     Magnum 4000, l'Olivetti M700 et l'Acer PICA.

     La plus part des packages du portage de la Red Hat du MIPS sont
     maintenant possible par tlchargement ftp. L'installation est
     encore une chose d'experts... mais nous travaillons dessus!

     Les amoureux d'Eeecmacs seront heureux d'entendre que sa FAQ a t
     dit par Emacs fonctionnant sur une machine Linux/MIPS.

    6-Mai-97 David Monro sort la version 1.01 de bfsd.  bfsd est un
     dmon qui peut etre utilis pour booter les machines construit par
     MIPS Computersystems, Inc. sur un rseau.

    10-Juin-96 La sortie du noyau Linux/MIPS 2.0.1. Cette sortie
     reprsente un gestionnaire de signal rcrit partiellement qui
     respecte la norme POSIX 1.

    3-Juin-96 Premire sortie des librairies partages pour Linux/MIPS
     bas sur libc instantan 960619.

     Sortie du noyau Linux/MIPS 2.0.1.

    25-Mai-96 David S. Miller commence  travailler sur le support de
     SGI  la Silicon Graphics.

    20-Mai-96 La sortie 1.3.98du noyau ajoute un support pour le SNI
     RM200 PCI.

    27-Mar-96 Linux/MIPS peut fonctionner comme un serveur NFS.

     Le driver CD IDE maintenant supports par Linux/MIPS.

    24-Mar-96 Des rfrences ajoutes  la littraure possible en
     online de SGI sur la FAQ.

    23-Mars-96 Nouveau chapitre dans la FAQ  propos du standard ARC.

    27-Janvier-96 Sortie de Milo 0.26 et un patch du noyau pour
     l'utiliser. Cette sortie passe des paramtres au noyau d'une
     manire compltement diffrente qui rend le portage de Linux/MIPS
     vers d'autre architecture beaucoup plus facile.

    24-Janvier-96 Sortie d'un binaires d'un crosscompiler bas sur
     binutils de la FSF version 2.6. Cette sortie fournis beaucoup de
     nouvelles caractristiques et fixe quelques bugs.

    21-Janvier-96 Warner Losh dbute un portage de Linux/MIPS vers la
     Deskstation rPC44.

    20-Janvier-96 Le noyau Linux/MIPS mis  jour  la version 1.3.58.

     Le patch gcc-2.7.2-1.diffs.gz est sortie.

     Le patch binutils-2.6-1.diffs.gz sort. Ce patch contiens beaucoup
     de bugs fixs. Le Makefiles du noyau de Linux dtectera
     automatiquement si binutils 2.6 ou une version plus vielle est
     install et utilise les nouvelles caractristiques aboutissant  un
     noyau xcutable plus petit qui est spcialement utilis pour les
     boots sur disques.

    15-Janvier-96 Sortie d'un systme de fichier complet racine et /usr
     qui peut etre mont NFS pour utiliser un systme Linux/MIPS comme
     un client sans disque. Un kit de dveloppement native bas sur GCC
     2.7.2, Binutils 2.6 et GNU libc instantan 951218 est inclus aussi
     bien que des utilitaires standards.

    25-Dcembre-95 Linux/MIPS boot un systme de fichiers NFS comme un
     client sans disque. Ceci veut donc dire que le reste du rseau de
     Linux/MIPS est maintenant oprationnelle.

    7-Janvier-95 Soft-N-Hard GMBH et SNI signent une contrat. SNI
     prtera un RM200  Soft-N-Hard pour porter Linux/MIPS dessus.

    22-Septembre-95 L'archive FTP Linux/MIPS et la liste de mails ont
     t dplac  fnet.fr (Il y a beaucoup plus de nouvelles, je n'ai
     pas le temps en ce moment pour le documenter).

    18-Juillet-95 Sortie d'outils de dveloppement crois nouveau.
     GCC-2.6.3-2 et Binutils-2.5.2-2 pour Linux/i386 a besoin de noyaux
     avec le support ELF et la libc-5.0.9 install. LEs nouveaux outils
     de dveloppement crois sont utiles pour les noyaux de Linux/MIPS
     supprieur  la version 1.2.9. Une version a.out des outils de
     dveloppement crois suivra bientot.

    14-Juillet-95 Nous avons un shell qui fonctionne!

    12-Juillet-95 Sortie des pachtes 2.6.3-2 pour Linux/MIPS GCC. Ce
     compilateur se conforme mieux avce le standard MIPS des noms de
     symboles.

    10-Juillet-95 Sortie du noyau Linux/MIPS 1.2.9.

    9-Juin-95 Sortie de Milo 0.24. Cette version fournis une detection
     de type de machine amliore et un peu de nettoyage et quelques
     corrections.

    24-Mai-95 Sortie du noyau Linux/MIPS 1.2.8. Cette fonction rsoud
     plusieurs bugs et possde les changements spcifiques au Magnum
     4000  partir de l'intgration de Linux-1.2.7.

     Sortie de Milo 0.23. Cette version fournis un support intgr pour
     les machines Olivetti M700. Milo est maintenant spar en deux
     binaires : un simple chargeur de boot et un moniteur/dbugeur isol
     avce possibilit de booter.

    23-Mai-95 Le noyau Linux/MIPS 1.2.7 sur Olivetti M700 monte le
     systme de fichier racine.

    22-Mai-95 Le noyau Linux/MIPS 1.2.7 sur le Mips Magnum 4000 monte
     le systme de fichier racine.

     Ajout de la NEC RiscStation et du RiscServer  la liste des cibles.

     Milo 0.22 a t test avec succs sur la NEC RiscStation et le
     RiscServer.

    18-Mai-95 Sortie du noyau Linux/MIPS 1.2.7. Cette sortie fournis le
     support initial du Magnum 4000 et une tonne de bugs sont rsolues.

    12-Mai-95 Sortie de Milo 0.22. Cette version a t nettoy et
     plusieurs bugs ont t fix.

    5-Mai-95 L'archive Linux/MIPS est maintenant possible sur
     ftp.mcc.ac.uk/pub/linux/MIPS.

    3-Mai-95 Sortie de Milo 0.21. Cette version fournis plus de
     commandes du moniteur/dbugeur intgr et rsoud d'importants
     problmes.


    30-Avril-95Sortie de Milo 0.20. Cette version fournis un
     moniteur/dbugeur intgr et beaucoup de fonctions de nouvelles
     librairies..

     Dbut du portage de l'Olivetti M700.

    26-Avril-95 Sortie du noyau Linux/MIPS 1.2.6.

    13-Avril-95 Milo 0.19 sort. Cette version inclus des correction
     mineur plus le support initial pour les noyaux au format ELF.

    13-Avril-95 Milo 0.18b sort; Cette version inclsu le support pour
     les Mips Magnum 4000. Le portage vers les Mips Magnum 4000 dmarre.

    27-Mars-95 Sortie du noyau Linux/MIPS 1.2.2. Le noyau monte
     maintenant son systme de fichiers racine.

    22-Mars-95 Milo 0.18sort. Cette version inclus le support pour les
     systmes Deskstation rPC44.

     Dbut de portage vers la DeskStation rPC44.













































