Commit 8a91db29 authored by Jonathan Neuschäfer's avatar Jonathan Neuschäfer Committed by Richard Weinberger

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: default avatarJonathan Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent 38b64aed
...@@ -134,13 +134,13 @@ ...@@ -134,13 +134,13 @@
______________________________________________________________________ ______________________________________________________________________
11.. IInnttrroodduuccttiioonn 1. Introduction
Welcome to User Mode Linux. It's going to be fun. Welcome to User Mode Linux. It's going to be fun.
11..11.. HHooww iiss UUsseerr MMooddee LLiinnuuxx DDiiffffeerreenntt?? 1.1. How is User Mode Linux Different?
Normally, the Linux Kernel talks straight to your hardware (video Normally, the Linux Kernel talks straight to your hardware (video
card, keyboard, hard drives, etc), and any programs which run ask the card, keyboard, hard drives, etc), and any programs which run ask the
...@@ -181,7 +181,7 @@ ...@@ -181,7 +181,7 @@
11..22.. WWhhyy WWoouulldd II WWaanntt UUsseerr MMooddee LLiinnuuxx?? 1.2. Why Would I Want User Mode Linux?
1. If User Mode Linux crashes, your host kernel is still fine. 1. If User Mode Linux crashes, your host kernel is still fine.
...@@ -206,12 +206,12 @@ ...@@ -206,12 +206,12 @@
22.. CCoommppiilliinngg tthhee kkeerrnneell aanndd mmoodduulleess 2. Compiling the kernel and modules
22..11.. CCoommppiilliinngg tthhee kkeerrnneell 2.1. Compiling the kernel
Compiling the user mode kernel is just like compiling any other Compiling the user mode kernel is just like compiling any other
...@@ -322,7 +322,7 @@ ...@@ -322,7 +322,7 @@
bug fixes and enhancements that have gone into subsequent releases. bug fixes and enhancements that have gone into subsequent releases.
22..22.. CCoommppiilliinngg aanndd iinnssttaalllliinngg kkeerrnneell mmoodduulleess 2.2. Compiling and installing kernel modules
UML modules are built in the same way as the native kernel (with the UML modules are built in the same way as the native kernel (with the
exception of the 'ARCH=um' that you always need for UML): exception of the 'ARCH=um' that you always need for UML):
...@@ -386,19 +386,19 @@ ...@@ -386,19 +386,19 @@
22..33.. CCoommppiilliinngg aanndd iinnssttaalllliinngg uummll__uuttiilliittiieess 2.3. Compiling and installing uml_utilities
Many features of the UML kernel require a user-space helper program, Many features of the UML kernel require a user-space helper program,
so a uml_utilities package is distributed separately from the kernel so a uml_utilities package is distributed separately from the kernel
patch which provides these helpers. Included within this is: patch which provides these helpers. Included within this is:
+o port-helper - Used by consoles which connect to xterms or ports o port-helper - Used by consoles which connect to xterms or ports
+o tunctl - Configuration tool to create and delete tap devices o tunctl - Configuration tool to create and delete tap devices
+o uml_net - Setuid binary for automatic tap device configuration o uml_net - Setuid binary for automatic tap device configuration
+o uml_switch - User-space virtual switch required for daemon o uml_switch - User-space virtual switch required for daemon
transport transport
The uml_utilities tree is compiled with: The uml_utilities tree is compiled with:
...@@ -423,11 +423,11 @@ ...@@ -423,11 +423,11 @@
33.. RRuunnnniinngg UUMMLL aanndd llooggggiinngg iinn 3. Running UML and logging in
33..11.. RRuunnnniinngg UUMMLL 3.1. Running UML
It runs on 2.2.15 or later, and all 2.4 kernels. It runs on 2.2.15 or later, and all 2.4 kernels.
...@@ -454,7 +454,7 @@ ...@@ -454,7 +454,7 @@
33..22.. LLooggggiinngg iinn 3.2. Logging in
...@@ -468,7 +468,7 @@ ...@@ -468,7 +468,7 @@
There are a couple of other ways to log in: There are a couple of other ways to log in:
+o On a virtual console o On a virtual console
...@@ -480,7 +480,7 @@ ...@@ -480,7 +480,7 @@
+o Over the serial line o Over the serial line
In the boot output, find a line that looks like: In the boot output, find a line that looks like:
...@@ -503,7 +503,7 @@ ...@@ -503,7 +503,7 @@
+o Over the net o Over the net
If the network is running, then you can telnet to the virtual If the network is running, then you can telnet to the virtual
...@@ -514,13 +514,13 @@ ...@@ -514,13 +514,13 @@
down and the process will exit. down and the process will exit.
33..33.. EExxaammpplleess 3.3. Examples
Here are some examples of UML in action: Here are some examples of UML in action:
+o A login session <http://user-mode-linux.sourceforge.net/login.html> o A login session <http://user-mode-linux.sourceforge.net/login.html>
+o A virtual network <http://user-mode-linux.sourceforge.net/net.html> o A virtual network <http://user-mode-linux.sourceforge.net/net.html>
...@@ -528,12 +528,12 @@ ...@@ -528,12 +528,12 @@
44.. UUMMLL oonn 22GG//22GG hhoossttss 4. UML on 2G/2G hosts
44..11.. IInnttrroodduuccttiioonn 4.1. Introduction
Most Linux machines are configured so that the kernel occupies the Most Linux machines are configured so that the kernel occupies the
...@@ -546,7 +546,7 @@ ...@@ -546,7 +546,7 @@
44..22.. TThhee pprroobblleemm 4.2. The problem
The prebuilt UML binaries on this site will not run on 2G/2G hosts The prebuilt UML binaries on this site will not run on 2G/2G hosts
...@@ -558,7 +558,7 @@ ...@@ -558,7 +558,7 @@
44..33.. TThhee ssoolluuttiioonn 4.3. The solution
The fix for this is to rebuild UML from source after enabling The fix for this is to rebuild UML from source after enabling
...@@ -576,7 +576,7 @@ ...@@ -576,7 +576,7 @@
55.. SSeettttiinngg uupp sseerriiaall lliinneess aanndd ccoonnssoolleess 5. Setting up serial lines and consoles
It is possible to attach UML serial lines and consoles to many types It is possible to attach UML serial lines and consoles to many types
...@@ -586,12 +586,12 @@ ...@@ -586,12 +586,12 @@
You can attach them to host ptys, ttys, file descriptors, and ports. You can attach them to host ptys, ttys, file descriptors, and ports.
This allows you to do things like This allows you to do things like
+o have a UML console appear on an unused host console, o have a UML console appear on an unused host console,
+o hook two virtual machines together by having one attach to a pty o hook two virtual machines together by having one attach to a pty
and having the other attach to the corresponding tty and having the other attach to the corresponding tty
+o make a virtual machine accessible from the net by attaching a o make a virtual machine accessible from the net by attaching a
console to a port on the host. console to a port on the host.
...@@ -599,7 +599,7 @@ ...@@ -599,7 +599,7 @@
55..11.. SSppeecciiffyyiinngg tthhee ddeevviiccee 5.1. Specifying the device
Devices are specified with "con" or "ssl" (console or serial line, Devices are specified with "con" or "ssl" (console or serial line,
respectively), optionally with a device number if you are talking respectively), optionally with a device number if you are talking
...@@ -626,13 +626,13 @@ ...@@ -626,13 +626,13 @@
55..22.. SSppeecciiffyyiinngg tthhee cchhaannnneell 5.2. Specifying the channel
There are a number of different types of channels to attach a UML There are a number of different types of channels to attach a UML
device to, each with a different way of specifying exactly what to device to, each with a different way of specifying exactly what to
attach to. attach to.
+o pseudo-terminals - device=pty pts terminals - device=pts o pseudo-terminals - device=pty pts terminals - device=pts
This will cause UML to allocate a free host pseudo-terminal for the This will cause UML to allocate a free host pseudo-terminal for the
...@@ -640,20 +640,20 @@ ...@@ -640,20 +640,20 @@
log. You access it by attaching a terminal program to the log. You access it by attaching a terminal program to the
corresponding tty: corresponding tty:
+o screen /dev/pts/n o screen /dev/pts/n
+o screen /dev/ttyxx o screen /dev/ttyxx
+o minicom -o -p /dev/ttyxx - minicom seems not able to handle pts o minicom -o -p /dev/ttyxx - minicom seems not able to handle pts
devices devices
+o kermit - start it up, 'open' the device, then 'connect' o kermit - start it up, 'open' the device, then 'connect'
+o terminals - device=tty:tty device file o terminals - device=tty:tty device file
This will make UML attach the device to the specified tty (i.e This will make UML attach the device to the specified tty (i.e
...@@ -672,7 +672,7 @@ ...@@ -672,7 +672,7 @@
+o xterms - device=xterm o xterms - device=xterm
UML will run an xterm and the device will be attached to it. UML will run an xterm and the device will be attached to it.
...@@ -681,7 +681,7 @@ ...@@ -681,7 +681,7 @@
+o Port - device=port:port number o Port - device=port:port number
This will attach the UML devices to the specified host port. This will attach the UML devices to the specified host port.
...@@ -725,7 +725,7 @@ ...@@ -725,7 +725,7 @@
+o already-existing file descriptors - device=file descriptor o already-existing file descriptors - device=file descriptor
If you set up a file descriptor on the UML command line, you can If you set up a file descriptor on the UML command line, you can
...@@ -743,7 +743,7 @@ ...@@ -743,7 +743,7 @@
+o Nothing - device=null o Nothing - device=null
This allows the device to be opened, in contrast to 'none', but This allows the device to be opened, in contrast to 'none', but
...@@ -754,7 +754,7 @@ ...@@ -754,7 +754,7 @@
+o None - device=none o None - device=none
This causes the device to disappear. This causes the device to disappear.
...@@ -785,7 +785,7 @@ ...@@ -785,7 +785,7 @@
55..33.. EExxaammpplleess 5.3. Examples
There are a number of interesting things you can do with this There are a number of interesting things you can do with this
capability. capability.
...@@ -838,7 +838,7 @@ ...@@ -838,7 +838,7 @@
prompt of the other virtual machine. prompt of the other virtual machine.
66.. SSeettttiinngg uupp tthhee nneettwwoorrkk 6. Setting up the network
...@@ -858,19 +858,19 @@ ...@@ -858,19 +858,19 @@
There are currently five transport types available for a UML virtual There are currently five transport types available for a UML virtual
machine to exchange packets with other hosts: machine to exchange packets with other hosts:
+o ethertap o ethertap
+o TUN/TAP o TUN/TAP
+o Multicast o Multicast
+o a switch daemon o a switch daemon
+o slip o slip
+o slirp o slirp
+o pcap o pcap
The TUN/TAP, ethertap, slip, and slirp transports allow a UML The TUN/TAP, ethertap, slip, and slirp transports allow a UML
instance to exchange packets with the host. They may be directed instance to exchange packets with the host. They may be directed
...@@ -893,28 +893,28 @@ ...@@ -893,28 +893,28 @@
With so many host transports, which one should you use? Here's when With so many host transports, which one should you use? Here's when
you should use each one: you should use each one:
+o ethertap - if you want access to the host networking and it is o ethertap - if you want access to the host networking and it is
running 2.2 running 2.2
+o TUN/TAP - if you want access to the host networking and it is o TUN/TAP - if you want access to the host networking and it is
running 2.4. Also, the TUN/TAP transport is able to use a running 2.4. Also, the TUN/TAP transport is able to use a
preconfigured device, allowing it to avoid using the setuid uml_net preconfigured device, allowing it to avoid using the setuid uml_net
helper, which is a security advantage. helper, which is a security advantage.
+o Multicast - if you want a purely virtual network and you don't want o Multicast - if you want a purely virtual network and you don't want
to set up anything but the UML to set up anything but the UML
+o a switch daemon - if you want a purely virtual network and you o a switch daemon - if you want a purely virtual network and you
don't mind running the daemon in order to get somewhat better don't mind running the daemon in order to get somewhat better
performance performance
+o slip - there is no particular reason to run the slip backend unless o slip - there is no particular reason to run the slip backend unless
ethertap and TUN/TAP are just not available for some reason ethertap and TUN/TAP are just not available for some reason
+o slirp - if you don't have root access on the host to setup o slirp - if you don't have root access on the host to setup
networking, or if you don't want to allocate an IP to your UML networking, or if you don't want to allocate an IP to your UML
+o pcap - not much use for actual network connectivity, but great for o pcap - not much use for actual network connectivity, but great for
monitoring traffic on the host monitoring traffic on the host
Ethertap is available on 2.4 and works fine. TUN/TAP is preferred Ethertap is available on 2.4 and works fine. TUN/TAP is preferred
...@@ -926,7 +926,7 @@ ...@@ -926,7 +926,7 @@
exploit the helper's root privileges. exploit the helper's root privileges.
66..11.. GGeenneerraall sseettuupp 6.1. General setup
First, you must have the virtual network enabled in your UML. If are First, you must have the virtual network enabled in your UML. If are
running a prebuilt kernel from this site, everything is already running a prebuilt kernel from this site, everything is already
...@@ -995,7 +995,7 @@ ...@@ -995,7 +995,7 @@
66..22.. UUsseerrssppaaccee ddaaeemmoonnss 6.2. Userspace daemons
You will likely need the setuid helper, or the switch daemon, or both. You will likely need the setuid helper, or the switch daemon, or both.
They are both installed with the RPM and deb, so if you've installed They are both installed with the RPM and deb, so if you've installed
...@@ -1011,7 +1011,7 @@ ...@@ -1011,7 +1011,7 @@
66..33.. SSppeecciiffyyiinngg eetthheerrnneett aaddddrreesssseess 6.3. Specifying ethernet addresses
Below, you will see that the TUN/TAP, ethertap, and daemon interfaces Below, you will see that the TUN/TAP, ethertap, and daemon interfaces
allow you to specify hardware addresses for the virtual ethernet allow you to specify hardware addresses for the virtual ethernet
...@@ -1023,11 +1023,11 @@ ...@@ -1023,11 +1023,11 @@
sufficient to guarantee a unique hardware address for the device. A sufficient to guarantee a unique hardware address for the device. A
couple of exceptions are: couple of exceptions are:
+o Another set of virtual ethernet devices are on the same network and o Another set of virtual ethernet devices are on the same network and
they are assigned hardware addresses using a different scheme which they are assigned hardware addresses using a different scheme which
may conflict with the UML IP address-based scheme may conflict with the UML IP address-based scheme
+o You aren't going to use the device for IP networking, so you don't o You aren't going to use the device for IP networking, so you don't
assign the device an IP address assign the device an IP address
If you let the driver provide the hardware address, you should make If you let the driver provide the hardware address, you should make
...@@ -1049,7 +1049,7 @@ ...@@ -1049,7 +1049,7 @@
66..44.. UUMMLL iinntteerrffaaccee sseettuupp 6.4. UML interface setup
Once the network devices have been described on the command line, you Once the network devices have been described on the command line, you
should boot UML and log in. should boot UML and log in.
...@@ -1131,7 +1131,7 @@ ...@@ -1131,7 +1131,7 @@
66..55.. MMuullttiiccaasstt 6.5. Multicast
The simplest way to set up a virtual network between multiple UMLs is The simplest way to set up a virtual network between multiple UMLs is
to use the mcast transport. This was written by Harald Welte and is to use the mcast transport. This was written by Harald Welte and is
...@@ -1194,7 +1194,7 @@ ...@@ -1194,7 +1194,7 @@
66..66.. TTUUNN//TTAAPP wwiitthh tthhee uummll__nneett hheellppeerr 6.6. TUN/TAP with the uml_net helper
TUN/TAP is the preferred mechanism on 2.4 to exchange packets with the TUN/TAP is the preferred mechanism on 2.4 to exchange packets with the
host. The TUN/TAP backend has been in UML since 2.4.9-3um. host. The TUN/TAP backend has been in UML since 2.4.9-3um.
...@@ -1247,10 +1247,10 @@ ...@@ -1247,10 +1247,10 @@
There are a couple potential problems with running the TUN/TAP There are a couple potential problems with running the TUN/TAP
transport on a 2.4 host kernel transport on a 2.4 host kernel
+o TUN/TAP seems not to work on 2.4.3 and earlier. Upgrade the host o TUN/TAP seems not to work on 2.4.3 and earlier. Upgrade the host
kernel or use the ethertap transport. kernel or use the ethertap transport.
+o With an upgraded kernel, TUN/TAP may fail with o With an upgraded kernel, TUN/TAP may fail with
File descriptor in bad state File descriptor in bad state
...@@ -1269,7 +1269,7 @@ ...@@ -1269,7 +1269,7 @@
66..77.. TTUUNN//TTAAPP wwiitthh aa pprreeccoonnffiigguurreedd ttaapp ddeevviiccee 6.7. TUN/TAP with a preconfigured tap device
If you prefer not to have UML use uml_net (which is somewhat If you prefer not to have UML use uml_net (which is somewhat
insecure), with UML 2.4.17-11, you can set up a TUN/TAP device insecure), with UML 2.4.17-11, you can set up a TUN/TAP device
...@@ -1277,7 +1277,7 @@ ...@@ -1277,7 +1277,7 @@
there is no need for root assistance. Setting up the device is done there is no need for root assistance. Setting up the device is done
as follows: as follows:
+o Create the device with tunctl (available from the UML utilities o Create the device with tunctl (available from the UML utilities
tarball) tarball)
...@@ -1291,7 +1291,7 @@ ...@@ -1291,7 +1291,7 @@
where uid is the user id or username that UML will be run as. This where uid is the user id or username that UML will be run as. This
will tell you what device was created. will tell you what device was created.
+o Configure the device IP (change IP addresses and device name to o Configure the device IP (change IP addresses and device name to
suit) suit)
...@@ -1303,7 +1303,7 @@ ...@@ -1303,7 +1303,7 @@
+o Set up routing and arping if desired - this is my recipe, there are o Set up routing and arping if desired - this is my recipe, there are
other ways of doing the same thing other ways of doing the same thing
...@@ -1338,7 +1338,7 @@ ...@@ -1338,7 +1338,7 @@
utility which reads the information from a config file and sets up utility which reads the information from a config file and sets up
devices at boot time. devices at boot time.
+o Rather than using up two IPs and ARPing for one of them, you can o Rather than using up two IPs and ARPing for one of them, you can
also provide direct access to your LAN by the UML by using a also provide direct access to your LAN by the UML by using a
bridge. bridge.
...@@ -1417,7 +1417,7 @@ ...@@ -1417,7 +1417,7 @@
Note that 'br0' should be setup using ifconfig with the existing IP Note that 'br0' should be setup using ifconfig with the existing IP
address of eth0, as eth0 no longer has its own IP. address of eth0, as eth0 no longer has its own IP.
+o o
Also, the /dev/net/tun device must be writable by the user running Also, the /dev/net/tun device must be writable by the user running
...@@ -1438,11 +1438,11 @@ ...@@ -1438,11 +1438,11 @@
devices and chgrp /dev/net/tun to that group with mode 664 or 660. devices and chgrp /dev/net/tun to that group with mode 664 or 660.
+o Once the device is set up, run UML with 'eth0=tuntap,device name' o Once the device is set up, run UML with 'eth0=tuntap,device name'
(i.e. 'eth0=tuntap,tap0') on the command line (or do it with the (i.e. 'eth0=tuntap,tap0') on the command line (or do it with the
mconsole config command). mconsole config command).
+o Bring the eth device up in UML and you're in business. o Bring the eth device up in UML and you're in business.
If you don't want that tap device any more, you can make it non- If you don't want that tap device any more, you can make it non-
persistent with persistent with
...@@ -1465,7 +1465,7 @@ ...@@ -1465,7 +1465,7 @@
66..88.. EEtthheerrttaapp 6.8. Ethertap
Ethertap is the general mechanism on 2.2 for userspace processes to Ethertap is the general mechanism on 2.2 for userspace processes to
exchange packets with the kernel. exchange packets with the kernel.
...@@ -1561,9 +1561,9 @@ ...@@ -1561,9 +1561,9 @@
66..99.. TThhee sswwiittcchh ddaaeemmoonn 6.9. The switch daemon
NNoottee: This is the daemon formerly known as uml_router, but which was Note: This is the daemon formerly known as uml_router, but which was
renamed so the network weenies of the world would stop growling at me. renamed so the network weenies of the world would stop growling at me.
...@@ -1649,7 +1649,7 @@ ...@@ -1649,7 +1649,7 @@
66..1100.. SSlliipp 6.10. Slip
Slip is another, less general, mechanism for a process to communicate Slip is another, less general, mechanism for a process to communicate
with the host networking. In contrast to the ethertap interface, with the host networking. In contrast to the ethertap interface,
...@@ -1681,7 +1681,7 @@ ...@@ -1681,7 +1681,7 @@
66..1111.. SSlliirrpp 6.11. Slirp
slirp uses an external program, usually /usr/bin/slirp, to provide IP slirp uses an external program, usually /usr/bin/slirp, to provide IP
only networking connectivity through the host. This is similar to IP only networking connectivity through the host. This is similar to IP
...@@ -1737,7 +1737,7 @@ ...@@ -1737,7 +1737,7 @@
66..1122.. ppccaapp 6.12. pcap
The pcap transport is attached to a UML ethernet device on the command The pcap transport is attached to a UML ethernet device on the command
line or with uml_mconsole with the following syntax: line or with uml_mconsole with the following syntax:
...@@ -1777,7 +1777,7 @@ ...@@ -1777,7 +1777,7 @@
66..1133.. SSeettttiinngg uupp tthhee hhoosstt yyoouurrsseellff 6.13. Setting up the host yourself
If you don't specify an address for the host side of the ethertap or If you don't specify an address for the host side of the ethertap or
slip device, UML won't do any setup on the host. So this is what is slip device, UML won't do any setup on the host. So this is what is
...@@ -1785,7 +1785,7 @@ ...@@ -1785,7 +1785,7 @@
192.168.0.251 and a UML-side IP of 192.168.0.250 - adjust to suit your 192.168.0.251 and a UML-side IP of 192.168.0.250 - adjust to suit your
own network): own network):
+o The device needs to be configured with its IP address. Tap devices o The device needs to be configured with its IP address. Tap devices
are also configured with an mtu of 1484. Slip devices are are also configured with an mtu of 1484. Slip devices are
configured with a point-to-point address pointing at the UML ip configured with a point-to-point address pointing at the UML ip
address. address.
...@@ -1805,7 +1805,7 @@ ...@@ -1805,7 +1805,7 @@
+o If a tap device is being set up, a route is set to the UML IP. o If a tap device is being set up, a route is set to the UML IP.
UML# route add -host 192.168.0.250 gw 192.168.0.251 UML# route add -host 192.168.0.250 gw 192.168.0.251
...@@ -1814,7 +1814,7 @@ ...@@ -1814,7 +1814,7 @@
+o To allow other hosts on your network to see the virtual machine, o To allow other hosts on your network to see the virtual machine,
proxy arp is set up for it. proxy arp is set up for it.
...@@ -1824,7 +1824,7 @@ ...@@ -1824,7 +1824,7 @@
+o Finally, the host is set up to route packets. o Finally, the host is set up to route packets.
host# echo 1 > /proc/sys/net/ipv4/ip_forward host# echo 1 > /proc/sys/net/ipv4/ip_forward
...@@ -1838,12 +1838,12 @@ ...@@ -1838,12 +1838,12 @@
77.. SShhaarriinngg FFiilleessyysstteemmss bbeettwweeeenn VViirrttuuaall MMaacchhiinneess 7. Sharing Filesystems between Virtual Machines
77..11.. AA wwaarrnniinngg 7.1. A warning
Don't attempt to share filesystems simply by booting two UMLs from the Don't attempt to share filesystems simply by booting two UMLs from the
same file. That's the same thing as booting two physical machines same file. That's the same thing as booting two physical machines
...@@ -1851,7 +1851,7 @@ ...@@ -1851,7 +1851,7 @@
77..22.. UUssiinngg llaayyeerreedd bblloocckk ddeevviicceess 7.2. Using layered block devices
The way to share a filesystem between two virtual machines is to use The way to share a filesystem between two virtual machines is to use
the copy-on-write (COW) layering capability of the ubd block driver. the copy-on-write (COW) layering capability of the ubd block driver.
...@@ -1896,7 +1896,7 @@ ...@@ -1896,7 +1896,7 @@
77..33.. NNoottee!! 7.3. Note!
When checking the size of the COW file in order to see the gobs of When checking the size of the COW file in order to see the gobs of
space that you're saving, make sure you use 'ls -ls' to see the actual space that you're saving, make sure you use 'ls -ls' to see the actual
...@@ -1926,7 +1926,7 @@ ...@@ -1926,7 +1926,7 @@
77..44.. AAnnootthheerr wwaarrnniinngg 7.4. Another warning
Once a filesystem is being used as a readonly backing file for a COW Once a filesystem is being used as a readonly backing file for a COW
file, do not boot directly from it or modify it in any way. Doing so file, do not boot directly from it or modify it in any way. Doing so
...@@ -1952,7 +1952,7 @@ ...@@ -1952,7 +1952,7 @@
77..55.. uummll__mmoooo :: MMeerrggiinngg aa CCOOWW ffiillee wwiitthh iittss bbaacckkiinngg ffiillee 7.5. uml_moo : Merging a COW file with its backing file
Depending on how you use UML and COW devices, it may be advisable to Depending on how you use UML and COW devices, it may be advisable to
merge the changes in the COW file into the backing file every once in merge the changes in the COW file into the backing file every once in
...@@ -2001,7 +2001,7 @@ ...@@ -2001,7 +2001,7 @@
88.. CCrreeaattiinngg ffiilleessyysstteemmss 8. Creating filesystems
You may want to create and mount new UML filesystems, either because You may want to create and mount new UML filesystems, either because
...@@ -2015,7 +2015,7 @@ ...@@ -2015,7 +2015,7 @@
should be easy to translate to the filesystem of your choice. should be easy to translate to the filesystem of your choice.
88..11.. CCrreeaattee tthhee ffiilleessyysstteemm ffiillee 8.1. Create the filesystem file
dd is your friend. All you need to do is tell dd to create an empty dd is your friend. All you need to do is tell dd to create an empty
file of the appropriate size. I usually make it sparse to save time file of the appropriate size. I usually make it sparse to save time
...@@ -2032,7 +2032,7 @@ ...@@ -2032,7 +2032,7 @@
88..22.. AAssssiiggnn tthhee ffiillee ttoo aa UUMMLL ddeevviiccee 8.2. Assign the file to a UML device
Add an argument like the following to the UML command line: Add an argument like the following to the UML command line:
...@@ -2045,7 +2045,7 @@ ...@@ -2045,7 +2045,7 @@
88..33.. CCrreeaattiinngg aanndd mmoouunnttiinngg tthhee ffiilleessyysstteemm 8.3. Creating and mounting the filesystem
Make sure that the filesystem is available, either by being built into Make sure that the filesystem is available, either by being built into
the kernel, or available as a module, then boot up UML and log in. If the kernel, or available as a module, then boot up UML and log in. If
...@@ -2096,7 +2096,7 @@ ...@@ -2096,7 +2096,7 @@
99.. HHoosstt ffiillee aacccceessss 9. Host file access
If you want to access files on the host machine from inside UML, you If you want to access files on the host machine from inside UML, you
...@@ -2112,7 +2112,7 @@ ...@@ -2112,7 +2112,7 @@
files contained in it just as you would on the host. files contained in it just as you would on the host.
99..11.. UUssiinngg hhoossttffss 9.1. Using hostfs
To begin with, make sure that hostfs is available inside the virtual To begin with, make sure that hostfs is available inside the virtual
machine with machine with
...@@ -2151,7 +2151,7 @@ ...@@ -2151,7 +2151,7 @@
99..22.. hhoossttffss aass tthhee rroooott ffiilleessyysstteemm 9.2. hostfs as the root filesystem
It's possible to boot from a directory hierarchy on the host using It's possible to boot from a directory hierarchy on the host using
hostfs rather than using the standard filesystem in a file. hostfs rather than using the standard filesystem in a file.
...@@ -2194,20 +2194,20 @@ ...@@ -2194,20 +2194,20 @@
UML should then boot as it does normally. UML should then boot as it does normally.
99..33.. BBuuiillddiinngg hhoossttffss 9.3. Building hostfs
If you need to build hostfs because it's not in your kernel, you have If you need to build hostfs because it's not in your kernel, you have
two choices: two choices:
+o Compiling hostfs into the kernel: o Compiling hostfs into the kernel:
Reconfigure the kernel and set the 'Host filesystem' option under Reconfigure the kernel and set the 'Host filesystem' option under
+o Compiling hostfs as a module: o Compiling hostfs as a module:
Reconfigure the kernel and set the 'Host filesystem' option under Reconfigure the kernel and set the 'Host filesystem' option under
...@@ -2228,7 +2228,7 @@ ...@@ -2228,7 +2228,7 @@
1100.. TThhee MMaannaaggeemmeenntt CCoonnssoollee 10. The Management Console
...@@ -2240,15 +2240,15 @@ ...@@ -2240,15 +2240,15 @@
There are a number of things you can do with the mconsole interface: There are a number of things you can do with the mconsole interface:
+o get the kernel version o get the kernel version
+o add and remove devices o add and remove devices
+o halt or reboot the machine o halt or reboot the machine
+o Send SysRq commands o Send SysRq commands
+o Pause and resume the UML o Pause and resume the UML
You need the mconsole client (uml_mconsole) which is present in CVS You need the mconsole client (uml_mconsole) which is present in CVS
...@@ -2300,28 +2300,28 @@ ...@@ -2300,28 +2300,28 @@
You'll get a prompt, at which you can run one of these commands: You'll get a prompt, at which you can run one of these commands:
+o version o version
+o halt o halt
+o reboot o reboot
+o config o config
+o remove o remove
+o sysrq o sysrq
+o help o help
+o cad o cad
+o stop o stop
+o go o go
1100..11.. vveerrssiioonn 10.1. version
This takes no arguments. It prints the UML version. This takes no arguments. It prints the UML version.
...@@ -2342,7 +2342,7 @@ ...@@ -2342,7 +2342,7 @@
1100..22.. hhaalltt aanndd rreebboooott 10.2. halt and reboot
These take no arguments. They shut the machine down immediately, with These take no arguments. They shut the machine down immediately, with
no syncing of disks and no clean shutdown of userspace. So, they are no syncing of disks and no clean shutdown of userspace. So, they are
...@@ -2357,7 +2357,7 @@ ...@@ -2357,7 +2357,7 @@
1100..33.. ccoonnffiigg 10.3. config
"config" adds a new device to the virtual machine. Currently the ubd "config" adds a new device to the virtual machine. Currently the ubd
and network drivers support this. It takes one argument, which is the and network drivers support this. It takes one argument, which is the
...@@ -2378,7 +2378,7 @@ ...@@ -2378,7 +2378,7 @@
1100..44.. rreemmoovvee 10.4. remove
"remove" deletes a device from the system. Its argument is just the "remove" deletes a device from the system. Its argument is just the
name of the device to be removed. The device must be idle in whatever name of the device to be removed. The device must be idle in whatever
...@@ -2397,7 +2397,7 @@ ...@@ -2397,7 +2397,7 @@
1100..55.. ssyyssrrqq 10.5. sysrq
This takes one argument, which is a single letter. It calls the This takes one argument, which is a single letter. It calls the
generic kernel's SysRq driver, which does whatever is called for by generic kernel's SysRq driver, which does whatever is called for by
...@@ -2407,14 +2407,14 @@ ...@@ -2407,14 +2407,14 @@
1100..66.. hheellpp 10.6. help
"help" returns a string listing the valid commands and what each one "help" returns a string listing the valid commands and what each one
does. does.
1100..77.. ccaadd 10.7. cad
This invokes the Ctl-Alt-Del action on init. What exactly this ends This invokes the Ctl-Alt-Del action on init. What exactly this ends
up doing is up to /etc/inittab. Normally, it reboots the machine. up doing is up to /etc/inittab. Normally, it reboots the machine.
...@@ -2432,7 +2432,7 @@ ...@@ -2432,7 +2432,7 @@
1100..88.. ssttoopp 10.8. stop
This puts the UML in a loop reading mconsole requests until a 'go' This puts the UML in a loop reading mconsole requests until a 'go'
mconsole command is received. This is very useful for making backups mconsole command is received. This is very useful for making backups
...@@ -2448,7 +2448,7 @@ ...@@ -2448,7 +2448,7 @@
1100..99.. ggoo 10.9. go
This resumes a UML after being paused by a 'stop' command. Note that This resumes a UML after being paused by a 'stop' command. Note that
when the UML has resumed, TCP connections may have timed out and if when the UML has resumed, TCP connections may have timed out and if
...@@ -2462,10 +2462,10 @@ ...@@ -2462,10 +2462,10 @@
1111.. KKeerrnneell ddeebbuuggggiinngg 11. Kernel debugging
NNoottee:: The interface that makes debugging, as described here, possible Note: The interface that makes debugging, as described here, possible
is present in 2.4.0-test6 kernels and later. is present in 2.4.0-test6 kernels and later.
...@@ -2485,7 +2485,7 @@ ...@@ -2485,7 +2485,7 @@
1111..11.. SSttaarrttiinngg tthhee kkeerrnneell uunnddeerr ggddbb 11.1. Starting the kernel under gdb
You can have the kernel running under the control of gdb from the You can have the kernel running under the control of gdb from the
beginning by putting 'debug' on the command line. You will get an beginning by putting 'debug' on the command line. You will get an
...@@ -2498,7 +2498,7 @@ ...@@ -2498,7 +2498,7 @@
There is a transcript of a debugging session here <debug- There is a transcript of a debugging session here <debug-
session.html> , with breakpoints being set in the scheduler and in an session.html> , with breakpoints being set in the scheduler and in an
interrupt handler. interrupt handler.
1111..22.. EExxaammiinniinngg sslleeeeppiinngg pprroocceesssseess 11.2. Examining sleeping processes
Not every bug is evident in the currently running process. Sometimes, Not every bug is evident in the currently running process. Sometimes,
processes hang in the kernel when they shouldn't because they've processes hang in the kernel when they shouldn't because they've
...@@ -2516,7 +2516,7 @@ ...@@ -2516,7 +2516,7 @@
Now what you do is this: Now what you do is this:
+o detach from the current thread o detach from the current thread
(UML gdb) det (UML gdb) det
...@@ -2525,7 +2525,7 @@ ...@@ -2525,7 +2525,7 @@
+o attach to the thread you are interested in o attach to the thread you are interested in
(UML gdb) att <host pid> (UML gdb) att <host pid>
...@@ -2534,7 +2534,7 @@ ...@@ -2534,7 +2534,7 @@
+o look at its stack and anything else of interest o look at its stack and anything else of interest
(UML gdb) bt (UML gdb) bt
...@@ -2545,7 +2545,7 @@ ...@@ -2545,7 +2545,7 @@
Note that you can't do anything at this point that requires that a Note that you can't do anything at this point that requires that a
process execute, e.g. calling a function process execute, e.g. calling a function
+o when you're done looking at that process, reattach to the current o when you're done looking at that process, reattach to the current
thread and continue it thread and continue it
...@@ -2569,12 +2569,12 @@ ...@@ -2569,12 +2569,12 @@
1111..33.. RRuunnnniinngg dddddd oonn UUMMLL 11.3. Running ddd on UML
ddd works on UML, but requires a special kludge. The process goes ddd works on UML, but requires a special kludge. The process goes
like this: like this:
+o Start ddd o Start ddd
host% ddd linux host% ddd linux
...@@ -2583,14 +2583,14 @@ ...@@ -2583,14 +2583,14 @@
+o With ps, get the pid of the gdb that ddd started. You can ask the o With ps, get the pid of the gdb that ddd started. You can ask the
gdb to tell you, but for some reason that confuses things and gdb to tell you, but for some reason that confuses things and
causes a hang. causes a hang.
+o run UML with 'debug=parent gdb-pid=<pid>' added to the command line o run UML with 'debug=parent gdb-pid=<pid>' added to the command line
- it will just sit there after you hit return - it will just sit there after you hit return
+o type 'att 1' to the ddd gdb and you will see something like o type 'att 1' to the ddd gdb and you will see something like
0xa013dc51 in __kill () 0xa013dc51 in __kill ()
...@@ -2602,12 +2602,12 @@ ...@@ -2602,12 +2602,12 @@
+o At this point, type 'c', UML will boot up, and you can use ddd just o At this point, type 'c', UML will boot up, and you can use ddd just
as you do on any other process. as you do on any other process.
1111..44.. DDeebbuuggggiinngg mmoodduulleess 11.4. Debugging modules
gdb has support for debugging code which is dynamically loaded into gdb has support for debugging code which is dynamically loaded into
the process. This support is what is needed to debug kernel modules the process. This support is what is needed to debug kernel modules
...@@ -2823,7 +2823,7 @@ ...@@ -2823,7 +2823,7 @@
1111..55.. AAttttaacchhiinngg ggddbb ttoo tthhee kkeerrnneell 11.5. Attaching gdb to the kernel
If you don't have the kernel running under gdb, you can attach gdb to If you don't have the kernel running under gdb, you can attach gdb to
it later by sending the tracing thread a SIGUSR1. The first line of it later by sending the tracing thread a SIGUSR1. The first line of
...@@ -2857,7 +2857,7 @@ ...@@ -2857,7 +2857,7 @@
1111..66.. UUssiinngg aalltteerrnnaattee ddeebbuuggggeerrss 11.6. Using alternate debuggers
UML has support for attaching to an already running debugger rather UML has support for attaching to an already running debugger rather
than starting gdb itself. This is present in CVS as of 17 Apr 2001. than starting gdb itself. This is present in CVS as of 17 Apr 2001.
...@@ -2886,7 +2886,7 @@ ...@@ -2886,7 +2886,7 @@
An example of an alternate debugger is strace. You can strace the An example of an alternate debugger is strace. You can strace the
actual kernel as follows: actual kernel as follows:
+o Run the following in a shell o Run the following in a shell
host% host%
...@@ -2894,10 +2894,10 @@ ...@@ -2894,10 +2894,10 @@
+o Run UML with 'debug' and 'gdb-pid=<pid>' with the pid printed out o Run UML with 'debug' and 'gdb-pid=<pid>' with the pid printed out
by the previous command by the previous command
+o Hit return in the shell, and UML will start running, and strace o Hit return in the shell, and UML will start running, and strace
output will start accumulating in the output file. output will start accumulating in the output file.
Note that this is different from running Note that this is different from running
...@@ -2917,9 +2917,9 @@ ...@@ -2917,9 +2917,9 @@
1122.. KKeerrnneell ddeebbuuggggiinngg eexxaammpplleess 12. Kernel debugging examples
1122..11.. TThhee ccaassee ooff tthhee hhuunngg ffsscckk 12.1. The case of the hung fsck
When booting up the kernel, fsck failed, and dropped me into a shell When booting up the kernel, fsck failed, and dropped me into a shell
to fix things up. I ran fsck -y, which hung: to fix things up. I ran fsck -y, which hung:
...@@ -3154,9 +3154,9 @@ ...@@ -3154,9 +3154,9 @@
The interesting things here are : The interesting things here are :
+o There are two segfaults on this stack (frames 9 and 14) o There are two segfaults on this stack (frames 9 and 14)
+o The first faulting address (frame 11) is 0x50000800 o The first faulting address (frame 11) is 0x50000800
(gdb) p (void *)1342179328 (gdb) p (void *)1342179328
$16 = (void *) 0x50000800 $16 = (void *) 0x50000800
...@@ -3399,7 +3399,7 @@ ...@@ -3399,7 +3399,7 @@
on will be somewhat clearer. on will be somewhat clearer.
1122..22.. EEppiissooddee 22:: TThhee ccaassee ooff tthhee hhuunngg ffsscckk 12.2. Episode 2: The case of the hung fsck
After setting a trap in the SEGV handler for accesses to the signal After setting a trap in the SEGV handler for accesses to the signal
thread's stack, I reran the kernel. thread's stack, I reran the kernel.
...@@ -3788,12 +3788,12 @@ ...@@ -3788,12 +3788,12 @@
1133.. WWhhaatt ttoo ddoo wwhheenn UUMMLL ddooeessnn''tt wwoorrkk 13. What to do when UML doesn't work
1133..11.. SSttrraannggee ccoommppiillaattiioonn eerrrroorrss wwhheenn yyoouu bbuuiilldd ffrroomm ssoouurrccee 13.1. Strange compilation errors when you build from source
As of test11, it is necessary to have "ARCH=um" in the environment or As of test11, it is necessary to have "ARCH=um" in the environment or
on the make command line for all steps in building UML, including on the make command line for all steps in building UML, including
...@@ -3824,8 +3824,8 @@ ...@@ -3824,8 +3824,8 @@
1133..33.. AA vvaarriieettyy ooff ppaanniiccss aanndd hhaannggss wwiitthh //ttmmpp oonn aa rreeiisseerrffss ffiilleessyyss-- 13.3. A variety of panics and hangs with /tmp on a reiserfs filesys-
tteemm tem
I saw this on reiserfs 3.5.21 and it seems to be fixed in 3.5.27. I saw this on reiserfs 3.5.21 and it seems to be fixed in 3.5.27.
Panics preceded by Panics preceded by
...@@ -3842,8 +3842,8 @@ ...@@ -3842,8 +3842,8 @@
1133..44.. TThhee ccoommppiillee ffaaiillss wwiitthh eerrrroorrss aabboouutt ccoonnfflliiccttiinngg ttyyppeess ffoorr 13.4. The compile fails with errors about conflicting types for
''ooppeenn'',, ''dduupp'',, aanndd ''wwaaiittppiidd'' 'open', 'dup', and 'waitpid'
This happens when you build in /usr/src/linux. The UML build makes This happens when you build in /usr/src/linux. The UML build makes
the include/asm link point to include/asm-um. /usr/include/asm points the include/asm link point to include/asm-um. /usr/include/asm points
...@@ -3854,14 +3854,14 @@ ...@@ -3854,14 +3854,14 @@
1133..55.. UUMMLL ddooeessnn''tt wwoorrkk wwhheenn //ttmmpp iiss aann NNFFSS ffiilleessyysstteemm 13.5. UML doesn't work when /tmp is an NFS filesystem
This seems to be a similar situation with the ReiserFS problem above. This seems to be a similar situation with the ReiserFS problem above.
Some versions of NFS seems not to handle mmap correctly, which UML Some versions of NFS seems not to handle mmap correctly, which UML
depends on. The workaround is have /tmp be a non-NFS directory. depends on. The workaround is have /tmp be a non-NFS directory.
1133..66.. UUMMLL hhaannggss oonn bboooott wwhheenn ccoommppiilleedd wwiitthh ggpprrooff ssuuppppoorrtt 13.6. UML hangs on boot when compiled with gprof support
If you build UML with gprof support and, early in the boot, it does If you build UML with gprof support and, early in the boot, it does
this this
...@@ -3878,7 +3878,7 @@ ...@@ -3878,7 +3878,7 @@
1133..77.. ssyyssllooggdd ddiieess wwiitthh aa SSIIGGTTEERRMM oonn ssttaarrttuupp 13.7. syslogd dies with a SIGTERM on startup
The exact boot error depends on the distribution that you're booting, The exact boot error depends on the distribution that you're booting,
but Debian produces this: but Debian produces this:
...@@ -3897,17 +3897,17 @@ ...@@ -3897,17 +3897,17 @@
1133..88.. TTUUNN//TTAAPP nneettwwoorrkkiinngg ddooeessnn''tt wwoorrkk oonn aa 22..44 hhoosstt 13.8. TUN/TAP networking doesn't work on a 2.4 host
There are a couple of problems which were There are a couple of problems which were
<http://www.geocrawler.com/lists/3/SourceForge/597/0/> name="pointed <http://www.geocrawler.com/lists/3/SourceForge/597/0/> name="pointed
out"> by Tim Robinson <timro at trkr dot net> out"> by Tim Robinson <timro at trkr dot net>
+o It doesn't work on hosts running 2.4.7 (or thereabouts) or earlier. o It doesn't work on hosts running 2.4.7 (or thereabouts) or earlier.
The fix is to upgrade to something more recent and then read the The fix is to upgrade to something more recent and then read the
next item. next item.
+o If you see o If you see
File descriptor in bad state File descriptor in bad state
...@@ -3921,8 +3921,8 @@ ...@@ -3921,8 +3921,8 @@
1133..99.. YYoouu ccaann nneettwwoorrkk ttoo tthhee hhoosstt bbuutt nnoott ttoo ootthheerr mmaacchhiinneess oonn tthhee 13.9. You can network to the host but not to other machines on the
nneett net
If you can connect to the host, and the host can connect to UML, but If you can connect to the host, and the host can connect to UML, but
you cannot connect to any other machines, then you may need to enable you cannot connect to any other machines, then you may need to enable
...@@ -3972,7 +3972,7 @@ ...@@ -3972,7 +3972,7 @@
1133..1100.. II hhaavvee nnoo rroooott aanndd II wwaanntt ttoo ssccrreeaamm 13.10. I have no root and I want to scream
Thanks to Birgit Wahlich for telling me about this strange one. It Thanks to Birgit Wahlich for telling me about this strange one. It
turns out that there's a limit of six environment variables on the turns out that there's a limit of six environment variables on the
...@@ -3987,7 +3987,7 @@ ...@@ -3987,7 +3987,7 @@
1133..1111.. UUMMLL bbuuiilldd ccoonnfflliicctt bbeettwweeeenn ppttrraaccee..hh aanndd uuccoonntteexxtt..hh 13.11. UML build conflict between ptrace.h and ucontext.h
On some older systems, /usr/include/asm/ptrace.h and On some older systems, /usr/include/asm/ptrace.h and
/usr/include/sys/ucontext.h define the same names. So, when they're /usr/include/sys/ucontext.h define the same names. So, when they're
...@@ -4007,7 +4007,7 @@ ...@@ -4007,7 +4007,7 @@
1133..1122.. TThhee UUMMLL BBooggooMMiippss iiss eexxaaccttllyy hhaallff tthhee hhoosstt''ss BBooggooMMiippss 13.12. The UML BogoMips is exactly half the host's BogoMips
On i386 kernels, there are two ways of running the loop that is used On i386 kernels, there are two ways of running the loop that is used
to calculate the BogoMips rating, using the TSC if it's there or using to calculate the BogoMips rating, using the TSC if it's there or using
...@@ -4019,7 +4019,7 @@ ...@@ -4019,7 +4019,7 @@
1133..1133.. WWhheenn yyoouu rruunn UUMMLL,, iitt iimmmmeeddiiaatteellyy sseeggffaauullttss 13.13. When you run UML, it immediately segfaults
If the host is configured with the 2G/2G address space split, that's If the host is configured with the 2G/2G address space split, that's
why. See ``UML on 2G/2G hosts'' for the details on getting UML to why. See ``UML on 2G/2G hosts'' for the details on getting UML to
...@@ -4027,7 +4027,7 @@ ...@@ -4027,7 +4027,7 @@
1133..1144.. xxtteerrmmss aappppeeaarr,, tthheenn iimmmmeeddiiaatteellyy ddiissaappppeeaarr 13.14. xterms appear, then immediately disappear
If you're running an up to date kernel with an old release of If you're running an up to date kernel with an old release of
uml_utilities, the port-helper program will not work properly, so uml_utilities, the port-helper program will not work properly, so
...@@ -4039,7 +4039,7 @@ ...@@ -4039,7 +4039,7 @@
1133..1155.. AAnnyy ootthheerr ppaanniicc,, hhaanngg,, oorr ssttrraannggee bbeehhaavviioorr 13.15. Any other panic, hang, or strange behavior
If you're seeing truly strange behavior, such as hangs or panics that If you're seeing truly strange behavior, such as hangs or panics that
happen in random places, or you try running the debugger to see what's happen in random places, or you try running the debugger to see what's
...@@ -4059,7 +4059,7 @@ ...@@ -4059,7 +4059,7 @@
If you want to be super-helpful, read ``Diagnosing Problems'' and If you want to be super-helpful, read ``Diagnosing Problems'' and
follow the instructions contained therein. follow the instructions contained therein.
1144.. DDiiaaggnnoossiinngg PPrroobblleemmss 14. Diagnosing Problems
If you get UML to crash, hang, or otherwise misbehave, you should If you get UML to crash, hang, or otherwise misbehave, you should
...@@ -4078,7 +4078,7 @@ ...@@ -4078,7 +4078,7 @@
``Kernel debugging'' UML first. ``Kernel debugging'' UML first.
1144..11.. CCaassee 11 :: NNoorrmmaall kkeerrnneell ppaanniiccss 14.1. Case 1 : Normal kernel panics
The most common case is for a normal thread to panic. To debug this, The most common case is for a normal thread to panic. To debug this,
you will need to run it under the debugger (add 'debug' to the command you will need to run it under the debugger (add 'debug' to the command
...@@ -4128,7 +4128,7 @@ ...@@ -4128,7 +4128,7 @@
to get that information from the faulting ip. to get that information from the faulting ip.
1144..22.. CCaassee 22 :: TTrraacciinngg tthhrreeaadd ppaanniiccss 14.2. Case 2 : Tracing thread panics
The less common and more painful case is when the tracing thread The less common and more painful case is when the tracing thread
panics. In this case, the kernel debugger will be useless because it panics. In this case, the kernel debugger will be useless because it
...@@ -4161,7 +4161,7 @@ ...@@ -4161,7 +4161,7 @@
backtrace in and wait for our crack debugging team to fix the problem. backtrace in and wait for our crack debugging team to fix the problem.
1144..33.. CCaassee 33 :: TTrraacciinngg tthhrreeaadd ppaanniiccss ccaauusseedd bbyy ootthheerr tthhrreeaaddss 14.3. Case 3 : Tracing thread panics caused by other threads
However, there are cases where the misbehavior of another thread However, there are cases where the misbehavior of another thread
caused the problem. The most common panic of this type is: caused the problem. The most common panic of this type is:
...@@ -4227,7 +4227,7 @@ ...@@ -4227,7 +4227,7 @@
1144..44.. CCaassee 44 :: HHaannggss 14.4. Case 4 : Hangs
Hangs seem to be fairly rare, but they sometimes happen. When a hang Hangs seem to be fairly rare, but they sometimes happen. When a hang
happens, we need a backtrace from the offending process. Run the happens, we need a backtrace from the offending process. Run the
...@@ -4257,7 +4257,7 @@ ...@@ -4257,7 +4257,7 @@
1155.. TThhaannkkss 15. Thanks
A number of people have helped this project in various ways, and this A number of people have helped this project in various ways, and this
...@@ -4274,20 +4274,20 @@ ...@@ -4274,20 +4274,20 @@
bookkeeping lapses and I forget about contributions. bookkeeping lapses and I forget about contributions.
1155..11.. CCooddee aanndd DDooccuummeennttaattiioonn 15.1. Code and Documentation
Rusty Russell <rusty at linuxcare.com.au> - Rusty Russell <rusty at linuxcare.com.au> -
+o wrote the HOWTO <http://user-mode- o wrote the HOWTO <http://user-mode-
linux.sourceforge.net/UserModeLinux-HOWTO.html> linux.sourceforge.net/UserModeLinux-HOWTO.html>
+o prodded me into making this project official and putting it on o prodded me into making this project official and putting it on
SourceForge SourceForge
+o came up with the way cool UML logo <http://user-mode- o came up with the way cool UML logo <http://user-mode-
linux.sourceforge.net/uml-small.png> linux.sourceforge.net/uml-small.png>
+o redid the config process o redid the config process
Peter Moulder <reiter at netspace.net.au> - Fixed my config and build Peter Moulder <reiter at netspace.net.au> - Fixed my config and build
...@@ -4296,18 +4296,18 @@ ...@@ -4296,18 +4296,18 @@
Bill Stearns <wstearns at pobox.com> - Bill Stearns <wstearns at pobox.com> -
+o HOWTO updates o HOWTO updates
+o lots of bug reports o lots of bug reports
+o lots of testing o lots of testing
+o dedicated a box (uml.ists.dartmouth.edu) to support UML development o dedicated a box (uml.ists.dartmouth.edu) to support UML development
+o wrote the mkrootfs script, which allows bootable filesystems of o wrote the mkrootfs script, which allows bootable filesystems of
RPM-based distributions to be cranked out RPM-based distributions to be cranked out
+o cranked out a large number of filesystems with said script o cranked out a large number of filesystems with said script
Jim Leu <jleu at mindspring.com> - Wrote the virtual ethernet driver Jim Leu <jleu at mindspring.com> - Wrote the virtual ethernet driver
...@@ -4375,176 +4375,176 @@ ...@@ -4375,176 +4375,176 @@
David Coulson <http://davidcoulson.net> - David Coulson <http://davidcoulson.net> -
+o Set up the usermodelinux.org <http://usermodelinux.org> site, o Set up the usermodelinux.org <http://usermodelinux.org> site,
which is a great way of keeping the UML user community on top of which is a great way of keeping the UML user community on top of
UML goings-on. UML goings-on.
+o Site documentation and updates o Site documentation and updates
+o Nifty little UML management daemon UMLd o Nifty little UML management daemon UMLd
<http://uml.openconsultancy.com/umld/> <http://uml.openconsultancy.com/umld/>
+o Lots of testing and bug reports o Lots of testing and bug reports
1155..22.. FFlluusshhiinngg oouutt bbuuggss 15.2. Flushing out bugs
+o Yuri Pudgorodsky o Yuri Pudgorodsky
+o Gerald Britton o Gerald Britton
+o Ian Wehrman o Ian Wehrman
+o Gord Lamb o Gord Lamb
+o Eugene Koontz o Eugene Koontz
+o John H. Hartman o John H. Hartman
+o Anders Karlsson o Anders Karlsson
+o Daniel Phillips o Daniel Phillips
+o John Fremlin o John Fremlin
+o Rainer Burgstaller o Rainer Burgstaller
+o James Stevenson o James Stevenson
+o Matt Clay o Matt Clay
+o Cliff Jefferies o Cliff Jefferies
+o Geoff Hoff o Geoff Hoff
+o Lennert Buytenhek o Lennert Buytenhek
+o Al Viro o Al Viro
+o Frank Klingenhoefer o Frank Klingenhoefer
+o Livio Baldini Soares o Livio Baldini Soares
+o Jon Burgess o Jon Burgess
+o Petru Paler o Petru Paler
+o Paul o Paul
+o Chris Reahard o Chris Reahard
+o Sverker Nilsson o Sverker Nilsson
+o Gong Su o Gong Su
+o johan verrept o johan verrept
+o Bjorn Eriksson o Bjorn Eriksson
+o Lorenzo Allegrucci o Lorenzo Allegrucci
+o Muli Ben-Yehuda o Muli Ben-Yehuda
+o David Mansfield o David Mansfield
+o Howard Goff o Howard Goff
+o Mike Anderson o Mike Anderson
+o John Byrne o John Byrne
+o Sapan J. Batia o Sapan J. Batia
+o Iris Huang o Iris Huang
+o Jan Hudec o Jan Hudec
+o Voluspa o Voluspa
1155..33.. BBuugglleettss aanndd cclleeaann--uuppss 15.3. Buglets and clean-ups
+o Dave Zarzycki o Dave Zarzycki
+o Adam Lazur o Adam Lazur
+o Boria Feigin o Boria Feigin
+o Brian J. Murrell o Brian J. Murrell
+o JS o JS
+o Roman Zippel o Roman Zippel
+o Wil Cooley o Wil Cooley
+o Ayelet Shemesh o Ayelet Shemesh
+o Will Dyson o Will Dyson
+o Sverker Nilsson o Sverker Nilsson
+o dvorak o dvorak
+o v.naga srinivas o v.naga srinivas
+o Shlomi Fish o Shlomi Fish
+o Roger Binns o Roger Binns
+o johan verrept o johan verrept
+o MrChuoi o MrChuoi
+o Peter Cleve o Peter Cleve
+o Vincent Guffens o Vincent Guffens
+o Nathan Scott o Nathan Scott
+o Patrick Caulfield o Patrick Caulfield
+o jbearce o jbearce
+o Catalin Marinas o Catalin Marinas
+o Shane Spencer o Shane Spencer
+o Zou Min o Zou Min
+o Ryan Boder o Ryan Boder
+o Lorenzo Colitti o Lorenzo Colitti
+o Gwendal Grignou o Gwendal Grignou
+o Andre' Breiler o Andre' Breiler
+o Tsutomu Yasuda o Tsutomu Yasuda
1155..44.. CCaassee SSttuuddiieess 15.4. Case Studies
+o Jon Wright o Jon Wright
+o William McEwan o William McEwan
+o Michael Richardson o Michael Richardson
1155..55.. OOtthheerr ccoonnttrriibbuuttiioonnss 15.5. Other contributions
Bill Carr <Bill.Carr at compaq.com> made the Red Hat mkrootfs script Bill Carr <Bill.Carr at compaq.com> made the Red Hat mkrootfs script
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment