  Manuel de Linux/MIPS
  Ralf Bchle, ralf@gnu.org Traduction : Robert Jacolin,
  rjacolin@yahoo.fr
  24 juin 2000

  Cette FAQ dcrit le portage vers l'architecture MIPS du systme
  d'exploitation Linux, ainsi que des problmes courants et propose des
  solutions, des possibilits (voire plus).  Il tente aussi d'tre un
  peu utile pour les autres personnes qui lirait cette FAQ dans l'espoir
  de trouver des informations qui, en fait, pourraient tre dtailles
  ailleurs.
  ______________________________________________________________________

  Table des matires



  1. Qu'est-ce-que Linux/MIPS ?
  2. Obtenir cette FAQ
  3. Quel est le matriel support par Linux/MIPS ?
     3.1 Les plates-formes matrielles
        3.1.1 Le PICA d'Acer
        3.1.2 Les sries Baget/MIPS
        3.1.3 Le Qube et le Raq de Cobalt
        3.1.4 Les machines NEC
        3.1.5 Les plates-formes bases sur les VR41xx de NEC
        3.1.6 Les plates-formes TMPR39xx de Toshiba/PR31700 de Philips
        3.1.7 Le Netpower 100
        3.1.8 La Nintendo 64
        3.1.9 Le Challenge S de Silicon Graphics
        3.1.10 L'Indigo de Silicon Graphics
        3.1.11 L'Indigo2 de Silicon Graphics
        3.1.12 L'Indy de Silicon Graphics
           3.1.12.1 Quantit trange d'espace mmoire
           3.1.12.2 Problmes avec la PROM de l'Indy
           3.1.12.3 Le supprot d'ELF avec des vieilles versions de PROMs
           3.1.12.4 Pourquoi y-a-t-il autant de mmoire rserve sur mon Indy ?
        3.1.13 Les Silicon Graphics Origin 200 et 2000
        3.1.14 Les Silicon Graphics Onyx 2
        3.1.15 Silicon Graphics Power Series
        3.1.16 Consoles Srie sur les machines SGI
        3.1.17 Les autres machines de Silicon Graphics
        3.1.18 La Playstation de Sony
        3.1.19 SNI RM200C
        3.1.20 SNI RM200
        3.1.21 SNI RM300C
        3.1.22 SNI RM400
        3.1.23 SNI RW320
        3.1.24 Algorithmics P4032
        3.1.25 Algorithmics P5064
        3.1.26 DECstation series
        3.1.27 Mips Magnum 4000 / Olivetti M700-10
        3.1.28 MIPS Magnum 4000SC
     3.2 Les types de processeur
        3.2.1 La famille des R2000, R3000
        3.2.2 R6000
        3.2.3 La famille des R4000 et R5000
        3.2.4 R8000
        3.2.5 R10000
     3.3 Matriel qui ne sera jamais support
        3.3.1 IBM RS6000
        3.3.2 VaxStation
        3.3.3 SGI VisPC
        3.3.4 Les machines bas sur le 68k de Motorola comme l'Iris 30000

  4. Les distributions Linux
     4.1 RedHat
     4.2 Debian
     4.3 Simple

  5. Ressources Linux/MIPS sur le net
     5.1 Serveurs FTP anonymes
     5.2 Serveurs CVS anonymes
     5.3 Serveurs Web
     5.4 Serveur Web CVS
     5.5 Listes de discussions
     5.6 Canal IRC

  6. L'installation de Linux/MIPS et ses problmes classiques
     6.1 Le boot sur NFS choue
     6.2 Des noyaux compils plantent au dmarrage
     6.3 Le dmarrage du noyau sur l'Indy choue avec des messages d'erreurs de la PROM
     6.4 O puis-je obtenir le microcode en "little endian" pour mon SNI ?
     6.5 ld meurt avec un signal 6
     6.6 Ma machine ne tlcharge pas mon noyau lorsque j'essaye de booter par le rseau
     6.7 Erreur dans la version 2 de DHCP

  7. Milo
     7.1 Compiler Milo
     7.2 Pandora

  8. Modules chargeables
  9. Comment configurer un compilateur crois ?
     9.1 Binaires existant
     9.2 Construire votre propre compilateur crois
     9.3 Espace disque ncessaire
     9.4 Ordre des octets
     9.5 Les noms de configuration
     9.6 Installation de GNU binutils
     9.7 Assert.h
     9.8 Installation des sources du noyau
     9.9 Premire installation d'egcs
     9.10 Tester ce que vous avez fait jusqu'ici
     9.11 L'installation de la GNU libc
     9.12 Recompilation d'egcs
     9.13 Dois-je compiler les compilateurs C++, Objective C ou F77 ?  La rponse  cette question dpend largement de l'utilisation que vous ferez de votre  environnement de compilateur crois. Si vous avez pour unique but de recompiler le noyau  Linux alors vous n'avez pas besoin d'une configuration pleine  craquer et vous pouvez  ommettre en toute scurit les compilateurs Objective C et F77. Vous devez, cependant,  compiler le compilateur C++, parce que la compilation des bibliothques inclues avec la  distribution d'egcs ncessite C++.
     9.14 Problme connu lors de compilation croise
        9.14.1 Plantage d'IRIX
        9.14.2 Ressources limites sur les machines bases sur le standard System V
     9.15 GDB

  10. Litteratures sur le mme thme
     10.1 Voir un MIPS tourner (See MIPS Run)
     10.2 Le manuel du programmeur MIPS (The MIPS Programmer's Handbook)
     10.3 Architecture informatique - Une approche quantitative (Computer Architecture - A Quantitative Approach)
     10.4 Supplment pour les processeur MIPS ABI sous UNIX System V   (UNIX System V ABI MIPS Processor Supplement)


  ______________________________________________________________________

  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 clne d'UNIX, Linux, vers
  l'architecture MIPS. Linux/MIPS fonctionne sur un grand nombre de
  systmes, techniquement trs diffrents, qui va des petits systmes
  embarqus et des petits serveurs jusqu'aux gros serveurs et aux
  grosses machines bureautiques qui, au moins  l'poque o ils ont t
  introduit sur le march, taient les meilleurs de leur classes.


  Les avantages de Linux/MIPS par rapport aux autres systmes
  d'exploitation actuels sont :


    Le systme Linux complet se compose uniquement de Logiciels Libres,

    L'excellent rapport Prix/Performance,

    L'existance d'une grande quantit de logiciels dont, encore un
     fois, une large part sont des Logiciels Libres,

    Une compatibilit binaire entre un nombre croissant de plates-
     formes,

    Une petite taille rendant Linux/MIPS appropri pour beaucoup de
     systmes embarqus.

     En rsum, Linux a t conu et port avec plaisir. Cependant,
     comme d'habitude, le temps que vous allez y consacrer pourra varier
     et vous devrez vrifier que Linux puisse s'adapter  votre projet,
     ce que ce document se propose de faire.



  22..  OObbtteenniirr cceettttee FFAAQQ

  Vous pouvez tlcharger ce document dans plusieurs formats (et en
  anglais, NDT):


    Une version HTML <http://oss.sgi.com/mips/mips-howto.html>

    Une version texte <http://oss.sgi.com/mips/mips-howto.txt>

    Une version postscript <http://oss.sgi.com/mips/mips-howto.ps>

    Une version Linux-Doc SGML <http://oss.sgi.com/mips/mips-
     howto.sgml>

     Cette FAQ est ausi accessible sous forme de code source SGML par
     CVS anonyme sur oss.sgi.com. L'archive contient aussi un Makefile
     qui le convertira en plusieurs formats. Une version ASCII est
     rgulirement poste sur _c_o_m_p_._o_s_._l_i_n_u_x_._a_n_s_w_e_r_s et les autres
     cannaux des manuels Linux.


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

  33..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 quantit variable
  d'options CPU qui ne sont pas encore toutes supports. Veuillez
  vrifier que votre type de CPU est support dans la section ``Types de
  processeurs''. C'est une liste de machines qui fonctionnent sous
  Linux/MIPS, de systmes o Linux/MIPS peut tre port ou de systmes
  o l'on a intrt  faire fonctionner Linux/MIPS.


  33..11..11..  LLee PPIICCAA dd''AAcceerr

  Le _P_I_C_A _d_'_A_c_e_r est driv de l'architecture _M_i_p_s _m_a_g_n_u_m _4_0_0_0.  Il
  possde un CPU R4400PC fonctionnant  133 Mhz ou ventuellemnt  150
  Mhz plus une mmoire cache de second niveau de 512 Ko (ventuellement
  de 2 Mo); la carte gfx G364 du Magnum a t remplac par une carte
  base sur le S3 968.  Le systme est support  l'xception du serveur
  X.


  33..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 comprennent plusieurs machines possdant des
  processeurs R3000 : le Baget 23, le Baget 63 et le Baget 83. Les Baget
  23 et 63 ont des cartes mres BT23-201 ou BT23-202 avec respectivement
  un R3500A (qui est,  la base, un composant R3000A)  25 Mhz et un
  R3081E  50 Mhz. La carte BT23-201 possde un bus VME et des puces
  VIC068, VAC068 comme contrleurs systmes. La carte BT23-202 possde
  un bus PCI en interne et une bus VME en externe. Le support de la
  carte BT23-201 a t fait par Gleb Raiko (rajko@mech.math.msu.su) et
  Vladimir Roganov (vroganov@msiu.ru) avec l'aide de Serguei Zimin
  (zimin@msiu.ru).  Le support du BT23-202 est en dveloppement avec un
  Baget 23B qui est compos de 3 cartes BT23-201 avec un bus VME
  partag.

  Le Baget 83 est mentionn ici uniquement pour tre xhaustif. Il
  possde uniquement 2 Mo de RAM et il est trop petit pour faire tourner
  Linux. Le code du Baget/MIPS a t fusionn avec le portage des
  stations DEC ; le source pour ces deux plates-formes est sur
  <http://decstation.unix-ag.org/>.


  33..11..33..  LLee QQuubbee eett llee RRaaqq ddee CCoobbaalltt

  Les sries de produits Qube Cobalt sont des systmes de serveurs
  headless de faible cot bass sur un IDT R5230.  Cobalt a dvelopp sa
  propre variante de Linux/MIPS pour rpondre aussi bien que possible
  aux besoins particuliers du Qube. Au dpart, le noyau du Qube a t
  driv du noyau de Linux/MIPS 2.1.56, puis ramen  la version 2.0.30
  pour la stabilit, enfin il a t optimis. Les noyaux pour le Cobalt
  sont accessibles sur le site ftp de Cobalt
  <http://www.cobaltnet.com>.  Le support du Qube de Cobalt n'a jamais
  t intgr dans les noyaux officiels 2.1.x de Linux/MIPS.


  33..11..44..  LLeess mmaacchhiinneess NNEECC

  Les machines uni-processeur NEC sont des systmes _P_I_C_A _d_'_A_c_e_r, voir
  cette section pour plus de dtails. Les systmes SMP sont difrents 
  cause du fait d'avoir plusieurs processeurs. Les dveloppeurs de
  Linux/MIPS n'ont pas les documentations techniques ncessaires pour
  crire un OS. Aussi longtemps qu'il n'y aura pas de changements, ce
  portage restera plus ou moins un bouchon remarqu faisant obstacle au
  portage vers les systmes SMP de NEC.


  33..11..55..  LLeess ppllaatteess--ffoorrmmeess bbaasseess ssuurr lleess VVRR4411xxxx ddee NNEECC

  Le projet VR Linux fait le portage de Linux vers du matriel bas sur
  les micro-processeurs VR41xx de NEC. La plupart de ces matriels
  taient,  l'origine, destins pour faire tourner Windows CE. Le
  projet a produit des noyaux qui fonctionnent avec des drivers de bases
  pour le Vadem Clio, la Casio E-105, l'Everex Freestyle, et bien
  d'autres. Pour de plus amples informations, veuillez consulter le site
  <http://linux-vr.org/>.


  33..11..66..  LLeess ppllaatteess--ffoorrmmeess TTMMPPRR3399xxxx ddee TToosshhiibbaa//PPRR3311770000 ddee PPhhiilliippss

  Semblable aux VR41xx, le matriel avec ces processeurs ont t, 
  l'origine, destins pour faire tourner Windows CE. Cependant, il y a
  des noyaux fonctionnels avec des drivers de base pour le _S_h_a_r_p _M_o_b_i_l_o_n
  et la _s__r_i_e _C _d_e _C_o_m_p_a_q. Le support d'autre matriels est en cours. Le
  code fait partie du projet VR Linux et donc de plus amples
  informations peuvent tre trouv sur  <http://linux-vr.org/>.


  33..11..77..  LLee NNeettppoowweerr 110000

  Le _N_e_t_p_o_w_e_r _1_0_0 est apparamment un _P_I_C_A _d_'_A_c_e_r dguis.  Il devrait
  tre, par consquence, support mais cela n'a pas t test. S'il y a
  un problme c'est probablement lors de la dtection de la machine.


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

  La _n_i_n_t_e_n_d_o _6_4 est une console de jeu bas sur un R4300 avec 4 Mb de
  RAM. Ses puces graphiques ont t dvelopp par Silicon Graphics pour
  nintendo. A l'heure actuelle, ce portage est un rve de joueur et
  continuera de l'tre tant que Nintendo ne dcidera pas de publier les
  informations techniques necessaires. La question qui subsiste est de
  savoir si c'est une bonne ide.


  33..11..99..  LLee CChhaalllleennggee SS ddee SSiilliiccoonn GGrraapphhiiccss

  Cette machine est trs similaire  l'Indy ; la diffrence est qu'elle
  ne possde pas de clavier ni de carte GFX mais un adaptateur bas sur
  un WD33C95 SCSI supplmentaire. Cet adaptateur WD33C95 n'est pas
  support pour l'instant.


  33..11..1100..  LL''IInnddiiggoo ddee SSiilliiccoonn GGrraapphhiiccss

  Cette machine n'est mentione que parce que certaine personne la
  confonde avec les Indys ou l'Indigo 2. L'Indigo possde une
  architecture diffrente, base sur un R3000 cependant, et n'est pas
  encore support.


  33..11..1111..  LL''IInnddiiggoo22 ddee SSiilliiccoonn GGrraapphhiiccss

  Cette machine est le successeur de l'Indigo et elle est trs semblable
   l'Indy. Elle est maintenant supporte, bien qu'ellz pche en bien
  des points. Vous devrez utiliser une console srie. Si vous avez une
  Indigo2 et si vous dsirez encore y faire tourner Linux, contactez
  soit Florian Lohoff (flo@rfc822.org) soit Klaus Naumann
  (spock@mgnet.de).


  33..11..1122..  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, en ce moment, l'unique machine support parmi (la plupart)
  des machines de Silicon Graphics. La seule carte graphique supporte
  est la carte Newport c'est--dire la "XL". L'Indy existe avec un grand
  nombre d'options pour le CPU  des taux d'horloge varis, tous tant
  supports. Il existe aussi maintenant un serveur X crit par Guido
  Guenther (guido.guenther@gmx.net). Si vous pouvez utiliser la console
  de Newport sur votre Indy, il doit tre possible aussi d'utiliser le
  serveur X. Il est bas sur XFree86 4.0 et il fonctionne courament 
  une vitesse de tortue mais semble bien fonctionner. Si vous dsirez
  l'essayer, jetez un oeil sur  <http://honk.physik.uni-
  konstanz.de/~agx/mipslinux/x/>.


  33..11..1122..11..  QQuuaannttiitt ttrraannggee dd''eessppaaccee mmmmooiirree

  Lors du boot, le noyau de l'Indy reporte la mmoire utilisable dans un
  message du type :


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



  Cette importante diffrence entre la premire paire de nombres vient
  de l'existance d'une zone de 128 Mo dans l'espace adressable de la
  mmoire de l'Indy qui reflte les 128 premiers Mo de mmoire. La
  diffrence entre les 2 nombres sera toujours proche de 128 Mo et
  n'indique pas un quelconque problme. Les noyaux depuis la version
  2.3.23 ne compte plus ce trou de 128 Mo.


  33..11..1122..22..  PPrroobbllmmeess aavveecc llaa PPRROOMM ddee ll''IInnddyy

  Plusieurs personnes ont rapports ces problmes avec leurs machines
  aprs une mise  niveau typiquement  cause de parties en trop. Il
  existe plusieurs versions de PROM pour les Indys. Les machines avec de
  vieilles versions de leur PROM, qui ont t mis  niveau vers une
  variante plus rcente d'un CPU comme un module R4600SC ou un R5000SC,
  peuvent se planter pendant l'auto-test avec un message d'erreur 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 devez mettre  niveau la PROM de votre machine vers
  une version plus rcente ou retourner vers un version plus ancienne du
  CPU.  En gnral, les modules R4000SC ou R4400SC devraient fonctionner
  de cette manire. Juste pour tre bien clair, ceci est un problme
  n'ayant aucun rapport avec Linux. C'est uniquement mentionn ici parce
  que plusieurs utilisateurs de Linux nous ont pos la question.



  33..11..1122..33..  LLee ssuupppprroott dd''EELLFF aavveecc ddeess vviieeiilllleess vveerrssiioonnss ddee PPRROOMMss

  Les vieilles versions de PROM ne connaissent pas le format binaire ELF
  que le noyau de Linux utilise, ce qui l'empche de booter directement
  sur Linux. La solution prfrable  cela reste videment une mise 
  niveau de la PROM. Vous pouvez aussi utiliser Sash d'IRIX 5 ou une
  version plus rcente pour charger le noyau. Sash sait comment charger
  les binaires ELF et ne se proccupe pas de savoir si c'est un noyau
  IRIX ou Linux.  Il suffit de taper simplement "Sash"  partir du
  moniteur de la PROM.  Vous obtiendrez un autre prompt shell, celui de
  Sash cette fois-ci.  Maintenant lancez Linux comme d'habitude.

  Sash peut lire les systmes de fichiers EFS ou XFS ou lire le noyau
  avec bootp / tftp. Cela veut dire que si vous avez l'intention
  d'utiliser Sash pour lancer le noyau  partir d'un disque local, vous
  devrez encore possder une installation minimale d'IRIX sur votre
  systme.


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

  Lors du dmarrage, le message "Memory: ..." sur un Indy indique qu'il
  y a 128 Mo de RAM rserv. C'est normal ; de mme que l'architecture
  PC a un trou dans son espace d'adressage mmoire entre 640 Ko et 1024
  Ko, l'Indy possde une zone de 128 Mo dans son espace mmoire o les
  128 premiers Mo de sa mmoire est dupliqu. Linux le sait et ignore
  simplement cette zone mmoire, ce qui explique ce message.



  33..11..1133..  LLeess SSiilliiccoonn GGrraapphhiiccss OOrriiggiinn 220000 eett 22000000

  Ralf Bchle (ralf@gnu.org) et une quipe d'employs de SGI travaillent
  actuellement sur un portage vers l'Origin 200. Bien qu'il soit encore
  que dans les tapes initiales, il fonctionne en mode mono-processeur
  et multi-processeurs et possde des pilotes pour la carte Ethernet
  IOC3 et l'adaptateur SCSI fourni avec. Le code peut tre pris dans
  l'arbre CVS de Linux/MIPS.
  33..11..1144..  LLeess SSiilliiccoonn GGrraapphhiiccss OOnnyyxx 22

  L'Onyx 2 est,  la base, un Origin 2000 avec du matriel graphique
  supplmentaire. A partir de maintenant,le support de Linux pour le
  matriel graphique n'a pas t dcid. En dpit de ca, Linux devrai
  fonctionner aussi bien qu'une configuration headless Origin 2000.


  33..11..1155..  SSiilliiccoonn GGrraapphhiiccss PPoowweerr SSeerriieess

  C'estune trs vieilles sries des systmes R3000 SMP. Il n'existe pas
  de documentation sur le matriel de ces machines, peu d'entre elles
  existant encore, le matriel est bizarre. Pour faire court, les
  chances pour que Linux tourne un jour sur l'une d'elles sont proches
  de zro. Non pas que l'on veuille dcourager des volontaires ...


  33..11..1166..  CCoonnssoolleess SSrriiee ssuurr lleess mmaacchhiinneess SSGGII

  Assurez-vous que le noyau que vous utilisez inclus le driver appropri
  pour une interface srie et une console srie. Initialisez la variable
  d'environnement _c_o_n_s_o_l_e ARC soit avec la valeur _d_1 soit avec la valeur
  _d_2 pour les Indy et les Challenge S en fonction de l'interface srie
  que vous allez utiliser comme console.

  Si vous avez le problme d'affichage de tous les messages du noyau sur
  la console srie lors du dmarrage alors que plus rien n'est affich 
  partir du dbut de la phase d'init, alors vous avez probablement une
  mauvaise configuration pour votre /dev/console. Vous pourrez trouver
  de plus amples informations  ce sujet dans la documentation du source
  du noyau de Linux ; il est situ dans le rpertoire
  /usr/src/linux/Documentation/serial-console.txt si vous avez install
  le source du noyau.


  33..11..1177..  LLeess 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

  A l'heure actuelle, aucune machine Silicon Graphics n'est supporte.
  Ceci s'applique aussi aux systmes bass sur les _t_r__s vieux Motorola
  68k.


  33..11..1188..  LLaa PPllaayyssttaattiioonn ddee SSoonnyy

  La Playstation de Sony est base sur un R3000 drive et utilise un
  ensemble de composants graphiques dvelop par Sony lui-mme. Alors
  que la machine est, en thorie, capable de tourner sous Linux, un
  portage semble difficile, puisque Sony n'a toujours pas fourni les
  informations techniques ncessaires. Cela met de ct la question de
  l'intret du portage. Donc, en rsum, rien ne s'est pass jusqu'ici
  alors que beaucoup de gens ont montr leur intrt en essayant Linux
  sur une Playstation.


  33..11..1199..  SSNNII RRMM220000CC

  A l'inverse du RM200 (voir en-dessous), cette machine possde des
  slots EISA et PCI. Le RM200 est support  l'exception du controleur
  SCSI NCR53c810A intgr.


  33..11..2200..  SSNNII RRMM220000

  Si votre machine possde  la fois des slots EISA et PCI, alors c'est
  un RM200C ; Consultez la section prcdente s'il vous plat. A cause
  de lgres diffrences architecturales entre le RM200 et le RM200C,
  cette machine n'est pas encore supporte dans les sources officiels.
  Michael Engel (engel@numerik.math.uni-siegen.de) a russi  faire
  fonctionner son RM200 partiellement mais les patches n'ont pas encore
  t inclus dans les sources de Linux/MIPS officiels.


  33..11..2211..  SSNNII RRMM330000CC

  Le RM300 est techniquement trs similaire au RM200C. Il devrai tre
  support par le noyau courant de Linux, mais nous n'avons encore reu
  aucun signalement.


  33..11..2222..  SSNNII RRMM440000

  Le RM400 n'est pas support.


  33..11..2233..  SSNNII RRWW332200

  Cette machine est une variante OEM d'un SGI Indigo et, par consquent,
  elle n'est pas encore supporte.


  33..11..2244..  AAllggoorriitthhmmiiccss PP44003322

  Le portage de l'Algorithmics P4032 tourne encore, lors de la redaction
  de ce document, sous Linux 2.1.36.


  33..11..2255..  AAllggoorriitthhmmiiccss PP55006644

  Le P5064 est,  la base, une variante 64 bits du P4032 bas sur un
  R5000. Un portage est en cours.


  33..11..2266..  DDEECCssttaattiioonn sseerriieess

  Pendant la fin des annes 80 et au dbut des annes 90, Digital
  (maintenant Compaq) a construit une station de travail base sur les
  MIPS appele respectivement DECStation et DECsystem. D'autres machines
  bases sur des x86 ou des Alphas ont t vendu sous le nom DECstation,
  mais ils ne sont malheureusement pas le sujet de cette FAQ. Le support
  des DECstations est encore en cours de dveloppement, dbut par Paul
  M. Antoine. A l'heure actuelle, la plupart du travail est fait par
  Harald Koerfgen (Harald.Koerfgen@home.ivm.de) et par d'autres
  personnes. Sur Internet, des informations sur les DECstations peuvent
  tre trouv sur le site  <http://decstation.unix-ag.org/>.

  La famille des DECstations couvre les DECstations 2100 avec une puce
  R2000/R2010  12 MHz jusqu'au DECstation 5000/260 avec un R4400SC  66
  MHz.

  Les modles des DECstations suivants sont activement supports :

    2100, nom de code PMAX

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

    5000/1xx, nom de code 3MIN

    5000/200, nom de code 3MAX

    5000/2x0, nom de code 3MAX+


    5900/2x0 (identique au 3MAX+).


  Ces modles de DECstations sont orphelins parce que personne ne
  travaille dessus, alors que leur support peut tre relativement facile
   finir.


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

    5100, nom de code MIPSMATE, presque identique au 2100 mais avec une
     puce R3000/R3010.

  Les autres machines de la famille des DECstations,  part ceux bass
  sur x86, devraient tre considr comme des VAXen avec un CPU remplac
  par un CPU MIPS.  Il n'y a aucune information existante sur ces
  machines et le support de ces machines est improbable  moins que le
  portage des VAXLinux renait de ses cendres. Ce sont les :


    5400, nom de code MIPSFAIR

    5500, nom de code MIPSFAIR2

    5800, nom de code ISIS



  33..11..2277..  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 identiques. Revenons lors
  de l'initiative d'ACE, Olivetti a pris une license du concept Jazz et
  a mis sur le march la machine avec comme systme d'exploitation
  Windows NT. MIPS Computer Systems, Inc a achet lui-mme le concept
  Jazz et l'a mis sur le march avec la srie de machines MIPS Magnum
  4000. Les systmes Magnum 4000 ont t mis sur le march avec comem
  systme d'exploitation Windows NT et RISC/os.


  Le microcode de la machine dpend du systme d'exploitation qui a t
  install.  Linux/MIPS supporte uniquement le microcode "little endian"
  sur ces deux types de machines. Puisque le M700-10 n'a t mis sur le
  march uniquement en tant que machine NT, toutes ces machines ont ce
  matriel install. Le cas du MIPS Magnum est quelque peu plus
  complexe. Si votre machine a t configur en "big endian" pour
  RISC/os alors vous devez recharger le microcode "little endian". Ce
  microcode tait,  l'origine, inclus sur une disquette lors de la
  livraison de chaque Magnum.  Si vous ne possdez plus la disquette,
  vous pouvez la tlcharger par ftp anonymes sur le site
  <ftp://ftp.fnet.fr>.


  Il est possible de reconfigurer les M700 pour des oprations headless
  en positionnant les variables d'environnement du matriel ConsoleIn et
  ConsoleOut sur mluti()serial()term(). Essayez aussi la commande
  _l_i_s_t_d_e_v qui listera les priphriques ARC existants.

  Dans bien des cas, comme lorsque la carte graphique G364 est absente
  alors que la console est encore configure pour l'utilisation
  graphique normale, il sera ncessaire de modifier le cavalier de
  configuration JP2 sur la carte mre. Aprs le prochain reset, la
  machine redemarrera sur la console COM2.



  33..11..2288..  MMIIPPSS MMaaggnnuumm 44000000SSCC

  Le Mips Magnum 4000SC est semblable au Magnum 4000 (voir ci-dessus)
  sauf qu'il utilise un CPU R4000SCC.


  33..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r

  33..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,, RR33000000

  Le R2000 est le processeur MIPS original. C'est un processeur 32 Bits
  qui avait une frquence de 8 MHz sortie en 85 lorsque les premiers
  processeurs MIPS arrivrent sur le march. Les versions suivantes
  furent cadences plus rapidement : par exemple, le 53000 est un
  reconception du R2000 100% compatible, juste cadenc plus rapidement.
  A cause de leur haute compatibilit, lorsque ce document mentionne le
  R3000, dans bien des cas, les mmes faits s'appliquent aussi aux
  R2000. Le R3000A est,  la base, un R2000 avec un FPU R3010 et 64 K de
  cache cadenc jusqu' 40 MHz et intgr dans la mme puce.


  Harald Koerfgen (Harald.Koerfgen@home.ivm.de) et Gleb O. Raiko
  (raiko@niisi.msk.ru) ont tous les deux, de faon indpendante,
  travaill sur des patches pour les processeurs R3000. Leur travail a
  t fusionn et intgr dans les sources officiels de Linux/MIPS
  depuis juillet 1999. Actuellement, Linux supporte les processeurs
  R3000 ainsi que des variantes comme le R3081 et le TMPR3912/PR31700.



  33..22..22..  RR66000000

  Parfois, des personnes confondent le R6000, qui est un processeur
  MIPS, avec le RS6000, une srie de stations de travail cre par IBM.
  Donc, si vous lisez ces lignes en esprant trouver des informations
  sur l'utilisation de Linux sur des machines IBM, vous lisez le mauvais
  document.


  Le R6000 n'est pas support pour l'instant. C'est un processeur MIPS
  32 Bits ISA 2 et c'est un morceau de silicon plutt intressant et
  bizarre. Il a t dvelopp et produit par une entreprise appele _B_I_T
  _T_e_c_h_n_o_l_o_g_y. Plus tard, NEC repris la production des semiconducteurs.
  Il tait construit avec la technologie ECL, la mme technologie qui
  tait et qui est encore utilis pour construire des puces extrmement
  rapide comme celles utilises dans les ordinateurs Cray. Le processeur
  possde son propre TLB implment comme une partie des dernires
  paires de lignes du cache primaire externe, une technologie appele
  _t_r_a_n_c_h_e _T_L_B _(_T_L_B _s_l_i_c_e_). Ce qui signifie que son MMU est
  substantiellement diffrent de ceux de la srie des R3000 ou des
  R4000, ce qui est aussi une des raisons pour laquelle le processeur
  n'est pas support.


  33..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 RR55000000

  Linux supporte la plupart des membres de la famille des R4000.
  Actuellement, ce sont le R4000PC, le R4400PC, le R4300, le R4600, le
  R4700, le R5000, le R5230 et le R5260. Beaucoup d'autres fonctionnent
  probablement aussi bien.

  Ceux qui ne sont pas supports, ce sont les CPU R4000MC et R4400MC (ce
  sont des systmes multi-processeurs), de mme que les systme R5000
  avec un cache de second niveau control par le CPU. Cela signifie que
  le cache est contrl par le R5000 lui-mme  la diffrence des
  controleurs de cache externe. La diffrence est importante car,  la
  diffrence des autres systmes, particulirement les PCs, sur les
  MIPS, le cache est visible dans l'architecture et ncessite d'tre
  contrl de faon logiciel.


  Remerciements particuliers pour Ulf Carlsson (ulfc@engr.sgi.com) qui a
  fourni le module CPU pour deboguer le support du R4000SC / R4400SC.


  33..22..44..  RR88000000

  Le R8000 n'est pas support,  l'heure actuelle, d'une part parce que
  ce processeur est relativement rare et qu'il n'a t utilis que dans
  quelques machines de SGI, d'autre part parce que les dveloppeurs de
  Linux/MIPS ne possdent pas d'une machine de ce type.


  Le R8000 est un morceau de silicon plutt intressant. A la diffrence
  des autres membres de la famille MIPS, c'est un ensemble de 7 puces.
  Son cache et son architecture TLB est assez diffrent des autres
  membres de la famille MIPS. Il est n d'un rapide "hack" pour que les
  virgules flotantes redeviennent le fer de lance des Silicon Graphics
  avant que le R10000 soit termin.


  33..22..55..  RR1100000000

  Le R10000 est support dans le noyau mips64 qui est actuellement
  support par les IP22 (l'Indy de SGI, le Challenge S et l'Indigo 2) et
  l'Origin.

  A cause de la trs grande difficult pour grer la manire de
  fonctionner de ce processeur dans des systmes sans cache cohrent,
  cela va prendre probablement encore un certain temps avant que nous
  supportions ce processeur pour de tels systmes. A partir de
  maintenant, ces systmes sont les SGI O2 et Indigo.



  33..33..  MMaattrriieell qquuii nnee sseerraa jjaammaaiiss ssuuppppoorrtt


  33..33..11..  IIBBMM RRSS66000000

  Comme son nom l'indique, c'est une machine IBM qui est bas sur la
  srie de processeur RS6000 et, en tant que tel, ils ne font pas partie
  du projet Linux/MIPS. Les gens confondent souvent l'IBM RS6000 avec
  l'architecture MIPS R6000. Cependant, le projet Linux/PPC doit s'en
  occuper. Consultez le site <http://www.linuxppc.org/> pour de plus
  amples informations.


  33..33..22..  VVaaxxSSttaattiioonn

  Comme son nom l'indique dj, cette machine est un membre de la
  famille des VAX de Digital Equipment. On le mentionne ici parce qu'il
  est souvent confondu avec la famille des DECstation bas sur le MIPS
  de Digital  cause des types de numros similaires. Malheureusement,
  le VaxStation, de mme que la famille entire des VAX, n'est pas
  support pour l'instant.


  33..33..33..  SSGGII VViissPPCC

  C'est un systme bas sur les x86, par consquent, il n'est pas
  couvert par cette FAQ. Cependant, pour faciliter vos recherches, voici
  quelques infos.  Ken Klingman (kck@mailbox.esd.sgi.com) post le 17
  Janvier 1999 sur la liste de discussion Linux de SGI :


    Nous y travaillons. Nous terminons actuellement de mettre le support
    du niveau de base dans la release de la 2.2. Les logiciels uniquement bas sur
    X et OpenGl devrait suivre relativement rapidement, mais le matriel acclr
    pour OpenGL n'est pas encore planifi. Voir www.precisioninsight.com pour des
    nouvelles sur le matriel acclr pour OpenGL.



  Pour plus d'informations, voir la Documentation/ du noyau de Linux 
  partir de la version 2.2 ou suprieure. Il y a des informations
  supplmentaires sur le web  l'adresse  <http://oss.sgi.com/>. Notez
  que le personnel de SGI/MIPS et de SGI/Intel travaille indpendemment
  de chacun des autres, par consquent, les sources sur le CVS anonyme
  sur oss.sgi.com peut ou ne peut trs bien ne pas fonctionner pour les
  machines Intel ; nous n'avons pas test cela.


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

  Ce sont de _t_r__s vieilles machines, probablement ags de plus de 10 ans
  maintenant. Comme ces machines ne sont pas bas sur des processeurs
  MIPS, ce document est le mauvais endroit pour y chercher des
  informations. Cependant, dans le but de vous faciliter les choses, ces
  machines ne sont pas supportes actuellement.


  44..  LLeess ddiissttrriibbuuttiioonnss LLiinnuuxx


  44..11..  RReeddHHaatt

  Pour les MIPS, il y a la Rough Cuts Linux, anciennement Hard Hat
  Linux, qui est plus qu'un simple portage d'une Red Hat Linux 5.1 sur
  MIPS. Il est possible de l'obtenir sur
  <ftp://oss.sgi.com/pub/hardhat>.

  Il est aussi empaquet avec le support de l'architecture M68k,
  UltraSparc et PowerPC dans un paquetage appel "Rough Cuts" labor
  par Red Hat, et on peut l'obtenir l o les produits Red Hat sont
  vendus. C'est une manire trs pratique de l'obtenir sans avoir 
  tlcharger 280 Mo. Vous pouvez commander Rough Cuts directement chez
  Red Hat  l'adresse  <http://www.redhat.com/product.phtml/RC1000>.

  De plus, il existe une distribution bas sur la Red Hat 5.2 qui a pour
  cible les Qubes de Cobalt ; ses binaires fonctionneront parfaitement
  sur d'autres architectures MIPS et sont accessibles sur
  <ftp://intel.cleveland.lug.net/pub/Mipsel>.  <ftp://bolug.uni-
  bonn.de/mips> possde plusieurs paquetages rpm Redhat 6.0 et 6.1.


  44..22..  DDeebbiiaann

  Un portage de la Debian est en cours. Les efforts actuels ont t
  amorc en utilisant SGI/Linux comme base, et dpkg compile en natif
  avec peu de changements.  En plus de la version SGI, des personnes ont
  montr leur intrt pour des plateformes "little endian". Gardez un
  oeil sur la page du portage Debian-MIPS,
  <http://www.debian.org/ports/mips/> pour le dveloppement.



  44..33..  SSiimmppllee

  Cette distribution a t faite, jusqu'ici, uniquement pour les
  systmes "big endian". Elle est hautement exprimentale, pour une
  utilisation pour des dveloppeurs pour tester les dernires versions
  de gcc, de binutils, de la glibc et du noyau. C'est la seule
  distribution base sur la glibc 2.2 disponible pour MIPS. Vous pouvez
  toujours rcuprer la dernire version de cette distribution et les
  notes de publications qui l'accompagnent sur
  <ftp://oss.sgi.com/pub/linux/mips/mips-linux/simple>. Un systme de
  cross-compilation est galement disponible pour aider le
  dveloppement.


  55..  RReessssoouurrcceess LLiinnuuxx//MMIIPPSS ssuurr llee nneett


  55..11..  SSeerrvveeuurrss FFTTPP aannoonnyymmeess

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

     oossss..ssggii..ccoomm
        Ce serveur devrait satisfaire presque tous vos dsirs ftp sur
        Linux/MIPS.  Vraiement.


     ffttpp..ffnneett..ffrr
        Ce serveur n'est actuellement plus tout  fait  jour ; il est
        inclus ici pour tre exhaustif et pour les gens qui sont
        intresss par des logiciels prhistoriques.

  Sur tous ces serveurs ftp, il existe une liste de sites mirroirs que
  vous devrez plutt utiliser pour avoir des accs plus rapide.


  Une autre source de binaires MIPS "little endian" se situe sur
  ftp://intel.cleveland.lug.net/pub/Mipsel qui contient la plupart des
  versions trs rcentes des binaires pour la Redhat avec les binaires
  du Cobalt.



  55..22..  SSeerrvveeuurrss CCVVSS aannoonnyymmeess

  Pour ceux qui veulent toujours rester au bord du goufre et qui veulent
  viter d'avoir  tlcharger des patches ou des archives tar
  compltes, nous avons aussi un serveur CVS anonymes. En utilisant CVS,
  vous pouvez rapatrier l'arbre des sources de Linux/MIPS avec les
  commandes suivantes :



     cvs -d :pserver:cvs@oss.sgi.com:/cvs login
     (Ncessaire uniquement lors de la premire utilisation du CVS anonyme, le mot
    de passe est "cvs")
     cvs -d :pserver:cvs@oss.sgi.com:/cvs co <repository>



  o vous insrez linux, libc, gdb ou faq  la place de <repository>.
  L'autre archive CVS importante de la communaut Linux est vger.rut
  gers.edu o beaucoup de code est centralis avant d'tre envoy 
  Linus pour distribution.  Bien que vger lui-mme n'offre plus d'accs
  anonyme, il y a des sites mirroirs qui fournissent un accs anonyme.
  Pour plus de dtails sur la manire d'y accder, voir
  <http://cvs.on.openprojects.net/>.  Les modules qui ont de l'intrt
  sont "linux", "modutils", "pciutils", "netutils".


  55..33..  SSeerrvveeuurrss WWeebb

  Les deux principaux serveurs web pour Linux/MIPS sont :

      <<http://oss.sgi.com/mips>
        Ce serveur couvre la presque totallit de Linux/MIPS ; il est
        plutt centre sur SGI mais comme Linux/MIPS essaye d'tre
        identique sur toute les plateformes, la plupart de ces
        informations restent intressantes pour tous les utilisateurs.


      <<http://lena.fnet.fr>
        Ce serveur n'est actuellement plus trs  jour ; il est inclu
        ici principalement pour tre exhaustif.


  Tous ces serveurs possdent des mirroirs parpills  travers le monde
  ; vous devrez sans doute en utiliser un pour obtenir de meilleures
  performances.


  55..44..  SSeerrvveeuurr WWeebb CCVVSS

  Via  <http://oss.sgi.com/mips/cvsweb> vous avez un accs direct aux
  sources du nouveau noyau Linux/MIPS et  quelques autres projets grs
  dans la mme archive CVS. L'interface intuitive vous permet de suivre
  le dveloppement avec des clics de souris.


  55..55..  LLiisstteess ddee ddiissccuussssiioonnss

  Il existe trois listes de discussions sur Linux/MIPS :


     lliinnuuxx--mmiippss@@ffnneett..ffrr
        Cette liste de discussions est utilise pour des communications
        de toutes sortes autres qu' propos de SGI. Les inscriptions
        sont grs par une personne ; envoyez votre requtes
        d'inscription  linux-mips-request@fnet.fr. Vous pouvez vous
        desinscrire  partir de la liste de discussions en envoyant
        _u_n_s_u_b_s_c_r_i_b_e _<_v_o_t_r_e_-_a_d_r_e_s_s_e_-_m_a_i_l_>  la mme adresse.


     lliinnuuxx--mmiippss@@oossss..ssggii..ccoomm
        Cette liste de discussions possde actuellement le plus de
        traffic. Elle est plus ou moins centre sur SGI mais elle a
        pourtant de l'intrt, spcialement pour les dveloppeurs
        puisqu'un grand nombre d'ingnieurs de SGI sont inscrits  la
        liste. L'inscription  cette liste se fait par Majordomo
        (majordomo@oss.sgi.com) ; envoyez simplement un courrier
        lectronique avec les mots _s_u_b_s_c_r_i_b_e _l_i_n_u_x. Pour se dsinscrire,
        envoyez _u_n_s_u_b_s_c_r_i_b_e _l_i_n_u_x. Notez que vous devez vous inscrire
        pour pouvoir poster un courrier ; l'augmentation de spasm nous a
        forc cette politique.  Pour de plus amples informations, voir
        aussi  <http://oss.sgi.com/mips/email.html>.


     lliinnuuxx--mmiippss@@vvggeerr..rruuttggeerrss..eedduu
        Cette liste de discussions a vraiment trs peu de traffic
        puisque la plupart des gens ont tendance  utiliser une des
        listes de discussions ci-dessus. Les inscriptions sont gres
        par Majordomo (majordomo@vger.rutgers.edu) ; envoyez juste un
        courrier lectronique avec les mots _s_u_b_s_c_r_i_b_e _l_i_n_u_x_-_m_i_p_s. Pour
        se dsinscrire envoyez un courrier avec _u_n_s_u_b_s_c_r_i_b_e _l_i_n_u_x_-_m_i_p_s.



  55..66..  CCaannaall IIRRCC

  Il existe un canal IRC nomm #mipslinux pour Linux/MIPS qui peut tre
  trouv sur irc.openprojects.net.


  66..  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 sseess pprroobbllmmeess ccllaassssiiqquueess



  66..11..  LLee bboooott ssuurr NNFFSS cchhoouuee

  En gnral, cela vient du fait que la personne a dcompress l'archive
  tar sous IRIX, et pas sous Linux. Puisque la reprsentation des
  fichiers des priphriques  travers NFS n'est pas standardis entre
  les Unices, cela choue. Le symptome est le blocage du systme avec le
  message d'erreur "Warning: unable to open an initial console." juste
  aprs le montage du systme de fichiers NFS.


  Pour le moment, il faut utiliser un systme Linux (pas ncessairement
  un MIPS) pour dcompresser l'archive d'installation sur un serveur
  NFS. Le serveur NFS lui-mme peut tre n'importe quel UNIX.



  66..22..  DDeess nnooyyaauuxx ccoommppiillss ppllaanntteenntt aauu ddmmaarrrraaggee

  Lorsque je construit mon propre noyau, il plante. Sur un Indy, le
  message lors du plantage ressemble  ce qui suit ; le mme problme
  apparat aussi sur d'autres machines mais ce qui est affich diffre
  compltement.


     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 vient d'une erreur non rsolue encore dans le module Binu
  tils dans les versions suprieures  la version 2.7. Pour le rsoudre,
  changez la ligne suivante dans le fichier arch/mips/Makefile


     LINKFLAGS       = -static -N



  en :


     LINKFLAGS       = -static



  66..33..  LLee ddmmaarrrraaggee dduu nnooyyaauu ssuurr ll''IInnddyy cchhoouuee aavveecc dde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 survient uniquement pour des Indys avec des versions trs
  anciennes de la PROM qui ne peuvent pas grer le format binaire ELF
  que Linux utilise. Une solution  ce problme est en cours de rsolu
  tion.


  66..44..  OO ppuuiiss--jjee oobbtteenniirr llee mmiiccrrooccooddee eenn ""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
  ??

  Le systme SNI peut tourner  la fois en modes "big endian" et "little
  endian".  Actuellement, Linux/MIPS supporte uniquement le microcode
  "little endian". C'est plutt malchanceux car SNI n'a plus mis en
  place ce microcode depuis un certain temps, depuis qu'ils sont passs
  en NT. Lorsqu'il tourne en mode "big endian", le microcode se comporte
  de faon similaire  un Indy SGI qui est dj support, par consquent
  la rsolution du support des SNI sera relativement facile. Les hackers
  intresss peuvent contacter Ralf Bchle (ralf@gnu.org).


  66..55..  lldd mmeeuurrtt aavveecc uunn ssiiggnnaall 66


     collect2: ld terminated with signal 6 [Aborted]



  C'est un problme connu dans de vieilles versions de binutils. Vous
  devrez remettre  niveau binutils 2.8.1 plus des patches trs
  rcentes.


  66..66..  MMaa mmaacchhiinnee nnee ttllcchhaarrggee ppaass mmoonn nnooyyaauu lloorrssqquuee jj''eessssaayyee ddee
  bbooootteerr ppaarr llee rrsseeaauu

  Votre machine rpond aux paquets de BOOTP (vous devriez vrifier cela
  en utilisant des sniffers de paquets comme tcpdump ou ethereal) mais
  ne tlcharge pas le noyau  partir du serveur BOOTP. Cela arrive si
  votre serveur de boot tourne sous un noyau de la srie 2.3 ou
  suprieure. Le problme peut tre contourn en faisant un "echo 1 >
  /proc/sys/net/ipv4/ip_no_pmtu_disc" sous compte administrateur (root)
  sur votre serveur de dmarrage.


  66..77..  EErrrreeuurr ddaannss llaa vveerrssiioonn 22 ddee DDHHCCPP

  Lors de l'utilisation de DHCP version 2, vous devrez voir apparatre
  le problme suivant : Votre machine a reu sa rponse de BOOTP 3 fois
  mais refuse de dmarrer TFTP.  Vous pouvez rsoudre cela en faisant un
  "unsetenv netaddr" dans la console de commande de la PROM avant de
  booter votre systme. La version 3 de DHCP rsoud ce problme.


  77..  MMiilloo

  Milo est le chargeur de dmarrage utilis pour dmarrer les systmes
  MIPS en mode "little endian" avec du microcode ARC, actuellement la
  famille Jazz et le SNI RM 200. Bien que Milo utilise le mme nom et
  possde le mme rle que la version Alpha de Milo, ces deux Milo n'ont
  rien en commun. Ils sont dvelopps par des gens diffrents, ne
  partagent pas de code, et travaillent sur des plateformes matrielles
  diffrentes. Le fait d'avoir le mme nom est simplement une sorte
  d'``accident'' historique.


  Il est prvu de supprimer l'utilisation de Milo dans un futur proche.



  77..11..  CCoommppiilleerr MMiilloo

  La procdure de compilation de Milo est dcrite en dtail dans les
  fichiers README dans le paquetage de Milo. Puisque Milo dpend des
  fichiers d'en-tte du noyau qui ont chang plusieurs fois de suite,
  Milo, bien souvent, ne peut tre compil aisment ; cependant, la
  distribution de Milo inclus les binaires pour Milo et Pandora  la
  fois.


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

  Pandora est un simple dbugeur. Il a t initialement dvelop pour
  analyser les systmes non-documents. Pandora inclus un dsassembleur,
  des fonctions de dump mmoire et bien plus. Si vous voulez simplement
  utiliser Linux, il est inutile d'installer Pandora. Cependant, il ne
  prend pas beaucoup de place.


  88..  MMoodduulleess cchhaarrggeeaabblleess

  L'utilisation des modules sous Linux/MIPS est plutt facile ; cela
  devrait marcher normalement pour les personnes qui l'ont utilis sous
  d'autres systmes Linux. Si vous dsirez lancer un systme bas sur
  des modules alors il vous faut au moins un noyau de version 980919 et
  installer modutils avec un numro de version plus rcente que 2.1.121.
  Des versions plus anciennes ne fonctionneront pas.


  99..  CCoommmmeenntt ccoonnffiigguurreerr uunn ccoommppiillaatteeuurr ccrrooiiss ??


  99..11..  BBiinnaaiirreess eexxiissttaanntt

  La chose la plus simple pour configurer un compilateur crois est de
  tlcharger les binaires. Pour les machines Linux/i386 et les cibles
  "big endian", les paquetages ncessaires sont :



    binutils-mips-linux-2.8.1-1.i386.rpm
    egcs-c++-mips-linux-1.0.3a-1.i386.rpm
    egcs-g77-mips-linux-1.0.3a-1.i386.rpm
    egcs-libstdc++-mips-linux-2.8.0-1.i386.rpm
    egcs-mips-linux-1.0.3a-1.i386.rpm
    egcs-objc-mips-linux-1.0.3a-1.i386.rpm



  Et voici la liste des paquetages pour les cibles "little endian" :


    binutils-mipsel-linux-2.8.1-1.i386.rpm
    egcs-c++-mipsel-linux-1.0.3a-1.i386.rpm
    egcs-g77-mipsel-linux-1.0.3a-1.i386.rpm
    egcs-libstdc++-mipsel-linux-2.8.0-1.i386.rpm
    egcs-mipsel-linux-1.0.3a-1.i386.rpm
    egcs-objc-mipsel-linux-1.0.3a-1.i386.rpm



  Il n'est pas ncessaire de tous les installer ; la plupart des person
  nes peuvent oublier les compilateurs C++, Objective C  et Fortran 77.
  Les binaires pour Intel ont t link avec la GNU libc 2.1, donc vous
  devez l'installer aussi pour une mise  jour.


  99..22..  CCoonnssttrruuiirree vvoottrree pprroopprree ccoommppiillaatteeuurr ccrrooiiss

  Avant toute chose, tlchargez les paquetages des sources et les
  patches :


    binutils-2.8.1.tar.gz

    binutils-2.8.1-2.diff.gz

    egcs-1.0.3a.tar.gz

    egcs-1.0.3a-1.diff.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

     Ce sont les versions actuellement recommandes. Des versions plus
     anciennes peuvent marcher comme elles ne peuvent pas marcher. Si
     vous essayez d'utiliser des versions plus anciennes, ne nous
     envoyez pas de rapport de bug s'il vous plat ; nous n'y prterons
     pas attention. Lors de l'installation, veuillez procder dans
     l'ordre binutils, egcs, puis glibc. A moins que vous ayez des
     versions plus anciennes dj installes, le fait de changer l'ordre
     _f_e_r_a chouer l'installation. La description de l'installation
     suivante mentionne un certain nombre de patches que vous pouvez
     rcuprer  partir des paquetages SRPM respectifs sur oss.sgi.com.
     Cependant, puisque ces paquetages SRPM sont censs tre compils
     dans la bonne architecture, il n'est pas possible de simplement les
     recompiler.



  99..33..  EEssppaaccee ddiissqquuee nncceessssaaiirree

  Vous devez choisir un rpertoire pour l'installation. Je ferais
  rfrence  ce rpertoire par <prefix>. Pour viter certain problme,
  il vaut mieux utiliser la mme valeur pour <prefix> que pour le gcc
  natif. Par exemple, si votre gcc est install dans /usr/bin/gcc alors
  choisissez /usr pour <prefix>. Vous devez utiliser la mme valeur de
  <prefix> pour tous les paquetages que vous allez installer.

  Pendant l'installation, il vous faudra environ 31 Mo d'espace disque
  pour binutils ; pour l'installation il vous faudra 7 Mo d'espace
  disque sur la partition contenant <prefix>. La compilation d'egcs
  ncesite 71 Mo et 14 Mo pour l'installation. GNU libc ncessite 149 Mo
  d'espace disque pendant la compilation et 33 Mo pour l'installation.
  Notez que ces quantits ne sont que des indications et peuvent varier
  significativement pour diffrentes architectures de processeurs et de
  systmes d'exploitation.


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

  Une des fonctionnalits particulires des architectures MIPS est que
  tous les processeurs sauf le R8000 peuvent tre configur pour tourner
  en mode gros ou petit boutien (big ou little endian). L'ordre des
  octets indique la manire dont le processeur stocke en mmoire les
  nombres sur plusieurs octets. Les machines gros boutiens stockent
  l'octet de poids le plus fort  l'adresse la plus basse alors que les
  machines petits boutiens les stockent  l'adresse la plus haute.
  Pensez  cela lors de l'criture de nombres sur plusieurs octets de
  gauche  droite ou vice-versa.

  Pour configurer correctement votre compilateur crois, vous devez
  connatre l'ordre des octets du compilateur crois cible. Si vous ne
  le savez pas dj, consultez la section ``Hardware Platforms'' pour
  l'ordre des octets des machines.


  99..55..  LLeess nnoommss ddee ccoonnffiigguurraattiioonn

  La plupart des paquetages bass sur autoconf supportent plusieurs
  architectures et systmes d'exploitation diffrents. Pour diffrencier
  chaque configuration, les noms sont construits selon les schmas
  <cpu>-<entreprise>-<SE> voire mme <cpu>-<entreprise>-<noyau>-<SE>.
  Selon ces schmas, les noms de configuration de Linux/MIPS sont mips-
  unknown-linux-gnu pour les gros boutiens ou mipsel-unknown-linux-gnu
  pour les petits boutiens. Ces noms sont un peu long et il est permis
  de les abrger en mips-linux ou mipsel-linux. Vous _d_e_v_e_z utiliser les
  mmes noms de configuration pour tous les paquetages qui comprennent
  votre environnement de compilateur crois. Ainsi, bien que les autres
  noms comme mips-sni-linux ou mipsel-sni-linux sont les noms de
  configuration lgaux, utilisez linux-mips ou mipsel-linux  la place ;
  ce sont les noms de configuration connu par les autres paquetages
  comme les sources du noyau Linux, autrement il devra tre modifi pour
  les compilations croises.

  Je ferais maintenant rfrence au nom de configuration cible par
  <target>.


  99..66..  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 partie et la plus simple - du moins si vous
  essayez de faire l'installation sur un quelconque UNIX sain. Entrez
  simplement dans un rpertoire avec suffisamment d'espace disque et
  faites ce qui suit :

     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



  Cela fonctionne trs bien habituellement. Sur certaines machines qui
  utilise GCC 2.7.x comme compilateur, on raporte des dump core. C'est
  un bug connu de GCC et peut tre rsolu en mettant GCC  niveau  la
  version 2.8.1 ou en mettant  niveau egcs.

  99..77..  AAsssseerrtt..hh

  Des personnes possdent un vieux fichier d'en-tte assert.h install,
  probablement des restes d'une ancienne installation d'un compilateur
  crois. Ce fichier a pour consquence de faire chouer silencieuement
  les scripts autoconf ; il n'est jamais ncessaire et il a t
  uniquement install  cause d'un bug dans des versions plus anciennes
  de GCC. Vrifiez si le fichier <prefix>/<target>/include/assert.h
  existe dans votre installation. Si c'est le cas, effacez-le : il
  n'aurait jamais d tre install pour une quelconque version du
  compilateur crois et causera des perturbations.


  99..88..  IInnssttaallllaattiioonn dde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 simplement
  dans un rpertoire de votre choix et configurez-les. Leur
  configuration est ncessaire pour que les fichiers qui sont gnrs
  par la procdure soient installs. Assurez-vous que vous ayez activ
  CONFIG_CROSSCOMPILE vers la fin du processus de configuration.
  L'unique problme que vous pourriez rencontrer est d'avoir besoin
  d'installer des programmes GNU ncessaires comme bash ou devoir
  craser les versions de programmes fournies par le constructeur en
  plaant les versions GNU plus tt dans la variables PATH.

  Maintenant, allez dans le rpertoire <prefix>/<target>/include et
  crez deux liens symboliques nomms asm et linux pointant
  respectivement sur include/asm et include/linux dans vos sources du
  noyau qui viennent juste d'tre installs et configurs. Ils sont
  ncessaires pour que les fichiers d'en-ttes ncessaires soient
  trouvs pendant l'tape suivante.


  99..99..  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 : il existe un soit-
  disant problme d'amorage. Dans notre cas, cela signifie que le
  processus d'installation d'egcs ncessite une glibc prcdemment
  installe, mais nous ne pouvons pas compiler glibc parce que nous ne
  possdons pas encore de compilateur crois. Heureusement, vous devrez
  uniquement passer par l lorsque vous installerez un compilateur
  crois pour la premire fois. Plus tard, lorsque vous aurez dj
  install la glibc les choses seront plus aises. Mais pour l'instant
  faites :



     gzip -cd egcs-1.0.3a.tar.gz | tar xf -
     cd egcs-<version>
     patch -p1 < ../egcs-1.0.3a-mips.patch
     ./configure --prefix=<prefix> --with-newlib --target=<target>
     make SUBDIRS="libiberty texinfo gcc" ALL_TARGET_MODULES= \
             CONFIGURE_TARGET_MODULES= INSTALL_TARGET_MODULES= LANGUAGES="c"



  Notez que nous n'avons pas dlibrement compil gcov, protoize, unpro
  toize et les bibliothques. Gcov n'a pas de sens dans un environnement
  de compilateur crois et protoize et unprotoize craserait carrment
  vos programmes natifs - c'est un bug dans les makefiles de gcc. Enfin,
  nous ne pouvons compiler les bibliothques parce que nous n'avons pas
  encore install la glibc. Si tout ce passe avec succs, lancez
  l'installation avec :


     make SUBDIRS="libiberty texinfo gcc" INSTALL_TARGET_MODULES= \
             LANGUAGES="c" install



  Si vous dsirez le compilateur crois pour compiler le noyau, vous
  avez finis. La compilation croise de la libc est maintenant nces
  saire pour pouvoir compiler les applications utilisateurs.


  99..1100..  TTeesstteerr ccee qquuee vvoouuss aavveezz ffaaiitt jjuussqquu''iiccii

  Simplement pour s'assurer que ce que vous avez fait jusqu'ici
  fonctionne, vous devriez maintenant essayer de compiler le noyau.
  Entrez dans les sources du noyau MIPS et tapez "make clean; make dep;
  make". Si tout se droule bien, faites un "make clean" une fois de
  plus pour nettoyer les sources.


  99..1111..  LL''iinnssttaallllaattiioonn ddee llaa GGNNUU lliibbcc

  Faites :


     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=<target>-ar RANLIB=<target>-ranlib \
           ../configure --prefix=/usr --host=<target> \
           --enable-add-ons=crypt,linuxthreads,localedata --enable-profile
     make



  Vous avez maintenant une GNU libc compile qui doit encore tre
  installe. _N_e faites _p_a_s un simple make install. Cela craserait vos
  fichiers systme de votre machine par les fichiers spcifiques de
  Linux/MIPS avec des effets dsastreux. A la place, installez la GNU
  libc dans un autre rpertoire choisie arbitrairement <somedir>  par
  tir du quel nous dplacerons dans le rpertoire cible actuel les par
  ties que nous avons besoin pour la compilation croise  :


     make install_root=<somedir> install



  Maintenant pntrez dans <somedir> et installez finalement la GNU libc
  manuellement


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



  La GNU libc contient aussi une vaste documentation en ligne. Votre
  systme doit dj possder une version de cette documentation, donc si
  vous ne dsirez pas installer les pages infos ce qui vous sauvera un
  peu moins d'un mega octets, ou si vous les avez dj installs, sautez
  la prochaine tape :


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



  Si vous n'avez pas de programme d'amorce, votre installation n'est pas
  finis


  99..1122..  RReeccoommppiillaattiioonn dd''eeggccss

  La premire tentative de compilation d'egcs a t stoppe par
  l'absence de la GNU libc.  Puisque nous avons maintenant la libc
  d'installe, nous pouvons reconstruire egcs mais cette fois de faon
  aussi complte que l'installation d'un compilateur crois puisse
  l'tre :


     gzip -cd egcs-<version>.tar.gz | tar xf -
     cd egcs-<version>
     patch -p1 < ../egcs-1.0.3a-mips.patch
     ./configure --prefix=<prefix> --target=<target>
     make LANGUAGES="c c++ objective-c f77"



  Comme vous pouvez le constater, la procdure est identique que la
  premire fois sauf que nous avons laiss tomb l'option --with-newlib.
  Cette option tait ncessaire pour enlever l'arrt de la compilation
  de libgcc  cause de l'absence de la libc. Maintenant lancez l'instal
  lation avec :


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



  Vous avez presque termin. Si vous pensez ne pas avoir besoin des com
  pilateurs Objective C ou F77, vous pouvez les enlever des commandes
  ci-dessus ; chacune vous sauvera environ 3 Mo. Ne compilez pas gcov,
  protoize ou unprotoize.
  99..1133..  DDooiiss--jjee ccoommppiilleerr 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 ??  LLaa
  rrppoonnssee  cceettttee qquueessttiioonn ddppeenndd llaarrggeemmeenntt ddee ll''uuttiilliissaattiioonn qquuee vvoouuss
  ffeerreezz ddee vvoottrree  eennvviirroonnnneemmeenntt ddee ccoommppiillaatteeuurr ccrrooiiss.. SSii vvoouuss aavveezz ppoouurr
  uunniiqquuee bbuutt ddee rreeccoommppiilleerr llee nnooyyaauu  LLiinnuuxx aalloorrss vvoouuss nn''aavveezz ppaass bbeessooiinn
  dd''uunnee ccoonnffiigguurraattiioonn pplleeiinnee  ccrraaqquueerr eett vvoouuss ppoouuvveezz  oommmmeettttrree eenn ttoouuttee
  ssccuurriitt lleess ccoommppiillaatteeuurrss OObbjjeeccttiivvee CC eett FF7777.. VVoouuss ddeevveezz,, cceeppeennddaanntt,,
  ccoommppiilleerr llee ccoommppiillaatteeuurr CC++++,, ppaarrccee qquuee llaa ccoommppiillaattiioonn ddeess bbiibb
  lliiootthhqquueess iinncclluueess aavveecc llaa  ddiissttrriibbuuttiioonn dd''eeggccss nncceessssiittee CC++++..

  99..1144..  PPrroobbllmmee ccoonnnnuu lloorrss ddee ccoommppiillaattiioonn ccrrooiissee


  99..1144..11..  PPllaannttaaggee dd''IIRRIIXX

  Origin 200 tournant sous IRIX 6.5.1 peut se planter lors d'un "make
  depend" dans les sources de noyau Linux. IRIX 6.5 sur un Indy et
  IRIX 6.5.4 sur un Origin 200 sont connus pour fonctionner
  correctement. Tout rapports pour aider  isoler le problme de
  configuration est la bienvenue.


  99..1144..22..  RReessssoouurrcceess lliimmiitteess ssuurr 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 ssttaannddaarrdd
  SSyysstteemm VV

  Les Unix bass sur le standard System V comme IRIX ou Solaris ont des
  valeurs limites maximum sur les nombres d'argument pouvant tre passs
   un processus enfant qui peuvent tre dpasss lors de la compilation
  croise de logiciels comme le noyau Linux ou la GNU libc. Pour les
  systmes IRIX, la taille maximum de la liste d'arguments vaut par
  dfaut 20 Ko alors la valeur par dfaut pour Linux est d'au moins 128
  Ko. Cette taille peut tre modifi par la commande "systune ncargs
  131072" sous root.


  99..1155..  GGDDBB

  La compilation de GDB comme debugeur crois a uniquement d'intrt
  pour les dveloppeurs du noyau ; leur GDB peut leur sauver la vie. Une
  telle configuration de debugage distant est compose de deux parties :
  le debugeur GDB distant fonctionnant sur une machine et la machine
  cible faisant tourner le noyau Linux/MIPS qui doit tre dbugu. Les
  machines sont habituellement inter-connectes par une ligne srie. Le
  noyau de la machine cible doit tre quip d'un "embryon de dbugage"
  qui communique avec le GDB de la machine hte en utilisant le
  protocole srie distant.

  Suivant l'architecture cible, il vous faudra implmenter l'embryon de
  dbugage vous-mme. En gnral, vous devrez uniquement crire des
  routines sries trs simple.  La tche est, de plus, simplifie par le
  fait que la plupart des machines utilisent des priphriques sries
  semblables, en gnral bas sur le 8250, le 16450 ou des drivs.



  1100..  LLiitttteerraattuurreess ssuurr llee mmmmee tthhmmee


  1100..11..  VVooiirr uunn MMIIPPSS ttoouurrn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 t crit pour tre un guide plutt comprhensif
  pour la programmation MIPS, l o celui-ci diffre de la programmation
  d'autres CPU 32 bits. C'est la premire fois que quelqu'un tente
  d'crire une explication lisible et comprhensive et qui prend en
  compte l'immense gamme de CPU MIPS existant, et devrait tre trs
  utile pour toutes personnes programmant en MIPS qui n'est pas isol
  par le systme d'exploitation de quelqu'un d'autre. Et l'auteur est un
  enthousiaste pro-unix-libre qui s'est inscrit  la liste de
  discussions de Linux/MIPS !  John Hennessey, le pre de l'architecture
  MIPS, a t assez aimable pour crire dans la prface " ... ce livre
  est la meilleure combinaison entre l'exhaustivit et la lisibilit de
  tout livre sur l'architecture MIPS ... " ; Il contient une partie sur
  les CPU RISC, une description de l'architecture et de l'ensemble
  d'instructions incluant les instructions du "co-processeur 0" utilis
  pour le contrle du CPU ; des sections sur les caches, les exceptions,
  la gestion mmoire et les virgules flottantes. Il y a un guide
  dtaill sur le langage assembleur, des trucs sur le portage et des
  exemples de logiciels plutt  usage industriel.  Il est disponible
  sur :


    <http://www.algor.co.uk/algor/info/seemipsrun.html> (europe)

    <http://www.mkp.com/books_catalog/1-55860-410-3.asp> (US)

     et chez tous les bonnes librairies. Il contient 512 pages et cote
     environ 50 $ aux Etats-Unis et 39.95  au Royaume-Unis.  J'aimerais
     parler de deux autres livres aussi, publis chez Morgan Kaufmann et
     disponible sur www.mkp.com ou chez n'importe quelle librairie :

  1100..22..  LLee mmaannuueell dduu pprrooggrraammmmeeuurr 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 qualit :
  beaucoup d'exemples ; son dfaut : ne parle pas d'importantes parties
  de l'architecture (telle que la gestion de la mmoire, des virgules
  flottantes et les caches avancs) parce qu'ils n'ont pas t prsent
  dans le LSI "embarqus" ; ce livre a l'intention d'tre un partenaire.

  1100..33..  AArrcchhiitteeccttuurree iinnffoorrmmaattiiqquuee -- 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mp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-55860-329-8.  La bible de l'architecture informatique moderne
  et qui se doit d'tre lu si vous dsirez comprendre pourquoi un
  programme fonctionne lentement ou rapidement. Parle-t-il du MIPS ? Eh
  bien, cela tourne principalement autours de chose _s_e_m_b_l_a_b_l_e au MIPS
  ... Son seul dfaut est sa taille et son poids - mais  la diffrence
  des gros bouquins, il le vaut  chaque page.

  1100..44..  SSuuppppllmmeenntt ppoouurr lleess pprroocceesssseeuurr MMIIPPSS AABBII ssoouuss UUNNIIXX SSyysstteemm VV
  ((UUNNIIXX SSyysstteemm VV AABBII MMIIPPSS PPrroocceessssoorr SSuupppplleemmeenntt))

  par Prentice Hall, publi le 05 1991, ISBN 0-13880-170-3.  Ce livre
  dfinit la plupart des standards techniques spcifiques  la
  technologie MIPS comme les conventions des appels, les proprits ELF
  et bien d'autre choses utilises par Linux/MIPS. Malheureusement, il
  est en rupture de stock. Paralllement, le site
  _"_h_t_t_p_:_/_/_w_w_w_._m_i_p_s_a_b_i_._o_r_g_/_" ne rpond plus.



