This file is indexed.

/usr/share/doc/HOWTO/fr-html/MIPS-HOWTO.html is in doc-linux-fr-html 2013.01-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.69">
<title>Manuel de Linux/MIPS</title>
</head>
<body>
<h1>Manuel de Linux/MIPS</h1>
<h2>Ralf B&auml;chle, <code>ralf@gnu.org</code> Traduction : Robert
Jacolin, <code>rjacolin@yahoo.fr</code></h2>
24 juin 2000
<hr>
<em>Cette FAQ d&eacute;crit le portage vers l'architecture MIPS du
syst&egrave;me d'exploitation Linux, ainsi que des probl&egrave;mes
courants et propose des solutions, des possibilit&eacute;s (voire
plus). Il tente aussi d'&ecirc;tre un peu utile pour les autres
personnes qui lirait cette FAQ dans l'espoir de trouver des
informations qui, en fait, pourraient &ecirc;tre
d&eacute;taill&eacute;es ailleurs.</em>
<hr>
<h2><a name="s1">1. Qu'est-ce-que Linux/MIPS ?</a></h2>
<p>Linux/MIPS est un portage du tr&egrave;s r&eacute;pandu
cl&ocirc;ne d'UNIX, Linux, vers l'architecture MIPS. Linux/MIPS
fonctionne sur un grand nombre de syst&egrave;mes, techniquement
tr&egrave;s diff&eacute;rents, qui va des petits syst&egrave;mes
embarqu&eacute;s et des petits serveurs jusqu'aux gros serveurs et
aux grosses machines bureautiques qui, au moins &agrave;
l'&eacute;poque o&ugrave; ils ont &eacute;t&eacute; introduit sur
le march&eacute;, &eacute;taient les meilleurs de leur classes.</p>
<p>Les avantages de Linux/MIPS par rapport aux autres
syst&egrave;mes d'exploitation actuels sont :</p>
<ul>
<li>Le syst&egrave;me Linux complet se compose uniquement de
Logiciels Libres,</li>
<li>L'excellent rapport Prix/Performance,</li>
<li>L'existance d'une grande quantit&eacute; de logiciels dont,
encore un fois, une large part sont des Logiciels Libres,</li>
<li>Une compatibilit&eacute; binaire entre un nombre croissant de
plates-formes,</li>
<li>Une petite taille rendant Linux/MIPS appropri&eacute; pour
beaucoup de syst&egrave;mes embarqu&eacute;s.</li>
</ul>
En r&eacute;sum&eacute;, Linux a &eacute;t&eacute; con&ccedil;u et
port&eacute; avec plaisir. Cependant, comme d'habitude, le temps
que vous allez y consacrer pourra varier et vous devrez
v&eacute;rifier que Linux puisse s'adapter &agrave; votre projet,
ce que ce document se propose de faire.
<h2><a name="s2">2. Obtenir cette FAQ</a></h2>
<p>Vous pouvez t&eacute;l&eacute;charger ce document dans plusieurs
formats (et en anglais, NDT):</p>
<ul>
<li>Une version HTML <a href=
"http://oss.sgi.com/mips/mips-howto.html">http://oss.sgi.com/mips/mips-howto.html</a></li>
<li>Une version texte <a href=
"http://oss.sgi.com/mips/mips-howto.txt">http://oss.sgi.com/mips/mips-howto.txt</a></li>
<li>Une version postscript <a href=
"http://oss.sgi.com/mips/mips-howto.ps">http://oss.sgi.com/mips/mips-howto.ps</a></li>
<li>Une version Linux-Doc SGML <a href=
"http://oss.sgi.com/mips/mips-howto.sgml">http://oss.sgi.com/mips/mips-howto.sgml</a></li>
</ul>
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
r&eacute;guli&eacute;rement post&eacute;e sur
<em>comp.os.linux.answers</em> et les autres cannaux des manuels
Linux.
<h2><a name="s3">3. Quel est le mat&eacute;riel support&eacute; par
Linux/MIPS ?</a></h2>
<h2><a name="ss3.1">3.1 Les plates-formes
mat&eacute;rielles</a></h2>
<p><a name="hardware-platforms"></a></p>
<p>Plusieurs machines sont utilisables avec un quantit&eacute;
variable d'options CPU qui ne sont pas encore toutes
support&eacute;s. Veuillez v&eacute;rifier que votre type de CPU
est support&eacute; dans la section <a href="#supported-cpus">Types
de processeurs</a>. C'est une liste de machines qui fonctionnent
sous Linux/MIPS, de syst&egrave;mes o&ugrave; Linux/MIPS peut
&ecirc;tre port&eacute; ou de syst&egrave;mes o&ugrave; l'on a
int&eacute;r&ecirc;t &agrave; faire fonctionner Linux/MIPS.</p>
<h3>Le PICA d'Acer</h3>
<p>Le <em>PICA d'Acer</em> est d&eacute;riv&eacute; de
l'architecture <em>Mips magnum 4000</em>. Il poss&egrave;de un CPU
R4400PC fonctionnant &agrave; 133 Mhz ou &eacute;ventuellemnt
&agrave; 150 Mhz plus une m&eacute;moire cache de second niveau de
512 Ko (&eacute;ventuellement de 2 Mo); la carte gfx G364 du Magnum
a &eacute;t&eacute; remplac&eacute; par une carte bas&eacute;e sur
le S3 968. Le syst&egrave;me est support&eacute; &agrave;
l'&eacute;xception du serveur X.</p>
<h3>Les s&eacute;ries Baget/MIPS</h3>
<p>Les s&eacute;ries Baget comprennent plusieurs machines
poss&eacute;dant des processeurs R3000 : le Baget 23, le Baget 63
et le Baget 83. Les Baget 23 et 63 ont des cartes m&egrave;res
BT23-201 ou BT23-202 avec respectivement un R3500A (qui est,
&agrave; la base, un composant R3000A) &agrave; 25 Mhz et un R3081E
&agrave; 50 Mhz. La carte BT23-201 poss&egrave;de un bus VME et des
puces VIC068, VAC068 comme contr&ocirc;leurs syst&egrave;mes. La
carte BT23-202 poss&egrave;de un bus PCI en interne et une bus VME
en externe. Le support de la carte BT23-201 a &eacute;t&eacute;
fait par <a href="mailto:rajko@mech.math.msu.su">Gleb Raiko
(rajko@mech.math.msu.su)</a> et <a href=
"mailto:vroganov@msiu.ru">Vladimir Roganov (vroganov@msiu.ru)</a>
avec l'aide de <a href="mailto:zimin@msiu.ru">Serguei Zimin
(zimin@msiu.ru)</a>. Le support du BT23-202 est en
d&eacute;veloppement avec un Baget 23B qui est compos&eacute; de 3
cartes BT23-201 avec un bus VME partag&eacute;.</p>
<p>Le Baget 83 est mentionn&eacute; ici uniquement pour &ecirc;tre
&eacute;xhaustif. Il poss&egrave;de uniquement 2 Mo de RAM et il
est trop petit pour faire tourner Linux. Le code du Baget/MIPS a
&eacute;t&eacute; fusionn&eacute; avec le portage des stations DEC
; le source pour ces deux plates-formes est sur <a href=
"http://decstation.unix-ag.org/">http://decstation.unix-ag.org/</a>.</p>
<h3>Le Qube et le Raq de Cobalt</h3>
<p>Les s&eacute;ries de produits Qube&nbsp;Cobalt sont des
syst&egrave;mes de serveurs headless de faible co&ucirc;t
bas&eacute;s sur un IDT&nbsp;R5230. Cobalt a
d&eacute;velopp&eacute; sa propre variante de Linux/MIPS pour
r&eacute;pondre aussi bien que possible aux besoins particuliers du
Qube. Au d&eacute;part, le noyau du Qube a &eacute;t&eacute;
d&eacute;riv&eacute; du noyau de Linux/MIPS 2.1.56, puis
ramen&eacute; &agrave; la version 2.0.30 pour la stabilit&eacute;,
enfin il a &eacute;t&eacute; optimis&eacute;. Les noyaux pour le
Cobalt sont accessibles sur le site ftp de Cobalt <a href=
"http://www.cobaltnet.com">http://www.cobaltnet.com</a>. Le support
du Qube de Cobalt n'a jamais &eacute;t&eacute;
int&eacute;gr&eacute; dans les noyaux officiels 2.1.x de
Linux/MIPS.</p>
<h3>Les machines NEC</h3>
<p>Les machines uni-processeur NEC sont des syst&egrave;mes
<em>PICA d'Acer</em>, voir cette section pour plus de
d&eacute;tails. Les syst&egrave;mes SMP sont dif&eacute;rents
&agrave; cause du fait d'avoir plusieurs processeurs. Les
d&eacute;veloppeurs de Linux/MIPS n'ont pas les documentations
techniques n&eacute;cessaires pour &eacute;crire un OS. Aussi
longtemps qu'il n'y aura pas de changements, ce portage restera
plus ou moins un bouchon remarqu&eacute; faisant obstacle au
portage vers les syst&egrave;mes SMP de NEC.</p>
<h3>Les plates-formes bas&eacute;es sur les VR41xx de NEC</h3>
<p>Le projet VR Linux fait le portage de Linux vers du
mat&eacute;riel bas&eacute; sur les micro-processeurs VR41xx de
NEC. La plupart de ces mat&eacute;riels &eacute;taient, &agrave;
l'origine, destin&eacute;s pour faire tourner Windows&nbsp;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 <a href=
"http://linux-vr.org/">http://linux-vr.org/</a>.</p>
<h3>Les plates-formes TMPR39xx de Toshiba/PR31700 de Philips</h3>
<p>Semblable aux VR41xx, le mat&eacute;riel avec ces processeurs
ont &eacute;t&eacute;, &agrave; l'origine, destin&eacute;s pour
faire tourner Windows&nbsp;CE. Cependant, il y a des noyaux
fonctionnels avec des drivers de base pour le <em>Sharp
Mobilon</em> et la <em>s&eacute;rie C de Compaq</em>. Le support
d'autre mat&eacute;riels est en cours. Le code fait partie du
projet VR Linux et donc de plus amples informations peuvent
&ecirc;tre trouv&eacute; sur <a href=
"http://linux-vr.org/">http://linux-vr.org/</a>.</p>
<h3>Le Netpower 100</h3>
<p>Le <em>Netpower 100</em> est apparamment un <em>PICA d'Acer</em>
d&eacute;guis&eacute;. Il devrait &ecirc;tre, par
cons&eacute;quence, support&eacute; mais cela n'a pas
&eacute;t&eacute; test&eacute;. S'il y a un probl&egrave;me c'est
probablement lors de la d&eacute;tection de la machine.</p>
<h3>La Nintendo 64</h3>
<p>La <em>nintendo 64</em> est une console de jeu bas&eacute; sur
un R4300 avec 4 Mb de RAM. Ses puces graphiques ont
&eacute;t&eacute; d&eacute;velopp&eacute; par Silicon Graphics pour
nintendo. A l'heure actuelle, ce portage est un r&eacute;ve de
joueur et continuera de l'&ecirc;tre tant que Nintendo ne
d&eacute;cidera pas de publier les informations techniques
necessaires. La question qui subsiste est de savoir si c'est une
bonne id&eacute;e.</p>
<h3>Le Challenge S de Silicon Graphics</h3>
<p>Cette machine est tr&egrave;s similaire &agrave; l'Indy ; la
diff&eacute;rence est qu'elle ne poss&egrave;de pas de clavier ni
de carte GFX mais un adaptateur bas&eacute; sur un WD33C95 SCSI
suppl&eacute;mentaire. Cet adaptateur WD33C95 n'est pas
support&eacute; pour l'instant.</p>
<h3>L'Indigo de Silicon Graphics</h3>
<p>Cette machine n'est mention&eacute;e que parce que certaine
personne la confonde avec les Indys ou l'Indigo&nbsp;2. L'Indigo
poss&eacute;de une architecture diff&eacute;rente, bas&eacute;e sur
un R3000 cependant, et n'est pas encore support&eacute;.</p>
<h3>L'Indigo2 de Silicon Graphics</h3>
<p>Cette machine est le successeur de l'Indigo et elle est
tr&egrave;s semblable &agrave; l'Indy. Elle est maintenant
support&eacute;e, bien qu'ellz p&eacute;che en bien des points.
Vous devrez utiliser une console s&eacute;rie. Si vous avez une
Indigo2 et si vous d&eacute;sirez encore y faire tourner Linux,
contactez soit <a href="mailto:flo@rfc822.org">Florian Lohoff
(flo@rfc822.org)</a> soit <a href="mailto:spock@mgnet.de">Klaus
Naumann (spock@mgnet.de)</a>.</p>
<h3>L'Indy de Silicon Graphics</h3>
<p>L'Indy est, en ce moment, l'unique machine support&eacute; parmi
(la plupart) des machines de Silicon Graphics. La seule carte
graphique support&eacute;e est la carte Newport c'est-&agrave;-dire
la "XL". L'Indy existe avec un grand nombre d'options pour le CPU
&agrave; des taux d'horloge vari&eacute;s, tous &eacute;tant
support&eacute;s. Il existe aussi maintenant un serveur X
&eacute;crit par <a href="mailto:guido.guenther@gmx.net">Guido
Guenther (guido.guenther@gmx.net)</a>. Si vous pouvez utiliser la
console de Newport sur votre Indy, il doit &ecirc;tre possible
aussi d'utiliser le serveur X. Il est bas&eacute; sur XFree86 4.0
et il fonctionne courament &agrave; une vitesse de tortue mais
semble bien fonctionner. Si vous d&eacute;sirez l'essayer, jetez un
oeil sur <a href=
"http://honk.physik.uni-konstanz.de/~agx/mipslinux/x/">http://honk.physik.uni-konstanz.de/~agx/mipslinux/x/</a>.</p>
<h3>Quantit&eacute; &eacute;trange d'espace m&eacute;moire</h3>
<p>Lors du boot, le noyau de l'Indy reporte la m&eacute;moire
utilisable dans un message du type :</p>
<pre>
   Memory: 27976k/163372k available (1220k kernel code, 2324k data)
   
