This file is indexed.

/usr/share/doc/HOWTO/fr-html/MILO-HOWTO.html is in doc-linux-fr-html 2013.01-3ubuntu1.

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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for HTML5 for Linux version 5.2.0">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.72">
<title>Utilisation de MILO (Alpha Miniloader Howto)</title>
</head>
<body>
<h1>Utilisation de MILO (Alpha Miniloader Howto)</h1>
<h2>David A. Rusling,
<code>david.rusling@reo.mts.dec.com</code></h2>
v0.84, 6 Décembre 1996
<hr>
<em>Ce document expose le fonctionnement du Miniloader, un
programme pour les machines Alpha qui sert à initialiser le système
et démarrer Linux. Le "Alpha Linux Miniloader" (pour être exact)
est également dénommé MILO.</em>
<hr>
<h2><a name="intro-section"></a> <a name="s1">1.
Introduction</a></h2>
<p>Ce document expose le fonctionnement du logiciel MILO
(Miniloader) pour Alpha AXP. Ce logiciel de console a pour fonction
d'initialiser le système Alpha AXP, de charger et démarrer Linux
et, pour finir, il met un PALcode à disposition de Linux.</p>
<h2><a name="ss1.1">1.1 Droits d'auteurs (Copyright)</a></h2>
<p>Ce document a été réalisé en 1995, 1996, 1997 par David A
Rusling. (c) Copyright 1995, 1996, 1997.</p>
<p>Document traduit de l'anglais en 1997 par Frédéric Aime
(fred@castor.unice.fr) et "Les Éditions du Soleil" (c) Copyright
"Les Éditions du Soleil" 1997. Maintenance de la version SGML par
Miodrag Vallat (miodrag@multimania.com).</p>
<p><b>Copyright.</b> Comme il en est de tous les documents HOWTO
pour Linux, cette documentation peut être reproduite, distribuée
intégralement ou en partie seulement sur n'importe quel média,
physique ou électronique, du moment que cet avertissement sur les
droits d'auteur est présent sur toutes les copies. L'utilisation
commerciale est autorisée et encouragée&nbsp;; cependant l'auteur
est <em>désireux</em> d'être averti de ces utilisations. Vous
pouvez traduire ce document dans n'importe quelle langue à partir
du moment où cette note ainsi que la décharge de responsabilité
sont conservées intacte et qu'une notice présentant le traducteur y
figure.</p>
<p><b>Décharge de responsabilité.</b> Bien qu'ayant essayé
d'inclure les informations les plus précises et correctes à ma
disposition, je ne peux garantir que l'utilisation faite de ce
document n'aboutisse pas à des pertes de données ou de matériels.
Je n'apporte ABSOLUMENT AUCUNE GARANTIE quant aux informations
contenues dans ce document&nbsp;; de ce fait je ne pourrais être
tenu, en aucun cas, pour responsable des conséquences de son
utilisation.</p>
<h2><a name="ss1.2">1.2 Nouvelles versions de ce document</a></h2>
<p>La dernière version de ce document est disponible à l'adresse
suivante&nbsp;: <a href=
"ftp://gatekeeper.dec.com/pub/Digital/Linux-Alpha/Miniloader/docs">ftp://gatekeeper.dec.com/pub/Digital/Linux-Alpha/Miniloader/docs</a>
et David Mosberger-Tang a eu l'amabilité de l'inclure sous la forme
d'une page Web sur l'excellent site Linux pour Alpha&nbsp;:
<a href="http://www.azstarnet.com/axplinux">http://www.azstarnet.com/axplinux</a>.</p>
<h2><a name="what-section"></a> <a name="s2">2. Qu'est-ce que MILO
?</a></h2>
<p>Sur machines Intel, le BIOS configure le système et ensuite
charge, depuis le secteur d'amorçage d'un disque DOS, une image à
exécuter. Cela est en quelque sorte la fonction principale de MILO
sur un système Alpha. Il existe toutefois un certain nombre de
différences entre BIOS et MILO, notamment le fait que MILO intègre
certains pilotes de périphériques Linux inchangés. MILO est un
logiciel appelé FirmWare, à l'inverse de LILO qui dépend du
logiciel FirmWare BIOS responsable de son chargement et de son
exécution en mémoire centrale. Les principales fonctions de MILO
sont&nbsp;:</p>
<ol>
<li>PALcode&nbsp;;</li>
<li>Initialisation du gestionnaire de mémoire. (construction des
tables de pages et mise en service de l'adressage
virtuel)&nbsp;;</li>
<li>Logiciel d'affichage (Code d'émulation BIOS et TGA
(21030))&nbsp;;</li>
<li>Une partie du noyau Linux. Incluant, par exemple, un
gestionnaire d'interruption qui fait office de noyau
Linux&nbsp;;</li>
<li>Gestionnaires de périphériques en mode bloc (par exemple le
pilote de disquettes)&nbsp;;</li>
<li>Un support des systèmes de fichiers (ext2, MS-DOS et
ISO9660)&nbsp;;</li>
<li>Un logiciel d'interface utilisateur (MILO)&nbsp;;</li>
<li>Une interface avec le noyau (configure le HWRPB et la
cartographie de la mémoire spécifiques à linux)&nbsp;;</li>
<li>Configuration de la NVRAM (mémoire non volatile) pour la
gestion de variables d'environnement.</li>
</ol>
<p>Les paragraphes suivants décrivent ces fonctionnalités plus en
détail.</p>
<p>Le PALcode peut être perçu comme une minuscule couche logicielle
qui prépare le processeur Alpha en vue de l'utilisation d'un
système d'exploitation spécifique. Il fonctionne dans un mode
spécial du processeur (PALmode) qui a certaines limitations mais
utilise les instructions standard des processeurs Alpha, plus cinq
instructions supplémentaires. De cette manière le processeur Alpha
peut exécuter une grande diversité de systèmes d'exploitation tels
que Windows NT, OpenVMS, Digital Unix et bien sûr Linux. Le PALcode
que MILO utilise (et in extenso Linux lui-même) est, comme le reste
de MILO un freeware. Il est inspiré d'un exemple de PALcode pour
Digital Unix que Digital fournissait avec ses premières cartes
d'évaluation. Les différences entre les PALcode sont dues à des
différences qui existent dans la cartographie de la mémoire, dans
la gestion des interruptions entre les différentes versions du
processeur Alpha (par exemple le 21066 possède une cartographie des
entrées-sorties différente de l'association du 21064 avec les
contrôleurs E/S de la famille 2107x, en effet le 21066 intègre un
équivalent de ce contrôleur sur son support).</p>
<p>Pour que MILO fonctionne correctement il lui faut savoir quelle
est la quantité de mémoire disponible, à quel endroit Linux peut
éventuellement être chargé en mémoire, et il doit, de plus, être
capable d'allouer temporairement de la mémoire pour les pilotes de
périphériques Linux. Le code contient une cartographie de la
mémoire qui comporte des espaces disponibles pour une allocation de
pages mémoire permanentes ou temporaires. Lorsqu'il démarre, MILO
se décompresse à l'emplacement mémoire adéquat. Lorsqu'il transfère
le contrôle au noyau Linux, il réserve un espace pour une instance
compressée de lui-même, pour le PALcode (indispensable au
fonctionnement du noyau) ainsi que quelques structures de données.
Cela laisse <code>la quasi-totalité</code> de la mémoire centrale
libre pour Linux.</p>
<p>L'opération finale du gestionnaire mémoire est de configurer et
d'activer l'adressage virtuel afin que les structures de données
attendues par Linux soient à leur place en mémoire virtuelle.</p>
<p>MILO contient du code d'initialisation de l'affichage qui
prépare le système graphique à l'utilisation de Linux. Il détectera
et utilisera un adaptateur VGA s'il est présent, sinon il essaiera
d'utiliser le pilote TGA (21030). S'il y a échec de cette
initialisation, MILO considèrera qu'il n'y a aucun périphérique
graphique sur le système. L'émulation BIOS incluse dans MILO est en
fait celle de Digital qui est capable de supporter la plupart,
voire la totalité, des cartes graphiques disponibles.</p>
<p>Les pilotes de périphériques de Linux résident dans le noyau
dont ils attendent un certain nombre de services. Certains de ces
services sont directement fournis par le code du noyau Linux inclus
dans MILO. Par exemple la gestion des interruptions est réalisée
par un ensemble de fonctions similaires à celles du vrai noyau
Linux.</p>
<p>La fonctionnalité la plus puissante de MILO est de permettre
l'inclusion de n'importe quel pilote Linux sans apporter de
modifications. Cela lui offre la possibilité d'être compatible avec
n'importe quel périphérique compatible avec Linux. MILO contient,
en standard, tous les pilotes de périphériques en mode bloc du
noyau Linux.</p>
<p>MILO charge le noyau Linux depuis un vrai système de fichiers
plutôt que depuis un secteur d'amorçage ou d'autres emplacements
étranges. Il supporte les systèmes de fichiers MSDOS, EXT2 et
ISO9660. Les fichiers GZIPpés sont également reconnus et
recommandés, en particulier lors d'un chargement à partir d'une
disquette qui reste un support relativement lent. MILO les
reconnaît grâce à leur suffixe <em>.gz</em>.</p>
<p>Un gestionnaire de clavier rudimentaire est inclus dans MILO si
bien qu'avec un pilote de périphérique vidéo d'une simplicité égale
il dispose d'une interface utilisateur simple. Cette interface
permet de lister les systèmes de fichiers disponibles par le biais
de pilotes de périphériques configurés, de démarrer Linux ou des
utilitaires de mises à jour de la mémoire flash, de définir des
variables d'environnement agissant sur le démarrage du système.
Comme avec LILO vous pouvez transmettre des arguments au noyau.</p>
<p>MILO doit renseigner le noyau Linux sur la nature du matériel
sous-jacent (type de carte mère, quantité de mémoire RAM totale et
quantité libre). Il effectue cela en utilisant les informations
contenues dans le HWRPB. Celles-ci sont disposées aux emplacements
appropriés en mémoire virtuelle juste avant que le contrôle du
système ne soit transféré au noyau Linux.</p>
<h2><a name="s3">3. Images précompilées de MILO</a></h2>
<p>Si vous envisagez d'utiliser Linux sur un système Alpha
standard, un ensemble d'images précompilées "standard" est à votre
disposition. Celles-ci ainsi que leurs sources et bien d'autres
choses intéressantes sont disponibles à l'adresse suivante&nbsp;:
<a href=
"ftp://gatekeeper.dec.com/pub/Digital/Linux-Alpha/Miniloader">ftp://gatekeeper.dec.com/pub/Digital/Linux-Alpha/Miniloader</a>.</p>
<p>Le sous-répertoire images contient un répertoire par type de
système standard (ex&nbsp;: AlphaPC64) adoptant les conventions de
nomenclatures suivantes&nbsp;:</p>
<ol>
<li><code>MILO</code> - Image de MILO, celle-ci peut être démarrée
de diverses manières&nbsp;;</li>
<li><code>fmu.gz</code> - Utilitaire de gestion de la mémoire
flash&nbsp;;</li>
<li><code>MILO.dd</code> - Image d'une disquette bootable de MILO,
pouvant être reproduite grâce à rawrite.exe sous DOS ou
<code>dd</code> sous Linux.</li>
</ol>
<p>Le sous-répertoire <code>test-images</code> contient un ensemble
d'images expérimentales sous la même forme que les précédentes.
Bien qu'expérimentales, ces images tendent à contenir les dernières
fonctionnalités.</p>
<h2><a name="build-section"></a> <a name="s4">4. Comment compiler
MILO ?</a></h2>
<p>La compilation de MILO s'effectue de manière indépendante du
noyau. Étant donné qu'il requiert des parties du noyau pour
fonctionner, vous devrez, en premier lieu, configurer un noyau qui
corresponde au système auquel MILO est destiné. Cela correspond à
attribuer le même numéro de version à MILO que celui du noyau
utilisé pour le construire. Ainsi MILO-2.0.25.tar.gz sera compilé à
l'aide de linux-2.0.25.tar.gz. MILO <code>peut</code> être compilé
correctement avec une version plus récente du noyau, mais avec
celle-ci ce ne sera pas le cas. Étant donné que les librairies
dynamiques sont complètement fonctionnelles, il existe deux
versions des sources de MILO. Pour effectuer la compilation de MILO
dans sa version ELF vous devez premièrement extraire les sources
standard puis appliquer un patch à ces dernières, correspondant au
numéro de version du patch ELF. Je considérerai, dans la suite de
ce document, que les sources et les fichiers objets du noyau sont
situés dans le répertoire <code>/usr/src/linux</code>, et que le
noyau a été correctement compilé à l'aide de la commande <code>make
boot</code>.</p>
<p>Pour compiler MILO, allez dans le répertoire contenant les
sources de MILO et faites appel à la commande <code>make</code> de
la manière suivante&nbsp;:</p>
<blockquote>
<pre><code>
$ make KSRC=/usr/src/linux config
</code></pre></blockquote>
<p>De même que pour la compilation du noyau, le système vous posera
un certain nombre de questions.</p>
<blockquote>
<pre><code>
Echo output to the serial port (MINI_SERIAL_ECHO) [y]
</code></pre></blockquote>
<p>Il est utile d'utiliser le port série comme redirection de la
fonction du noyau printk&nbsp;; celle-ci est effectuée vers le port
<code>/dev/ttyS0</code>. Si vous pouvez (et souhaitez) le faire,
entrez 'y', sinon 'n'. Toutes les versions précompilées de MILO
utilisent le port COM1 comme écho.</p>
<blockquote>
<pre><code>
Use Digital's BIOS emulation code (not free) \
                   (MINI_DIGITAL_BIOS_EMU) [y]
</code></pre></blockquote>
<p>Ce code est inclus en tant que bibliothèque de fonctions dont la
distribution est gratuite si elle est utilisée sur une machine à
base de processeur Alpha. Les sources n'en sont pas disponibles. Si
vous répondez <code>'n'</code>, l'émulation BIOS équivalente
freeware sera compilée. Sachez que vous ne pouvez pas encore
choisir le système de Digital utilisant le système ELF (la
bibliothèque n'est pas encore prête). Vous devrez donc répondre 'n'
à cette question.</p>
<blockquote>
<pre><code>
Build PALcode from sources (Warning this is dangerous) \
                   (MINI_BUILD_PALCODE_FROM_SOURCES) [n]
</code></pre></blockquote>
<p>Vous ne devrez utiliser cette option que si vous avez changé les
sources du PALcode ; dans tous les autres cas, utilisez la version
standard précompilée du PALcode fourni avec MILO.</p>
<p>Tout est désormais prêt, vous pouvez lancer la
compilation&nbsp;:</p>
<blockquote>
<pre><code>
$ make KSRC=/usr/src/linux
</code></pre></blockquote>
<p>Lorsque la compilation s'est achevée avec succès, l'image de
MILO est écrite dans le fichier <code>milo</code>. Il y a un grand
nombre de fichiers appelés <code>milo.*</code>, ceux-ci devront
être ignorés.</p>
<h2><a name="load-section"></a> <a name="s5">5. Comment charger
MILO ?</a></h2>
<p>La manière la plus courante et la plus simple pour charger MILO
est de le faire à partir de la console ARC. Cependant il est
possible de réaliser cette opération de diverses
manières&nbsp;:</p>
<ul>
<li>une disquette bootable dite failsafe&nbsp;;</li>
<li>firmware ARC pour Windows NT&nbsp;;</li>
<li>Windows NT AlphaBlOS&nbsp;;</li>
<li>Console SRM de Digital&nbsp;;</li>
<li>un Debug Monitor existant sur les cartes d'évaluations de
Digital,</li>
<li>flash/ROM.</li>
</ul>
<h2><a name="arc-section"></a> <a name="ss5.1">5.1 Chargement de
MILO depuis la console ARC pour Windows NT</a></h2>
<p>La plupart, sinon la totalité, des systèmes à base d'Alpha AXP
intègrent le firmware ARC pour Windows NT et cela est la méthode
recommandée pour démarrer MILO et de surcroît Linux. Une fois que
vous disposez de ce firmware et de la version adéquate de MILO, la
méthode est complètement générique.</p>
<p>Le firmware ARC pour Windows NT offre un environnement dans
lequel les programmes peuvent demander à celui-ci d'effectuer des
opérations. Le programme OSLoader de Windows NT réalise exactement
cela. Linload.exe est comparable mais beaucoup plus simple, il fait
juste ce qui est nécessaire au chargement et à l'exécution de MILO.
Il charge le fichier image adéquat en mémoire à l'adresse
0x00000000 puis il exécute les deux instructions swap-PAL puis
PALcall à cette adresse. MILO, comme Linux, utilise un PALcode
différent de celui utilisé par Windows NT, cela expliquant pourquoi
l'instruction swap est nécessaire. MILO se reloge lui-même à
l'adresse 0x200000 puis poursuit la réinitialisation du PALcode à
cette nouvelle adresse.</p>
<p>Avant d'ajouter des options de démarrage pour Linux, vous devrez
copier linload.exe et MILO à un endroit que la console ARC pourra
lire. Dans l'exemple suivant on suppose que le démarrage s'effectue
à partir d'une disquette au format DOS.</p>
<ol>
<li>Choisissez <code>"Supplementary menu..."</code></li>
<li>Au <code>"Supplementary menu"</code> choisissez <code>"Set up
the system..."</code></li>
<li>Au <code>"Setup menu"</code> choisissez <code>"Manage boot
selection menu..."</code></li>
<li>Dans <code>"Boot selections menu"</code> choisissez <code>"Add
a boot selection"</code></li>
<li>Choisissez <code>"Floppy Disk 0"</code></li>
<li>Entrez <code>"linload.exe"</code> dans la rubrique
OSLOADER</li>
<li>Répondez "yes" à la question suivante (qui stipule que
linload.exe est au même endroit que le système
d'exploitation&nbsp;; pour la console ARC, MILO est vu comme un
système d'exploitation à part entière)</li>
<li>Entrez '\' ensuite (stipulant que la racine du système est la
racine de notre disquette)</li>
<li>Entrez le nom de ce choix de démarrage (<code>Linux</code> par
exemple&nbsp;!)</li>
<li>Répondez 'No' à la question 'Initialize debugger at boot
time&nbsp;?'</li>
<li>Vous vous retrouvez maintenant dans la section <code>"Boot
selections menu"</code>&nbsp;: choisissez <code>"Change a boot
selection option"</code> et sélectionnez le nom que vous avez
choisi ci-dessus dans le but de l'éditer.</li>
<li>Avec les flèches, sélectionnez <code>"OSLOADFILENAME"</code>
puis saisissez le nom de l'image MILO que vous souhaitez utiliser.
Par exemple <code>noname.arc</code> ou <code>milo</code> suivi de
Entrée.</li>
<li>Retournez à la section <code>"Boot Selections menu"</code> à
l'aide de la touche Esc</li>
<li>Tapez la touche Esc de nouveau et choisissez
<code>"Supplementary menu, and save changes"</code></li>
<li>Retournez au <code>"Boot menu"</code> et vous pouvez alors
essayer de démarrer MILO.</li>
</ol>
<p>Après avoir réalisé cela, vous devriez avoir un 'boot selection'
de la forme&nbsp;:</p>
<blockquote>
<pre><code>
LOADIDENTIFIER=Linux
SYSTEMPARTITION=multi(0)disk(0)fdisk(0)
OSLOADER=multi(0)disk(0)fdisk(0)\linload.exe
OSLOADPARTITION=multi(0)disk(0)fdisk(0)
OSLOADFILENAME=\noname.arc
OSLOADOPTIONS=
</code></pre></blockquote>
<p>Vous pouvez désormais démarrer MILO (puis Linux). Vous pouvez
aussi charger linload.exe et MILO depuis un système de fichiers que
Windows NT comprend. Par exemple NTFS ou DOS sur un disque dur.</p>
<p>Le contenu de la variable <code>OSLOADOPTIONS</code> est passé à
MILO qui l'interprète comme une commande. Donc, pour démarrer Linux
sans attente, il faudra fournir une valeur du type&nbsp;:</p>
<blockquote>
<pre><code>
boot sda2:vmlinux.gz root=/dev/sda2
</code></pre></blockquote>
<p>Reportez-vous à la section <a href=
"#MILO-if-section">L'interface utilisateur de MILO</a> pour de plus
amples renseignements sur les commandes disponibles.</p>
<p>Une autre méthode de démarrage de MILO via la console ARC (bien
que tortueuse) est d'appeler MILO <code>fwupdate.exe</code> puis de
choisir l'option 'Upgrade Firmware'.</p>
<h2><a name="ss5.2">5.2 Démarrage de MILO depuis l'AlphaBIOS
Windows NT</a></h2>
<p>Avec l'apparition des machines de la série XLT, Digital a changé
la console ARC pour ses systèmes Windows NT et l'a remplacée par
l'AlphaBIOS. Cette nouvelle console offre l'avantage d'une plus
grande convivialité. Ce changement d'interface implique un
changement de procédure de configuration pour ceux qui souhaitent
démarrer Linux pour Alpha dans ce contexte.</p>
<p>La première chose à faire est d'installer la dernière version de
l'AlphaBIOS sur votre système. Celle-ci est disponible à l'adresse
suivante&nbsp;: <a href=
"http://www.windows.digital.com/support/sysoft.htp">http://www.windows.digital.com/support/sysoft.htp</a>.</p>
<p>Téléchargez le fichier ZIP, décompactez-le et installez-le comme
suit :</p>
<ol>
<li>Copiez le fichier sur une disquette DOS&nbsp;;</li>
<li>Allumez l'ordinateur et insérez la disquette. Lors de
l'affichage des premières informations à l'écran, enfoncez la
touche F2 pour entrer dans le setup&nbsp;;</li>
<li>Choisissez <code>"Upgrade AlphaBIOS"</code>&nbsp;;</li>
<li>Suivez les instructions.</li>
</ol>
<p>Une fois que l'AlphaBIOS est mis à jour, vous pouvez démarrer
votre machine comme suit&nbsp;:</p>
<ol>
<li>Créez une disquette DOS contenant les fichiers linload.exe et
milo&nbsp;;</li>
<li>Allumez le système et entrez dans le setup&nbsp;;</li>
<li>Choisissez <code>"Utilities-&gt;OS Selection
Setup"</code>&nbsp;;</li>
<li>Appuyez sur INSERT pour ajouter une nouvelle entrée&nbsp;;</li>
<li>Pour <code>"Boot Name"</code> entrez un nom de votre choix (ici
Linux) puis pressez Tab pour changer de champ&nbsp;;</li>
<li>Avec les flèches, choisissez 'A:' pour la variable <code>"Boot
File is"</code>, passez au champ suivant&nbsp;;</li>
<li>Entrez "linload.exe". Deux fois TAB&nbsp;;</li>
<li>Entrez "\" pour la variable <code>"OS Path load
file"</code>&nbsp;;</li>
<li>Pressez ENTREE pour valider.</li>
</ol>
<p>À ce moment l'AlphaBIOS devrait afficher une boîte de dialogue
angoissante indiquant&nbsp;: "Warning: Operating System Selection
not valid!". Ne tenez pas compte de cette erreur (cela ne pose de
problème qu'à NT), pressez Entrée pour valider.</p>
<ol>
<li>Pressez F10 puis Entrée pour valider ces
changements&nbsp;;</li>
<li>Pressez Esc jusqu'à arriver à l'écran d'accueil&nbsp;;</li>
<li>Choisissez, à l'aide des flèches, l'entrée que vous venez de
saisir, pressez Entrée pour lancer MILO.</li>
</ol>
<p>Si la première partition de votre disque dur est un système de
fichiers DOS de petite taille destiné au démarrage (ainsi que la
procédure d'installation le recommande), lorsque Linux sera
installé, vous devrez y copier linload.exe et MILO. Au démarrage
suivant, vous devrez configurer votre firmware de telle sorte qu'il
aille chercher ces programmes à l'emplacement voulu. Pour ce faire
je vous recommande d'utiliser la démarche suivante&nbsp;:</p>
<ol>
<li>Entrez dans le setup (F2 à l'écran de démarrage)&nbsp;;</li>
<li>Choisissez <code>"Utilities-&gt;OS Selection
setup"</code>&nbsp;;</li>
<li>Sélectionnez l'entrée correspondant à Linux, puis pressez F6
pour la modifier&nbsp;;</li>
<li>Placez le curseur sur l'entrée correspondant à la partie
périphérique de la ligne <code>"Boot File"</code>
(<code>device</code> pour les versions en Anglais). Avec les
flèches, choisissez la partition sur laquelle résident linload.exe
et MILO. Appuyez sur Entrée pour valider.</li>
<li>Si vous souhaitez que votre système démarre automatiquement
après le chargement de MILO positionnez-vous (à l'aide de la touche
TAB) sur la variable <code>"OS Options"</code> puis spécifiez ici
quelle est la ligne de commande à fournir à MILO, par
exemple&nbsp;: "boot sda2:vmlinux.gz". Pressez Entrée pour
valider&nbsp;;</li>
<li>Utilisez la touche F10 pour sauvegarder les modifications.</li>
</ol>
<p>Cela fait que l'utilisation de Linux sur une plate-forme
utilisant AlphaBIOS devient quasiment identique à celles utilisant
la console ARC.</p>
<h2><a name="dbm-section"></a> <a name="ss5.3">5.3 Démarrage de
MILO depuis le Debug Monitor des cartes d'évaluation</a></h2>
<p>Les cartes d'évaluation (et souvent les cartes conçues à partir
de leur exemple) proposent un logiciel appelé "debug monitor".
Reportez-vous à la documentation de votre système avant d'envisager
cette possibilité. Les systèmes suivants <em>proposent</em> cette
fonctionnalité&nbsp;:</p>
<ul>
<li>AlphaPC64 (Section <a href="#pc64-section">AlphaPC64
(Cabriolet)</a>)</li>
<li>EB64+ (Section <a href="#eb64p-section">EB 64+</a>)</li>
<li>EB66+ (Section <a href="#eb66p-section">EB 66+</a>)</li>
<li>EB164 (Section <a href="#eb164-section">EB 164</a>)</li>
<li>PC164 (Section <a href="#pc164-section">PC164</a>)</li>
</ul>
<p>Sachez avant toute chose que, sur certaines anciennes versions,
ce logiciel n'inclut pas de gestionnaire écran / clavier. Vous
devrez donc vous préparer à connecter un terminal série à votre
système. Son interface est très simple et une commande d'aide
(help) documente une grande quantité de commandes. Les plus
intéressantes de ces commandes incluent les mots <code>boot</code>
et <code>load</code>.</p>
<p>Le debug monitor peut charger une image à partir du réseau
(netboot) ou d'une disquette (flboot). Dans tous les cas, l'image
doit être chargée à l'adresse 0x200000 (utilisez la commande
<code>bootadr 200000</code>).</p>
<p>Si l'image se trouve sur une disquette (notez que le seul format
de disquette reconnu est DOS) vous devrez utiliser la commande
suivante&nbsp;:</p>
<blockquote>
<pre><code>
AlphaPC64&gt; flboot &lt;MILO-image-name&gt;
</code></pre></blockquote>
<h2><a name="bootblock-section"></a> <a name="ss5.4">5.4 Chargement
de MILO depuis une disquette de démarrage failsafe</a></h2>
<p>D'après les informations <em>dont je dispose</em>, seul
l'AXPpci33 propose la reconnaissance de secteur d'amorçage de type
failsafe floppy (Section <a href="#noname-section">AXPpci33
(Noname)</a>).</p>
<p>Si vous ne disposez pas d'une image MILO standard précompilée,
vous devrez confectionner une disquette au format SRM. Une fois
MILO compilé, vous devrez exécuter les instructions suivantes sous
Digital Unix&nbsp;:</p>
<blockquote>
<pre><code>
fddisk -fmt /dev/rfd0a
cat mboot bootm &gt; /dev/rfd0a
disklabel -rw rfd0a lrx231 mboot bootm
</code></pre></blockquote>
<p>Ou bien les commandes suivantes sous Linux&nbsp;:</p>
<blockquote>
<pre><code>
cat mboot bootm &gt; /dev/fd0
</code></pre></blockquote>
<p>Si vous disposez d'une image MILO précompilée vous pourrez
construire la disquette de la manière suivante&nbsp;:</p>
<blockquote>
<pre><code>
dd if=MILO.dd of=/dev/fd0
</code></pre></blockquote>
<h2><a name="flash_section"></a> <a name="ss5.5">5.5 Démarrage de
MILO à partir de la mémoire Flash</a></h2>
<p>Il existe certains systèmes qui permettent d'intégrer MILO
directement dans la PROM Flash, permettant ainsi le démarrage
direct de Linux (sans avoir à utiliser de console du type ARC)
:</p>
<ul>
<li>AlphaPC64 (Section <a href="#pc64-section">AlphaPC64
(Cabriolet)</a>)</li>
<li>EB64+ (Section <a href="#eb64p-section">EB 64+</a>)</li>
<li>EB66+ (Section <a href="#eb66p-section">EB 66+</a>)</li>
<li>EB164 (Section <a href="#eb164-section">EB 164</a>)</li>
<li>PC164 (Section <a href="#pc164-section">PC164</a>)</li>
</ul>
<h2><a name="srm_section"></a> <a name="ss5.6">5.6 Démarrage de
MILO par le biais de la console SRM</a></h2>
<p>La console SRM (abréviation de System Reference Manual) ne
reconnaît aucun système de fichiers ni même aucune partition
disque. Elle s'attend tout simplement à trouver le logiciel
d'amorçage à une position physique démarrant à un emplacement donné
(il s'agit d'un offset ou position relative). L'information
décrivant ce logiciel d'amorçage (sa taille et sa position
relative) est décrite dans le premier bloc de 512 octets du disque.
Pour charger MILO depuis la SRM vous devez générer cette structure
de données en bonne et due forme sur un support que la console peut
atteindre. Cela explique l'existence des fichiers
<code>mboot</code> et <code>bootm</code>.</p>
<p>Pour charger MILO depuis un périphérique de démarrage, compilez
<code>mboot</code> et <code>bootm</code> puis écrivez-les sur
disque à l'aide de la commande suivante&nbsp;:</p>
<blockquote>
<pre><code>
$ cat mboot bootm &gt; /dev/fd0
</code></pre></blockquote>
<p>ou bien téléchargez une image appropriée de MILO à partir d'un
site Web, puis utilisez soit <code>RAWRITE.EXE</code> soit
<code>dd</code> pour l'inscrire sur disque.</p>
<p>Cela fait, vous pouvez envisager de démarrer MILO depuis la
console SRM, puis d'utiliser une de ses nombreuses commandes pour
démarrer. Par exemple, pour démarrer depuis une disquette, vous
devrez effectuer l'opération suivante&nbsp;:</p>
<blockquote>
<pre><code>
&gt;&gt;&gt;boot dva0
(boot dva0.0.0.0.1 -flags 0)
block 0 of dva0.0.0.0.1 is a valid boot block
reading 621 blocks from dva0.0.0.0.1
bootstrap code read in 
base = 112000, image-start = 0, image-bytes 4da00
initializing HWRPB at 2000
initializing page table at 104000
 initializing machine state
