aboutsummaryrefslogtreecommitdiffstats
path: root/french/ports/hurd/hurd-install.wml
blob: cf5d4740baeea4875ae327ab86e0bf29397ba83b (plain) (blame)
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
#use wml::debian::template title="Debian GNU/Hurd – Configuration" NOHEADER="yes"
#include "$(ENGLISHDIR)/ports/hurd/menu.inc"
#use wml::debian::translation-check translation="880b5a08b2c42a084e5fac050dec2c85f4a41849" maintainer="Jean-Paul Guillonneau"

# Translators:
# Jérome Abela, 1999.
# Thomas Marteau, 2002.
# Mohammed Adnène Trojette, 2005.
# Nicolas Bertolissio, 2007, 2008.
# David Prévot, 2010-2014.
# Jean-Paul Guillonneau, 2015-2020

<h1>Configuration de Debian&nbsp;GNU/Hurd</h1>

<p>
Ce document vise à fournir un jeu d'instructions facile et relativement peu
fastidieux sur la façon de configurer Debian&nbsp;GNU/Hurd
avec un minimum d'efforts.
</p>

<p>
Il est basé sur le <q>Guide d'installation du Hurd</q> de Neal H. Walfield.
Merci beaucoup à Neal pour sa contribution.
</p>


<h2>Vue d'ensemble</h2>

<p>
GNU est de nature similaire à n'importe quel système de type Unix&nbsp;: après
s'être identifié, un interpréteur de commandes et le système de fichiers
virtuel (VFS) Unix familier sont présentés à l'utilisateur. Malgré les
tentatives de GNU d'être conforme à POSIX, ce <q>n'est pas Unix</q> (<i>GNU is
Not Unix</i>). GNU/Hurd est basé sur plusieurs concepts Unix et les étend soit
en ajoutant de nouvelles fonctionnalités, soit en réparant ce qui a été perçu
comme des failles dans la conception originelle. La différence la plus
remarquable est l'existence des traducteurs, programmes de l'espace utilisateur
qui interagissent avec le VFS. Ces systèmes de fichiers n'ont besoin d'accéder
qu'au périphérique de stockage et au <code>point de montage</code>. Une autre
différence réside dans le fait que les processus, plutôt que d'avoir l'identité
d'un utilisateur unique donné au moment de la création, peuvent avoir des
identités disjointes du processus, c'est-à-dire qu'ils peuvent être ajoutés
avec la permission appropriée par une autorité, ou être détruits.
</p>

<p>
Être familiarisé avec l'environnement Unix (et en particulier l'espace
utilisateur GNU, que l'on trouve dans des variantes populaires telles que
GNU/Linux), est un impératif pour se sentir à l'aise avec GNU. Avoir de
l'expérience avec les outils Debian sera un atout inestimable pour la
configuration et la maintenance d'une machine sous GNU/Hurd.
</p>

<p>
Ce guide s'efforce de rendre l'installation de GNU/Hurd aussi facile que
possible. S'il s'y trouve des erreurs, ce sont probablement des erreurs de
l'auteur. Veuillez les lui rapporter, ainsi que d'autres suggestions ou
critiques&nbsp;; toutes seront acceptées avec plaisir.
</p>