</pre>
Cette importante diff&eacute;rence entre la premi&egrave;re paire
de nombres vient de l'existance d'une zone de 128 Mo dans l'espace
adressable de la m&eacute;moire de l'Indy qui refl&egrave;te les
128 premiers Mo de m&eacute;moire. La diff&eacute;rence entre les 2
nombres sera toujours proche de 128 Mo et n'indique pas un
quelconque probl&egrave;me. Les noyaux depuis la version 2.3.23 ne
compte plus ce trou de 128 Mo.
<h3>Probl&egrave;mes avec la PROM de l'Indy</h3>
<p>Plusieurs personnes ont rapport&eacute;s ces probl&egrave;mes
avec leurs machines apr&egrave;s une mise &agrave; niveau
typiquement &agrave; 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 &eacute;t&eacute; mis &agrave;
niveau vers une variante plus r&eacute;cente d'un CPU comme un
module R4600SC ou un R5000SC, peuvent se planter pendant
l'auto-test avec un message d'erreur du type :</p>
<pre>
   Exception: &lt;vector=Normal&gt;
   Status register: 0x30004803&lt;CU1,CU0,IM7,IM4,IPL=???,MODE=KERNEL,EXL,IE&gt;
   Cause register: 0x4000&lt;CE=0,IP7,EXC=INT&gt;
   Exception PC: 0xbfc0b598
   Interrupt exception
   CPU Parity Error Interrupt
   Local I/O interrupt register 1: 0x80 &lt;VR/GIO2&gt;
   CPU parity error register: 0x80b&lt;B0,B1,B3,SYSAD_PAR&gt;
   CPU parity error: address: 0x1fc0b598
   NESTED EXCEPTION #1 at EPC: 9fc3df00; first exception at PC: bfc0b598
   
</pre>
Dans ce cas, vous devez mettre &agrave; niveau la PROM de votre
machine vers une version plus r&eacute;cente ou retourner vers un
version plus ancienne du CPU. En g&eacute;n&eacute;ral, les modules
R4000SC ou R4400SC devraient fonctionner de cette mani&egrave;re.
Juste pour &ecirc;tre bien clair, ceci est un probl&egrave;me
n'ayant aucun rapport avec Linux. C'est uniquement mentionn&eacute;
ici parce que plusieurs utilisateurs de Linux nous ont pos&eacute;
la question.
<h3>Le supprot d'ELF avec des vieilles versions de PROMs</h3>
<p>Les vieilles versions de PROM ne connaissent pas le format
binaire ELF que le noyau de Linux utilise, ce qui l'emp&ecirc;che
de booter directement sur Linux. La solution
pr&eacute;f&eacute;rable &agrave; cela reste &eacute;videment une
mise &agrave; niveau de la PROM. Vous pouvez aussi utiliser Sash
d'IRIX 5 ou une version plus r&eacute;cente pour charger le noyau.
Sash sait comment charger les binaires ELF et ne se
pr&eacute;occupe pas de savoir si c'est un noyau IRIX ou Linux. Il
suffit de taper simplement "Sash" &agrave; partir du moniteur de la
PROM. Vous obtiendrez un autre prompt shell, celui de Sash cette
fois-ci. Maintenant lancez Linux comme d'habitude.</p>
<p>Sash peut lire les syst&egrave;mes 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 &agrave; partir
d'un disque local, vous devrez encore poss&eacute;der une
installation minimale d'IRIX sur votre syst&egrave;me.</p>
<h3>Pourquoi y-a-t-il autant de m&eacute;moire
r&eacute;serv&eacute;e sur mon Indy ?</h3>
<p>Lors du d&eacute;marrage, le message "Memory: ..." sur un Indy
indique qu'il y a 128 Mo de RAM r&eacute;serv&eacute;. C'est normal
; de m&ecirc;me que l'architecture PC a un trou dans son espace
d'adressage m&eacute;moire entre 640 Ko et 1024 Ko, l'Indy
poss&egrave;de une zone de 128 Mo dans son espace m&eacute;moire
o&ugrave; les 128 premiers Mo de sa m&eacute;moire est
dupliqu&eacute;. Linux le sait et ignore simplement cette zone
m&eacute;moire, ce qui explique ce message.</p>
<h3>Les Silicon Graphics Origin&nbsp;200 et 2000</h3>
<p><a href="mailto:ralf@gnu.org">Ralf B&auml;chle
(ralf@gnu.org)</a> et une &eacute;quipe d'employ&eacute;s de SGI
travaillent actuellement sur un portage vers l'Origin&nbsp;200.
Bien qu'il soit encore que dans les &eacute;tapes initiales, il
fonctionne en mode mono-processeur et multi-processeurs et
poss&egrave;de des pilotes pour la carte Ethernet IOC3 et
l'adaptateur SCSI fourni avec. Le code peut &ecirc;tre pris dans
l'arbre CVS de Linux/MIPS.</p>
<h3>Les Silicon Graphics Onyx&nbsp;2</h3>
<p>L'Onyx&nbsp;2 est, &agrave; la base, un Origin&nbsp;2000 avec du
mat&eacute;riel graphique suppl&eacute;mentaire. A partir de
maintenant,le support de Linux pour le mat&eacute;riel graphique
n'a pas &eacute;t&eacute; d&eacute;cid&eacute;. En d&eacute;pit de
ca, Linux devrai fonctionner aussi bien qu'une configuration
headless Origin&nbsp;2000.</p>
<h3>Silicon Graphics Power Series</h3>
<p>C'estune tr&egrave;s vieilles s&eacute;ries des syst&egrave;mes
R3000 SMP. Il n'existe pas de documentation sur le mat&eacute;riel
de ces machines, peu d'entre elles existant encore, le
mat&eacute;riel est bizarre. Pour faire court, les chances pour que
Linux tourne un jour sur l'une d'elles sont proches de z&eacute;ro.
Non pas que l'on veuille d&eacute;courager des
volontaires&nbsp;...</p>
<h3>Consoles S&eacute;rie sur les machines SGI</h3>
<p>Assurez-vous que le noyau que vous utilisez inclus le driver
appropri&eacute; pour une interface s&eacute;rie et une console
s&eacute;rie. Initialisez la variable d'environnement
<em>console</em> ARC soit avec la valeur <em>d1</em> soit avec la
valeur <em>d2</em> pour les Indy et les Challenge&nbsp;S en
fonction de l'interface s&eacute;rie que vous allez utiliser comme
console.</p>
<p>Si vous avez le probl&egrave;me d'affichage de tous les messages
du noyau sur la console s&eacute;rie lors du d&eacute;marrage alors
que plus rien n'est affich&eacute; &agrave; partir du d&eacute;but
de la phase d'init, alors vous avez probablement une mauvaise
configuration pour votre /dev/console. Vous pourrez trouver de plus
amples informations &agrave; ce sujet dans la documentation du
source du noyau de Linux ; il est situ&eacute; dans le
r&eacute;pertoire /usr/src/linux/Documentation/serial-console.txt
si vous avez install&eacute; le source du noyau.</p>
<h3>Les autres machines de Silicon Graphics</h3>
<p>A l'heure actuelle, aucune machine Silicon Graphics n'est
support&eacute;e. Ceci s'applique aussi aux syst&egrave;mes
bas&eacute;s sur les <i>tr&egrave;s</i> vieux Motorola 68k.</p>
<h3>La Playstation de Sony</h3>
<p>La Playstation de Sony est bas&eacute;e sur un R3000
d&eacute;riv&eacute;e et utilise un ensemble de composants
graphiques d&eacute;velop&eacute; par Sony lui-m&ecirc;me. Alors
que la machine est, en th&eacute;orie, capable de tourner sous
Linux, un portage semble difficile, puisque Sony n'a toujours pas
fourni les informations techniques n&eacute;cessaires. Cela met de
c&ocirc;t&eacute; la question de l'int&ecirc;ret du portage. Donc,
en r&eacute;sum&eacute;, rien ne s'est pass&eacute; jusqu'ici alors
que beaucoup de gens ont montr&eacute; leur int&eacute;r&ecirc;t en
essayant Linux sur une Playstation.</p>
<h3>SNI RM200C</h3>
<p>A l'inverse du RM200 (voir en-dessous), cette machine
poss&egrave;de des slots EISA et PCI. Le RM200 est support&eacute;
&agrave; l'exception du controleur SCSI NCR53c810A
int&eacute;gr&eacute;.</p>
<h3>SNI RM200</h3>
<p>Si votre machine poss&egrave;de &agrave; la fois des slots EISA
et PCI, alors c'est un RM200C ; Consultez la section
pr&eacute;c&eacute;dente s'il vous pla&icirc;t. A cause de
l&eacute;g&egrave;res diff&egrave;rences architecturales entre le
RM200 et le RM200C, cette machine n'est pas encore support&eacute;e
dans les sources officiels. <a href=
"mailto:engel@numerik.math.uni-siegen.de">Michael Engel
(engel@numerik.math.uni-siegen.de)</a> a r&eacute;ussi &agrave;
faire fonctionner son RM200 partiellement mais les patches n'ont
pas encore &eacute;t&eacute; inclus dans les sources de Linux/MIPS
officiels.</p>
<h3>SNI RM300C</h3>
<p>Le RM300 est techniquement tr&egrave;s similaire au RM200C. Il
devrai &ecirc;tre support&eacute; par le noyau courant de Linux,
mais nous n'avons encore re&ccedil;u aucun signalement.</p>
<h3>SNI RM400</h3>
<p>Le RM400 n'est pas support&eacute;.</p>
<h3>SNI RW320</h3>
<p>Cette machine est une variante OEM d'un SGI Indigo et, par
cons&eacute;quent, elle n'est pas encore support&eacute;e.</p>
<h3>Algorithmics P4032</h3>
<p>Le portage de l'Algorithmics P4032 tourne encore, lors de la
redaction de ce document, sous Linux 2.1.36.</p>
<h3>Algorithmics P5064</h3>
<p>Le P5064 est, &agrave; la base, une variante 64 bits du P4032
bas&eacute; sur un R5000. Un portage est en cours.</p>
<h3>DECstation series</h3>
<p>Pendant la fin des ann&eacute;es 80 et au d&eacute;but des
ann&eacute;es 90, Digital (maintenant Compaq) a construit une
station de travail bas&eacute;e sur les MIPS appel&eacute;e
respectivement DECStation et DECsystem. D'autres machines
bas&eacute;es sur des x86 ou des Alphas ont &eacute;t&eacute; 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 d&eacute;veloppement, d&eacute;but&eacute; par Paul M. Antoine.
A l'heure actuelle, la plupart du travail est fait par <a href=
"mailto:Harald.Koerfgen@home.ivm.de">Harald Koerfgen
(Harald.Koerfgen@home.ivm.de)</a> et par d'autres personnes. Sur
Internet, des informations sur les DECstations peuvent &ecirc;tre
trouv&eacute; sur le site <a href=
"http://decstation.unix-ag.org/">http://decstation.unix-ag.org/</a>.</p>
<p>La famille des DECstations couvre les DECstations 2100 avec une
puce R2000/R2010 &agrave; 12 MHz jusqu'au DECstation 5000/260 avec
un R4400SC &agrave; 66 MHz.</p>
<p>Les mod&egrave;les des DECstations suivants sont activement
support&eacute;s :</p>
<ul>
<li>2100, nom de code PMAX</li>
<li>5000/xx (DECstation&nbsp;Personnel), nom de code MAXine</li>
<li>5000/1xx, nom de code 3MIN</li>
<li>5000/200, nom de code 3MAX</li>
<li>5000/2x0, nom de code 3MAX+</li>
<li>5900/2x0 (identique au 3MAX+).</li>
</ul>
<p>Ces mod&egrave;les de DECstations sont orphelins parce que
personne ne travaille dessus, alors que leur support peut
&ecirc;tre relativement facile &agrave; finir.</p>
<ul>
<li>3100, identique au 2100 sauf le R2000A/R2010A @ 16 MHz</li>
<li>5100, nom de code MIPSMATE, presque identique au 2100 mais avec
une puce R3000/R3010.</li>
</ul>
<p>Les autres machines de la famille des DECstations, &agrave; part
ceux bas&eacute;s sur x86, devraient &ecirc;tre
consid&eacute;r&eacute; comme des VAXen avec un CPU remplac&eacute;
par un CPU MIPS. Il n'y a aucune information existante sur ces
machines et le support de ces machines est improbable &agrave;
moins que le portage des VAXLinux renait de ses cendres. Ce sont
les :</p>
<ul>
<li>5400, nom de code MIPSFAIR</li>
<li>5500, nom de code MIPSFAIR2</li>
<li>5800, nom de code ISIS</li>
</ul>
<h3>Mips Magnum 4000 / Olivetti M700-10</h3>
<p>Ces deux machines sont presque compl&eacute;tement identiques.
Revenons lors de l'initiative d'ACE, Olivetti a pris une license du
concept Jazz et a mis sur le march&eacute; la machine avec comme
syst&egrave;me d'exploitation Windows&nbsp;NT. MIPS Computer
Systems, Inc a achet&eacute; lui-m&ecirc;me le concept Jazz et l'a
mis sur le march&eacute; avec la s&eacute;rie de machines MIPS
Magnum 4000. Les syst&egrave;mes Magnum 4000 ont &eacute;t&eacute;
mis sur le march&eacute; avec comem syst&egrave;me d'exploitation
Windows&nbsp;NT et RISC/os.</p>
<p>Le microcode de la machine d&eacute;pend du syst&egrave;me
d'exploitation qui a &eacute;t&eacute; install&eacute;. Linux/MIPS
supporte uniquement le microcode "little endian" sur ces deux types
de machines. Puisque le M700-10 n'a &eacute;t&eacute; mis sur le
march&eacute; uniquement en tant que machine NT, toutes ces
machines ont ce mat&eacute;riel install&eacute;. Le cas du MIPS
Magnum est quelque peu plus complexe. Si votre machine a
&eacute;t&eacute; configur&eacute; en "big endian" pour RISC/os
alors vous devez recharger le microcode "little endian". Ce
microcode &eacute;tait, &agrave; l'origine, inclus sur une
disquette lors de la livraison de chaque Magnum. Si vous ne
poss&eacute;dez plus la disquette, vous pouvez la
t&eacute;l&eacute;charger par ftp anonymes sur le site <a href=
"ftp://ftp.fnet.fr">ftp://ftp.fnet.fr</a>.</p>
<p>Il est possible de reconfigurer les M700 pour des
op&eacute;rations headless en positionnant les variables
d'environnement du mat&eacute;riel ConsoleIn et ConsoleOut sur
mluti()serial()term(). Essayez aussi la commande <i>listdev</i> qui
listera les p&eacute;riph&eacute;riques ARC existants.</p>
<p>Dans bien des cas, comme lorsque la carte graphique G364 est
absente alors que la console est encore configur&eacute;e pour
l'utilisation graphique normale, il sera n&eacute;cessaire de
modifier le cavalier de configuration JP2 sur la carte m&egrave;re.
Apr&egrave;s le prochain reset, la machine redemarrera sur la
console COM2.</p>
<h3>MIPS Magnum 4000SC</h3>
<p>Le Mips Magnum 4000SC est semblable au Magnum 4000 (voir
ci-dessus) sauf qu'il utilise un CPU R4000SCC.</p>
<h2><a name="supported-cpus"></a> <a name="ss3.2">3.2 Les types de
processeur</a></h2>
<h3>La famille des R2000, R3000</h3>
<p>Le R2000 est le processeur MIPS original. C'est un processeur 32
Bits qui avait une fr&eacute;quence de 8 MHz sortie en 85 lorsque
les premiers processeurs MIPS arriv&eacute;rent sur le
march&eacute;. Les versions suivantes furent cadenc&eacute;es plus
rapidement : par exemple, le 53000 est un reconception du R2000
100% compatible, juste cadenc&eacute; plus rapidement. A cause de
leur haute compatibilit&eacute;, lorsque ce document mentionne le
R3000, dans bien des cas, les m&ecirc;mes faits s'appliquent aussi
aux R2000. Le R3000A est, &agrave; la base, un R2000 avec un FPU
R3010 et 64 K de cache cadenc&eacute; jusqu'&agrave; 40 MHz et
int&eacute;gr&eacute; dans la m&ecirc;me puce.</p>
<p><a href="mailto:Harald.Koerfgen@home.ivm.de">Harald Koerfgen
(Harald.Koerfgen@home.ivm.de)</a> et <a href=
"mailto:raiko@niisi.msk.ru">Gleb O. Raiko (raiko@niisi.msk.ru)</a>
ont tous les deux, de fa&ccedil;on ind&eacute;pendante,
travaill&eacute; sur des patches pour les processeurs R3000. Leur
travail a &eacute;t&eacute; fusionn&eacute; et
int&eacute;gr&eacute; 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.</p>
<h3>R6000</h3>
<p>Parfois, des personnes confondent le R6000, qui est un
processeur MIPS, avec le RS6000, une s&eacute;rie de stations de
travail cr&eacute;&eacute;e par IBM. Donc, si vous lisez ces lignes
en esp&eacute;rant trouver des informations sur l'utilisation de
Linux sur des machines IBM, vous lisez le mauvais document.</p>
<p>Le R6000 n'est pas support&eacute; pour l'instant. C'est un
processeur MIPS 32 Bits ISA 2 et c'est un morceau de silicon
plut&ocirc;t int&eacute;ressant et bizarre. Il a &eacute;t&eacute;
d&eacute;velopp&eacute; et produit par une entreprise
appel&eacute;e <i>BIT Technology</i>. Plus tard, NEC repris la
production des semiconducteurs. Il &eacute;tait construit avec la
technologie ECL, la m&ecirc;me technologie qui &eacute;tait et qui
est encore utilis&eacute; pour construire des puces
extr&ecirc;mement rapide comme celles utilis&eacute;es dans les
ordinateurs Cray. Le processeur poss&egrave;de son propre TLB
impl&eacute;ment&eacute; comme une partie des derni&egrave;res
paires de lignes du cache primaire externe, une technologie
appel&eacute;e <i>tranche TLB (TLB slice)</i>. Ce qui signifie que
son MMU est substantiellement diff&eacute;rent de ceux de la
s&eacute;rie des R3000 ou des R4000, ce qui est aussi une des
raisons pour laquelle le processeur n'est pas support&eacute;.</p>
<h3>La famille des R4000 et R5000</h3>
<p>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.</p>
<p>Ceux qui ne sont pas support&eacute;s, ce sont les CPU R4000MC
et R4400MC (ce sont des syst&egrave;mes multi-processeurs), de
m&ecirc;me que les syst&egrave;me R5000 avec un cache de second
niveau control&eacute; par le CPU. Cela signifie que le cache est
contr&ocirc;l&eacute; par le R5000 lui-m&ecirc;me &agrave; la
diff&eacute;rence des controleurs de cache externe. La
diff&eacute;rence est importante car, &agrave; la diff&eacute;rence
des autres syst&egrave;mes, particuli&egrave;rement les PCs, sur
les MIPS, le cache est visible dans l'architecture et
n&eacute;cessite d'&ecirc;tre contr&ocirc;l&eacute; de fa&ccedil;on
logiciel.</p>
<p>Remerciements particuliers pour <a href=
"mailto:grim@zigzegv.ml.org">Ulf Carlsson (ulfc@engr.sgi.com)</a>
qui a fourni le module CPU pour deboguer le support du R4000SC /
R4400SC.</p>
<h3>R8000</h3>
<p>Le R8000 n'est pas support&eacute;, &agrave; l'heure actuelle,
d'une part parce que ce processeur est relativement rare et qu'il
n'a &eacute;t&eacute; utilis&eacute; que dans quelques machines de
SGI, d'autre part parce que les d&eacute;veloppeurs de Linux/MIPS
ne poss&egrave;dent pas d'une machine de ce type.</p>
<p>Le R8000 est un morceau de silicon plut&ocirc;t
int&eacute;ressant. A la diff&eacute;rence des autres membres de la
famille MIPS, c'est un ensemble de 7 puces. Son cache et son
architecture TLB est assez diff&eacute;rent des autres membres de
la famille MIPS. Il est n&eacute; d'un rapide "hack" pour que les
virgules flotantes redeviennent le fer de lance des
Silicon&nbsp;Graphics avant que le R10000 soit termin&eacute;.</p>
<h3>R10000</h3>
<p>Le R10000 est support&eacute; dans le noyau mips64 qui est
actuellement support&eacute; par les IP22 (l'Indy de SGI, le
Challenge&nbsp;S et l'Indigo&nbsp;2) et l'Origin.</p>
<p>A cause de la tr&egrave;s grande difficult&eacute; pour
g&eacute;rer la mani&egrave;re de fonctionner de ce processeur dans
des syst&egrave;mes sans cache coh&egrave;rent, cela va prendre
probablement encore un certain temps avant que nous supportions ce
processeur pour de tels syst&egrave;mes. A partir de maintenant,
ces syst&egrave;mes sont les SGI&nbsp;O2 et Indigo.</p>
<h2><a name="ss3.3">3.3 Mat&eacute;riel qui ne sera jamais
support&eacute;</a></h2>
<h3>IBM RS6000</h3>
<p>Comme son nom l'indique, c'est une machine IBM qui est
bas&eacute; sur la s&eacute;rie 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
<a href="http://www.linuxppc.org/">http://www.linuxppc.org/</a>
pour de plus amples informations.</p>
<h3>VaxStation</h3>
<p>Comme son nom l'indique d&eacute;j&agrave;, 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&eacute; sur le MIPS de Digital &agrave; cause des types de
num&eacute;ros similaires. Malheureusement, le VaxStation, de
m&ecirc;me que la famille enti&egrave;re des VAX, n'est pas
support&eacute; pour l'instant.</p>
<h3>SGI VisPC</h3>
<p>C'est un syst&egrave;me bas&eacute; sur les x86, par
cons&eacute;quent, il n'est pas couvert par cette FAQ. Cependant,
pour faciliter vos recherches, voici quelques infos. <a href=
"mailto:kck@mailbox.esd.sgi.com">Ken Klingman
(kck@mailbox.esd.sgi.com)</a> post&eacute; le 17 Janvier 1999 sur
la liste de discussion Linux de SGI&nbsp;:</p>
<pre>
  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&eacute; sur
  X et OpenGl devrait suivre relativement rapidement, mais le mat&eacute;riel acc&eacute;l&eacute;r&eacute;
  pour OpenGL n'est pas encore planifi&eacute;. Voir www.precisioninsight.com pour des
  nouvelles sur le mat&eacute;riel acc&eacute;l&eacute;r&eacute; pour OpenGL.

  
</pre>
Pour plus d'informations, voir la Documentation/ du noyau de Linux
&agrave; partir de la version 2.2 ou sup&eacute;rieure. Il y a des
informations suppl&eacute;mentaires sur le web &agrave; l'adresse
<a href="http://oss.sgi.com/">http://oss.sgi.com/</a>. Notez que le
personnel de SGI/MIPS et de SGI/Intel travaille
ind&eacute;pendemment de chacun des autres, par cons&eacute;quent,
les sources sur le CVS anonyme sur oss.sgi.com peut ou ne peut
tr&egrave;s bien ne pas fonctionner pour les machines Intel ; nous
n'avons pas test&eacute; cela.
<h3>Les machines bas&eacute; sur le 68k de Motorola comme
l'Iris&nbsp;30000</h3>
<p>Ce sont de <i>tr&egrave;s</i> vieilles machines, probablement
ag&eacute;s de plus de 10 ans maintenant. Comme ces machines ne
sont pas bas&eacute; 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
support&eacute;es actuellement.</p>
<h2><a name="s4">4. Les distributions Linux</a></h2>
<h2><a name="ss4.1">4.1 RedHat</a></h2>
<p>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 <a href=
"ftp://oss.sgi.com/pub/hardhat">ftp://oss.sgi.com/pub/hardhat</a>.</p>
<p>Il est aussi empaquet&eacute; avec le support de l'architecture
M68k, UltraSparc et PowerPC dans un paquetage appel&eacute; "Rough
Cuts" &eacute;labor&eacute; par Red Hat, et on peut l'obtenir
l&agrave; o&ugrave; les produits Red Hat sont vendus. C'est une
mani&egrave;re tr&egrave;s pratique de l'obtenir sans avoir
&agrave; t&eacute;l&eacute;charger 280 Mo. Vous pouvez commander
Rough Cuts directement chez Red Hat &agrave; l'adresse <a href=
"http://www.redhat.com/product.phtml/RC1000">http://www.redhat.com/product.phtml/RC1000</a>.</p>
<p>De plus, il existe une distribution bas&eacute; 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 <a href=
"ftp://intel.cleveland.lug.net/pub/Mipsel">ftp://intel.cleveland.lug.net/pub/Mipsel</a>.
<a href=
"ftp://bolug.uni-bonn.de/mips">ftp://bolug.uni-bonn.de/mips</a>
poss&egrave;de plusieurs paquetages rpm Redhat&nbsp;6.0 et 6.1.</p>
<h2><a name="ss4.2">4.2 Debian</a></h2>
<p>Un portage de la Debian est en cours. Les efforts actuels ont
&eacute;t&eacute; amorc&eacute; 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&eacute; leur
int&eacute;r&ecirc;t pour des plateformes "little endian". Gardez
un oeil sur la page du portage Debian-MIPS, <a href=
"http://www.debian.org/ports/mips/">http://www.debian.org/ports/mips/</a>
pour le d&eacute;veloppement.</p>
<h2><a name="ss4.3">4.3 Simple</a></h2>
<p>Cette distribution a &eacute;t&eacute; faite, jusqu'ici,
uniquement pour les syst&egrave;mes "big endian". Elle est
hautement exp&eacute;rimentale, pour une utilisation pour des
d&eacute;veloppeurs pour tester les derni&egrave;res versions de
gcc, de binutils, de la glibc et du noyau. C'est la seule
distribution bas&eacute;e sur la glibc 2.2 disponible pour MIPS.
Vous pouvez toujours r&eacute;cup&eacute;rer la derni&egrave;re
version de cette distribution et les notes de publications qui
l'accompagnent sur <a href=
"ftp://oss.sgi.com/pub/linux/mips/mips-linux/simple">ftp://oss.sgi.com/pub/linux/mips/mips-linux/simple</a>.
Un syst&egrave;me de cross-compilation est &eacute;galement
disponible pour aider le d&eacute;veloppement.</p>
<h2><a name="s5">5. Ressources Linux/MIPS sur le net</a></h2>
<h2><a name="ss5.1">5.1 Serveurs FTP anonymes</a></h2>
<p>Les deux serveurs FTP anonymes principaux pour Linux/MIPS sont
:</p>
<dl>
<dt><b><a href="ftp://oss.sgi.com">oss.sgi.com</a></b></dt>
<dd>
<p>Ce serveur devrait satisfaire presque tous vos d&eacute;sirs ftp
sur Linux/MIPS. Vraiement.</p>
</dd>
<dt><b><a href="ftp://ftp.fnet.fr">ftp.fnet.fr</a></b></dt>
<dd>
<p>Ce serveur n'est actuellement plus tout &agrave; fait &agrave;
jour ; il est inclus ici pour &ecirc;tre exhaustif et pour les gens
qui sont int&eacute;ress&eacute;s par des logiciels
pr&eacute;historiques.</p>
</dd>
</dl>
Sur tous ces serveurs ftp, il existe une liste de sites mirroirs
que vous devrez plut&ocirc;t utiliser pour avoir des acc&egrave;s
plus rapide.
<p>Une autre source de binaires MIPS "little endian" se situe sur
<a href=
"ftp://intel.cleveland.lug.net/pub/Mipsel">ftp://intel.cleveland.lug.net/pub/Mipsel</a>
qui contient la plupart des versions tr&egrave;s r&eacute;centes
des binaires pour la Redhat avec les binaires du Cobalt.</p>
<h2><a name="ss5.2">5.2 Serveurs CVS anonymes</a></h2>
<p>Pour ceux qui veulent toujours rester au bord du goufre et qui
veulent &eacute;viter d'avoir &agrave; t&eacute;l&eacute;charger
des patches ou des archives tar compl&egrave;tes, nous avons aussi
un serveur CVS anonymes. En utilisant CVS, vous pouvez rapatrier
l'arbre des sources de Linux/MIPS avec les commandes suivantes
:</p>
<pre>
   cvs -d :pserver:cvs@oss.sgi.com:/cvs login
   (N&eacute;cessaire uniquement lors de la premi&egrave;re utilisation du CVS anonyme, le mot
  de passe est "cvs")
   cvs -d :pserver:cvs@oss.sgi.com:/cvs co &lt;repository&gt;
 
</pre>
o&ugrave; vous ins&eacute;rez linux, libc, gdb ou faq &agrave; la
place de &lt;repository&gt;. L'autre archive CVS importante de la
communaut&eacute; Linux est vger.rutgers.edu o&ugrave; beaucoup de
code est centralis&eacute; avant d'&ecirc;tre envoy&eacute;
&agrave; Linus pour distribution. Bien que vger lui-m&ecirc;me
n'offre plus d'acc&egrave;s anonyme, il y a des sites mirroirs qui
fournissent un acc&egrave;s anonyme. Pour plus de d&eacute;tails
sur la mani&egrave;re d'y acc&eacute;der, voir <a href=
"http://cvs.on.openprojects.net/">http://cvs.on.openprojects.net/</a>.
Les modules qui ont de l'int&eacute;r&ecirc;t sont "linux",
"modutils", "pciutils", "netutils".
<h2><a name="ss5.3">5.3 Serveurs Web</a></h2>
<p>Les deux principaux serveurs web pour Linux/MIPS sont :</p>
<dl>
<dt><b><a href=
"http://oss.sgi.com/mips">http://oss.sgi.com/mips</a></b></dt>
<dd>
<p>Ce serveur couvre la presque totallit&eacute; de Linux/MIPS ; il
est plut&ocirc;t centr&eacute;e sur SGI mais comme Linux/MIPS
essaye d'&ecirc;tre identique sur toute les plateformes, la plupart
de ces informations restent int&eacute;ressantes pour tous les
utilisateurs.</p>
</dd>
<dt><b><a href=
"http://lena.fnet.fr">http://lena.fnet.fr</a></b></dt>
<dd>
<p>Ce serveur n'est actuellement plus tr&egrave;s &agrave; jour ;
il est inclu ici principalement pour &ecirc;tre exhaustif.</p>
</dd>
</dl>
Tous ces serveurs poss&egrave;dent des mirroirs
&eacute;parpill&eacute;s &agrave; travers le monde ; vous devrez
sans doute en utiliser un pour obtenir de meilleures performances.
<h2><a name="ss5.4">5.4 Serveur Web CVS</a></h2>
<p>Via <a href=
"http://oss.sgi.com/mips/cvsweb">http://oss.sgi.com/mips/cvsweb</a>
vous avez un acc&egrave;s direct aux sources du nouveau noyau
Linux/MIPS et &agrave; quelques autres projets g&eacute;r&eacute;s
dans la m&ecirc;me archive CVS. L'interface intuitive vous permet
de suivre le d&eacute;veloppement avec des clics de souris.</p>
<h2><a name="ss5.5">5.5 Listes de discussions</a></h2>
<p>Il existe trois listes de discussions sur Linux/MIPS :</p>
<dl>
<dt><b><a href=
"mailto:linux-mips@fnet.fr">linux-mips@fnet.fr</a></b></dt>
<dd>
<p>Cette liste de discussions est utilis&eacute;e pour des
communications de toutes sortes autres qu'&agrave; propos de SGI.
Les inscriptions sont g&eacute;r&eacute;s par une personne ;
envoyez votre requ&ecirc;tes d'inscription &agrave; <a href=
"mailto:linux-mips-request@fnet.fr">linux-mips-request@fnet.fr</a>.
Vous pouvez vous desinscrire &agrave; partir de la liste de
discussions en envoyant <em>unsubscribe
&lt;votre-adresse-mail&gt;</em> &agrave; la m&ecirc;me adresse.</p>
</dd>
<dt><b><a href=
"mailto:linux-mips@oss.sgi.com">linux-mips@oss.sgi.com</a></b></dt>
<dd>
<p>Cette liste de discussions poss&egrave;de actuellement le plus
de traffic. Elle est plus ou moins centr&eacute;e sur SGI mais elle
a pourtant de l'int&eacute;r&ecirc;t, sp&eacute;cialement pour les
d&eacute;veloppeurs puisqu'un grand nombre d'ing&eacute;nieurs de
SGI sont inscrits &agrave; la liste. L'inscription &agrave; cette
liste se fait par <a href="mailto:majordomo@oss.sgi.com">Majordomo
(majordomo@oss.sgi.com)</a> ; envoyez simplement un courrier
&eacute;lectronique avec les mots <em>subscribe linux</em>. Pour se
d&eacute;sinscrire, envoyez <em>unsubscribe linux</em>. Notez que
vous devez vous inscrire pour pouvoir poster un courrier ;
l'augmentation de spasm nous a forc&eacute; cette politique. Pour
de plus amples informations, voir aussi <a href=
"http://oss.sgi.com/mips/email.html">http://oss.sgi.com/mips/email.html</a>.</p>
</dd>
<dt><b><a href=
"mailto:linux-mips@vger.rutgers.edu">linux-mips@vger.rutgers.edu</a></b></dt>
<dd>
<p>Cette liste de discussions a vraiment tr&egrave;s peu de traffic
puisque la plupart des gens ont tendance &agrave; utiliser une des
listes de discussions ci-dessus. Les inscriptions sont
g&eacute;r&eacute;es par <a href=
"mailto:majordomo@vger.rutgers.edu">Majordomo
(majordomo@vger.rutgers.edu)</a> ; envoyez juste un courrier
&eacute;lectronique avec les mots <em>subscribe linux-mips</em>.
Pour se d&eacute;sinscrire envoyez un courrier avec <em>unsubscribe
linux-mips</em>.</p>
</dd>
</dl>
<h2><a name="ss5.6">5.6 Canal IRC</a></h2>
<p>Il existe un canal IRC nomm&eacute; #mipslinux pour Linux/MIPS
qui peut &ecirc;tre trouv&eacute; sur irc.openprojects.net.</p>
<h2><a name="s6">6. L'installation de Linux/MIPS et ses
probl&egrave;mes classiques</a></h2>
<h2><a name="ss6.1">6.1 Le boot sur NFS &eacute;choue</a></h2>
<p>En g&eacute;n&eacute;ral, cela vient du fait que la personne a
d&eacute;compress&eacute; l'archive tar sous IRIX, et pas sous
Linux. Puisque la repr&eacute;sentation des fichiers des
p&eacute;riph&eacute;riques &agrave; travers NFS n'est pas
standardis&eacute; entre les Unices, cela &eacute;choue. Le
symptome est le blocage du syst&egrave;me avec le message d'erreur
"Warning: unable to open an initial console." juste apr&egrave;s le
montage du syst&egrave;me de fichiers NFS.</p>
<p>Pour le moment, il faut utiliser un syst&egrave;me Linux (pas
n&eacute;cessairement un MIPS) pour d&eacute;compresser l'archive
d'installation sur un serveur NFS. Le serveur NFS lui-m&ecirc;me
peut &ecirc;tre n'importe quel UNIX.</p>
<h2><a name="ss6.2">6.2 Des noyaux compil&eacute;s plantent au
d&eacute;marrage</a></h2>
<p>Lorsque je construit mon propre noyau, il plante. Sur un Indy,
le message lors du plantage ressemble &agrave; ce qui suit ; le
m&ecirc;me probl&egrave;me appara&icirc;t aussi sur d'autres
machines mais ce qui est affich&eacute; diff&egrave;re
compl&eacute;tement.</p>
<pre>
   Exception: &lt;vector=UTLB Miss&gt;
   Status register: 0x300004803&lt;CU1,CU0,IM4,IPL=???,MODE=KERNEL,EXL,IE&gt;
   Cause register: 0x8008&lt;CE=0,IP8,EXC=RMISS&gt;
   Exception PC: 0x881385cc, Exception RA: 0x88002614
   exception, bad address: 0x47c4
   Local I/O interrupt register 1: 0x80 &lt;VR/GIO2&gt;
   Saved user regs in hex (&amp;gpda 0xa8740e48, &amp;_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
  
</pre>
Ce probl&egrave;me vient d'une erreur non r&eacute;solue encore
dans le module Binutils dans les versions sup&eacute;rieures
&agrave; la version 2.7. Pour le r&eacute;soudre, changez la ligne
suivante dans le fichier arch/mips/Makefile
<pre>
   LINKFLAGS       = -static -N
 
</pre>
<p>en :</p>
<pre>
   LINKFLAGS       = -static
 
</pre>
<h2><a name="ss6.3">6.3 Le d&eacute;marrage du noyau sur l'Indy
&eacute;choue avec des messages d'erreurs de la PROM</a></h2>
<pre>
   &gt;&gt; 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.
  
</pre>
Ce probl&egrave;me survient uniquement pour des Indys avec des
versions tr&egrave;s anciennes de la PROM qui ne peuvent pas
g&eacute;rer le format binaire ELF que Linux utilise. Une solution
&agrave; ce probl&egrave;me est en cours de r&eacute;solution.
<h2><a name="ss6.4">6.4 O&ugrave; puis-je obtenir le microcode en
"little endian" pour mon SNI ?</a></h2>
<p>Le syst&egrave;me SNI peut tourner &agrave; la fois en modes
"big endian" et "little endian". Actuellement, Linux/MIPS supporte
uniquement le microcode "little endian". C'est plut&ocirc;t
malchanceux car SNI n'a plus mis en place ce microcode depuis un
certain temps, depuis qu'ils sont pass&eacute;s en NT. Lorsqu'il
tourne en mode "big endian", le microcode se comporte de
fa&ccedil;on similaire &agrave; un Indy SGI qui est
d&eacute;j&agrave; support&eacute;, par cons&eacute;quent la
r&eacute;solution du support des SNI sera relativement facile. Les
hackers int&eacute;ress&eacute;s peuvent contacter <a href=
"mailto:ralf@gnu.org">Ralf B&auml;chle (ralf@gnu.org)</a>.</p>
<h2><a name="ss6.5">6.5 ld meurt avec un signal 6</a></h2>
<pre>
   collect2: ld terminated with signal 6 [Aborted]
 
</pre>
C'est un probl&egrave;me connu dans de vieilles versions de
binutils. Vous devrez remettre &agrave; niveau binutils 2.8.1 plus
des patches tr&egrave;s r&eacute;centes.
<h2><a name="ss6.6">6.6 Ma machine ne t&eacute;l&eacute;charge pas
mon noyau lorsque j'essaye de booter par le r&eacute;seau</a></h2>
<p>Votre machine r&eacute;pond aux paquets de BOOTP (vous devriez
v&eacute;rifier cela en utilisant des sniffers de paquets comme
tcpdump ou ethereal) mais ne t&eacute;l&eacute;charge pas le noyau
&agrave; partir du serveur BOOTP. Cela arrive si votre serveur de
boot tourne sous un noyau de la s&eacute;rie 2.3 ou
sup&eacute;rieure. Le probl&egrave;me peut &ecirc;tre
contourn&eacute; en faisant un "echo 1 &gt;
/proc/sys/net/ipv4/ip_no_pmtu_disc" sous compte administrateur
(root) sur votre serveur de d&eacute;marrage.</p>
<h2><a name="ss6.7">6.7 Erreur dans la version 2 de DHCP</a></h2>
<p>Lors de l'utilisation de DHCP version 2, vous devrez voir
appara&icirc;tre le probl&egrave;me suivant : Votre machine a
re&ccedil;u sa r&eacute;ponse de BOOTP 3 fois mais refuse de
d&eacute;marrer TFTP. Vous pouvez r&eacute;soudre cela en faisant
un "unsetenv netaddr" dans la console de commande de la PROM avant
de booter votre syst&egrave;me. La version 3 de DHCP r&eacute;soud
ce probl&egrave;me.</p>
<h2><a name="s7">7. Milo</a></h2>
<p>Milo est le chargeur de d&eacute;marrage utilis&eacute; pour
d&eacute;marrer les syst&egrave;mes MIPS en mode "little endian"
avec du microcode ARC, actuellement la famille Jazz et le SNI
RM&nbsp;200. Bien que Milo utilise le m&ecirc;me nom et
poss&egrave;de le m&ecirc;me r&ocirc;le que la version Alpha de
Milo, ces deux Milo n'ont rien en commun. Ils sont
d&eacute;velopp&eacute;s par des gens diff&eacute;rents, ne
partagent pas de code, et travaillent sur des plateformes
mat&eacute;rielles diff&eacute;rentes. Le fait d'avoir le
m&ecirc;me nom est simplement une sorte d'``accident''
historique.</p>
<p>Il est pr&eacute;vu de supprimer l'utilisation de Milo dans un
futur proche.</p>
<h2><a name="ss7.1">7.1 Compiler Milo</a></h2>
<p>La proc&eacute;dure de compilation de Milo est d&eacute;crite en
d&eacute;tail dans les fichiers README dans le paquetage de Milo.
Puisque Milo d&eacute;pend des fichiers d'en-t&ecirc;te du noyau
qui ont chang&eacute; plusieurs fois de suite, Milo, bien souvent,
ne peut &ecirc;tre compil&eacute; ais&eacute;ment ; cependant, la
distribution de Milo inclus les binaires pour Milo et Pandora
&agrave; la fois.</p>
<h2><a name="ss7.2">7.2 Pandora</a></h2>
<p>Pandora est un simple d&eacute;bugeur. Il a &eacute;t&eacute;
initialement d&eacute;velop&eacute; pour analyser les
syst&egrave;mes non-document&eacute;s. Pandora inclus un
d&eacute;sassembleur, des fonctions de dump m&eacute;moire et bien
plus. Si vous voulez simplement utiliser Linux, il est inutile
d'installer Pandora. Cependant, il ne prend pas beaucoup de
place.</p>
<h2><a name="s8">8. Modules chargeables</a></h2>
<p>L'utilisation des modules sous Linux/MIPS est plut&ocirc;t
facile ; cela devrait marcher normalement pour les personnes qui
l'ont utilis&eacute; sous d'autres syst&egrave;mes Linux. Si vous
d&eacute;sirez lancer un syst&egrave;me bas&eacute; sur des modules
alors il vous faut au moins un noyau de version 980919 et installer
modutils avec un num&eacute;ro de version plus r&eacute;cente que
2.1.121. Des versions plus anciennes ne fonctionneront pas.</p>
<h2><a name="s9">9. Comment configurer un compilateur crois&eacute;
?</a></h2>
<h2><a name="ss9.1">9.1 Binaires existant</a></h2>
<p>La chose la plus simple pour configurer un compilateur
crois&eacute; est de t&eacute;l&eacute;charger les binaires. Pour
les machines Linux/i386 et les cibles "big endian", les paquetages
n&eacute;cessaires sont :</p>
<pre>
  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
 
</pre>
Et voici la liste des paquetages pour les cibles "little endian" :
<pre>
  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
 
</pre>
Il n'est pas n&eacute;cessaire de tous les installer ; la plupart
des personnes peuvent oublier les compilateurs C++,
Objective&nbsp;C et Fortran&nbsp;77. Les binaires pour Intel ont
&eacute;t&eacute; link&eacute; avec la GNU libc 2.1, donc vous
devez l'installer aussi pour une mise &agrave; jour.
<h2><a name="ss9.2">9.2 Construire votre propre compilateur
crois&eacute;</a></h2>
<p>Avant toute chose, t&eacute;l&eacute;chargez les paquetages des
sources et les patches :</p>
<ul>
<li>binutils-2.8.1.tar.gz</li>
<li>binutils-2.8.1-2.diff.gz</li>
<li>egcs-1.0.3a.tar.gz</li>
<li>egcs-1.0.3a-1.diff.gz</li>
<li>glibc-2.0.6.tar.gz</li>
<li>glibc-crypt-2.0.6.tar.gz</li>
<li>glibc-localedata-2.0.6.tar.gz</li>
<li>glibc-linuxthreads-2.0.6.tar.gz</li>
</ul>
Ce sont les versions actuellement recommand&eacute;es. 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 pla&icirc;t ; nous n'y
pr&eacute;terons pas attention. Lors de l'installation, veuillez
proc&eacute;der dans l'ordre binutils, egcs, puis glibc. A moins
que vous ayez des versions plus anciennes d&eacute;j&agrave;
install&eacute;es, le fait de changer l'ordre <i>fera</i>
&eacute;chouer l'installation. La description de l'installation
suivante mentionne un certain nombre de patches que vous pouvez
r&eacute;cup&eacute;rer &agrave; partir des paquetages SRPM
respectifs sur <a href="ftp://oss.sgi.com">oss.sgi.com</a>.
Cependant, puisque ces paquetages SRPM sont cens&eacute;s
&ecirc;tre compil&eacute;s dans la bonne architecture, il n'est pas
possible de simplement les recompiler.
<h2><a name="ss9.3">9.3 Espace disque n&eacute;cessaire</a></h2>
<p>Vous devez choisir un r&eacute;pertoire pour l'installation. Je
ferais r&eacute;f&eacute;rence &agrave; ce r&eacute;pertoire par
&lt;prefix&gt;. Pour &eacute;viter certain probl&egrave;me, il vaut
mieux utiliser la m&ecirc;me valeur pour &lt;prefix&gt; que pour le
gcc natif. Par exemple, si votre gcc est install&eacute; dans
/usr/bin/gcc alors choisissez /usr pour &lt;prefix&gt;. Vous devez
utiliser la m&ecirc;me valeur de &lt;prefix&gt; pour tous les
paquetages que vous allez installer.</p>
<p>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 &lt;prefix&gt;. La
compilation d'egcs n&eacute;cesite 71 Mo et 14 Mo pour
l'installation. GNU libc n&eacute;cessite 149 Mo d'espace disque
pendant la compilation et 33 Mo pour l'installation. Notez que ces
quantit&eacute;s ne sont que des indications et peuvent varier
significativement pour diff&eacute;rentes architectures de
processeurs et de syst&egrave;mes d'exploitation.</p>
<h2><a name="ss9.4">9.4 Ordre des octets</a></h2>
<p>Une des fonctionnalit&eacute;s particuli&egrave;res des
architectures MIPS est que tous les processeurs sauf le R8000
peuvent &ecirc;tre configur&eacute; pour tourner en mode gros ou
petit boutien (big ou little endian). L'ordre des octets indique la
mani&egrave;re dont le processeur stocke en m&eacute;moire les
nombres sur plusieurs octets. Les machines gros boutiens stockent
l'octet de poids le plus fort &agrave; l'adresse la plus basse
alors que les machines petits boutiens les stockent &agrave;
l'adresse la plus haute. Pensez &agrave; cela lors de
l'&eacute;criture de nombres sur plusieurs octets de gauche
&agrave; droite ou vice-versa.</p>
<p>Pour configurer correctement votre compilateur crois&eacute;,
vous devez conna&icirc;tre l'ordre des octets du compilateur
crois&eacute; cible. Si vous ne le savez pas d&eacute;j&agrave;,
consultez la section <a href="#hardware-platforms">Hardware
Platforms</a> pour l'ordre des octets des machines.</p>
<h2><a name="ss9.5">9.5 Les noms de configuration</a></h2>
<p>La plupart des paquetages bas&eacute;s sur autoconf supportent
plusieurs architectures et syst&egrave;mes d'exploitation
diff&eacute;rents. Pour diff&eacute;rencier chaque configuration,
les noms sont construits selon les sch&eacute;mas
&lt;cpu&gt;-&lt;entreprise&gt;-&lt;SE&gt; voire m&ecirc;me
&lt;cpu&gt;-&lt;entreprise&gt;-&lt;noyau&gt;-&lt;SE&gt;. Selon ces
sch&eacute;mas, 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 abr&eacute;ger en mips-linux ou
mipsel-linux. Vous <i>devez</i> utiliser les m&ecirc;mes noms de
configuration pour tous les paquetages qui comprennent votre
environnement de compilateur crois&eacute;. Ainsi, bien que les
autres noms comme mips-sni-linux ou mipsel-sni-linux sont les noms
de configuration l&eacute;gaux, utilisez linux-mips ou mipsel-linux
&agrave; la place ; ce sont les noms de configuration connu par les
autres paquetages comme les sources du noyau Linux, autrement il
devra &ecirc;tre modifi&eacute; pour les compilations
crois&eacute;es.</p>
<p>Je ferais maintenant r&eacute;f&eacute;rence au nom de
configuration cible par &lt;target&gt;.</p>
<h2><a name="ss9.6">9.6 Installation de GNU binutils</a></h2>
<p>Ceci est la premi&egrave;re partie et la plus simple - du moins
si vous essayez de faire l'installation sur un quelconque UNIX
sain. Entrez simplement dans un r&eacute;pertoire avec suffisamment
d'espace disque et faites ce qui suit :</p>
<pre>
   gzip -cd binutils-&lt;version&gt;.tar.gz | tar xf -
   cd binutils-&lt;version&gt;
   patch -p1 &lt; ../binutils-&lt;version&gt;-mips.patch
   ./configure --prefix=&lt;prefix&gt; --target=&lt;target&gt;
   make CFLAGS=-O2
   make install
  
</pre>
Cela fonctionne tr&egrave;s 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 &ecirc;tre
r&eacute;solu en mettant GCC &agrave; niveau &agrave; la version
2.8.1 ou en mettant &agrave; niveau egcs.
<h2><a name="ss9.7">9.7 Assert.h</a></h2>
<p>Des personnes poss&egrave;dent un vieux fichier d'en-t&ecirc;te
assert.h install&eacute;, probablement des restes d'une ancienne
installation d'un compilateur crois&eacute;. Ce fichier a pour
cons&eacute;quence de faire &eacute;chouer silencieuement les
scripts autoconf ; il n'est jamais n&eacute;cessaire et il a
&eacute;t&eacute; uniquement install&eacute; &agrave; cause d'un
bug dans des versions plus anciennes de GCC. V&eacute;rifiez si le
fichier &lt;prefix&gt;/&lt;target&gt;/include/assert.h existe dans
votre installation. Si c'est le cas, effacez-le : il n'aurait
jamais d&ucirc; &ecirc;tre install&eacute; pour une quelconque
version du compilateur crois&eacute; et causera des
perturbations.</p>
<h2><a name="ss9.8">9.8 Installation des sources du noyau</a></h2>
<p>L'installation des sources du noyau est simple. Placez-les
simplement dans un r&eacute;pertoire de votre choix et
configurez-les. Leur configuration est n&eacute;cessaire pour que
les fichiers qui sont g&eacute;n&eacute;r&eacute;s par la
proc&eacute;dure soient install&eacute;s. Assurez-vous que vous
ayez activ&eacute; CONFIG_CROSSCOMPILE vers la fin du processus de
configuration. L'unique probl&egrave;me que vous pourriez
rencontrer est d'avoir besoin d'installer des programmes GNU
n&eacute;cessaires comme bash ou devoir &eacute;craser les versions
de programmes fournies par le constructeur en pla&ccedil;ant les
versions GNU plus t&ocirc;t dans la variables PATH.</p>
<p>Maintenant, allez dans le r&eacute;pertoire
&lt;prefix&gt;/&lt;target&gt;/include et cr&eacute;ez deux liens
symboliques nomm&eacute;s asm et linux pointant respectivement sur
include/asm et include/linux dans vos sources du noyau qui viennent
juste d'&ecirc;tre install&eacute;s et configur&eacute;s. Ils sont
n&eacute;cessaires pour que les fichiers d'en-t&ecirc;tes
n&eacute;cessaires soient trouv&eacute;s pendant l'&eacute;tape
suivante.</p>
<h2><a name="ss9.9">9.9 Premi&egrave;re installation
d'egcs</a></h2>
<p>Maintenant la partie la moins rigolote commence : il existe un
soit-disant probl&egrave;me d'amor&ccedil;age. Dans notre cas, cela
signifie que le processus d'installation d'egcs n&eacute;cessite
une glibc pr&eacute;c&eacute;demment install&eacute;e, mais nous ne
pouvons pas compiler glibc parce que nous ne poss&eacute;dons pas
encore de compilateur crois&eacute;. Heureusement, vous devrez
uniquement passer par l&agrave; lorsque vous installerez un
compilateur crois&eacute; pour la premi&egrave;re fois. Plus tard,
lorsque vous aurez d&eacute;j&agrave; install&eacute; la glibc les
choses seront plus ais&eacute;es. Mais pour l'instant faites :</p>
<pre>
   gzip -cd egcs-1.0.3a.tar.gz | tar xf -
   cd egcs-&lt;version&gt;
   patch -p1 &lt; ../egcs-1.0.3a-mips.patch
   ./configure --prefix=&lt;prefix&gt; --with-newlib --target=&lt;target&gt;
   make SUBDIRS="libiberty texinfo gcc" ALL_TARGET_MODULES= \
           CONFIGURE_TARGET_MODULES= INSTALL_TARGET_MODULES= LANGUAGES="c"
 
</pre>
Notez que nous n'avons pas d&eacute;lib&eacute;rement
compil&eacute; gcov, protoize, unprotoize et les
biblioth&egrave;ques. Gcov n'a pas de sens dans un environnement de
compilateur crois&eacute; et protoize et unprotoize
&eacute;craserait carr&eacute;ment vos programmes natifs - c'est un
bug dans les makefiles de gcc. Enfin, nous ne pouvons compiler les
biblioth&egrave;ques parce que nous n'avons pas encore
install&eacute; la glibc. Si tout ce passe avec succ&eacute;s,
lancez l'installation avec :
<pre>
   make SUBDIRS="libiberty texinfo gcc" INSTALL_TARGET_MODULES= \
           LANGUAGES="c" install
 
</pre>
Si vous d&eacute;sirez le compilateur crois&eacute; pour compiler
le noyau, vous avez finis. La compilation crois&eacute;e de la libc
est maintenant n&eacute;cessaire pour pouvoir compiler les
applications utilisateurs.
<h2><a name="ss9.10">9.10 Tester ce que vous avez fait
jusqu'ici</a></h2>
<p>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 d&eacute;roule bien, faites un "make clean"
une fois de plus pour nettoyer les sources.</p>
<h2><a name="ss9.11">9.11 L'installation de la GNU libc</a></h2>
<p>Faites :</p>
<pre>
   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 &lt; ../glibc-2.0.6-mips.patch
   mkdir build
   cd build
   CC=&lt;target&gt;-gcc BUILD_CC=gcc AR=&lt;target&gt;-ar RANLIB=&lt;target&gt;-ranlib \
         ../configure --prefix=/usr --host=&lt;target&gt; \
         --enable-add-ons=crypt,linuxthreads,localedata --enable-profile
   make
 
</pre>
Vous avez maintenant une GNU libc compil&eacute;e qui doit encore
&ecirc;tre install&eacute;e. <i>Ne</i> faites <i>pas</i> un simple
make install. Cela &eacute;craserait vos fichiers syst&egrave;me de
votre machine par les fichiers sp&eacute;cifiques de Linux/MIPS
avec des effets d&eacute;sastreux. A la place, installez la GNU
libc dans un autre r&eacute;pertoire choisie arbitrairement
&lt;somedir&gt; &agrave; partir du quel nous d&eacute;placerons
dans le r&eacute;pertoire cible actuel les parties que nous avons
besoin pour la compilation crois&eacute;e :
<pre>
   make install_root=&lt;somedir&gt; install
 
</pre>
Maintenant p&eacute;n&eacute;trez dans &lt;somedir&gt; et installez
finalement la GNU libc manuellement
<pre>
   cd usr/include
   find . -print | cpio -pumd &lt;prefix&gt;/&lt;target&gt;/include
   cd ../../lib
   find . -print | cpio -pumd &lt;prefix&gt;/&lt;target&gt;/lib
   cd ../usr/lib
   find . -print | cpio -pumd &lt;prefix&gt;/&lt;target&gt;/lib
 
</pre>
La GNU libc contient aussi une vaste documentation en ligne. Votre
syst&egrave;me doit d&eacute;j&agrave; poss&eacute;der une version
de cette documentation, donc si vous ne d&eacute;sirez pas
installer les pages infos ce qui vous sauvera un peu moins d'un
mega octets, ou si vous les avez d&eacute;j&agrave;
install&eacute;s, sautez la prochaine &eacute;tape :
<pre>
   cd ../info
   gzip -9 *.info*
   find . -name \*.info\* -print | cpio -pumd &lt;prefix&gt;/info
 
</pre>
Si vous n'avez pas de programme d'amorce, votre installation n'est
pas finis
<h2><a name="ss9.12">9.12 Recompilation d'egcs</a></h2>
<p>La premi&egrave;re tentative de compilation d'egcs a
&eacute;t&eacute; stopp&eacute;e par l'absence de la GNU libc.
Puisque nous avons maintenant la libc d'install&eacute;e, nous
pouvons reconstruire egcs mais cette fois de fa&ccedil;on aussi
compl&egrave;te que l'installation d'un compilateur crois&eacute;
puisse l'&ecirc;tre :</p>
<pre>
   gzip -cd egcs-&lt;version&gt;.tar.gz | tar xf -
   cd egcs-&lt;version&gt;
   patch -p1 &lt; ../egcs-1.0.3a-mips.patch
   ./configure --prefix=&lt;prefix&gt; --target=&lt;target&gt;
   make LANGUAGES="c c++ objective-c f77"
 
</pre>
Comme vous pouvez le constater, la proc&egrave;dure est identique
que la premi&egrave;re fois sauf que nous avons laiss&eacute;
tomb&eacute; l'option --with-newlib. Cette option &eacute;tait
n&eacute;cessaire pour enlever l'arr&ecirc;t de la compilation de
libgcc &agrave; cause de l'absence de la libc. Maintenant lancez
l'installation avec :
<pre>
   make LANGUAGES="c c++ objective-c f77" install
 
</pre>
Vous avez presque termin&eacute;. Si vous pensez ne pas avoir
besoin des compilateurs Objective&nbsp;C ou F77, vous pouvez les
enlever des commandes ci-dessus ; chacune vous sauvera environ 3
Mo. Ne compilez pas gcov, protoize ou unprotoize.
<h2><a name="ss9.13">9.13 Dois-je compiler les compilateurs C++,
Objective&nbsp;C ou F77 ? La r&eacute;ponse &agrave; cette question
d&eacute;pend largement de l'utilisation que vous ferez de votre
environnement de compilateur crois&eacute;. Si vous avez pour
unique but de recompiler le noyau Linux alors vous n'avez pas
besoin d'une configuration pleine &agrave; craquer et vous pouvez
ommettre en toute s&eacute;curit&eacute; les compilateurs
Objective&nbsp;C et F77. Vous devez, cependant, compiler le
compilateur C++, parce que la compilation des biblioth&egrave;ques
inclues avec la distribution d'egcs n&eacute;cessite C++.</a></h2>
<h2><a name="ss9.14">9.14 Probl&egrave;me connu lors de compilation
crois&eacute;e</a></h2>
<h3>Plantage d'IRIX</h3>
<p>Origin&nbsp;200 tournant sous IRIX 6.5.1 peut se planter lors
d'un "make depend" dans les sources de noyau Linux. IRIX&nbsp;6.5
sur un Indy et IRIX&nbsp;6.5.4 sur un Origin&nbsp;200 sont connus
pour fonctionner correctement. Tout rapports pour aider &agrave;
isoler le probl&egrave;me de configuration est la bienvenue.</p>
<h3>Ressources limit&eacute;es sur les machines bas&eacute;es sur
le standard System&nbsp;V</h3>
<p>Les Unix bas&eacute;s sur le standard System&nbsp;V comme IRIX
ou Solaris ont des valeurs limites maximum sur les nombres
d'argument pouvant &ecirc;tre pass&eacute;s &agrave; un processus
enfant qui peuvent &ecirc;tre d&eacute;pass&eacute;s lors de la
compilation crois&eacute;e de logiciels comme le noyau Linux ou la
GNU libc. Pour les syst&egrave;mes IRIX, la taille maximum de la
liste d'arguments vaut par d&eacute;faut 20 Ko alors la valeur par
d&eacute;faut pour Linux est d'au moins 128 Ko. Cette taille peut
&ecirc;tre modifi&eacute; par la commande "systune ncargs 131072"
sous root.</p>
<h2><a name="ss9.15">9.15 GDB</a></h2>
<p>La compilation de GDB comme debugeur crois&eacute; a uniquement
d'int&eacute;r&ecirc;t pour les d&eacute;veloppeurs du noyau ; leur
GDB peut leur sauver la vie. Une telle configuration de debugage
distant est compos&eacute;e de deux parties : le debugeur GDB
distant fonctionnant sur une machine et la machine cible faisant
tourner le noyau Linux/MIPS qui doit &ecirc;tre
d&eacute;bugu&eacute;. Les machines sont habituellement
inter-connect&eacute;es par une ligne s&eacute;rie. Le noyau de la
machine cible doit &ecirc;tre &eacute;quip&eacute; d'un "embryon de
d&eacute;bugage" qui communique avec le GDB de la machine
h&ocirc;te en utilisant le protocole s&eacute;rie distant.</p>
<p>Suivant l'architecture cible, il vous faudra impl&eacute;menter
l'embryon de d&eacute;bugage vous-m&ecirc;me. En
g&eacute;n&eacute;ral, vous devrez uniquement &eacute;crire des
routines s&eacute;ries tr&egrave;s simple. La t&acirc;che est, de
plus, simplifi&eacute;e par le fait que la plupart des machines
utilisent des p&eacute;riph&eacute;riques s&eacute;ries semblables,
en g&eacute;n&eacute;ral bas&eacute; sur le 8250, le 16450 ou des
d&eacute;riv&eacute;s.</p>
<h2><a name="s10">10. Litteratures sur le m&ecirc;me
th&egrave;me</a></h2>
<h2><a name="ss10.1">10.1 Voir un MIPS tourner (See MIPS
Run)</a></h2>
<p>auteur Dominic Sweetman, publi&eacute; par Morgan Kaufmann, ISBN
1-55860-410-3. Il a &eacute;t&eacute; &eacute;crit pour &ecirc;tre
un guide plut&ocirc;t compr&eacute;hensif pour la programmation
MIPS, l&agrave; o&ugrave; celui-ci diff&egrave;re de la
programmation d'autres CPU 32 bits. C'est la premi&egrave;re fois
que quelqu'un tente d'&eacute;crire une explication lisible et
compr&eacute;hensive et qui prend en compte l'immense gamme de CPU
MIPS existant, et devrait &ecirc;tre tr&egrave;s utile pour toutes
personnes programmant en MIPS qui n'est pas isol&eacute; par le
syst&egrave;me d'exploitation de quelqu'un d'autre. Et l'auteur est
un enthousiaste pro-unix-libre qui s'est inscrit &agrave; la liste
de discussions de Linux/MIPS ! John Hennessey, le p&egrave;re de
l'architecture MIPS, a &eacute;t&eacute; assez aimable pour
&eacute;crire dans la pr&eacute;face " ... ce livre est la
meilleure combinaison entre l'exhaustivit&eacute; et la
lisibilit&eacute; 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&eacute; pour le
contr&ocirc;le du CPU ; des sections sur les caches, les
exceptions, la gestion m&eacute;moire et les virgules flottantes.
Il y a un guide d&eacute;taill&eacute; sur le langage assembleur,
des trucs sur le portage et des exemples de logiciels plut&ocirc;t
&agrave; usage industriel. Il est disponible sur :</p>
<ul>
<li><a href=
"http://www.algor.co.uk/algor/info/seemipsrun.html">http://www.algor.co.uk/algor/info/seemipsrun.html</a>
(europe)</li>
<li><a href=
"http://www.mkp.com/books_catalog/1-55860-410-3.asp">http://www.mkp.com/books_catalog/1-55860-410-3.asp</a>
(US)</li>
</ul>
et chez tous les bonnes librairies. Il contient 512 pages et
co&ucirc;te environ 50 $ aux Etats-Unis et 39.95 &pound; au
Royaume-Unis. J'aimerais parler de deux autres livres aussi,
publi&eacute;s chez Morgan Kaufmann et disponible sur www.mkp.com
ou chez n'importe quelle librairie :
<h2><a name="ss10.2">10.2 Le manuel du programmeur MIPS (The MIPS
Programmer's Handbook)</a></h2>
<p>auteurs Farquhar et Bunce, publi&eacute; par Morgan Kaufmann,
ISBN&nbsp;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&eacute; : beaucoup d'exemples ; son d&eacute;faut : ne parle
pas d'importantes parties de l'architecture (telle que la gestion
de la m&eacute;moire, des virgules flottantes et les caches
avanc&eacute;s) parce qu'ils n'ont pas &eacute;t&eacute;
pr&eacute;sent dans le LSI "embarqu&eacute;s" ; ce livre a
l'intention d'&ecirc;tre un partenaire.</p>
<h2><a name="ss10.3">10.3 Architecture informatique - Une approche
quantitative (Computer Architecture - A Quantitative
Approach)</a></h2>
<p>auteurs Hennessy &amp; Patterson, publi&eacute; chez Morgan
Kaufmann, ISBN&nbsp;1-55860-329-8. La bible de l'architecture
informatique moderne et qui se doit d'&ecirc;tre lu si vous
d&eacute;sirez comprendre pourquoi un programme fonctionne
lentement ou rapidement. Parle-t-il du MIPS ? Eh bien, cela tourne
principalement autours de chose <em>semblable</em> au MIPS ... Son
seul d&eacute;faut est sa taille et son poids - mais &agrave; la
diff&eacute;rence des gros bouquins, il le vaut &agrave; chaque
page.</p>
<h2><a name="ss10.4">10.4 Suppl&eacute;ment pour les processeur
MIPS ABI sous UNIX System&nbsp;V (UNIX System&nbsp;V ABI MIPS
Processor Supplement)</a></h2>
<p>par Prentice Hall, publi&eacute; le 05 1991,
ISBN&nbsp;0-13880-170-3. Ce livre d&eacute;finit la plupart des
standards techniques sp&eacute;cifiques &agrave; la technologie
MIPS comme les conventions des appels, les propri&eacute;t&eacute;s
ELF et bien d'autre choses utilis&eacute;es par Linux/MIPS.
Malheureusement, il est en rupture de stock. Parall&egrave;lement,
le site <em>"http://www.mipsabi.org/"</em> ne r&eacute;pond
plus.</p>
</body>
</html>