setting affinity to the primary CPU
jumping to bootstrap code
MILO Stub: V1.1
Unzipping MILO into position
Allocating memory for unzip
####...
</code></pre></blockquote>
<p>Les systèmes suivants sont compatibles avec la console
SRM&nbsp;:</p>
<ul>
<li>Noname (Section <a href="#noname-section">AXPpci33
(Noname)</a>)</li>
<li>AlphaPC64 (Section <a href="#pc64-section">AlphaPC64
(Cabriolet)</a>)</li>
<li>EB164 (Section <a href="#eb164-section">EB 164</a>)</li>
<li>PC164 (Section <a href="#pc164-section">PC164</a>)</li>
</ul>
<h2><a name="specific-section"></a> <a name="ss5.7">5.7
Informations spécifiques à certains systèmes</a></h2>
<h3><a name="noname-section"></a> AXPpci33 (Noname)</h3>
<p>La carte Noname est capable de charger MILO depuis une console
ARC ou SRM ou depuis une disquette failsafe. Un utilitaire de
gestion de la mémoire PROM flash, exécutable depuis MILO permet de
copier ce dernier en mémoire flash. En revanche, nous tenons à vous
avertir que cette manipulation est très périlleuse car la Noname ne
comportant que 256 Ko de mémoire flash, elle ne peut contenir
qu'une image en PROM. Si l'image que vous copiez en flash est
corrompue, votre système ne démarrera plus.</p>
<p>La méthode de démarrage des cartes Noname est contrôlée par les
jumpers J29 et J28. Ils sont disposés comme suit&nbsp;:</p>
<blockquote>
<pre><code>
Numéro de broche   4
     J29       2 x x x 6              
               1 x x x 5              
                                                                                          
     J28       2 x x x 6              
               1 x x x 5              
                   3                                      