#<h2>2. État réel ou trouver un foyer</h2>
#
#<p>
#Si vous n'avez pas de partition disponible ni de disque dur supplémentaire,
#c'est peut-être l'étape la plus longue. Dans ce cas, vous devrez repartitionner
#le disque dur. Une solution est d'utiliser l'éditeur de partition de GNU, <a
#href="https://packages.debian.org/parted">Parted</a>. Il permet non seulement
#l'édition basique de partitions, mais aussi le redimensionnement de partitions
#et leur déplacement. Son manuel est assez complet et inclut plusieurs
#didacticiels.
#
#  Remarquez que le type de partition <code>63 GNU HURD or
#  SysV</code> existe également, il ne devrait pas être utilisé
#  sinon le CD d'installation ne trouvera pas la partition.
#
#  Utilisez simplement <code>83 Linux</code>.
#</p>
#
#<p>
#Le Hurd prend en charge plusieurs extensions au format du système de fichiers
#ext2fs. Les principales d'entre elles sont les traducteurs passifs et une
#quatrième série de bits de permissions pour les utilisateurs inconnus
#(utilisateurs sans identité et non l'utilisateur <q>autre</q> des permissions
#Unix classiques). Pour utiliser ces extensions, le propriétaire de la
#partition doit être <code>hurd</code>. <code>mke2fs</code>, sauf
#mention contraire spécifiée en ligne de commande, le noyau lancé sera le
#propriétaire de la partition. Comme le Hurd respecte ce paramètre, il faut
#faire attention à le configurer de manière appropriée, sinon le Hurd échouera
#de manière subtile. Soyez conscient que même si un système de fichiers
#appartient à un noyau donné, les autres peuvent quand même l'utiliser&nbsp;;
#ils ne peuvent seulement pas utiliser certaines extensions.
#</p>
#
#<p>
#Pour créer un système de fichiers, utilisez <code>mke2fs</code> et passez-lui
#les options <var>-b 4096 -I 128 -o hurd</var> afin de désigner le Hurd comme
#propriétaire du nouveau système de fichiers. Par exemple, si la partition est
#<tt>/dev/hda1</tt>&nbsp;:
#</p>
#
#<table><tr><td>&nbsp;</td><td class=example><pre>
# \# mke2fs -b 4096 -I 128 -o hurd /dev/hda1
#</pre></td></tr></table>
#
#
#<h2>3. Le chargeur d'amorçage</h2>
#
#<p>
#Le chargeur d'amorçage du système GNU est Grub (le <i>GRand Unified Boot
#loader</i>), et sa tâche principale est de charger le cœur du système GNU (Mach
#et le Hurd). Tout chargeur d'amorçage qui gère le standard d'amorçage multiple
#pourra cependant charger Mach et le Hurd. En ce moment (à notre connaissance),
#GNU&nbsp;Grub est le seul chargeur d'amorçage qui gère ce standard.
#</p>
#
#<p>
#Un mot sur Grub. Contrairement aux chargeurs d'amorçage sur x86, comme LILO,
#Grub est très puissant. Il a une interface en ligne de commande, bootp, la
#gestion de terminal factice et pléthore d'autres fonctionnalités. De plus, il
#peut amorcer pratiquement n'importe quel noyau. Si vous avez déjà amorcé une
#machine alpha ou sparc, vous comprendrez ce que Grub peut faire. Par
#conséquent, n'ayez pas peur&nbsp;: Grub est mieux. Vous l'aimerez. Vous ne
#changerez pas d'avis.
#</p>
#
#<p>
#Il est probablement mieux d'installer <a
#href="https://packages.debian.org/grub2">le Grub</a> avant le Hurd, mais vous
#pourrez toujours l'installer sur votre disque dur plus tard.
#</p>
#
#
#<h2>4. Installation croisée</h2>
#
#<p>
#
#L'étape suivante est d'obtenir un système de base. Il existe plusieurs
#possibilités&nbsp;: si vous utilisez un système Debian, vous pouvez utiliser le
#paquet crosshurd. Sinon, vous pouvez obtenir une archive de système de base à
#jour depuis l'un des miroirs listés à
#<url "https://wiki.debian.org/DebianPorts/Mirrors" />.
#</p>
#
#<p>
#L'archive est configurée pour tout extraire vers le répertoire courant. Une
#fois le système de fichiers monté, l'archive peut être extraite. En supposant
#que le système de fichiers est sur <tt>/dev/hda2</tt>, que le point de montage
#est <tt>/gnu</tt> et que l'archive est dans le répertoire personnel de
#l'utilisateur courant, il est nécessaire de faire comme suit&nbsp;:
#</p>
#
#<table><tr><td>&nbsp;</td><td class=example><pre>
# \# mount -t ext2 /dev/hda2 /gnu
# \# cd /gnu
# \# tar --same-owner -xvjpf ~/gnu.tar.bz2
#</pre></td></tr></table>
#
#
#<h2>5. Amorçage du GNU/Hurd</h2>
#
#<p>
#Tout est maintenant prêt pour amorcer GNU/Hurd pour la première fois.
#
#  Remarquez que suivant la version de GRUB, de petits détails vont changer.
#
#  Veuillez vous assurez que vous utilisez soit GRUB 1
#  (alias « legacy », alias 0.95 et jusqu'à 0.97),
#  soit GRUB 2 (alias 1.95 et ultérieur).
#
#  Les exemples suivants sont fournis pour les deux
#  versions, assurez-vous de prendre les bons.
#</p>
#
#<p>
#  Veuillez également remarquer que certains problèmes ont été signalés
#  lors de démarrage avec seulement 128 Mo de mémoire, parce que
#  l'espace d'échange n'est pas encore configuré à ce niveau.
#
#  Assurez-vous de fournir au moins 256 Mo de mémoire.
#</p>
#
#<p>
#  Si GRUB est déjà installé sur votre système, redémarrez-le simplement.
#
#  Sinon, vous devez utiliser un disque d'amorçage de GRUB.
#
#  Les paquets Debian grub-disk (GRUB 1) ou grub-rescue-pc
#  (GRUB 2) fournissent des images de CD et de disquette.
#
#   Après
#avoir vérifié que le disque d'amorçage de Grub est dans le lecteur, réamorcez.
#Si tout se passe bien, soit un menu Grub, soit une ligne de commande sera
#affiché.
#
#  Si le menu a une entrée <tt><q>GNU/Hurd</q></tt>
#  vous pourrez sans doute la réutiliser pour vous
#  éviter un lourd fardeau de frappe au clavier.
#
#  Pour l'instant, si c'est un menu qui apparaît,
#  veuillez appuyer sur <kbd>c</kbd> pour
#aller sur la ligne de commande.
#</p>
#
#<p>
#D'abord, GNU&nbsp;Mach devra être chargé. Il faudra connaître le système de
#fichiers et le chemin vers GNU&nbsp;Mach. Grub utilise une nomenclature de
#partitions un peu différente de Linux comme du Hurd&nbsp;: IDE et SCSI
#sont tous les deux nommés <tt>(hdN,M)</tt>. <code>N</code> est le numéro de
#lecteur (commence à zéro) tel qu'énuméré par le BIOS. Cela étant fait,
#Grub ne fait aucune distinction entre les disques IDE et SCSI. <code>M</code>
#identifie la partition sur le lecteur.
#
#  Il est indexé à partir de zéro dans GRUB 1 mais à partir de un dans GRUB 2.
#
#  Si
#cela vous semble confus, relaxez-vous&nbsp;: Grub va vous aider.
#</p>
#
#<p>
#Pour déterminer le système de fichiers sur lequel un fichier en particulier se
#trouve, Grub fournit la commande <code>find</code>. Quand cette commande est
#lancée avec un nom de fichier donné, Grub recherche sur chaque système de
#fichiers le fichier spécifié et affiche l'endroit où il a été trouvé. Par
#exemple, pour chercher le noyau, <tt>/boot/gnumach.gz</tt>&nbsp;:
#</p>
#
#<table>
#<tr><td>&nbsp;</td><td class=example><pre>
#   grub1&#62; find /boot/gnumach.gz
#   (hd0,0)
#</pre></td></tr>
#<tr><td>&nbsp;</td><td class=example><pre>
#   grub2&#62; search -f /boot/gnumach.gz
#   (hd0,1)
#</pre></td></tr>
#</table>
#
#<p>
#  GRUB 1 indique ici que <tt>/boot/gnumach.gz</tt> est sur <tt>(hd0,0)</tt>
#  et GRUB 2 sur <tt><q>(hd0,1)</q></tt> (rappelez-vous la différence de
#  numérotation des partitions entre GRUB 1 et GRUB 2).
#
#  Pour vous éviter de nombreuses frappes au clavier,
#  configurez la racine de GRUB à cette valeur :
#</p>
#
#<table>
#<tr><td>&nbsp;</td><td class=example><pre>
#   grub1&#62; root (hd0,0)
#</pre></td></tr>
#<tr><td>&nbsp;</td><td class=example><pre>
#   grub2&#62; set root=(hd0,1)
#</pre></td></tr>
#</table>
#
#<p>
#Avant d'amorcer le noyau, une option au moins, la partition racine, doit être
#indiquée sur la ligne de commande. Elle sera utilisée par le Hurd lui-même
#(c'est-à-dire pas par Grub). Elle doit donc être formulée en termes que le Hurd
#pourra comprendre.
#</p>
#
#<p>
#GNU&nbsp;Mach énumère les disques à partir de zéro. Les lecteurs IDE sont
#préfixés par <code>hd</code>, tandis que les disques SCSI sont préfixés par
#<code>sd</code>. Comme sur Linux, les lecteurs sont numérotés selon leur
#position sur le contrôleur. Par exemple, le maître primaire est
#<code>hd0</code> et l'esclave secondaire est <code>hd3</code>. Les partitions
#utilisent la convention de nommage de tranches de BSD et ajoutent un
#<code>sM</code> au nom de lecteur afin d'indiquer une partition. Veuillez noter
#que <code>M</code> est indexé à partir de un, et non de zéro. Le numéro de
#tranche est facile à calculer&nbsp;:
#  si vous utilisez GRUB 2, reprenez simplement le même index,
#  si vous utilisez GRUB 1, il suffit d'incrémenter celui
#  qu'utilise GRUB 1 d'une unité.
#</p>
#
#<p>
#Comme le Hurd n'a pas encore été configuré, il doit être lancé en mode
#<q>utilisateur unique</q>. Ajouter <var>-s</var> à la ligne de commande du
#noyau est tout ce qu'il y a à faire.
#</p>
#
#<p>
#  Pour résumer, en supposant que le premier lecteur (à savoir <tt>(hd0)</tt>)
#  soit le maître sur le contrôleur maître, nous aurions :
#</p>
#
#<table>
#<tr><td>&nbsp;</td><td class=example><pre>
#   grub1&#62; kernel /boot/gnumach.gz root=device:hd0s1 -s
#   [Multiboot-elf, ...]
#</pre></td></tr>
#<tr><td>&nbsp;</td><td class=example><pre>
#   grub2&#62; multiboot /boot/gnumach.gz root=device:hd0s1 -s
#</pre></td></tr>
#</table>
#
#<p>
#Ensuite, le serveur du système de fichiers racine et le serveur
#<code>exec</code> doivent être chargés. Cela est fait par le biais des
#capacités d'amorçage de module de Grub. Les ${var} sont remplies par
#GNU&nbsp;Mach. Les paramètres utilisés par le Hurd indiquent le type
#d'information fournie. Comme la ligne de commande ext2fs est très longue, elle
#peut être rallongée par des sauts de ligne protégés à la manière d'une ligne de
#commande Unix. Veillez à ce qu'il n'y ait pas d'espace après l'antislash en fin
#de ligne. Veillez aussi à distinguer <kbd>{</kbd> et <kbd>}</kbd> de
#<kbd>(</kbd> et <kbd>)</kbd>.
#
#  Souvenez-vous de la différence subtile entre GRUB 1 et GRUB 2 :
#  GRUB 2 a besoin que le nom de fichier soit répété
#  et des guillemets doivent être utilisées.
#
#  Remarquez qu'à cette étape, l'option <var>--readonly</var> de
#  <code>ext2fs.static</code> ne doit pas être passée.
#</p>
#
#<table>
#<tr><td>&nbsp;</td><td class=example><pre>
#  grub1&#62; module /hurd/ext2fs.static \
#   --multiboot-command-line=${kernel-command-line} \
#   --host-priv-port=${host-port} \
#   --device-master-port=${device-port} \
#   --exec-server-task=${exec-task} -T typed ${root} \
#   $(task-create) $(task-resume)
#    [Multiboot-module  0x1c4000, 0x2cfe6a bytes]
#  grub1&#62; module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
#    [Multiboot-module  0x494000, 0x27afe bytes]
#</pre></td></tr>
#<tr><td>&nbsp;</td><td class=example><pre>
#  grub2&#62; module /hurd/ext2fs.static ext2fs \
#   --multiboot-command-line='${kernel-command-line}' \
#   --host-priv-port='${host-port}' \
#   --device-master-port='${device-port}' \
#   --exec-server-task='${exec-task}' -T typed '${root}' \
#   '$(task-create)' '$(task-resume)'
#  grub2&#62; module /lib/ld.so.1 exec /hurd/exec '$(exec-task=task-create)'
#</pre></td></tr>
#</table>
#
#<p>
#  Sinon, ces lignes peuvent être insérées dans un fichier de configuration
#  <tt><q>menu.lst</q></tt> (GRUB 1) ou <tt><q>grub.cfg</q></tt> (GRUB 2)
#  dans la partition, et le charger en utilisant
#  <tt><q>configfile /chemin/vers/menu.lst</q></tt> (GRUB 1) ou
#  <tt><q>configfile /chemin/vers/grub.cfg</q></tt> (GRUB 2)
#  depuis l'invite de commande de GRUB.
#
#  Vous pouvez aussi tout à fait installer GRUB dans
#  une table de partitions et le faire pointer dessus.
#</p>
#
#<p>
#GNU/Hurd peut maintenant être amorcé&nbsp;:
#</p>
#
#<table><tr><td>&nbsp;</td><td class=example><pre>
#grub&#62; boot
#</pre></td></tr></table>
#
#<p>
#Si GNU/Hurd ne parvient pas à s'amorcer, cela peut être dû à des interruptions
#partagées&nbsp;: GNU&nbsp;Mach ne se sert pas très bien de celles-ci. Vous
#pouvez vérifier votre situation en regardant, par exemple, le fichier
#<tt>/proc/interrupts</tt> sous GNU/Linux. Aussi, comme GNU&nbsp;Mach ne gère
#pas les modules chargeables du noyau, de nombreux pilotes sont compilés dans le
#noyau par défaut. S'il y a d'anciens périphériques, cela peut être un
#problème&nbsp;: un périphérique pourra répondre incorrectement à une requête
#faite à un périphérique qui n'a rien à voir et ainsi entraîner un arrêt
#inopiné. Construire un nouveau noyau seulement avec les pilotes des
#périphériques requis résoudra normalement ce problème. GNU&nbsp;Mach peut être
#facilement compilé de manière croisée. Si vous utilisez Debian, installez le
#paquet <tt>mig</tt> et votre <tt>gcc</tt> standard devrait fonctionner.
#</p>
#
#<p>
#Si cela ne vous aide pas, veuillez demander sur la liste de diffusion
#appropriée.
#</p>
#
#
#<h2>6. Installation native</h2>
#
#<p>
#Une fois qu'une invite d'interpréteur de commandes vous est affichée, et quand
#le Hurd est en mode utilisateur unique, il est nécessaire de déterminer le type
#de terminal&nbsp;:
#</p>
#
#<table><tr><td>&nbsp;</td><td class=example><pre>
# \# export TERM=mach
#</pre></td></tr></table>
#
#<p>
#Attention&nbsp;: <kbd>CONTROL-C</kbd> et compagnie ne marcheront pas en mode
#utilisateur unique.
#</p>
#
#<p>
#Nous pouvons maintenant lancer le script <code>native-install</code>. Cela
#configurera les paquets et installera les traducteurs importants&nbsp;:
#</p>
#
#<table><tr><td>&nbsp;</td><td class=example><pre>
# \# ./native-install
#</pre></td></tr></table>
#
#<p>
#  Avant la fin de l'exécution du script, celui-ci indiquera que vous
#  pouvez maintenant redémarrer et entrer en mode multiutilisateur.
#
#  Faites-le, et bienvenue sous le Hurd !
#</p>


<h2> Installation </h2>

<p>
Vous pouvez simplement utiliser l'installateur Debian, en
utilisant les <a href="hurd-cd">images de CD préparées</a>.

Les étapes suivantes seront ensuite
nécessaires pour une configuration correcte.
</p>

<p>
Vous pouvez vous procurer une image préinstallée et l’exécuter dans qemu :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
$ wget https://cdimage.debian.org/cdimage/ports/current-hurd-i386/debian-hurd.img.tar.gz
$ tar xzf debian-hurd.img.tar.gz
$ kvm -m 1G -drive file=$(echo debian-hurd*.img),cache=writeback
</pre></td></tr></table>

<p>
Pour permettre d’accéder à la machine à travers ssh, vous pouvez ajouter
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
-net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22
</pre></td></tr></table>

<p>
et ssh vers le port 2222 local TCP.
</p>

<p>
Vous pouvez aussi la convertir dans le format VDI pour virtualbox :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
$ VBoxManage convertfromraw debian-hurd-*.img debian-hurd.vdi --format vdi
</pre></td></tr></table>

<h2>Configuration</h2>

<h3>Le réseau</h3>

<p>
La méthode Debian est gérée depuis sysvinit 2.88dsf-48 et
hurd 1:0.5.git20140320-1 : <tt>/etc/network/interfaces</tt> est utilisé
comme sur Linux. La seule différence est que les cartes réseaux apparaissent
sous <tt>/dev</tt>, et par conséquent doivent être indiquées comme
<tt>/dev/eth0</tt>, etc.
</p>

# <p>
# D'abord, assurez-vous que la carte réseau est reconnue par GNU Mach :
# </p>
#
# <table><tr><td>&nbsp;</td><td class=example><pre>
#  \# devprobe eth0
#  eth0
# </pre></td></tr></table>
#
# <p>
# Si <code>devprobe eth0</code> ne renvoie pas <code>eth0</code>, le noyau
# n'a pas détecté la carte réseau et vous devez essayer une autre carte.
#
# Par exemple, la carte e1000 de QEMU n'est pas prise en charge, la rtl8139
# devrait fonctionner : <code>-net nic,model=rtl8139 -net user</code>.
# </p>
#
# <p>
# Depuis la version 20120520-1, le paquet hurd contient les
# pilotes DDE qui peuvent être utilisés pour les périphériques
# plus récents (les pilotes viennent de Linux 2.6.32).
#
# Les traducteurs pour cela sont déjà configurés, et il ne reste plus qu'à
# remplacer <code>eth0</code> (le nom du pilote Mach) par <code>/dev/eth0</code>
# (le chemin vers le pilote DDE) dans le reste de ce document.
# </p>
#
# <p>
# Le pilote DDE peut même être essayé si GNU Mach a un pilote en passant
# <code>nonetdev</code> à la ligne de commandes de gnumach ce qui désactivera
# le pilote GNU Mach, permettant au pilote DDE de commencer à fonctionner.
# </p>

<p>
Si le réseau n'a pas l'air de fonctionner, utilisez ceci
pour obtenir des renseignements de débogage du pilote DDE :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
 \# settrans -fga /dev/netdde /hurd/netdde
</pre></td></tr></table>

<p>
puis tuez tous les processus devnode et pfinet pour leur
permettre de redémarrer avec le netdde plus récent.

Si ça ne fonctionne toujours pas, veuillez envoyer au moyen d'un rapport de bogue la sortie complète du settrans netdde
précédent, ainsi que la sortie de <code>lspci</code> et <code>lspci -n</code>.
</p>

<p>
Pour configurer le réseau sans passer par <tt>/etc/network/interfaces</tt>,
le traducteur pfinet doit être configuré.

Cela peut se faire en utilisant <code>dhclient</code>
du paquet <code>isc-dhcp-client</code>.

Vous pouvez aussi exécuter la commande <code>inetutils-ifconfig</code>
du paquet <code>inetutils-tools</code>, et <code>ping</code> est
disponible dans le paquet <code>inetutils-ping</code>.

Enfin, vous pouvez aussi exécuter la commande <code>settrans</code>
pour attacher (et enregistrer pour de bon) un traducteur à un nœud
de système de fichiers donné. Quand les programmes accéderont au nœud, par
exemple en envoyant un RPC, le système d'exploitation lancera de manière
transparente le serveur afin de prendre en charge la requête.
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
 \# settrans -fgap /servers/socket/2 /hurd/pfinet -i /dev/eth0 \
   -a a.b.c.d -g e.f.g.h -m i.j.k.l
</pre></td></tr></table>

