aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/virtual
diff options
context:
space:
mode:
authorJonathan Neuschäfer <j.neuschaefer@gmx.net>2011-08-11 20:28:23 -0400
committerRichard Weinberger <richard@nod.at>2011-11-02 09:15:39 -0400
commit8a91db29252f87630e6f31a56ff96eeda00d5ba3 (patch)
tree217548fb8ec668d6ae113ec128eb286ec8a65df4 /Documentation/virtual
parent38b64aed786d59854ecc850ee5ece85b61dd252b (diff)
UserModeLinux-HOWTO.txt: remove ^H characters
If you can't read this patch, please run: sed -i -e "s/[^\o10]\o10//g" \ Documentation/virtual/uml/UserModeLinux-HOWTO.txt Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'Documentation/virtual')
-rw-r--r--Documentation/virtual/uml/UserModeLinux-HOWTO.txt530
1 files changed, 265 insertions, 265 deletions
diff --git a/Documentation/virtual/uml/UserModeLinux-HOWTO.txt b/Documentation/virtual/uml/UserModeLinux-HOWTO.txt
index 5d0fc8bfcdb9..a7af9cf065e2 100644
--- a/Documentation/virtual/uml/UserModeLinux-HOWTO.txt
+++ b/Documentation/virtual/uml/UserModeLinux-HOWTO.txt
@@ -134,13 +134,13 @@
134 134
135 ______________________________________________________________________ 135 ______________________________________________________________________
136 136
137 11.. IInnttrroodduuccttiioonn 137 1. Introduction
138 138
139 Welcome to User Mode Linux. It's going to be fun. 139 Welcome to User Mode Linux. It's going to be fun.
140 140
141 141
142 142
143 11..11.. HHooww iiss UUsseerr MMooddee LLiinnuuxx DDiiffffeerreenntt?? 143 1.1. How is User Mode Linux Different?
144 144
145 Normally, the Linux Kernel talks straight to your hardware (video 145 Normally, the Linux Kernel talks straight to your hardware (video
146 card, keyboard, hard drives, etc), and any programs which run ask the 146 card, keyboard, hard drives, etc), and any programs which run ask the
@@ -181,7 +181,7 @@
181 181
182 182
183 183
184 11..22.. WWhhyy WWoouulldd II WWaanntt UUsseerr MMooddee LLiinnuuxx?? 184 1.2. Why Would I Want User Mode Linux?
185 185
186 186
187 1. If User Mode Linux crashes, your host kernel is still fine. 187 1. If User Mode Linux crashes, your host kernel is still fine.
@@ -206,12 +206,12 @@
206 206
207 207
208 208
209 22.. CCoommppiilliinngg tthhee kkeerrnneell aanndd mmoodduulleess 209 2. Compiling the kernel and modules
210 210
211 211
212 212
213 213
214 22..11.. CCoommppiilliinngg tthhee kkeerrnneell 214 2.1. Compiling the kernel
215 215
216 216
217 Compiling the user mode kernel is just like compiling any other 217 Compiling the user mode kernel is just like compiling any other
@@ -322,7 +322,7 @@
322 bug fixes and enhancements that have gone into subsequent releases. 322 bug fixes and enhancements that have gone into subsequent releases.
323 323
324 324
325 22..22.. CCoommppiilliinngg aanndd iinnssttaalllliinngg kkeerrnneell mmoodduulleess 325 2.2. Compiling and installing kernel modules
326 326
327 UML modules are built in the same way as the native kernel (with the 327 UML modules are built in the same way as the native kernel (with the
328 exception of the 'ARCH=um' that you always need for UML): 328 exception of the 'ARCH=um' that you always need for UML):
@@ -386,19 +386,19 @@
386 386
387 387
388 388
389 22..33.. CCoommppiilliinngg aanndd iinnssttaalllliinngg uummll__uuttiilliittiieess 389 2.3. Compiling and installing uml_utilities
390 390
391 Many features of the UML kernel require a user-space helper program, 391 Many features of the UML kernel require a user-space helper program,
392 so a uml_utilities package is distributed separately from the kernel 392 so a uml_utilities package is distributed separately from the kernel
393 patch which provides these helpers. Included within this is: 393 patch which provides these helpers. Included within this is:
394 394
395 +o port-helper - Used by consoles which connect to xterms or ports 395 o port-helper - Used by consoles which connect to xterms or ports
396 396
397 +o tunctl - Configuration tool to create and delete tap devices 397 o tunctl - Configuration tool to create and delete tap devices
398 398
399 +o uml_net - Setuid binary for automatic tap device configuration 399 o uml_net - Setuid binary for automatic tap device configuration
400 400
401 +o uml_switch - User-space virtual switch required for daemon 401 o uml_switch - User-space virtual switch required for daemon
402 transport 402 transport
403 403
404 The uml_utilities tree is compiled with: 404 The uml_utilities tree is compiled with:
@@ -423,11 +423,11 @@
423 423
424 424
425 425
426 33.. RRuunnnniinngg UUMMLL aanndd llooggggiinngg iinn 426 3. Running UML and logging in
427 427
428 428
429 429
430 33..11.. RRuunnnniinngg UUMMLL 430 3.1. Running UML
431 431
432 It runs on 2.2.15 or later, and all 2.4 kernels. 432 It runs on 2.2.15 or later, and all 2.4 kernels.
433 433
@@ -454,7 +454,7 @@
454 454
455 455
456 456
457 33..22.. LLooggggiinngg iinn 457 3.2. Logging in
458 458
459 459
460 460
@@ -468,7 +468,7 @@
468 468
469 There are a couple of other ways to log in: 469 There are a couple of other ways to log in:
470 470
471 +o On a virtual console 471 o On a virtual console
472 472
473 473
474 474
@@ -480,7 +480,7 @@
480 480
481 481
482 482
483 +o Over the serial line 483 o Over the serial line
484 484
485 485
486 In the boot output, find a line that looks like: 486 In the boot output, find a line that looks like:
@@ -503,7 +503,7 @@
503 503
504 504
505 505
506 +o Over the net 506 o Over the net
507 507
508 508
509 If the network is running, then you can telnet to the virtual 509 If the network is running, then you can telnet to the virtual
@@ -514,13 +514,13 @@
514 down and the process will exit. 514 down and the process will exit.
515 515
516 516
517 33..33.. EExxaammpplleess 517 3.3. Examples
518 518
519 Here are some examples of UML in action: 519 Here are some examples of UML in action:
520 520
521 +o A login session <http://user-mode-linux.sourceforge.net/login.html> 521 o A login session <http://user-mode-linux.sourceforge.net/login.html>
522 522
523 +o A virtual network <http://user-mode-linux.sourceforge.net/net.html> 523 o A virtual network <http://user-mode-linux.sourceforge.net/net.html>
524 524
525 525
526 526
@@ -528,12 +528,12 @@
528 528
529 529
530 530
531 44.. UUMMLL oonn 22GG//22GG hhoossttss 531 4. UML on 2G/2G hosts
532 532
533 533
534 534
535 535
536 44..11.. IInnttrroodduuccttiioonn 536 4.1. Introduction
537 537
538 538
539 Most Linux machines are configured so that the kernel occupies the 539 Most Linux machines are configured so that the kernel occupies the
@@ -546,7 +546,7 @@
546 546
547 547
548 548
549 44..22.. TThhee pprroobblleemm 549 4.2. The problem
550 550
551 551
552 The prebuilt UML binaries on this site will not run on 2G/2G hosts 552 The prebuilt UML binaries on this site will not run on 2G/2G hosts
@@ -558,7 +558,7 @@
558 558
559 559
560 560
561 44..33.. TThhee ssoolluuttiioonn 561 4.3. The solution
562 562
563 563
564 The fix for this is to rebuild UML from source after enabling 564 The fix for this is to rebuild UML from source after enabling
@@ -576,7 +576,7 @@
576 576
577 577
578 578
579 55.. SSeettttiinngg uupp sseerriiaall lliinneess aanndd ccoonnssoolleess 579 5. Setting up serial lines and consoles
580 580
581 581
582 It is possible to attach UML serial lines and consoles to many types 582 It is possible to attach UML serial lines and consoles to many types
@@ -586,12 +586,12 @@
586 You can attach them to host ptys, ttys, file descriptors, and ports. 586 You can attach them to host ptys, ttys, file descriptors, and ports.
587 This allows you to do things like 587 This allows you to do things like
588 588
589 +o have a UML console appear on an unused host console, 589 o have a UML console appear on an unused host console,
590 590
591 +o hook two virtual machines together by having one attach to a pty 591 o hook two virtual machines together by having one attach to a pty
592 and having the other attach to the corresponding tty 592 and having the other attach to the corresponding tty
593 593
594 +o make a virtual machine accessible from the net by attaching a 594 o make a virtual machine accessible from the net by attaching a
595 console to a port on the host. 595 console to a port on the host.
596 596
597 597
@@ -599,7 +599,7 @@
599 599
600 600
601 601
602 55..11.. SSppeecciiffyyiinngg tthhee ddeevviiccee 602 5.1. Specifying the device
603 603
604 Devices are specified with "con" or "ssl" (console or serial line, 604 Devices are specified with "con" or "ssl" (console or serial line,
605 respectively), optionally with a device number if you are talking 605 respectively), optionally with a device number if you are talking
@@ -626,13 +626,13 @@
626 626
627 627
628 628
629 55..22.. SSppeecciiffyyiinngg tthhee cchhaannnneell 629 5.2. Specifying the channel
630 630
631 There are a number of different types of channels to attach a UML 631 There are a number of different types of channels to attach a UML
632 device to, each with a different way of specifying exactly what to 632 device to, each with a different way of specifying exactly what to
633 attach to. 633 attach to.
634 634
635 +o pseudo-terminals - device=pty pts terminals - device=pts 635 o pseudo-terminals - device=pty pts terminals - device=pts
636 636
637 637
638 This will cause UML to allocate a free host pseudo-terminal for the 638 This will cause UML to allocate a free host pseudo-terminal for the
@@ -640,20 +640,20 @@
640 log. You access it by attaching a terminal program to the 640 log. You access it by attaching a terminal program to the
641 corresponding tty: 641 corresponding tty:
642 642
643 +o screen /dev/pts/n 643 o screen /dev/pts/n
644 644
645 +o screen /dev/ttyxx 645 o screen /dev/ttyxx
646 646
647 +o minicom -o -p /dev/ttyxx - minicom seems not able to handle pts 647 o minicom -o -p /dev/ttyxx - minicom seems not able to handle pts
648 devices 648 devices
649 649
650 +o kermit - start it up, 'open' the device, then 'connect' 650 o kermit - start it up, 'open' the device, then 'connect'
651 651
652 652
653 653
654 654
655 655
656 +o terminals - device=tty:tty device file 656 o terminals - device=tty:tty device file
657 657
658 658
659 This will make UML attach the device to the specified tty (i.e 659 This will make UML attach the device to the specified tty (i.e
@@ -672,7 +672,7 @@
672 672
673 673
674 674
675 +o xterms - device=xterm 675 o xterms - device=xterm
676 676
677 677
678 UML will run an xterm and the device will be attached to it. 678 UML will run an xterm and the device will be attached to it.
@@ -681,7 +681,7 @@
681 681
682 682
683 683
684 +o Port - device=port:port number 684 o Port - device=port:port number
685 685
686 686
687 This will attach the UML devices to the specified host port. 687 This will attach the UML devices to the specified host port.
@@ -725,7 +725,7 @@
725 725
726 726
727 727
728 +o already-existing file descriptors - device=file descriptor 728 o already-existing file descriptors - device=file descriptor
729 729
730 730
731 If you set up a file descriptor on the UML command line, you can 731 If you set up a file descriptor on the UML command line, you can
@@ -743,7 +743,7 @@
743 743
744 744
745 745
746 +o Nothing - device=null 746 o Nothing - device=null
747 747
748 748
749 This allows the device to be opened, in contrast to 'none', but 749 This allows the device to be opened, in contrast to 'none', but
@@ -754,7 +754,7 @@
754 754
755 755
756 756
757 +o None - device=none 757 o None - device=none
758 758
759 759
760 This causes the device to disappear. 760 This causes the device to disappear.
@@ -785,7 +785,7 @@
785 785
786 786
787 787
788 55..33.. EExxaammpplleess 788 5.3. Examples
789 789
790 There are a number of interesting things you can do with this 790 There are a number of interesting things you can do with this
791 capability. 791 capability.
@@ -838,7 +838,7 @@
838 prompt of the other virtual machine. 838 prompt of the other virtual machine.
839 839
840 840
841 66.. SSeettttiinngg uupp tthhee nneettwwoorrkk 841 6. Setting up the network
842 842
843 843
844 844
@@ -858,19 +858,19 @@
858 There are currently five transport types available for a UML virtual 858 There are currently five transport types available for a UML virtual
859 machine to exchange packets with other hosts: 859 machine to exchange packets with other hosts:
860 860
861 +o ethertap 861 o ethertap
862 862
863 +o TUN/TAP 863 o TUN/TAP
864 864
865 +o Multicast 865 o Multicast
866 866
867 +o a switch daemon 867 o a switch daemon
868 868
869 +o slip 869 o slip
870 870
871 +o slirp 871 o slirp
872 872
873 +o pcap 873 o pcap
874 874
875 The TUN/TAP, ethertap, slip, and slirp transports allow a UML 875 The TUN/TAP, ethertap, slip, and slirp transports allow a UML
876 instance to exchange packets with the host. They may be directed 876 instance to exchange packets with the host. They may be directed
@@ -893,28 +893,28 @@
893 With so many host transports, which one should you use? Here's when 893 With so many host transports, which one should you use? Here's when
894 you should use each one: 894 you should use each one:
895 895
896 +o ethertap - if you want access to the host networking and it is 896 o ethertap - if you want access to the host networking and it is
897 running 2.2 897 running 2.2
898 898
899 +o TUN/TAP - if you want access to the host networking and it is 899 o TUN/TAP - if you want access to the host networking and it is
900 running 2.4. Also, the TUN/TAP transport is able to use a 900 running 2.4. Also, the TUN/TAP transport is able to use a
901 preconfigured device, allowing it to avoid using the setuid uml_net 901 preconfigured device, allowing it to avoid using the setuid uml_net
902 helper, which is a security advantage. 902 helper, which is a security advantage.
903 903
904 +o Multicast - if you want a purely virtual network and you don't want 904 o Multicast - if you want a purely virtual network and you don't want
905 to set up anything but the UML 905 to set up anything but the UML
906 906
907 +o a switch daemon - if you want a purely virtual network and you 907 o a switch daemon - if you want a purely virtual network and you
908 don't mind running the daemon in order to get somewhat better 908 don't mind running the daemon in order to get somewhat better
909 performance 909 performance
910 910
911 +o slip - there is no particular reason to run the slip backend unless 911 o slip - there is no particular reason to run the slip backend unless
912 ethertap and TUN/TAP are just not available for some reason 912 ethertap and TUN/TAP are just not available for some reason
913 913
914 +o slirp - if you don't have root access on the host to setup 914 o slirp - if you don't have root access on the host to setup
915 networking, or if you don't want to allocate an IP to your UML 915 networking, or if you don't want to allocate an IP to your UML
916 916
917 +o pcap - not much use for actual network connectivity, but great for 917 o pcap - not much use for actual network connectivity, but great for
918 monitoring traffic on the host 918 monitoring traffic on the host
919 919
920 Ethertap is available on 2.4 and works fine. TUN/TAP is preferred 920 Ethertap is available on 2.4 and works fine. TUN/TAP is preferred
@@ -926,7 +926,7 @@
926 exploit the helper's root privileges. 926 exploit the helper's root privileges.
927 927
928 928
929 66..11.. GGeenneerraall sseettuupp 929 6.1. General setup
930 930
931 First, you must have the virtual network enabled in your UML. If are 931 First, you must have the virtual network enabled in your UML. If are
932 running a prebuilt kernel from this site, everything is already 932 running a prebuilt kernel from this site, everything is already
@@ -995,7 +995,7 @@
995 995
996 996
997 997
998 66..22.. UUsseerrssppaaccee ddaaeemmoonnss 998 6.2. Userspace daemons
999 999
1000 You will likely need the setuid helper, or the switch daemon, or both. 1000 You will likely need the setuid helper, or the switch daemon, or both.
1001 They are both installed with the RPM and deb, so if you've installed 1001 They are both installed with the RPM and deb, so if you've installed
@@ -1011,7 +1011,7 @@
1011 1011
1012 1012
1013 1013
1014 66..33.. SSppeecciiffyyiinngg eetthheerrnneett aaddddrreesssseess 1014 6.3. Specifying ethernet addresses
1015 1015
1016 Below, you will see that the TUN/TAP, ethertap, and daemon interfaces 1016 Below, you will see that the TUN/TAP, ethertap, and daemon interfaces
1017 allow you to specify hardware addresses for the virtual ethernet 1017 allow you to specify hardware addresses for the virtual ethernet
@@ -1023,11 +1023,11 @@
1023 sufficient to guarantee a unique hardware address for the device. A 1023 sufficient to guarantee a unique hardware address for the device. A
1024 couple of exceptions are: 1024 couple of exceptions are:
1025 1025
1026 +o Another set of virtual ethernet devices are on the same network and 1026 o Another set of virtual ethernet devices are on the same network and
1027 they are assigned hardware addresses using a different scheme which 1027 they are assigned hardware addresses using a different scheme which
1028 may conflict with the UML IP address-based scheme 1028 may conflict with the UML IP address-based scheme
1029 1029
1030 +o You aren't going to use the device for IP networking, so you don't 1030 o You aren't going to use the device for IP networking, so you don't
1031 assign the device an IP address 1031 assign the device an IP address
1032 1032
1033 If you let the driver provide the hardware address, you should make 1033 If you let the driver provide the hardware address, you should make
@@ -1049,7 +1049,7 @@
1049 1049
1050 1050
1051 1051
1052 66..44.. UUMMLL iinntteerrffaaccee sseettuupp 1052 6.4. UML interface setup
1053 1053
1054 Once the network devices have been described on the command line, you 1054 Once the network devices have been described on the command line, you
1055 should boot UML and log in. 1055 should boot UML and log in.
@@ -1131,7 +1131,7 @@
1131 1131
1132 1132
1133 1133
1134 66..55.. MMuullttiiccaasstt 1134 6.5. Multicast
1135 1135
1136 The simplest way to set up a virtual network between multiple UMLs is 1136 The simplest way to set up a virtual network between multiple UMLs is
1137 to use the mcast transport. This was written by Harald Welte and is 1137 to use the mcast transport. This was written by Harald Welte and is
@@ -1194,7 +1194,7 @@
1194 1194
1195 1195
1196 1196
1197 66..66.. TTUUNN//TTAAPP wwiitthh tthhee uummll__nneett hheellppeerr 1197 6.6. TUN/TAP with the uml_net helper
1198 1198
1199 TUN/TAP is the preferred mechanism on 2.4 to exchange packets with the 1199 TUN/TAP is the preferred mechanism on 2.4 to exchange packets with the
1200 host. The TUN/TAP backend has been in UML since 2.4.9-3um. 1200 host. The TUN/TAP backend has been in UML since 2.4.9-3um.
@@ -1247,10 +1247,10 @@
1247 There are a couple potential problems with running the TUN/TAP 1247 There are a couple potential problems with running the TUN/TAP
1248 transport on a 2.4 host kernel 1248 transport on a 2.4 host kernel
1249 1249
1250 +o TUN/TAP seems not to work on 2.4.3 and earlier. Upgrade the host 1250 o TUN/TAP seems not to work on 2.4.3 and earlier. Upgrade the host
1251 kernel or use the ethertap transport. 1251 kernel or use the ethertap transport.
1252 1252
1253 +o With an upgraded kernel, TUN/TAP may fail with 1253 o With an upgraded kernel, TUN/TAP may fail with
1254 1254
1255 1255
1256 File descriptor in bad state 1256 File descriptor in bad state
@@ -1269,7 +1269,7 @@
1269 1269
1270 1270
1271 1271
1272 66..77.. TTUUNN//TTAAPP wwiitthh aa pprreeccoonnffiigguurreedd ttaapp ddeevviiccee 1272 6.7. TUN/TAP with a preconfigured tap device
1273 1273
1274 If you prefer not to have UML use uml_net (which is somewhat 1274 If you prefer not to have UML use uml_net (which is somewhat
1275 insecure), with UML 2.4.17-11, you can set up a TUN/TAP device 1275 insecure), with UML 2.4.17-11, you can set up a TUN/TAP device
@@ -1277,7 +1277,7 @@
1277 there is no need for root assistance. Setting up the device is done 1277 there is no need for root assistance. Setting up the device is done
1278 as follows: 1278 as follows:
1279 1279
1280 +o Create the device with tunctl (available from the UML utilities 1280 o Create the device with tunctl (available from the UML utilities
1281 tarball) 1281 tarball)
1282 1282
1283 1283
@@ -1291,7 +1291,7 @@
1291 where uid is the user id or username that UML will be run as. This 1291 where uid is the user id or username that UML will be run as. This
1292 will tell you what device was created. 1292 will tell you what device was created.
1293 1293
1294 +o Configure the device IP (change IP addresses and device name to 1294 o Configure the device IP (change IP addresses and device name to
1295 suit) 1295 suit)
1296 1296
1297 1297
@@ -1303,7 +1303,7 @@
1303 1303
1304 1304
1305 1305
1306 +o Set up routing and arping if desired - this is my recipe, there are 1306 o Set up routing and arping if desired - this is my recipe, there are
1307 other ways of doing the same thing 1307 other ways of doing the same thing
1308 1308
1309 1309
@@ -1338,7 +1338,7 @@
1338 utility which reads the information from a config file and sets up 1338 utility which reads the information from a config file and sets up
1339 devices at boot time. 1339 devices at boot time.
1340 1340
1341 +o Rather than using up two IPs and ARPing for one of them, you can 1341 o Rather than using up two IPs and ARPing for one of them, you can
1342 also provide direct access to your LAN by the UML by using a 1342 also provide direct access to your LAN by the UML by using a
1343 bridge. 1343 bridge.
1344 1344
@@ -1417,7 +1417,7 @@
1417 Note that 'br0' should be setup using ifconfig with the existing IP 1417 Note that 'br0' should be setup using ifconfig with the existing IP
1418 address of eth0, as eth0 no longer has its own IP. 1418 address of eth0, as eth0 no longer has its own IP.
1419 1419
1420 +o 1420 o
1421 1421
1422 1422
1423 Also, the /dev/net/tun device must be writable by the user running 1423 Also, the /dev/net/tun device must be writable by the user running
@@ -1438,11 +1438,11 @@
1438 devices and chgrp /dev/net/tun to that group with mode 664 or 660. 1438 devices and chgrp /dev/net/tun to that group with mode 664 or 660.
1439 1439
1440 1440
1441 +o Once the device is set up, run UML with 'eth0=tuntap,device name' 1441 o Once the device is set up, run UML with 'eth0=tuntap,device name'
1442 (i.e. 'eth0=tuntap,tap0') on the command line (or do it with the 1442 (i.e. 'eth0=tuntap,tap0') on the command line (or do it with the
1443 mconsole config command). 1443 mconsole config command).
1444 1444
1445 +o Bring the eth device up in UML and you're in business. 1445 o Bring the eth device up in UML and you're in business.
1446 1446
1447 If you don't want that tap device any more, you can make it non- 1447 If you don't want that tap device any more, you can make it non-
1448 persistent with 1448 persistent with
@@ -1465,7 +1465,7 @@
1465 1465
1466 1466
1467 1467
1468 66..88.. EEtthheerrttaapp 1468 6.8. Ethertap
1469 1469
1470 Ethertap is the general mechanism on 2.2 for userspace processes to 1470 Ethertap is the general mechanism on 2.2 for userspace processes to
1471 exchange packets with the kernel. 1471 exchange packets with the kernel.
@@ -1561,9 +1561,9 @@
1561 1561
1562 1562
1563 1563
1564 66..99.. TThhee sswwiittcchh ddaaeemmoonn 1564 6.9. The switch daemon
1565 1565
1566 NNoottee: This is the daemon formerly known as uml_router, but which was 1566 Note: This is the daemon formerly known as uml_router, but which was
1567 renamed so the network weenies of the world would stop growling at me. 1567 renamed so the network weenies of the world would stop growling at me.
1568 1568
1569 1569
@@ -1649,7 +1649,7 @@
1649 1649
1650 1650
1651 1651
1652 66..1100.. SSlliipp 1652 6.10. Slip
1653 1653
1654 Slip is another, less general, mechanism for a process to communicate 1654 Slip is another, less general, mechanism for a process to communicate
1655 with the host networking. In contrast to the ethertap interface, 1655 with the host networking. In contrast to the ethertap interface,
@@ -1681,7 +1681,7 @@
1681 1681
1682 1682
1683 1683
1684 66..1111.. SSlliirrpp 1684 6.11. Slirp
1685 1685
1686 slirp uses an external program, usually /usr/bin/slirp, to provide IP 1686 slirp uses an external program, usually /usr/bin/slirp, to provide IP
1687 only networking connectivity through the host. This is similar to IP 1687 only networking connectivity through the host. This is similar to IP
@@ -1737,7 +1737,7 @@
1737 1737
1738 1738
1739 1739
1740 66..1122.. ppccaapp 1740 6.12. pcap
1741 1741
1742 The pcap transport is attached to a UML ethernet device on the command 1742 The pcap transport is attached to a UML ethernet device on the command
1743 line or with uml_mconsole with the following syntax: 1743 line or with uml_mconsole with the following syntax:
@@ -1777,7 +1777,7 @@
1777 1777
1778 1778
1779 1779
1780 66..1133.. SSeettttiinngg uupp tthhee hhoosstt yyoouurrsseellff 1780 6.13. Setting up the host yourself
1781 1781
1782 If you don't specify an address for the host side of the ethertap or 1782 If you don't specify an address for the host side of the ethertap or
1783 slip device, UML won't do any setup on the host. So this is what is 1783 slip device, UML won't do any setup on the host. So this is what is
@@ -1785,7 +1785,7 @@
1785 192.168.0.251 and a UML-side IP of 192.168.0.250 - adjust to suit your 1785 192.168.0.251 and a UML-side IP of 192.168.0.250 - adjust to suit your
1786 own network): 1786 own network):
1787 1787
1788 +o The device needs to be configured with its IP address. Tap devices 1788 o The device needs to be configured with its IP address. Tap devices
1789 are also configured with an mtu of 1484. Slip devices are 1789 are also configured with an mtu of 1484. Slip devices are
1790 configured with a point-to-point address pointing at the UML ip 1790 configured with a point-to-point address pointing at the UML ip
1791 address. 1791 address.
@@ -1805,7 +1805,7 @@
1805 1805
1806 1806
1807 1807
1808 +o If a tap device is being set up, a route is set to the UML IP. 1808 o If a tap device is being set up, a route is set to the UML IP.
1809 1809
1810 1810
1811 UML# route add -host 192.168.0.250 gw 192.168.0.251 1811 UML# route add -host 192.168.0.250 gw 192.168.0.251
@@ -1814,7 +1814,7 @@
1814 1814
1815 1815
1816 1816
1817 +o To allow other hosts on your network to see the virtual machine, 1817 o To allow other hosts on your network to see the virtual machine,
1818 proxy arp is set up for it. 1818 proxy arp is set up for it.
1819 1819
1820 1820
@@ -1824,7 +1824,7 @@
1824 1824
1825 1825
1826 1826
1827 +o Finally, the host is set up to route packets. 1827 o Finally, the host is set up to route packets.
1828 1828
1829 1829
1830 host# echo 1 > /proc/sys/net/ipv4/ip_forward 1830 host# echo 1 > /proc/sys/net/ipv4/ip_forward
@@ -1838,12 +1838,12 @@
1838 1838
1839 1839
1840 1840
1841 77.. SShhaarriinngg FFiilleessyysstteemmss bbeettwweeeenn VViirrttuuaall MMaacchhiinneess 1841 7. Sharing Filesystems between Virtual Machines
1842 1842
1843 1843
1844 1844
1845 1845
1846 77..11.. AA wwaarrnniinngg 1846 7.1. A warning
1847 1847
1848 Don't attempt to share filesystems simply by booting two UMLs from the 1848 Don't attempt to share filesystems simply by booting two UMLs from the
1849 same file. That's the same thing as booting two physical machines 1849 same file. That's the same thing as booting two physical machines
@@ -1851,7 +1851,7 @@
1851 1851
1852 1852
1853 1853
1854 77..22.. UUssiinngg llaayyeerreedd bblloocckk ddeevviicceess 1854 7.2. Using layered block devices
1855 1855
1856 The way to share a filesystem between two virtual machines is to use 1856 The way to share a filesystem between two virtual machines is to use
1857 the copy-on-write (COW) layering capability of the ubd block driver. 1857 the copy-on-write (COW) layering capability of the ubd block driver.
@@ -1896,7 +1896,7 @@
1896 1896
1897 1897
1898 1898
1899 77..33.. NNoottee!! 1899 7.3. Note!
1900 1900
1901 When checking the size of the COW file in order to see the gobs of 1901 When checking the size of the COW file in order to see the gobs of
1902 space that you're saving, make sure you use 'ls -ls' to see the actual 1902 space that you're saving, make sure you use 'ls -ls' to see the actual
@@ -1926,7 +1926,7 @@
1926 1926
1927 1927
1928 1928
1929 77..44.. AAnnootthheerr wwaarrnniinngg 1929 7.4. Another warning
1930 1930
1931 Once a filesystem is being used as a readonly backing file for a COW 1931 Once a filesystem is being used as a readonly backing file for a COW
1932 file, do not boot directly from it or modify it in any way. Doing so 1932 file, do not boot directly from it or modify it in any way. Doing so
@@ -1952,7 +1952,7 @@
1952 1952
1953 1953
1954 1954
1955 77..55.. uummll__mmoooo :: MMeerrggiinngg aa CCOOWW ffiillee wwiitthh iittss bbaacckkiinngg ffiillee 1955 7.5. uml_moo : Merging a COW file with its backing file
1956 1956
1957 Depending on how you use UML and COW devices, it may be advisable to 1957 Depending on how you use UML and COW devices, it may be advisable to
1958 merge the changes in the COW file into the backing file every once in 1958 merge the changes in the COW file into the backing file every once in
@@ -2001,7 +2001,7 @@
2001 2001
2002 2002
2003 2003
2004 88.. CCrreeaattiinngg ffiilleessyysstteemmss 2004 8. Creating filesystems
2005 2005
2006 2006
2007 You may want to create and mount new UML filesystems, either because 2007 You may want to create and mount new UML filesystems, either because
@@ -2015,7 +2015,7 @@
2015 should be easy to translate to the filesystem of your choice. 2015 should be easy to translate to the filesystem of your choice.
2016 2016
2017 2017
2018 88..11.. CCrreeaattee tthhee ffiilleessyysstteemm ffiillee 2018 8.1. Create the filesystem file
2019 2019
2020 dd is your friend. All you need to do is tell dd to create an empty 2020 dd is your friend. All you need to do is tell dd to create an empty
2021 file of the appropriate size. I usually make it sparse to save time 2021 file of the appropriate size. I usually make it sparse to save time
@@ -2032,7 +2032,7 @@
2032 2032
2033 2033
2034 2034
2035 88..22.. AAssssiiggnn tthhee ffiillee ttoo aa UUMMLL ddeevviiccee 2035 8.2. Assign the file to a UML device
2036 2036
2037 Add an argument like the following to the UML command line: 2037 Add an argument like the following to the UML command line:
2038 2038
@@ -2045,7 +2045,7 @@
2045 2045
2046 2046
2047 2047
2048 88..33.. CCrreeaattiinngg aanndd mmoouunnttiinngg tthhee ffiilleessyysstteemm 2048 8.3. Creating and mounting the filesystem
2049 2049
2050 Make sure that the filesystem is available, either by being built into 2050 Make sure that the filesystem is available, either by being built into
2051 the kernel, or available as a module, then boot up UML and log in. If 2051 the kernel, or available as a module, then boot up UML and log in. If
@@ -2096,7 +2096,7 @@
2096 2096
2097 2097
2098 2098
2099 99.. HHoosstt ffiillee aacccceessss 2099 9. Host file access
2100 2100
2101 2101
2102 If you want to access files on the host machine from inside UML, you 2102 If you want to access files on the host machine from inside UML, you
@@ -2112,7 +2112,7 @@
2112 files contained in it just as you would on the host. 2112 files contained in it just as you would on the host.
2113 2113
2114 2114
2115 99..11.. UUssiinngg hhoossttffss 2115 9.1. Using hostfs
2116 2116
2117 To begin with, make sure that hostfs is available inside the virtual 2117 To begin with, make sure that hostfs is available inside the virtual
2118 machine with 2118 machine with
@@ -2151,7 +2151,7 @@
2151 2151
2152 2152
2153 2153
2154 99..22.. hhoossttffss aass tthhee rroooott ffiilleessyysstteemm 2154 9.2. hostfs as the root filesystem
2155 2155
2156 It's possible to boot from a directory hierarchy on the host using 2156 It's possible to boot from a directory hierarchy on the host using
2157 hostfs rather than using the standard filesystem in a file. 2157 hostfs rather than using the standard filesystem in a file.
@@ -2194,20 +2194,20 @@
2194 UML should then boot as it does normally. 2194 UML should then boot as it does normally.
2195 2195
2196 2196
2197 99..33.. BBuuiillddiinngg hhoossttffss 2197 9.3. Building hostfs
2198 2198
2199 If you need to build hostfs because it's not in your kernel, you have 2199 If you need to build hostfs because it's not in your kernel, you have
2200 two choices: 2200 two choices:
2201 2201
2202 2202
2203 2203
2204 +o Compiling hostfs into the kernel: 2204 o Compiling hostfs into the kernel:
2205 2205
2206 2206
2207 Reconfigure the kernel and set the 'Host filesystem' option under 2207 Reconfigure the kernel and set the 'Host filesystem' option under
2208 2208
2209 2209
2210 +o Compiling hostfs as a module: 2210 o Compiling hostfs as a module:
2211 2211
2212 2212
2213 Reconfigure the kernel and set the 'Host filesystem' option under 2213 Reconfigure the kernel and set the 'Host filesystem' option under
@@ -2228,7 +2228,7 @@
2228 2228
2229 2229
2230 2230
2231 1100.. TThhee MMaannaaggeemmeenntt CCoonnssoollee 2231 10. The Management Console
2232 2232
2233 2233
2234 2234
@@ -2240,15 +2240,15 @@
2240 2240
2241 There are a number of things you can do with the mconsole interface: 2241 There are a number of things you can do with the mconsole interface:
2242 2242
2243 +o get the kernel version 2243 o get the kernel version
2244 2244
2245 +o add and remove devices 2245 o add and remove devices
2246 2246
2247 +o halt or reboot the machine 2247 o halt or reboot the machine
2248 2248
2249 +o Send SysRq commands 2249 o Send SysRq commands
2250 2250
2251 +o Pause and resume the UML 2251 o Pause and resume the UML
2252 2252
2253 2253
2254 You need the mconsole client (uml_mconsole) which is present in CVS 2254 You need the mconsole client (uml_mconsole) which is present in CVS
@@ -2300,28 +2300,28 @@
2300 2300
2301 You'll get a prompt, at which you can run one of these commands: 2301 You'll get a prompt, at which you can run one of these commands:
2302 2302
2303 +o version 2303 o version
2304 2304
2305 +o halt 2305 o halt
2306 2306
2307 +o reboot 2307 o reboot
2308 2308
2309 +o config 2309 o config
2310 2310
2311 +o remove 2311 o remove
2312 2312
2313 +o sysrq 2313 o sysrq
2314 2314
2315 +o help 2315 o help
2316 2316
2317 +o cad 2317 o cad
2318 2318
2319 +o stop 2319 o stop
2320 2320
2321 +o go 2321 o go
2322 2322
2323 2323
2324 1100..11.. vveerrssiioonn 2324 10.1. version
2325 2325
2326 This takes no arguments. It prints the UML version. 2326 This takes no arguments. It prints the UML version.
2327 2327
@@ -2342,7 +2342,7 @@
2342 2342
2343 2343
2344 2344
2345 1100..22.. hhaalltt aanndd rreebboooott 2345 10.2. halt and reboot
2346 2346
2347 These take no arguments. They shut the machine down immediately, with 2347 These take no arguments. They shut the machine down immediately, with
2348 no syncing of disks and no clean shutdown of userspace. So, they are 2348 no syncing of disks and no clean shutdown of userspace. So, they are
@@ -2357,7 +2357,7 @@
2357 2357
2358 2358
2359 2359
2360 1100..33.. ccoonnffiigg 2360 10.3. config
2361 2361
2362 "config" adds a new device to the virtual machine. Currently the ubd 2362 "config" adds a new device to the virtual machine. Currently the ubd
2363 and network drivers support this. It takes one argument, which is the 2363 and network drivers support this. It takes one argument, which is the
@@ -2378,7 +2378,7 @@
2378 2378
2379 2379
2380 2380
2381 1100..44.. rreemmoovvee 2381 10.4. remove
2382 2382
2383 "remove" deletes a device from the system. Its argument is just the 2383 "remove" deletes a device from the system. Its argument is just the
2384 name of the device to be removed. The device must be idle in whatever 2384 name of the device to be removed. The device must be idle in whatever
@@ -2397,7 +2397,7 @@
2397 2397
2398 2398
2399 2399
2400 1100..55.. ssyyssrrqq 2400 10.5. sysrq
2401 2401
2402 This takes one argument, which is a single letter. It calls the 2402 This takes one argument, which is a single letter. It calls the
2403 generic kernel's SysRq driver, which does whatever is called for by 2403 generic kernel's SysRq driver, which does whatever is called for by
@@ -2407,14 +2407,14 @@
2407 2407
2408 2408
2409 2409
2410 1100..66.. hheellpp 2410 10.6. help
2411 2411
2412 "help" returns a string listing the valid commands and what each one 2412 "help" returns a string listing the valid commands and what each one
2413 does. 2413 does.
2414 2414
2415 2415
2416 2416
2417 1100..77.. ccaadd 2417 10.7. cad
2418 2418
2419 This invokes the Ctl-Alt-Del action on init. What exactly this ends 2419 This invokes the Ctl-Alt-Del action on init. What exactly this ends
2420 up doing is up to /etc/inittab. Normally, it reboots the machine. 2420 up doing is up to /etc/inittab. Normally, it reboots the machine.
@@ -2432,7 +2432,7 @@
2432 2432
2433 2433
2434 2434
2435 1100..88.. ssttoopp 2435 10.8. stop
2436 2436
2437 This puts the UML in a loop reading mconsole requests until a 'go' 2437 This puts the UML in a loop reading mconsole requests until a 'go'
2438 mconsole command is received. This is very useful for making backups 2438 mconsole command is received. This is very useful for making backups
@@ -2448,7 +2448,7 @@
2448 2448
2449 2449
2450 2450
2451 1100..99.. ggoo 2451 10.9. go
2452 2452
2453 This resumes a UML after being paused by a 'stop' command. Note that 2453 This resumes a UML after being paused by a 'stop' command. Note that
2454 when the UML has resumed, TCP connections may have timed out and if 2454 when the UML has resumed, TCP connections may have timed out and if
@@ -2462,10 +2462,10 @@
2462 2462
2463 2463
2464 2464
2465 1111.. KKeerrnneell ddeebbuuggggiinngg 2465 11. Kernel debugging
2466 2466
2467 2467
2468 NNoottee:: The interface that makes debugging, as described here, possible 2468 Note: The interface that makes debugging, as described here, possible
2469 is present in 2.4.0-test6 kernels and later. 2469 is present in 2.4.0-test6 kernels and later.
2470 2470
2471 2471
@@ -2485,7 +2485,7 @@
2485 2485
2486 2486
2487 2487
2488 1111..11.. SSttaarrttiinngg tthhee kkeerrnneell uunnddeerr ggddbb 2488 11.1. Starting the kernel under gdb
2489 2489
2490 You can have the kernel running under the control of gdb from the 2490 You can have the kernel running under the control of gdb from the
2491 beginning by putting 'debug' on the command line. You will get an 2491 beginning by putting 'debug' on the command line. You will get an
@@ -2498,7 +2498,7 @@
2498 There is a transcript of a debugging session here <debug- 2498 There is a transcript of a debugging session here <debug-
2499 session.html> , with breakpoints being set in the scheduler and in an 2499 session.html> , with breakpoints being set in the scheduler and in an
2500 interrupt handler. 2500 interrupt handler.
2501 1111..22.. EExxaammiinniinngg sslleeeeppiinngg pprroocceesssseess 2501 11.2. Examining sleeping processes
2502 2502
2503 Not every bug is evident in the currently running process. Sometimes, 2503 Not every bug is evident in the currently running process. Sometimes,
2504 processes hang in the kernel when they shouldn't because they've 2504 processes hang in the kernel when they shouldn't because they've
@@ -2516,7 +2516,7 @@
2516 2516
2517 Now what you do is this: 2517 Now what you do is this:
2518 2518
2519 +o detach from the current thread 2519 o detach from the current thread
2520 2520
2521 2521
2522 (UML gdb) det 2522 (UML gdb) det
@@ -2525,7 +2525,7 @@
2525 2525
2526 2526
2527 2527
2528 +o attach to the thread you are interested in 2528 o attach to the thread you are interested in
2529 2529
2530 2530
2531 (UML gdb) att <host pid> 2531 (UML gdb) att <host pid>
@@ -2534,7 +2534,7 @@
2534 2534
2535 2535
2536 2536
2537 +o look at its stack and anything else of interest 2537 o look at its stack and anything else of interest
2538 2538
2539 2539
2540 (UML gdb) bt 2540 (UML gdb) bt
@@ -2545,7 +2545,7 @@
2545 Note that you can't do anything at this point that requires that a 2545 Note that you can't do anything at this point that requires that a
2546 process execute, e.g. calling a function 2546 process execute, e.g. calling a function
2547 2547
2548 +o when you're done looking at that process, reattach to the current 2548 o when you're done looking at that process, reattach to the current
2549 thread and continue it 2549 thread and continue it
2550 2550
2551 2551
@@ -2569,12 +2569,12 @@
2569 2569
2570 2570
2571 2571
2572 1111..33.. RRuunnnniinngg dddddd oonn UUMMLL 2572 11.3. Running ddd on UML
2573 2573
2574 ddd works on UML, but requires a special kludge. The process goes 2574 ddd works on UML, but requires a special kludge. The process goes
2575 like this: 2575 like this:
2576 2576
2577 +o Start ddd 2577 o Start ddd
2578 2578
2579 2579
2580 host% ddd linux 2580 host% ddd linux
@@ -2583,14 +2583,14 @@
2583 2583
2584 2584
2585 2585
2586 +o With ps, get the pid of the gdb that ddd started. You can ask the 2586 o With ps, get the pid of the gdb that ddd started. You can ask the
2587 gdb to tell you, but for some reason that confuses things and 2587 gdb to tell you, but for some reason that confuses things and
2588 causes a hang. 2588 causes a hang.
2589 2589
2590 +o run UML with 'debug=parent gdb-pid=<pid>' added to the command line 2590 o run UML with 'debug=parent gdb-pid=<pid>' added to the command line
2591 - it will just sit there after you hit return 2591 - it will just sit there after you hit return
2592 2592
2593 +o type 'att 1' to the ddd gdb and you will see something like 2593 o type 'att 1' to the ddd gdb and you will see something like
2594 2594
2595 2595
2596 0xa013dc51 in __kill () 2596 0xa013dc51 in __kill ()
@@ -2602,12 +2602,12 @@
2602 2602
2603 2603
2604 2604
2605 +o At this point, type 'c', UML will boot up, and you can use ddd just 2605 o At this point, type 'c', UML will boot up, and you can use ddd just
2606 as you do on any other process. 2606 as you do on any other process.
2607 2607
2608 2608
2609 2609
2610 1111..44.. DDeebbuuggggiinngg mmoodduulleess 2610 11.4. Debugging modules
2611 2611
2612 gdb has support for debugging code which is dynamically loaded into 2612 gdb has support for debugging code which is dynamically loaded into
2613 the process. This support is what is needed to debug kernel modules 2613 the process. This support is what is needed to debug kernel modules
@@ -2823,7 +2823,7 @@
2823 2823
2824 2824
2825 2825
2826 1111..55.. AAttttaacchhiinngg ggddbb ttoo tthhee kkeerrnneell 2826 11.5. Attaching gdb to the kernel
2827 2827
2828 If you don't have the kernel running under gdb, you can attach gdb to 2828 If you don't have the kernel running under gdb, you can attach gdb to
2829 it later by sending the tracing thread a SIGUSR1. The first line of 2829 it later by sending the tracing thread a SIGUSR1. The first line of
@@ -2857,7 +2857,7 @@
2857 2857
2858 2858
2859 2859
2860 1111..66.. UUssiinngg aalltteerrnnaattee ddeebbuuggggeerrss 2860 11.6. Using alternate debuggers
2861 2861
2862 UML has support for attaching to an already running debugger rather 2862 UML has support for attaching to an already running debugger rather
2863 than starting gdb itself. This is present in CVS as of 17 Apr 2001. 2863 than starting gdb itself. This is present in CVS as of 17 Apr 2001.
@@ -2886,7 +2886,7 @@
2886 An example of an alternate debugger is strace. You can strace the 2886 An example of an alternate debugger is strace. You can strace the
2887 actual kernel as follows: 2887 actual kernel as follows:
2888 2888
2889 +o Run the following in a shell 2889 o Run the following in a shell
2890 2890
2891 2891
2892 host% 2892 host%
@@ -2894,10 +2894,10 @@
2894 2894
2895 2895
2896 2896
2897 +o Run UML with 'debug' and 'gdb-pid=<pid>' with the pid printed out 2897 o Run UML with 'debug' and 'gdb-pid=<pid>' with the pid printed out
2898 by the previous command 2898 by the previous command
2899 2899
2900 +o Hit return in the shell, and UML will start running, and strace 2900 o Hit return in the shell, and UML will start running, and strace
2901 output will start accumulating in the output file. 2901 output will start accumulating in the output file.
2902 2902
2903 Note that this is different from running 2903 Note that this is different from running
@@ -2917,9 +2917,9 @@
2917 2917
2918 2918
2919 2919
2920 1122.. KKeerrnneell ddeebbuuggggiinngg eexxaammpplleess 2920 12. Kernel debugging examples
2921 2921
2922 1122..11.. TThhee ccaassee ooff tthhee hhuunngg ffsscckk 2922 12.1. The case of the hung fsck
2923 2923
2924 When booting up the kernel, fsck failed, and dropped me into a shell 2924 When booting up the kernel, fsck failed, and dropped me into a shell
2925 to fix things up. I ran fsck -y, which hung: 2925 to fix things up. I ran fsck -y, which hung:
@@ -3154,9 +3154,9 @@
3154 3154
3155 The interesting things here are : 3155 The interesting things here are :
3156 3156
3157 +o There are two segfaults on this stack (frames 9 and 14) 3157 o There are two segfaults on this stack (frames 9 and 14)
3158 3158
3159 +o The first faulting address (frame 11) is 0x50000800 3159 o The first faulting address (frame 11) is 0x50000800
3160 3160
3161 (gdb) p (void *)1342179328 3161 (gdb) p (void *)1342179328
3162 $16 = (void *) 0x50000800 3162 $16 = (void *) 0x50000800
@@ -3399,7 +3399,7 @@
3399 on will be somewhat clearer. 3399 on will be somewhat clearer.
3400 3400
3401 3401
3402 1122..22.. EEppiissooddee 22:: TThhee ccaassee ooff tthhee hhuunngg ffsscckk 3402 12.2. Episode 2: The case of the hung fsck
3403 3403
3404 After setting a trap in the SEGV handler for accesses to the signal 3404 After setting a trap in the SEGV handler for accesses to the signal
3405 thread's stack, I reran the kernel. 3405 thread's stack, I reran the kernel.
@@ -3788,12 +3788,12 @@
3788 3788
3789 3789
3790 3790
3791 1133.. WWhhaatt ttoo ddoo wwhheenn UUMMLL ddooeessnn''tt wwoorrkk 3791 13. What to do when UML doesn't work
3792 3792
3793 3793
3794 3794
3795 3795
3796 1133..11.. SSttrraannggee ccoommppiillaattiioonn eerrrroorrss wwhheenn yyoouu bbuuiilldd ffrroomm ssoouurrccee 3796 13.1. Strange compilation errors when you build from source
3797 3797
3798 As of test11, it is necessary to have "ARCH=um" in the environment or 3798 As of test11, it is necessary to have "ARCH=um" in the environment or
3799 on the make command line for all steps in building UML, including 3799 on the make command line for all steps in building UML, including
@@ -3824,8 +3824,8 @@
3824 3824
3825 3825
3826 3826
3827 1133..33.. AA vvaarriieettyy ooff ppaanniiccss aanndd hhaannggss wwiitthh //ttmmpp oonn aa rreeiisseerrffss ffiilleessyyss-- 3827 13.3. A variety of panics and hangs with /tmp on a reiserfs filesys-
3828 tteemm 3828 tem
3829 3829
3830 I saw this on reiserfs 3.5.21 and it seems to be fixed in 3.5.27. 3830 I saw this on reiserfs 3.5.21 and it seems to be fixed in 3.5.27.
3831 Panics preceded by 3831 Panics preceded by
@@ -3842,8 +3842,8 @@
3842 3842
3843 3843
3844 3844
3845 1133..44.. TThhee ccoommppiillee ffaaiillss wwiitthh eerrrroorrss aabboouutt ccoonnfflliiccttiinngg ttyyppeess ffoorr 3845 13.4. The compile fails with errors about conflicting types for
3846 ''ooppeenn'',, ''dduupp'',, aanndd ''wwaaiittppiidd'' 3846 'open', 'dup', and 'waitpid'
3847 3847
3848 This happens when you build in /usr/src/linux. The UML build makes 3848 This happens when you build in /usr/src/linux. The UML build makes
3849 the include/asm link point to include/asm-um. /usr/include/asm points 3849 the include/asm link point to include/asm-um. /usr/include/asm points
@@ -3854,14 +3854,14 @@
3854 3854
3855 3855
3856 3856
3857 1133..55.. UUMMLL ddooeessnn''tt wwoorrkk wwhheenn //ttmmpp iiss aann NNFFSS ffiilleessyysstteemm 3857 13.5. UML doesn't work when /tmp is an NFS filesystem
3858 3858
3859 This seems to be a similar situation with the ReiserFS problem above. 3859 This seems to be a similar situation with the ReiserFS problem above.
3860 Some versions of NFS seems not to handle mmap correctly, which UML 3860 Some versions of NFS seems not to handle mmap correctly, which UML
3861 depends on. The workaround is have /tmp be a non-NFS directory. 3861 depends on. The workaround is have /tmp be a non-NFS directory.
3862 3862
3863 3863
3864 1133..66.. UUMMLL hhaannggss oonn bboooott wwhheenn ccoommppiilleedd wwiitthh ggpprrooff ssuuppppoorrtt 3864 13.6. UML hangs on boot when compiled with gprof support
3865 3865
3866 If you build UML with gprof support and, early in the boot, it does 3866 If you build UML with gprof support and, early in the boot, it does
3867 this 3867 this
@@ -3878,7 +3878,7 @@
3878 3878
3879 3879
3880 3880
3881 1133..77.. ssyyssllooggdd ddiieess wwiitthh aa SSIIGGTTEERRMM oonn ssttaarrttuupp 3881 13.7. syslogd dies with a SIGTERM on startup
3882 3882
3883 The exact boot error depends on the distribution that you're booting, 3883 The exact boot error depends on the distribution that you're booting,
3884 but Debian produces this: 3884 but Debian produces this:
@@ -3897,17 +3897,17 @@
3897 3897
3898 3898
3899 3899
3900 1133..88.. TTUUNN//TTAAPP nneettwwoorrkkiinngg ddooeessnn''tt wwoorrkk oonn aa 22..44 hhoosstt 3900 13.8. TUN/TAP networking doesn't work on a 2.4 host
3901 3901
3902 There are a couple of problems which were 3902 There are a couple of problems which were
3903 <http://www.geocrawler.com/lists/3/SourceForge/597/0/> name="pointed 3903 <http://www.geocrawler.com/lists/3/SourceForge/597/0/> name="pointed
3904 out"> by Tim Robinson <timro at trkr dot net> 3904 out"> by Tim Robinson <timro at trkr dot net>
3905 3905
3906 +o It doesn't work on hosts running 2.4.7 (or thereabouts) or earlier. 3906 o It doesn't work on hosts running 2.4.7 (or thereabouts) or earlier.
3907 The fix is to upgrade to something more recent and then read the 3907 The fix is to upgrade to something more recent and then read the
3908 next item. 3908 next item.
3909 3909
3910 +o If you see 3910 o If you see
3911 3911
3912 3912
3913 File descriptor in bad state 3913 File descriptor in bad state
@@ -3921,8 +3921,8 @@
3921 3921
3922 3922
3923 3923
3924 1133..99.. YYoouu ccaann nneettwwoorrkk ttoo tthhee hhoosstt bbuutt nnoott ttoo ootthheerr mmaacchhiinneess oonn tthhee 3924 13.9. You can network to the host but not to other machines on the
3925 nneett 3925 net
3926 3926
3927 If you can connect to the host, and the host can connect to UML, but 3927 If you can connect to the host, and the host can connect to UML, but
3928 you cannot connect to any other machines, then you may need to enable 3928 you cannot connect to any other machines, then you may need to enable
@@ -3972,7 +3972,7 @@
3972 3972
3973 3973
3974 3974
3975 1133..1100.. II hhaavvee nnoo rroooott aanndd II wwaanntt ttoo ssccrreeaamm 3975 13.10. I have no root and I want to scream
3976 3976
3977 Thanks to Birgit Wahlich for telling me about this strange one. It 3977 Thanks to Birgit Wahlich for telling me about this strange one. It
3978 turns out that there's a limit of six environment variables on the 3978 turns out that there's a limit of six environment variables on the
@@ -3987,7 +3987,7 @@
3987 3987
3988 3988
3989 3989
3990 1133..1111.. UUMMLL bbuuiilldd ccoonnfflliicctt bbeettwweeeenn ppttrraaccee..hh aanndd uuccoonntteexxtt..hh 3990 13.11. UML build conflict between ptrace.h and ucontext.h
3991 3991
3992 On some older systems, /usr/include/asm/ptrace.h and 3992 On some older systems, /usr/include/asm/ptrace.h and
3993 /usr/include/sys/ucontext.h define the same names. So, when they're 3993 /usr/include/sys/ucontext.h define the same names. So, when they're
@@ -4007,7 +4007,7 @@
4007 4007
4008 4008
4009 4009
4010 1133..1122.. TThhee UUMMLL BBooggooMMiippss iiss eexxaaccttllyy hhaallff tthhee hhoosstt''ss BBooggooMMiippss 4010 13.12. The UML BogoMips is exactly half the host's BogoMips
4011 4011
4012 On i386 kernels, there are two ways of running the loop that is used 4012 On i386 kernels, there are two ways of running the loop that is used
4013 to calculate the BogoMips rating, using the TSC if it's there or using 4013 to calculate the BogoMips rating, using the TSC if it's there or using
@@ -4019,7 +4019,7 @@
4019 4019
4020 4020
4021 4021
4022 1133..1133.. WWhheenn yyoouu rruunn UUMMLL,, iitt iimmmmeeddiiaatteellyy sseeggffaauullttss 4022 13.13. When you run UML, it immediately segfaults
4023 4023
4024 If the host is configured with the 2G/2G address space split, that's 4024 If the host is configured with the 2G/2G address space split, that's
4025 why. See ``UML on 2G/2G hosts'' for the details on getting UML to 4025 why. See ``UML on 2G/2G hosts'' for the details on getting UML to
@@ -4027,7 +4027,7 @@
4027 4027
4028 4028
4029 4029
4030 1133..1144.. xxtteerrmmss aappppeeaarr,, tthheenn iimmmmeeddiiaatteellyy ddiissaappppeeaarr 4030 13.14. xterms appear, then immediately disappear
4031 4031
4032 If you're running an up to date kernel with an old release of 4032 If you're running an up to date kernel with an old release of
4033 uml_utilities, the port-helper program will not work properly, so 4033 uml_utilities, the port-helper program will not work properly, so
@@ -4039,7 +4039,7 @@
4039 4039
4040 4040
4041 4041
4042 1133..1155.. AAnnyy ootthheerr ppaanniicc,, hhaanngg,, oorr ssttrraannggee bbeehhaavviioorr 4042 13.15. Any other panic, hang, or strange behavior
4043 4043
4044 If you're seeing truly strange behavior, such as hangs or panics that 4044 If you're seeing truly strange behavior, such as hangs or panics that
4045 happen in random places, or you try running the debugger to see what's 4045 happen in random places, or you try running the debugger to see what's
@@ -4059,7 +4059,7 @@
4059 4059
4060 If you want to be super-helpful, read ``Diagnosing Problems'' and 4060 If you want to be super-helpful, read ``Diagnosing Problems'' and
4061 follow the instructions contained therein. 4061 follow the instructions contained therein.
4062 1144.. DDiiaaggnnoossiinngg PPrroobblleemmss 4062 14. Diagnosing Problems
4063 4063
4064 4064
4065 If you get UML to crash, hang, or otherwise misbehave, you should 4065 If you get UML to crash, hang, or otherwise misbehave, you should
@@ -4078,7 +4078,7 @@
4078 ``Kernel debugging'' UML first. 4078 ``Kernel debugging'' UML first.
4079 4079
4080 4080
4081 1144..11.. CCaassee 11 :: NNoorrmmaall kkeerrnneell ppaanniiccss 4081 14.1. Case 1 : Normal kernel panics
4082 4082
4083 The most common case is for a normal thread to panic. To debug this, 4083 The most common case is for a normal thread to panic. To debug this,
4084 you will need to run it under the debugger (add 'debug' to the command 4084 you will need to run it under the debugger (add 'debug' to the command
@@ -4128,7 +4128,7 @@
4128 to get that information from the faulting ip. 4128 to get that information from the faulting ip.
4129 4129
4130 4130
4131 1144..22.. CCaassee 22 :: TTrraacciinngg tthhrreeaadd ppaanniiccss 4131 14.2. Case 2 : Tracing thread panics
4132 4132
4133 The less common and more painful case is when the tracing thread 4133 The less common and more painful case is when the tracing thread
4134 panics. In this case, the kernel debugger will be useless because it 4134 panics. In this case, the kernel debugger will be useless because it
@@ -4161,7 +4161,7 @@
4161 backtrace in and wait for our crack debugging team to fix the problem. 4161 backtrace in and wait for our crack debugging team to fix the problem.
4162 4162
4163 4163
4164 1144..33.. CCaassee 33 :: TTrraacciinngg tthhrreeaadd ppaanniiccss ccaauusseedd bbyy ootthheerr tthhrreeaaddss 4164 14.3. Case 3 : Tracing thread panics caused by other threads
4165 4165
4166 However, there are cases where the misbehavior of another thread 4166 However, there are cases where the misbehavior of another thread
4167 caused the problem. The most common panic of this type is: 4167 caused the problem. The most common panic of this type is:
@@ -4227,7 +4227,7 @@
4227 4227
4228 4228
4229 4229
4230 1144..44.. CCaassee 44 :: HHaannggss 4230 14.4. Case 4 : Hangs
4231 4231
4232 Hangs seem to be fairly rare, but they sometimes happen. When a hang 4232 Hangs seem to be fairly rare, but they sometimes happen. When a hang
4233 happens, we need a backtrace from the offending process. Run the 4233 happens, we need a backtrace from the offending process. Run the
@@ -4257,7 +4257,7 @@
4257 4257
4258 4258
4259 4259
4260 1155.. TThhaannkkss 4260 15. Thanks
4261 4261
4262 4262
4263 A number of people have helped this project in various ways, and this 4263 A number of people have helped this project in various ways, and this
@@ -4274,20 +4274,20 @@
4274 bookkeeping lapses and I forget about contributions. 4274 bookkeeping lapses and I forget about contributions.
4275 4275
4276 4276
4277 1155..11.. CCooddee aanndd DDooccuummeennttaattiioonn 4277 15.1. Code and Documentation
4278 4278
4279 Rusty Russell <rusty at linuxcare.com.au> - 4279 Rusty Russell <rusty at linuxcare.com.au> -
4280 4280
4281 +o wrote the HOWTO <http://user-mode- 4281 o wrote the HOWTO <http://user-mode-
4282 linux.sourceforge.net/UserModeLinux-HOWTO.html> 4282 linux.sourceforge.net/UserModeLinux-HOWTO.html>
4283 4283
4284 +o prodded me into making this project official and putting it on 4284 o prodded me into making this project official and putting it on
4285 SourceForge 4285 SourceForge
4286 4286
4287 +o came up with the way cool UML logo <http://user-mode- 4287 o came up with the way cool UML logo <http://user-mode-
4288 linux.sourceforge.net/uml-small.png> 4288 linux.sourceforge.net/uml-small.png>
4289 4289
4290 +o redid the config process 4290 o redid the config process
4291 4291
4292 4292
4293 Peter Moulder <reiter at netspace.net.au> - Fixed my config and build 4293 Peter Moulder <reiter at netspace.net.au> - Fixed my config and build
@@ -4296,18 +4296,18 @@
4296 4296
4297 Bill Stearns <wstearns at pobox.com> - 4297 Bill Stearns <wstearns at pobox.com> -
4298 4298
4299 +o HOWTO updates 4299 o HOWTO updates
4300 4300
4301 +o lots of bug reports 4301 o lots of bug reports
4302 4302
4303 +o lots of testing 4303 o lots of testing
4304 4304
4305 +o dedicated a box (uml.ists.dartmouth.edu) to support UML development 4305 o dedicated a box (uml.ists.dartmouth.edu) to support UML development
4306 4306
4307 +o wrote the mkrootfs script, which allows bootable filesystems of 4307 o wrote the mkrootfs script, which allows bootable filesystems of
4308 RPM-based distributions to be cranked out 4308 RPM-based distributions to be cranked out
4309 4309
4310 +o cranked out a large number of filesystems with said script 4310 o cranked out a large number of filesystems with said script
4311 4311
4312 4312
4313 Jim Leu <jleu at mindspring.com> - Wrote the virtual ethernet driver 4313 Jim Leu <jleu at mindspring.com> - Wrote the virtual ethernet driver
@@ -4375,176 +4375,176 @@
4375 4375
4376 David Coulson <http://davidcoulson.net> - 4376 David Coulson <http://davidcoulson.net> -
4377 4377
4378 +o Set up the usermodelinux.org <http://usermodelinux.org> site, 4378 o Set up the usermodelinux.org <http://usermodelinux.org> site,
4379 which is a great way of keeping the UML user community on top of 4379 which is a great way of keeping the UML user community on top of
4380 UML goings-on. 4380 UML goings-on.
4381 4381
4382 +o Site documentation and updates 4382 o Site documentation and updates
4383 4383
4384 +o Nifty little UML management daemon UMLd 4384 o Nifty little UML management daemon UMLd
4385 <http://uml.openconsultancy.com/umld/> 4385 <http://uml.openconsultancy.com/umld/>
4386 4386
4387 +o Lots of testing and bug reports 4387 o Lots of testing and bug reports
4388 4388
4389 4389
4390 4390
4391 4391
4392 1155..22.. FFlluusshhiinngg oouutt bbuuggss 4392 15.2. Flushing out bugs
4393 4393
4394 4394
4395 4395
4396 +o Yuri Pudgorodsky 4396 o Yuri Pudgorodsky
4397 4397
4398 +o Gerald Britton 4398 o Gerald Britton
4399 4399
4400 +o Ian Wehrman 4400 o Ian Wehrman
4401 4401
4402 +o Gord Lamb 4402 o Gord Lamb
4403 4403
4404 +o Eugene Koontz 4404 o Eugene Koontz
4405 4405
4406 +o John H. Hartman 4406 o John H. Hartman
4407 4407
4408 +o Anders Karlsson 4408 o Anders Karlsson
4409 4409
4410 +o Daniel Phillips 4410 o Daniel Phillips
4411 4411
4412 +o John Fremlin 4412 o John Fremlin
4413 4413
4414 +o Rainer Burgstaller 4414 o Rainer Burgstaller
4415 4415
4416 +o James Stevenson 4416 o James Stevenson
4417 4417
4418 +o Matt Clay 4418 o Matt Clay
4419 4419
4420 +o Cliff Jefferies 4420 o Cliff Jefferies
4421 4421
4422 +o Geoff Hoff 4422 o Geoff Hoff
4423 4423
4424 +o Lennert Buytenhek 4424 o Lennert Buytenhek
4425 4425
4426 +o Al Viro 4426 o Al Viro
4427 4427
4428 +o Frank Klingenhoefer 4428 o Frank Klingenhoefer
4429 4429
4430 +o Livio Baldini Soares 4430 o Livio Baldini Soares
4431 4431
4432 +o Jon Burgess 4432 o Jon Burgess
4433 4433
4434 +o Petru Paler 4434 o Petru Paler
4435 4435
4436 +o Paul 4436 o Paul
4437 4437
4438 +o Chris Reahard 4438 o Chris Reahard
4439 4439
4440 +o Sverker Nilsson 4440 o Sverker Nilsson
4441 4441
4442 +o Gong Su 4442 o Gong Su
4443 4443
4444 +o johan verrept 4444 o johan verrept
4445 4445
4446 +o Bjorn Eriksson 4446 o Bjorn Eriksson
4447 4447
4448 +o Lorenzo Allegrucci 4448 o Lorenzo Allegrucci
4449 4449
4450 +o Muli Ben-Yehuda 4450 o Muli Ben-Yehuda
4451 4451
4452 +o David Mansfield 4452 o David Mansfield
4453 4453
4454 +o Howard Goff 4454 o Howard Goff
4455 4455
4456 +o Mike Anderson 4456 o Mike Anderson
4457 4457
4458 +o John Byrne 4458 o John Byrne
4459 4459
4460 +o Sapan J. Batia 4460 o Sapan J. Batia
4461 4461
4462 +o Iris Huang 4462 o Iris Huang
4463 4463
4464 +o Jan Hudec 4464 o Jan Hudec
4465 4465
4466 +o Voluspa 4466 o Voluspa
4467 4467
4468 4468
4469 4469
4470 4470
4471 1155..33.. BBuugglleettss aanndd cclleeaann--uuppss 4471 15.3. Buglets and clean-ups
4472 4472
4473 4473
4474 4474
4475 +o Dave Zarzycki 4475 o Dave Zarzycki
4476 4476
4477 +o Adam Lazur 4477 o Adam Lazur
4478 4478
4479 +o Boria Feigin 4479 o Boria Feigin
4480 4480
4481 +o Brian J. Murrell 4481 o Brian J. Murrell
4482 4482
4483 +o JS 4483 o JS
4484 4484
4485 +o Roman Zippel 4485 o Roman Zippel
4486 4486
4487 +o Wil Cooley 4487 o Wil Cooley
4488 4488
4489 +o Ayelet Shemesh 4489 o Ayelet Shemesh
4490 4490
4491 +o Will Dyson 4491 o Will Dyson
4492 4492
4493 +o Sverker Nilsson 4493 o Sverker Nilsson
4494 4494
4495 +o dvorak 4495 o dvorak
4496 4496
4497 +o v.naga srinivas 4497 o v.naga srinivas
4498 4498
4499 +o Shlomi Fish 4499 o Shlomi Fish
4500 4500
4501 +o Roger Binns 4501 o Roger Binns
4502 4502
4503 +o johan verrept 4503 o johan verrept
4504 4504
4505 +o MrChuoi 4505 o MrChuoi
4506 4506
4507 +o Peter Cleve 4507 o Peter Cleve
4508 4508
4509 +o Vincent Guffens 4509 o Vincent Guffens
4510 4510
4511 +o Nathan Scott 4511 o Nathan Scott
4512 4512
4513 +o Patrick Caulfield 4513 o Patrick Caulfield
4514 4514
4515 +o jbearce 4515 o jbearce
4516 4516
4517 +o Catalin Marinas 4517 o Catalin Marinas
4518 4518
4519 +o Shane Spencer 4519 o Shane Spencer
4520 4520
4521 +o Zou Min 4521 o Zou Min
4522 4522
4523 4523
4524 +o Ryan Boder 4524 o Ryan Boder
4525 4525
4526 +o Lorenzo Colitti 4526 o Lorenzo Colitti
4527 4527
4528 +o Gwendal Grignou 4528 o Gwendal Grignou
4529 4529
4530 +o Andre' Breiler 4530 o Andre' Breiler
4531 4531
4532 +o Tsutomu Yasuda 4532 o Tsutomu Yasuda
4533 4533
4534 4534
4535 4535
4536 1155..44.. CCaassee SSttuuddiieess 4536 15.4. Case Studies
4537 4537
4538 4538
4539 +o Jon Wright 4539 o Jon Wright
4540 4540
4541 +o William McEwan 4541 o William McEwan
4542 4542
4543 +o Michael Richardson 4543 o Michael Richardson
4544 4544
4545 4545
4546 4546
4547 1155..55.. OOtthheerr ccoonnttrriibbuuttiioonnss 4547 15.5. Other contributions
4548 4548
4549 4549
4550 Bill Carr <Bill.Carr at compaq.com> made the Red Hat mkrootfs script 4550 Bill Carr <Bill.Carr at compaq.com> made the Red Hat mkrootfs script