</code></pre></blockquote>
<p>Les deux options de configuration qui nous intéressent sont sur
J28, dont les plots 1-3, qui démarrent la console depuis la flash
et J29, dont les plots 1-3 permettent de démarrer la console depuis
une disquette. La seconde option est celle dont vous avez besoin
pour démarrer MILO la première fois. Une fois que les jumpers
auront été configurés pour l'utilisation d'une disquette de
démarrage, insérez la disquette contenant MILO en version bootable
dans le lecteur puis relancez l'ordinateur. En l'espace de quelques
secondes (après l'extinction de la lumière du lecteur), vous devrez
constater que l'écran passe du noir au blanc et y lire les
informations relatives à l'exécution de MILO. Si les aspects
techniques vous intéressent, sachez que la carte Noname charge le
contenu de la disquette à l'adresse 0x104000 et les images
provenant de la mémoire flash en 0x100000. Pour cette raison, MILO
intègre son PALcode à l'adresse 0x200000. Lors de son démarrage, il
se reloge lui-même à l'adresse correcte.</p>
<h3><a name="pc64-section"></a> AlphaPC64 (Cabriolet)</h3>
<p>L'AlphaPC64 est doté, en standard, du Firmware Windows NT
(Section <a href="#arc-section">Chargement de MILO depuis la
console ARC pour Windows NT</a>), de la console SRM (Section
<a href="#srm_section">Démarrage de MILO par le biais de la console
SRM</a>) et du Debug Monitor (Section <a href=
"#dbm-section">Démarrage de MILO depuis le debug monitor des cartes
d'évaluation</a>). Ces images sont en flash et il reste de la place
dans cette mémoire pour ajouter l'image de MILO de manière à
pouvoir démarrer MILO directement depuis la PROM. Un utilitaire de
gestion de la mémoire flash est disponible sous MILO, ainsi il est
possible d'intégrer MILO à la mémoire flash lorsque celui-ci
s'exécute (Section <a href="#MILO-fmu-section">Exécution du
gestionnaire de mémoire flash</a>). Ce procédé accepte
l'utilisation de variables d'environnement MILO.</p>
<p>Il est possible de choisir parmi les options de démarrage (ARC,
SRM, MILO) en utilisant une combinaison de jumpers et de définir
des options de démarrage qui seront sauvegardées dans la NVRAM de
l'horloge TOY ("CMOS").</p>
<p>Il s'agit du jumper J2&nbsp;; les bits 6 et 7 ont la fonction
suivante&nbsp;:</p>
<ul>
<li>SP Bit 6 doit toujours être ouvert (pas de jumper)&nbsp;; dans
le cas contraire le mini-debugger sera exécuté.</li>
<li>SP Bit 7 fermé&nbsp;: Exécuter l'image définie dans la
NVRAM</li>
<li>SP Bit 7 ouvert&nbsp;: Exécuter la première image.</li>
</ul>
<p>Donc, si le SP Bit 7 est ouvert, le Debug Monitor sera exécuté
car il est <code>toujours</code> positionné en première place dans
la PROM. Et si le SP Bit 7 est fermé, l'image exécutée sera celle
définie dans l'horloge système (TOY). L'ARC, le Debug Monitor et
MILO acceptent cette option&nbsp;; il faut, cependant, être très
prudent lors de son utilisation. Par exemple, vous ne pouvez pas
définir d'option qui vous permettra de démarrer MILO au démarrage
suivant&nbsp;: lors de l'utilisation de la console ARC, cette
dernière vous permet de passer en mode Debug Monitor ou ARC lors du
démarrage, mais elle ne permet pas de passer en mode MILO.</p>
<p>Pour inclure MILO dans la mémoire flash via le Debug Monitor,
vous aurez besoin d'une image adéquate (dite flashable). La
commande de compilation est&nbsp;: make MILO.rom, mais vous pouvez
aussi construire une image rom à l'aide de l'outil makerom du Debug
Monitor.</p>
<pre>
&gt; makerom -v -i7 -1200000 MILO -o mini.flash
</pre>
<p>(tapez makerom pour comprendre ce que signifient les paramètres,
'7' représente un identificateur d'image flash utilisé par la SROM
et -l200000 indique l'adresse de chargement de cette image).</p>
<p>Pour charger cette image en mémoire, utilisez une des commandes
flload, netload, ... à l'adresse 0x200000, puis insérez l'image en
mémoire flash de la manière suivante&nbsp;:</p>
<blockquote>
<pre><code>
AlphaPC64&gt; flash 200000 8
</code></pre></blockquote>
<p>200000 est l'adresse de chargement et 8 est le numéro du segment
de mémoire à utiliser. Il y a 16 segments de 64 Ko (soit 512 Ko)
dans la SROM. (Le Debug Monitor est au segment 0 et l'ARC au
segment 4).</p>
<p>Définissez l'image que la SROM va exécuter au démarrage en
donnant une valeur à la variable TOY bootopt&nbsp;:</p>
<blockquote>
<pre><code>
AlphaPC64&gt; bootopt 131
</code></pre></blockquote>
<p>(131 indique la 3ème image, 129 la 1ère image, 130 la 2ème,
etc...)</p>
<p>Éteignez la machine, mettez le jumper 7 en place et redémarrez
la machine. Vous devrez alors pouvoir observer MILO s'exécuter.
Félicitations&nbsp;! Vous pouvez remonter la machine
(enfin&nbsp;!). Si ce n'est pas le cas, conservez le tournevis pour
plus tard, et enlevez à nouveau le jumper 7 pour redémarrer en mode
Debug Monitor, reprenez les étapes les unes à la suite des autres,
méthodiquement, en prenant garde de ne rien oublier.</p>
<h3><a name="eb66p-section"></a> EB 66+</h3>
<p>La carte EB66+, comme toutes les cartes d'évaluation de Digital,
contient le Debug Monitor, et de ce fait celui-ci va nous permettre
de charger MILO. Souvent (mais pas toujours), les cartes dérivées
des cartes d'évaluation possèdent ce logiciel. Habituellement, ces
cartes contiennent la console ARC. Un utilitaire de gestion de la
mémoire flash est disponible sous MILO, ainsi il est possible
d'intégrer MILO à la mémoire flash lorsque celui-ci s'exécute
(Section <a href="#MILO-fmu-section">Exécution du gestionnaire de
mémoire flash</a>). Ce système accepte les variables
d'environnement MILO.</p>
<p>Ces cartes disposent de plusieurs images en mémoire flash
contrôlées par jumper. Les deux bancs de jumpers sont J18 et J16 et
se situent au centre bas de la carte (considérant que le processeur
Alpha se situe en haut de la carte). Vous pouvez choisir l'option
de démarrage par ces jumpers (et MILO lorsqu'il est chargé) ainsi
qu'une variable d'environnement sauvegardée dans la mémoire non
volatile (NVRAM TOY).</p>
<p>jumper 7-8 Fermé signifie qu'il faut utiliser l'image désignée
par la variable bootopt, lorsqu'il est ouvert le Debug Monitor est
exécuté.</p>
<p>Pour le reste de la configuration, reportez vous au paragraphe
précédent traitant de l'AlphaPC64 (Section <a href=
"#pc64-section">AlphaPC64 (Cabriolet)</a>).</p>
<h3><a name="eb64p-section"></a> EB 64+ / Aspen Alpine</h3>
<p>Cette carte est très similaire à l'AlphaPC64 excepté qu'elle ne
contient pas de mémoire flash utilisable par MILO. Cette carte
possède deux ROMS, l'une contenant l'ARC, l'autre contenant le
Debug Monitor.</p>
<p>L'Aspen Alpine, quant à elle, ne contient qu'une ROM où est
gravée la console ARC.</p>
<h3><a name="multia-section"></a> Universal Desktop Box
(Multia)</h3>
<p>C'est une station ultra compacte à base d'AXP 21066 qui intègre
un sous-système graphique TGA (21030). De plus il n'y a de place
que pour une carte graphique PCI demi-hauteur. Elle utilise la
console ARC (Windows NT) et il est donc recommandé de l'utiliser
pour le démarrage de MILO (Section <a href=
"#arc-section">Chargement de MILO depuis la console ARC pour
Windows NT</a>).</p>
<h3><a name="eb164-section"></a> EB 164</h3>
<p>La carte EB164, comme toutes les cartes d'évaluation de Digital,
contient le Debug Monitor, et de ce fait celui-ci va nous permettre
de charger MILO. Souvent (mais pas toujours) les cartes dérivées
des cartes d'évaluation possèdent ce logiciel. Habituellement, ces
cartes contiennent la console ARC. Un utilitaire de gestion de la
mémoire flash est disponible sous MILO, ainsi il est possible
d'intégrer MILO à la mémoire flash lorsque celui-ci s'exécute
(Section <a href="#MILO-fmu-section">Exécution du gestionnaire de
mémoire flash</a>). Ce système accepte les variables
d'environnement MILO. La console SRM est, de plus, disponible
(Section <a href="#srm_section">Démarrage de MILO par le biais de
la console SRM</a>).</p>
<p>Ces cartes disposent de plusieurs images en mémoire flash
contrôlées par jumper. Le banc de deux jumpers s'appelle J1 et se
situe en bas à gauche de la carte (considérant que le processeur
Alpha se situe en haut de la carte). Vous pouvez choisir l'option
de démarrage par ces jumpers (et MILO lorsqu'il est chargé) ainsi
qu'une variable d'environnement sauvegardée dans la mémoire non
volatile (NVRAM TOY).</p>
<p>jumper SP-11 de J1 fermé signifie qu'il faut utiliser l'image
désignée par la variable bootopt&nbsp;; lorsqu'il est ouvert le
Debug Monitor est exécuté.</p>
<p>Pour le reste de la configuration, reportez-vous au paragraphe
précédent traitant de l'AlphaPC64 (Section <a href=
"#pc64-section">AlphaPC64 (Cabriolet)</a>).</p>
<h3><a name="pc164-section"></a> PC164</h3>
<p>La carte PC164, comme toutes les cartes d'évaluation de Digital,
contient le Debug Monitor, et de ce fait celui-ci va nous permettre
de charger MILO. Souvent (mais pas toujours) les cartes dérivées
des cartes d'évaluation possèdent ce logiciel. Habituellement, ces
cartes contiennent la console ARC. Un utilitaire de gestion de la
mémoire flash est disponible sous MILO, ainsi il est possible
d'intégrer MILO à la mémoire flash lorsque celui-ci s'exécute
(Section <a href="#MILO-fmu-section">Exécution du gestionnaire de
mémoire flash</a>). Ce système accepte les variables
d'environnement MILO. La console SRM est, de plus, disponible
(Section <a href="#srm_section">Démarrage de MILO par le biais de
la console SRM</a>).</p>
<p>Ces cartes disposent de plusieurs images en mémoire flash
contrôlées par jumpers. Le banc principal de jumpers s'appelle J30,
il contient les jumpers de configuration. Le jumper CF6 fermé
signifie que le système démarrera le Debug Monitor, il est par
défaut ouvert.</p>
<p>Pour le reste de la configuration, reportez-vous au paragraphe
précédent traitant de l'AlphaPC64(Section <a href=
"#pc64-section">AlphaPC64 (Cabriolet)</a>).</p>
<h3><a name="xl-section"></a> XL266</h3>
<p>Le XL266 est un des systèmes connus sous le nom d'Avanti. Il
possède une carte fille sur laquelle résident le processeur Alpha
et le cache qui se connecte à la carte mère. Cette carte remplace
une carte fille Pentium équivalente.</p>
<p>Certains de ces systèmes sont vendus avec la console SRM, mais
certains autres ne sont livrés qu'avec la console ARC (Section
<a href="#arc-section">Chargement de MILO depuis la console ARC
pour Windows NT</a>).</p>
<p>Voici une liste compatible avec cette série&nbsp;:</p>
<ul>
<li>AlphaStation 400 (Avanti),</li>
<li>AlphaStation 250,</li>
<li>AlphaStation 200 (Mustang),</li>
<li>XL. Il en existe deux modèles, XL266 et XL233 qui ne diffèrent
que par la vitesse du processeur et la taille de la mémoire
cache.</li>
</ul>
<p><b>Note&nbsp;:</b> Le système que j'utilise pour développer et
tester MILO est un XL266&nbsp;; de ce fait, c'est le seul sur
lequel je peux garantir un fonctionnement correct. Cela dit les
autres systèmes sont, techniquement, équivalents. Ils possèdent les
mêmes chipsets et les mêmes mécanismes d'interruptions.</p>
<h3><a name="p2k-section"></a> Platform2000</h3>
<p>Il s'agit d'un système à base de processeur 21066 à 233 Mhz.</p>
<h2><a name="MILO-if-section"></a> <a name="s6">6. L'interface
utilisateur de MILO</a></h2>
<p>Après avoir correctement installé MILO (Abrév. de MIniLOader)
vous devrez obtenir l'invite de commande de MILO. Il y a une
interface de commandes très simple que vous pouvez utiliser dans le
but de démarrer une image Linux particulière. Utilisez la commande
help pour obtenir une description sommaire des commandes.</p>
<h2><a name="MILO-help-section"></a> <a name="ss6.1">6.1 La
commande help</a></h2>
<p>Probablement la commande la plus utile de MILO.</p>
<blockquote>
<pre><code>

MILO&gt; help
MILO command summary:
ls [-t fs] [dev:[dir]]
                        - List files in directory on device
boot [-t fs] [dev:file] [boot string]
                        - Boot Linux from the specified device and file
run [-t fs] dev:file
                        - Run the standalone program dev:file
show                    - Display all known devices and file systems
set VAR VALUE           - Set the variable VAR to the specified VALUE
unset VAR               - Delete the specified variable
reset                   - Delete all variables
print                   - Display current variable settings
help [var]              - Print this help text

Devices are specified as: fd0, hda1, hda2, sda1...
Use the '-t filesystem-name' option if you want to use
anything but the default filesystem ('ext2').
Use the 'show' command to show known devices and filesystems.
Type 'help var' for a list of variables.
</code></pre></blockquote>
<p><b>Note&nbsp;:</b> la commande <code>bootopt</code> n'apparaît
que pour les systèmes AlphaPC64 (et équivalents).</p>
<p><b>Périphériques.</b> Jusqu'à ce que vous utilisiez une commande
qui nécessite l'utilisation d'un des périphériques, aucune
initialisation n'est réalisée sur ces derniers. La première
commande <code>show</code>, <code>ls</code>, <code>boot</code> ou
<code>run</code> provoquera l'initialisation des périphériques. Les
pilotes de périphériques portent exactement les mêmes noms que ceux
de Linux. Donc le premier disque IDE sera appelé hda et la première
partition sera hda1. Utilisez la commande <code>show</code> pour
obtenir une liste des périphériques disponibles.</p>
<p><b>Systèmes de fichiers.</b> MILO est compatible avec trois
différents types de systèmes de fichiers&nbsp;: MSDOS, EXT2 et
ISO9660. À partir du moment oû un périphérique est disponible pour
lui, MILO est à même de charger et d'exécuter n'importe quelle
image disponible. Le système de fichiers par défaut est
<code>EXT2</code>. Toutes les commandes utilisant les systèmes de
fichiers permettent d'en préciser le type par le biais de l'option
-t filesystem. Donc si vous souhaitez obtenir une liste du contenu
d'un CDROM il suffit d'entrer la commande&nbsp;:</p>
<blockquote>
<pre><code>
MILO&gt; ls -t iso9660 scd0:
</code></pre></blockquote>
<p><b>Variables.</b> MILO contient quelques variables qui aident au
processus de démarrage. Si vous démarrez à partir de la console
ARC, MILO utilisera les variables d'environnement définies par ce
firmware. Pour certains systèmes (tels que l'AlphaPC64), MILO
dispose de son propre jeu de variables qui ne changent pas d'un
démarrage à l'autre. Ces variables sont&nbsp;:</p>
<blockquote>
<pre><code>
MILO&gt; help var
Variables that MILO cares about:
  MEMORY_SIZE           - System memory size in megabytes
  BOOT_DEV              - Specifies the default boot device
  BOOT_FILE             - Specifies the default boot file
  BOOT_STRING           - Specifies the boot string to pass to the kernel
  SCSIn_HOSTID          - Specifies the host id of the n-th SCSI controller.
  PCI_LATENCY           - Specifies the PCI master device latency
  AUTOBOOT              - If set, MILO attempts to boot on powerup
                          and enters command loop only on failure.
  AUTOBOOT_TIMEOUT      - Seconds to wait before auto-booting on powerup.
</code></pre></blockquote>
<p><em>ATTENTION</em> à l'utilisation de la variable AUTOBOOT sans
définir de valeur délai (AUTOBOOT_TIMEOUT) car MILO démarrera après
avoir attendu 0 seconde. Ce n'est peut-être pas ce que vous
souhaitez.</p>
<p>PCI_LATENCY représente le nombre de cycles PCI qu'un
périphérique fonctionnant en bus master se réserve lorsqu'il
acquiert le contrôle du bus. La valeur par défaut est de 32 et la
maximum de 255. Définir une valeur élevée revient à dire que chaque
fois qu'un périphérique prend le contrôle du bus PCI, il
transfèrera plus de données. Cependant cela signifie aussi qu'un
périphérique devra attendre plus longtemps pour obtenir le contrôle
du bus.</p>
<h2><a name="MILO-boot-section"></a> <a name="ss6.2">6.2 Démarrage
de Linux</a></h2>
<p>La commande <code>boot</code> charge et démarre un noyau Linux à
partir d'un périphérique. Vous aurez besoin d'avoir un disque
contenant ce noyau (SCSI, IDE, disquette dans un format reconnu par
MILO). Ces images peuvent être compressées à l'aide de gzip&nbsp;;
les premières versions de MILO reconnaissaient ces fichiers à
l'aide de leur extension '.gz', tandis que les plus récentes font
appel à la signature du fichier.</p>
<p>Il est important de retenir que la version de MILO ne nécessite
pas de correspondance avec celle du noyau Linux que vous souhaitez
charger. Vous démarrez Linux avec la commande suivante&nbsp;:</p>
<blockquote>
<pre><code>
MILO&gt; boot [-t file-system] device-name:file-name \
           [[boot-option] [boot-option]...]
</code></pre></blockquote>
<p><code>device-name</code> représente le nom du périphérique que
vous souhaitez utiliser, <code>file-name</code> le nom de fichier
de l'image à charger en mémoire. Tous les arguments spécifiés par
la suite sont directement transmis au programme exécuté (ici le
noyau Linux).</p>
<p>Si vous installez Linux Red Hat pour Alpha vous devrez spécifier
un périphérique racine (root device) et autres options&nbsp;:</p>
<blockquote>
<pre><code>
MILO&gt; boot fd0:vmlinux.gz root=/dev/fd0 load_ramdisk=1
</code></pre></blockquote>
<p>MILO contient automatiquement les périphériques en mode bloc
configurés dans vmlinux. J'ai testé le pilote de disquette, de
disque IDE ainsi qu'un certain nombre de pilotes SCSI (par exemple
le NCR810), et ceux-ci fonctionnent bien. Il est de même important
d'attribuer un ID SCSI raisonnable à votre contrôleur SCSI. Par
défaut MILO l'initialisera à la valeur maximale (7) qui, en
principe, devrait fonctionner correctement. Néanmoins, si vous le
souhaitez, vous pouvez spécifier l'ID SCSI de votre N-ième
contrôleur SCSI en définissant la variable
<code>SCSI</code><em>n</em><code>_HOSTID</code>&nbsp;; par exemple
pour préciser que l'ID SCSI du contrôleur numéro 0 est 7 utilisez
la commande suivante&nbsp;:</p>
<blockquote>
<pre><code>
setenv SCSI0_HOSTID 7
</code></pre></blockquote>
<h2><a name="MILO-reboot-section"></a> <a name="ss6.3">6.3
Redémarrage de Linux</a></h2>
<p>Vous pouvez vouloir redémarrer Linux à l'aide de la commande
<code>shutdown -r now</code>. Dans ce cas, le noyau Linux repasse
le contrôle à MILO (par une instruction HALT CallPAL entrypoint).
MILO laisse une version de lui-même compressée en mémoire pour
cette seule raison et détecte que le système est redémarré par le
biais du HWRPB (Hardware Restart Parameter Block). Dans ce cas vous
pouvez &nbsp;edémarrer à l'aide de la même commande qui vous a
servi au démarrage précédent. Il y a un délai de 30 secondes qui
vous permet d'interrompre ce processus et de démarrer n'importe
quel autre noyau de n'importe quelle autre manière.</p>
<h2><a name="MILO-bootopt-section"></a> <a name="ss6.4">6.4 La
commande ''bootopt''</a></h2>
<p>Pour les systèmes utilisant la mémoire flash comme les
AlphaPC64, EB164 et EB66+, il existe différentes options de
démarrage. Celles-ci sont modifiables à l'aide de la commande
<code>bootopt</code>. Cette commande a un unique argument&nbsp;: il
s'agit d'un nombre décimal qui représente le type d'image à
exécuter au prochain redémarrage de la machine (Allumage /
Extinction ou Reset).</p>
<p>La valeur <b>0</b> active le Debug Monitor, <b>1</b> active la
console ARC.</p>
<p>Ce chiffre correspond en fait à la N-ième image présente dans la
PROM. Afin d'indiquer que l'action à effectuer est le démarrage, il
faut ajouter 128 à ce chiffre pour obtenir la valeur à transmettre
à <code>bootopt</code>. Vous aurez donc la commande suivante
(sachant que MILO est la 3ème image en PROM)&nbsp;:</p>
<blockquote>
<pre><code>
MILO&gt; bootopt 131
</code></pre></blockquote>
<p><code>Note :</code> Soyez très vigilant avec cette commande, une
bonne règle est de ne jamais utiliser la valeur 0 (Debug Monitor),
mais utilisez plutôt le système des jumpers pour obtenir ce
résultat.</p>
<h2><a name="MILO-fmu-section"></a> <a name="s7">7. Exécution du
gestionnaire de mémoire flash</a></h2>
<p>La commande <code>run</code> est utilisée pour exécuter le
gestionnaire de mémoire flash. Avant de démarrer, vous devrez
disposer d'un périphérique accessible par MILO contenant le
programme updateflash. Celui-ci (comme vmlinux) peut être compressé
avec gzip. Vous devez exécuter ce programme à l'aide de la commande
suivante&nbsp;:</p>
<blockquote>
<pre><code>
MILO&gt; run fd0:fmu.gz
</code></pre></blockquote>
<p>Une fois chargé et initialisé, le gestionnaire de mémoire flash
vous donnera quelques informations concernant le périphérique
flash, et vous proposera une invite de commandes. À nouveau la
commande <code>help</code> est salvatrice.</p>
<blockquote>
<pre><code>
Linux MILO Flash Management Utility V1.0
Flash device is an Intel 28f008SA
16 segments, each of 0x10000 (65536) bytes
Scanning Flash blocks for usage
Block 12 contains the environment variables
FMU&gt;
</code></pre></blockquote>
<p><code>Notez</code> que sur les systèmes qui permettent la
sauvegarde de variables d'environnement et qui disposent de plus
d'un bloc de mémoire flash (par exemple l'AlphaPC64), le
gestionnaire de mémoire flash cherchera un bloc disponible pour la
sauvegarde des variables d'environnement de MILO. Si un tel bloc
existe, le gestionnaire de mémoire flash vous indiquera son
emplacement. Dans le cas contraire, vous devrez utiliser la
commande <code>environment</code> pour définir un bloc et
l'initialiser. Dans l'exemple ci-dessus le bloc numéro 12 de la
mémoire flash renferme les variables d'environnement de MILO.</p>
<h2><a name="ss7.1">7.1 La commande ''help''</a></h2>
<blockquote>
<pre><code>
FMU&gt; help
FMU command summary:

list            - List the contents of flash
program         - program an image into flash
quit            - Quit
environment     - Set which block should contain the environment variables
bootopt num     - Select firmware type to use on next power up
help            - Print this help text
FMU&gt;
</code></pre></blockquote>
<p><em>Note&nbsp;:</em> les commandes <code>environment</code> et
<code>bootopt</code> ne sont disponibles que sur les systèmes
EB66+, EB164, PC164 et AlphaPC64 (ainsi que leur clones).</p>
<h2><a name="ss7.2">7.2 La commande ''list''</a></h2>
<p>La commande ''list'' affiche les informations sur l'utilisation
de la mémoire flash. Pour les systèmes disposant de plus d'un bloc,
l'usage de chaque bloc est affiché.</p>
<blockquote>
<pre><code>
FMU&gt; list
Flash blocks:  0:DBM  1:DBM  2:DBM  3:WNT  4:WNT  5:WNT  6:WNT  7:WNT  8:MILO
        9:MILO 10:MILO 11:MILO 12:MILO 13:U 14:U 15:WNT
Listing flash Images
  Flash image starting at block 0:
    Firmware Id: 0 (Alpha Evaluation Board Debug Monitor)
    Image size is 191248 bytes (3 blocks)
    Executing at 0x300000
  Flash image starting at block 3:
    Firmware Id: 1 (Windows NT ARC)
    Image size is 277664 bytes (5 blocks)
    Executing at 0x300000
  Flash image starting at block 8:
    Firmware Id: 7 (MILO/Linux)
    Image size is 217896 bytes (4 blocks)
    Executing at 0x200000
FMU&gt;
</code></pre></blockquote>
<h2><a name="ss7.3">7.3 La commande ''program''</a></h2>
<p>Le gestionnaire de mémoire flash contient une copie compressée
d'une image flash de MILO. Cette commande vous permet de
sauvegarder cette image dans la PROM. La commande vous permet de
revenir en arrière, mais avant de l'utiliser vous devriez utiliser
la commande list pour définir où il faut mettre MILO. Si MILO est
déjà dans la mémoire flash, le gestionnaire de mémoire flash vous
demandera si vous souhaitez remplacer la version actuellement en
PROM.</p>
<blockquote>
<pre><code>
FMU&gt; program
Image is:
    Firmware Id: 7 (MILO/Linux)
    Image size is 217896 bytes (4 blocks)
    Executing at 0x200000
Found existing image at block 8
Overwrite existing image? (N/y)? y
Do you really want to do this (y/N)? y
Deleting blocks ready to program: 8 9 10 11
Programming image into flash
Scanning Flash blocks for usage
FMU&gt;
</code></pre></blockquote>
<p><em>!!! IMPORTANT !!!</em> Attendez que cela soit fini avant
d'éteindre votre ordinateur.</p>
<p><em>!!! IMPORTANT !!!</em> Je n'insisterai jamais assez sur le
fait que vous devez être extrêmement prudent lorsque vous effectuez
ce genre de manipulation. Une très bonne règle à respecter est de
ne jamais effacer le Debug Monitor.</p>
<h2><a name="ss7.4">7.4 La commande ''environment''</a></h2>
<p>Cette commande détermine quel est le bloc qui recevra les
variables d'environnement.</p>
<h2><a name="ss7.5">7.5 La commande ''bootopt''</a></h2>
<p>Il s'agit de la même commande que celle de MILO (Section
<a href="#MILO-bootopt-section">La commande ''bootopt''</a>).</p>
<h2><a name="ss7.6">7.6 La commande ''quit''</a></h2>
<p>Cette commande n'a que peu de sens, car la seule manière
possible pour se retrouver sous MILO est de redémarrer le
système.</p>
<h2><a name="s8">8. Restrictions</a></h2>
<p>Malheureusement la perfection n'étant pas de ce monde, il existe
des restrictions auxquelles il faut se plier.</p>
<p>MILO n'est pas conçu pour charger d'autres systèmes
d'exploitation que Linux, cependant il peut charger et exécuter des
images dont l'exécution est possible au même emplacement mémoire
que Linux (c'est à dire&nbsp;: 0xFFFFFC0000310000). C'est ce qui
permet au gestionnaire de mémoire flash de fonctionner.</p>
<p>Les sources du PALcode contenues dans
<code>miniboot/palcode/</code><em>toto</em> sont correctes, mais ce
PALcode est problématique lorsqu'il est compilé avec la dernière
version de <code>gas</code>. Problème qui n'existe pas avec
l'ancien exécutable gas fourni avec les cartes d'évaluation.
J'essaie actuellement de trouver quelqu'un capable de résoudre ce
problème. Pour l'instant, j'ai fourni un PALcode précompilé pour
les cartes supportant MILO et David Mosberger-Tang a une version de
gas corrigée sur son site ftp.</p>
<h2><a name="s9">9. Dépannage</a></h2>
<p>Voici un ensemble de problèmes courants que certaines personnes
ont rencontrés&nbsp;; vous trouverez, ensuite, leur solution.</p>
<p><b>Lecture de disques DOS depuis le Debug Monitor.</b></p>
<p>Quelques versions du Debug Monitor (pré-version 2.0) ont un
problème avec le gestionnaire DOS généré à partir de Linux. Ce
problème se manifeste de la manière suivante&nbsp;: le Debug
Monitor semble lire correctement les premiers secteurs de la
disquette, puis affiche, en boucle, le message "Bad Sectors". Cela
vient apparemment du fait qu'il existe une différence entre le
système de fichiers DOS tel que l'attend le Debug Monitor et
l'implémentation de DOSFS sous Linux. Afin de résoudre ce problème,
utilisez un PC sous DOS pour confectionner la disquette (et non pas
Linux). Par exemple, si le chargement du fichier
<code>MILO.cab</code> ne fonctionne pas, effectuez les opérations
suivantes sur une machine DOS&nbsp;:</p>
<blockquote>
<pre><code>
copy a:MILO.cab c:
copy c:MILO.cab a:
del c:MILO.cab
</code></pre></blockquote>
<p>Et réessayez de démarrer depuis cette disquette. Cela devrait
résoudre le problème.</p>
<p><b>Milo affiche une série de</b> <code>O&gt;</code> <b>et
n'accepte pas de commandes.</b> Ceci arrive quand MILO a été
compilé pour utiliser COM1 comme console secondaire. Dans ce cas,
MILO reproduit l'affichage sur COM1 et accepte des saisies depuis
ce dernier. C'est excellent pour déboguer, mais pas tant que ça si
vous avez un périphérique autre qu'un terminal série connecté. Si
cela arrive, déconnectez le périphérique attaché au port COM1 ou
mettez-le hors tension jusqu'à ce que le noyau Linux ait démarré. À
ce stade tout devrait fonctionner correctement.</p>
<p><b>MILO se plaint de ce que l'image du noyau possède un mauvais
'magic number'.</b></p>
<p>Les anciennes versions de MILO ne sont pas compatibles avec les
fichiers objets de type ELF. Cela pourrait être la source de vos
ennuis. Si c'était le cas, passez à la version la plus récente que
vous pourrez trouver. Toutes les versions à partir de la 2.0.20
sont compatibles avec les objets ELF. D'autre part il se pourrait
que l'image de MILO soit corrompue, ou qu'il faille ajouter
l'extension '.gz' au nom du fichier noyau.</p>
<p><b>MILO affiche "...turning on virtual addressing and jumping to
the Linux Kernel" puis rien ne se passe.</b></p>
<p>Une des causes possibles est que l'image du noyau est configurée
de manière incorrecte ou qu'elle a été produite pour un autre type
de machine Alpha. Une autre possibilité est que la carte vidéo est
une TGA (ZLXp) et que le noyau est configuré pour utiliser le VGA
(ou l'inverse). Il est utile de compiler le noyau pour qu'il
affiche sa console sur COM1 (echo console) et donc de pouvoir, dans
ce cas, connecter un terminal série ou alors d'essayer le noyau qui
était livré avec votre distribution Linux.</p>
<p><b>MILO ne reconnaît pas les périphériques SCSI.</b></p>
<p>L'image standard de MILO comporte autant de pilotes de
périphériques qu'il en existe de stables pour Alpha (au moment de
la rédaction de ce manuel il contient les pilotes pour&nbsp;:
NCR810, QLOGIC ISP, Buslogic et Adaptec 294x/394x). Si votre carte
n'est pas supportée c'est peut-être que le pilote n'est pas encore
suffisamment stable sur plate-forme Alpha. Vous pouvez obtenir la
liste des périphériques SCSI supportés par une image MILO avec la
commande <code>show</code>.</p>
<h2><a name="s10">10. Remerciements</a></h2>
<p>Je souhaiterais remercier&nbsp;:</p>
<ul>
<li>Eric Rasmussen et Eilleen Samberg, les auteurs du
PALcode&nbsp;;</li>
<li>Jim Paradis pour le pilote clavier, l'interface originelle de
MILO et son travail sur AlphaBIOS&nbsp;;</li>
<li>Jay Estabrook pour son aide et ses débogages&nbsp;;</li>
<li>David Mosberger-Tang pour la version freeware de l'émulateur
BIOS et son appui et ses encouragements&nbsp;;</li>
<li>Le dernier, et pas des moindres, Linus Torvalds pour le code du
timer et celui du noyau.</li>
</ul>
<p>Beaucoup de choses restent à faire sous MILO&nbsp;; s'il y a
quelque chose que vous souhaitez faire ou ajouter vous-même,
faites-le moi savoir&nbsp;: <a href=
"mailto:david.rusling@reo.mts.dec.com">david.rusling@reo.mts.dec.com</a>,
afin de ne pas développer deux fois la même chose.</p>
<p>Pour finir, un grand merci à Digital pour le développement d'un
si merveilleux processeur (et pour le salaire qu'ils me versent
afin de le faire).</p>
</body>
</html>