<p>
Ici, <code>settrans</code> reçoit plusieurs options. Les deux premières,
<var>fg</var>, forcent tous les traducteurs existants à disparaître. Les deux
suivantes, <var>ap</var>, créent les traducteurs actifs et passifs. En
rendant un traducteur actif, nous verrons immédiatement tous les messages
d'erreur sur <tt>stderr</tt>. La dernière option sauvegarde le traducteur et
ses paramètres dans le nœud de façon à pouvoir le relancer plus tard de manière
transparente (c'est-à-dire en ayant des paramètres persistants même après un
réamorçage). Les options sont suivies du nœud auquel le traducteur sera
attaché, puis du programme (c'est-à-dire le traducteur) à lancer et de tous les
paramètres à lui passer. L'option <var>-i</var> est l'interface sur laquelle
<code>pfinet</code> écoutera, <var>-a</var> est l'adresse IP, <var>-g</var>
la passerelle et <var>-m</var> le masque de sous-réseau.
</p>

<p>
Veillez à ajouter des serveurs de noms de domaine à votre fichier
<tt>/etc/resolv.conf</tt>&nbsp;:
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
  nameserver 192.168.1.1
</pre></td></tr></table>

<p>
Pour tester la configuration, veuillez taper <code>ping -c2 gateway</code>. Le
<var>-c</var> est important pour limiter le nombre de pings&nbsp;;
rappelez-vous, <kbd>CONTROL-C</kbd> ne fonctionne pas en mode utilisateur
unique.
</p>

<p>
Il est possible d'obtenir de l'aide sur <code>settrans</code> en lui passant l'option
<var>--help</var>. Il en va de même concernant un traducteur donné en
l'invoquant depuis la ligne de commande avec ce même paramètre, par
exemple&nbsp;:
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
 \# /hurd/pfinet --help
</pre></td></tr></table>

<p>
Comme la sortie peut être importante, pensez à la traiter à travers un visionneur
de texte tel que <code>less</code>.
</p>


<p>
Pour configurer aussi la prise en charge d'IPv6, la même configuration
doit être enregistrée à la fois sur <tt>/servers/socket/2</tt> et
<tt>/servers/socket/26</tt>, se référençant l'un l'autre pour qu'il
n'y en ait qu'un seul de vraiment démarré, lié aux deux nœuds :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
 \# settrans -fgap /servers/socket/2 /hurd/pfinet -6 /servers/socket/26 -i /dev/eth0 \
   -a a.b.c.d -g e.f.g.h -m i.j.k.l
 \# settrans -p /servers/socket/26 /hurd/pfinet -4 /servers/socket/2 -i /dev/eth0 \
   -a a.b.c.d -g e.f.g.h -m i.j.k.l
</pre></td></tr></table>

<p>
Le serveur pfinet active l'autoconfiguration IPv6 par défaut.

L'état actuel peut être obtenu avec <tt>fsysopts /servers/socket/26</tt>.

Vous pouvez aussi configurer les adresses vous-même, en utilisant
par exemple <tt>-A 2001:123:123::42/64 -G 2001:123:123::1</tt>.
</p>

<p>
La configuration de pfinet peut aussi être modifiée à la volée (sans
enregistrement sur le disque) en utilisant <tt>fsysopts</tt> :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
 \# fsysopts /servers/socket/2
 /hurd/pfinet --interface=/dev/eth0 --address=10.3.0.1 --netmask=255.255.0.0 --gateway=10.3.0.128
 \# fsysopts /server/socket/2 -a 10.3.0.2 -m 255.255.0.0 -g 10.3.0.128
</pre></td></tr></table>

<p>
Un pare-feu peut être configuré en interposant le traducteur
<tt>eth-filter</tt>, par exemple, ceci empêche l’accès au port 22 :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
 \# settrans -c /dev/eth0f /hurd/eth-filter -i /dev/eth0 -r "not port 22"
</pre></td></tr></table>

<p>
L’interface filtrée, <tt>/dev/eth0f</tt>, peut alors être donnée
à <tt>pfinet</tt> ou <tt>dhclient</tt> au lieu de /dev/eth0.
</p>


<h3>Disposition du clavier</h3>

<p>
La disposition du clavier peut être configurée à l'aide
du paquet standard <code>keyboard-configuration</code>.

Assurez-vous qu'il est installé, puis exécutez
<code>dpkg-reconfigure keyboard-configuration</code>.

Seule la disposition est prise en charge, pas (encore) les variantes.

L'effet ne sera pas immédiat, car la console doit
être redémarrée pour prendre en compte ce paramètre.

Un redémarrage devrait suffire par exemple.
</p>

<h3>Autres systèmes de fichiers</h3>

<p>
Ensuite, veuillez éditer <tt>/etc/fstab</tt> en y ajoutant tous les systèmes de
fichiers supplémentaires ainsi que l'espace d'échange. Il est <em>très
important</em> que l'espace d'échange soit utilisé&nbsp;; le Hurd sera plus
stable. Notez que le Hurd peut partager une partition d'échange de
manière transparente avec Linux, mais pourra sans problème paginer sur quelque
périphérique que ce soit, y compris une partition brute comme votre partition
home. Par défaut, <code>nano</code> et <code>vi</code>
sont les seuls éditeurs de texte installés par
la distribution de base.
</p>

<p>
Voici un exemple de fichier <tt>/etc/fstab</tt>&nbsp;:
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
\# &#60;file system&#62; &#60;mount point&#62;   &#60;type&#62;  &#60;options&#62;  &#60;dump&#62;  &#60;pass&#62;
/dev/hd0s1      /               ext2    rw         0       1
/dev/hd0s2      /home           ext2    rw         0       2
/dev/hd0s3      none            swap    sw         0       0
</pre></td></tr></table>

<p>
Si une entrée de périphérique <code>/dev</code> manque,
n'oubliez pas de la créer avec la commande
<code>MAKEDEV</code>&nbsp;:
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
 \# cd /dev
 \# ./MAKEDEV hd0s1 hd0s2 hd0s3
</pre></td></tr></table>

<p>
Vous pouvez aussi monter un système de fichiers
vous-même avec <code>settrans</code> :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
 \# settrans /mnt /hurd/ext2fs /dev/hd0s5
</pre></td></tr></table>

<p>
L'idée derrière cette commande est que vous configurez le traducteur
<code>/hurd/ext2fs /dev/hd0s5</code> sur le nœud <code>/mnt</code>.

<code>/hurd/ext2fs</code> sera exécuté et commencera à lire et écrire sur
<code>/dev/hd0s5</code> et montrer son contenu dans <code>/mnt</code>.

De plus amples renseignements sont disponibles dans la <a
href="hurd-doc-translator">documentation sur les traducteurs</a>.
</p>

<p>
Pour monter un système de fichiers NFS, le traducteur <code>/hurd/nfs</code> est
utilisé. Quand il n'est pas lancé par le superutilisateur, le traducteur se
connecte au serveur en utilisant un numéro de port supérieur à 1023. Par défaut,
GNU/Linux rejettera cela. Pour dire à GNU/Linux d'accepter les connexions
provenant d'un port non réservé, veuillez ajouter l'option
<var>insecure</var> à la ligne d'export. Voici un exemple de fichier
<tt>/etc/exports</tt> supposant que l'adresse IP du client est
<tt>192.168.1.2</tt>&nbsp;:
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
  /home  192.168.1.2(rw,insecure)
</pre></td></tr></table>

<p>
Pour monter cela sur une machine GNU et en supposant que l'adresse IP du
serveur NFS est <tt>192.168.1.1</tt>&nbsp;:
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
\# settrans -cga /mount/point /hurd/nfs 192.168.1.1:/home
</pre></td></tr></table>


<h2>Amusez-vous avec Debian GNU/Hurd</h2>

<p>
Et maintenant, quelles sont les choses sympathiques à faire avec le Hurd ?
</p>

<h3>Montage d'images de disque</h3>

<p>
Accéder au contenu d'une image de CD est un peu fastidieux avec
les systèmes de la norme Unix quand on n'est pas superutilisateur.

Sur GNU/Hurd, il suffit de :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
settrans ~/mnt /hurd/iso9660fs CD_image.iso
</pre></td></tr></table>

<p>
Et c'est tout à fait sûr : le traducteur <code>iso9660fs</code> est
exécuté sous l’identité de l’utilisateur et non du superutilisateur.

Vous pouvez même mettre en place votre propre traducteur
pour n'importe quel type de système de fichiers.

Oui, ça ressemble à FUSE, mais sans le kludge.
</p>

<h3>FTP transparent</h3>

<p>
La commande suivante configure un répertoire <code>ftp</code> transparent :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
settrans -c /ftp: /hurd/hostmux /hurd/ftpfs /
</pre></td></tr></table>

<p>
Maintenant, <code>cd</code> vers, par exemple,
<code>/ftp://ftp.gnu.org/</code>, et exécutez-y <code>ls</code>.

Oui, vous pouvez, depuis chez vous, exécuter simplement
<code>tar xf ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.6.0/gcc-4.6.0.tar.bz2</code> !
</p>

<h3>Sous-Hurd</h3>

<p>
Un <a href="https://www.gnu.org/software/hurd/hurd/subhurd.html">sous-Hurd</a>
est un sous-système complet.

Ça ressemble beaucoup à un conteneur de virtualisation au premier abord.

La différence c'est qu'il n'est pas du tout nécessaire
d'être superutilisateur pour en exécuter un.
</p>

<h3>gdb ext2fs, pfinet, etc.</h3>

<p>
Oui, vous pouvez exécuter gdb par exemple sur l'implémentation
ext2fs, le <code>pfinet</code>, la pile TCP/IP, etc.
</p>

<h3>Et plein d'autres choses !</h3>

<p>
Parmi le travail en cours, <code>mboxfs</code>, <code>tarfs</code>,
<code>xmlfs</code>, <code>gopherfs</code>, etc., sont au programme.
</p>


#<h3>7.3 Réamorçage</h3>
#
#<p>
#Enfin, réamorcez en mode multiutilisateur, c'est-à-dire de la même manière que
#pour le mode utilisateur unique, sans l'option <var>-s</var> de chargement du
#noyau. Pour de plus amples informations, veuillez vous référer à la
#section&nbsp;5. Amorçage du GNU/Hurd.
#</p>
#
#<p>
#Bon bidouillage&nbsp;!
#</p>

<h2>Derniers mots</h2>

<p>
Ce qui suit n'est qu'une succession de choses vite faites au moment de
l'installation, assurez-vous aussi de lire la documentation pour le
système installé : la <a href=hurd-doc>documentation Debian GNU/Hurd</a>,
mais aussi le <a href=http://hurd.gnu.org/>site web amont</a>.
</p>


#<h3>8.1 Le menu de Grub</h3>
#
#<p>
#Charger le noyau manuellement à chaque fois peut se révéler très fastidieux.
#Veuillez adapter le fichier <tt>/boot/grub/menu.lst</tt> pour GRUB 1 ou
#<tt><q>/boot/grub/grub.cfg</q></tt> pour GRUB 2 de manière
#appropriée&nbsp;; l'amorçage sera plus rapide et plus facile.
#</p>
#
#
#<h3>8.2 Ajouter des périphériques</h3>
#
#<p>
#Par défaut, quelques périphériques seulement sont créés dans le répertoire
#<tt>/dev</tt>. Veuillez utiliser le script <code>MAKEDEV</code> pour créer tous
#les nœuds de périphériques nécessaires.
#</p>

<h3>Installer plus de paquets</h3>

<p>
Plusieurs manières existent pour ajouter des paquets. Télécharger et utiliser
<code>dpkg -i</code> fonctionne mais est très peu pratique. La méthode la plus
simple est d'utiliser <code>apt-get</code>.</p>

<p>
Si vous utilisez la publication GNU/Hurd 2019 de Debian, la façon la plus sûre
est d’utiliser l’image de cette publication, en créant un fichier
<code>/etc/apt/apt.conf.d/99ignore-valid-until</code> contenant :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
Acquire::Check-Valid-Until "false";
</pre></td></tr></table>


<p>
L’image peut alors être utilisée comme source d’apt. Éditez
<tt><q>/etc/apt/sources.list</q></tt> et ajoutez les entrées suivantes non
publiées :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
deb http://snapshot.debian.org/archive/debian-ports/20190626T235959Z/ sid main
deb-src http://snapshot.debian.org/archive/debian/20190626T235959Z/ sid main
deb [trusted=yes] https://snapshot.debian.org/archive/debian-ports/20190626T235959Z/ unreleased main
</pre></td></tr></table>

<p>
Mettez à jour, installez les paquets <code>apt-transport-https
debian-ports-archive-keyring</code> et mettez à jour à nouveau, vous disposez
alors de la publication entière GNU/Hurd 2019 de Debian.</p>

<p>
Si vous utilisez une image postérieure à la publication de 2019, vous pouvez
ajouter les sources suivantes pour obtenir les paquets les plus récents :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
deb http://deb.debian.org/debian-ports unstable main
deb-src http://deb.debian.org/debian unstable main
deb http://deb.debian.org/debian-ports unreleased main
</pre></td></tr></table>

<p>
Mettez à jour, installez le paquet <code>debian-ports-archive-keyring</code>
et mettez de nouveau à jour.
</p>

<p>
Si lors de la première utilisation d'<code>apt-get</code>, <code>dpkg</code>
se plaint de programmes manquants, devenez superutilisateur dans un interpréteur
de connexion (c'est-à-dire <code>su -</code>, pas seulement <code>su</code>).
</p>

<p>
Si GNU/Mach ne reconnaît pas la carte réseau ou si vous utilisez un modem,
le seul moyen de mettre à jour sera de télécharger les paquets, de les
transférer ensuite sur le système GNU. Le moyen le plus facile de faire cela
est d'utiliser apt en mode déconnecté. Veuillez vous référer à
<tt>/usr/share/doc/apt-doc/offline.text.gz</tt> pour des instructions
détaillées.
</p>


<h3>La console Hurd</h3>

<p>
Outre la console Mach rencontrée pendant l'installation, GNU/Hurd
possède une puissante console en espace utilisateur qui fournit des terminaux
virtuels.

Si vous avez installé en mode pseudographique,
elle devrait être automatiquement démarrée à l'amorçage, sinon
vous pouvez le faire vous-même avec la
commande suivante&nbsp;:
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
 \# console -d vga -d pc_mouse --repeat=mouse -d pc_kbd --repeat=kbd -d generic_speaker -c /dev/vcs
</pre></td></tr></table>

<p>
Si le fonctionnement est confirmé, le démarrage automatique de la console
peut être activé au démarrage à partir de <tt>/etc/default/hurd-console</tt> :
remplacez <tt>ENABLE="false"</tt> par <tt>ENABLE="true"</tt>.
</p>

<p>
Dans la console Hurd, vous pouvez passer d'un terminal virtuel à un autre
avec <kbd>Alt + F1</kbd>, <kbd>Alt + F2</kbd> et ainsi de suite.
<kbd>Ctrl + Alt + Retour arrière</kbd> détache la console Hurd et vous ramène à la
console Mach, depuis laquelle vous pouvez vous rattacher à nouveau avec la
commande ci-dessus.
</p>


<h3>X.Org</h3>

<p>
X.Org a été porté.

Toutes les cartes vidéo qu'il gère sans nécessiter de
module ou de drm du noyau devraient fonctionner.
</p>

<p>
Vous devez déjà être en train d'exécuter la console Hurd et avoir
configuré les répétiteurs comme indiqué dans la section précédente.

Par exemple, vérifiez que <code>echo $TERM</code> affiche
<code>hurd</code> et vérifiez que <code>/dev/cons/kbd</code>
et <code>/dev/cons/mouse</code> existent.
</p>

<p>
Vous devez exécuter <tt>dpkg-reconfigure x11-common xserver-xorg-legacy</tt> pour
permettre aux utilisateurs de démarrer Xorg, parce que
l'enveloppe (wrapper) de X ne connait rien des consoles Hurd et Mach.
</p>

<p>
Vous devrez aussi créer un fichier <tt>/etc/X11/xorg.conf</tt>
pour activer le raccourci <kbd>Ctrl + Alt + Retour arrière</kbd> :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
Section "InputDevice"
   Identifier "Generic Keyboard"
   Driver "kbd"
   Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
</pre></td></tr></table>

<p>
Il est possible que, pour une étrange raison, Xorg choisisse une résolution 16/9 mais
un bureau au format 4/3. Blâmez Xorg, pas le Hurd :). Pour éviter ce problème,
ajoutez ceci à <tt>/etc/X11/xorg.conf</tt> :
</p>

<table><tr><td>&nbsp;</td><td class=example><pre>
Section "Screen"
   Identifier "myScreen"
   SubSection "Display"
      Virtual 1024 768
   EndSubSection
EndSection
</pre></td></tr></table>

<p>
Vous aurez besoin de plusieurs paquets de X. Vous pouvez commencer par
<code>xorg</code>, <code>rxvt</code> et un gestionnaire de fenêtres :
<code>twm</code>, <code>icewm</code>, <code>openbox</code>, etc., sont un bon
début. Si vous voulez que X se lance au démarrage, vous devez installer un
gestionnaire de sessions. <code>lightdm</code> et <code>gdm</code> ne
fonctionnent pas encore très bien, mais <code>xdm</code> le fait.
</p>

<p>
Enfin, exécutez <code>startx /usr/bin/votre_gestionnaire_de_fenêtres</code>.
</p>

<p>
Si cela ne fonctionne pas, comme indiqué par le message d’erreur, regardez dans
<tt>/var/log/Xorg.0.log</tt> (ou envoyez le message sur la liste pour qu’il
puisse être examiné).
</p>

<h3>Le mot de la fin</h3>

<p>
Pour éteindre votre système, utilisez simplement <code>halt</code>,
<code>poweroff</code> ou <code>reboot</code>. Si cela conduit parfois à un gel
parce qu’un démon ne s’arrête pas correctement, vous pouvez utiliser à la
place <code>halt-hurd</code>, <code>poweroff-hurd</code> ou
<code>reboot-hurd</code>, qui n’arrêtent pas réellement le démon, mais qui
synchronisent proprement les données sur le disque.
</p>

© 2014-2024 Faster IT GmbH | imprint | privacy policy