|
@@ -134,13 +134,13 @@
|
|
|
|
|
|
______________________________________________________________________
|
|
|
|
|
|
- 11.. IInnttrroodduuccttiioonn
|
|
|
+ 1. Introduction
|
|
|
|
|
|
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
|
|
|
card, keyboard, hard drives, etc), and any programs which run ask the
|
|
@@ -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.
|
|
@@ -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
|
|
@@ -322,7 +322,7 @@
|
|
|
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
|
|
|
exception of the 'ARCH=um' that you always need for UML):
|
|
@@ -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,
|
|
|
so a uml_utilities package is distributed separately from the kernel
|
|
|
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
|
|
|
|
|
|
The uml_utilities tree is compiled with:
|
|
@@ -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.
|
|
|
|
|
@@ -454,7 +454,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 33..22.. LLooggggiinngg iinn
|
|
|
+ 3.2. Logging in
|
|
|
|
|
|
|
|
|
|
|
@@ -468,7 +468,7 @@
|
|
|
|
|
|
There are a couple of other ways to log in:
|
|
|
|
|
|
- +o On a virtual console
|
|
|
+ o On a virtual console
|
|
|
|
|
|
|
|
|
|
|
@@ -480,7 +480,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- +o Over the serial line
|
|
|
+ o Over the serial line
|
|
|
|
|
|
|
|
|
In the boot output, find a line that looks like:
|
|
@@ -503,7 +503,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- +o Over the net
|
|
|
+ o Over the net
|
|
|
|
|
|
|
|
|
If the network is running, then you can telnet to the virtual
|
|
@@ -514,13 +514,13 @@
|
|
|
down and the process will exit.
|
|
|
|
|
|
|
|
|
- 33..33.. EExxaammpplleess
|
|
|
+ 3.3. Examples
|
|
|
|
|
|
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 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 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
|
|
@@ -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
|
|
@@ -558,7 +558,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 44..33.. TThhee ssoolluuttiioonn
|
|
|
+ 4.3. The solution
|
|
|
|
|
|
|
|
|
The fix for this is to rebuild UML from source after enabling
|
|
@@ -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
|
|
@@ -586,12 +586,12 @@
|
|
|
You can attach them to host ptys, ttys, file descriptors, and ports.
|
|
|
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
|
|
|
|
|
|
- +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.
|
|
|
|
|
|
|
|
@@ -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,
|
|
|
respectively), optionally with a device number if you are talking
|
|
@@ -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
|
|
|
device to, each with a different way of specifying exactly what 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
|
|
@@ -640,20 +640,20 @@
|
|
|
log. You access it by attaching a terminal program to the
|
|
|
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
|
|
|
|
|
|
- +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
|
|
@@ -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.
|
|
@@ -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.
|
|
@@ -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
|
|
@@ -743,7 +743,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- +o Nothing - device=null
|
|
|
+ o Nothing - device=null
|
|
|
|
|
|
|
|
|
This allows the device to be opened, in contrast to 'none', but
|
|
@@ -754,7 +754,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- +o None - device=none
|
|
|
+ o None - device=none
|
|
|
|
|
|
|
|
|
This causes the device to disappear.
|
|
@@ -770,7 +770,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- will cause serial line 3 to accept input on the host's /dev/tty3 and
|
|
|
+ will cause serial line 3 to accept input on the host's /dev/tty2 and
|
|
|
display output on an xterm. That's a silly example - the most common
|
|
|
use of this syntax is to reattach the main console to stdin and stdout
|
|
|
as shown above.
|
|
@@ -785,7 +785,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 55..33.. EExxaammpplleess
|
|
|
+ 5.3. Examples
|
|
|
|
|
|
There are a number of interesting things you can do with this
|
|
|
capability.
|
|
@@ -838,7 +838,7 @@
|
|
|
prompt of the other virtual machine.
|
|
|
|
|
|
|
|
|
- 66.. SSeettttiinngg uupp tthhee nneettwwoorrkk
|
|
|
+ 6. Setting up the network
|
|
|
|
|
|
|
|
|
|
|
@@ -858,19 +858,19 @@
|
|
|
There are currently five transport types available for a UML virtual
|
|
|
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
|
|
|
instance to exchange packets with the host. They may be directed
|
|
@@ -893,28 +893,28 @@
|
|
|
With so many host transports, which one should you use? Here's when
|
|
|
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
|
|
|
|
|
|
- +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
|
|
|
preconfigured device, allowing it to avoid using the setuid uml_net
|
|
|
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
|
|
|
|
|
|
- +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
|
|
|
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
|
|
|
|
|
|
- +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
|
|
|
|
|
|
- +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
|
|
|
|
|
|
Ethertap is available on 2.4 and works fine. TUN/TAP is preferred
|
|
@@ -926,7 +926,7 @@
|
|
|
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
|
|
|
running a prebuilt kernel from this site, everything is already
|
|
@@ -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.
|
|
|
They are both installed with the RPM and deb, so if you've installed
|
|
@@ -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
|
|
|
allow you to specify hardware addresses for the virtual ethernet
|
|
@@ -1023,11 +1023,11 @@
|
|
|
sufficient to guarantee a unique hardware address for the device. A
|
|
|
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
|
|
|
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
|
|
|
|
|
|
If you let the driver provide the hardware address, you should make
|
|
@@ -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
|
|
|
should boot UML and log in.
|
|
@@ -1131,7 +1131,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 66..55.. MMuullttiiccaasstt
|
|
|
+ 6.5. Multicast
|
|
|
|
|
|
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
|
|
@@ -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
|
|
|
host. The TUN/TAP backend has been in UML since 2.4.9-3um.
|
|
@@ -1247,10 +1247,10 @@
|
|
|
There are a couple potential problems with running the TUN/TAP
|
|
|
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.
|
|
|
|
|
|
- +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
|
|
@@ -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
|
|
|
insecure), with UML 2.4.17-11, you can set up a TUN/TAP device
|
|
@@ -1277,7 +1277,7 @@
|
|
|
there is no need for root assistance. Setting up the device is done
|
|
|
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)
|
|
|
|
|
|
|
|
@@ -1291,7 +1291,7 @@
|
|
|
where uid is the user id or username that UML will be run as. This
|
|
|
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)
|
|
|
|
|
|
|
|
@@ -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
|
|
|
|
|
|
|
|
@@ -1338,7 +1338,7 @@
|
|
|
utility which reads the information from a config file and sets up
|
|
|
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
|
|
|
bridge.
|
|
|
|
|
@@ -1417,7 +1417,7 @@
|
|
|
Note that 'br0' should be setup using ifconfig with the existing 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
|
|
@@ -1438,11 +1438,11 @@
|
|
|
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
|
|
|
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-
|
|
|
persistent with
|
|
@@ -1465,7 +1465,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 66..88.. EEtthheerrttaapp
|
|
|
+ 6.8. Ethertap
|
|
|
|
|
|
Ethertap is the general mechanism on 2.2 for userspace processes to
|
|
|
exchange packets with the kernel.
|
|
@@ -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.
|
|
|
|
|
|
|
|
@@ -1649,7 +1649,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 66..1100.. SSlliipp
|
|
|
+ 6.10. Slip
|
|
|
|
|
|
Slip is another, less general, mechanism for a process to communicate
|
|
|
with the host networking. In contrast to the ethertap interface,
|
|
@@ -1681,7 +1681,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 66..1111.. SSlliirrpp
|
|
|
+ 6.11. Slirp
|
|
|
|
|
|
slirp uses an external program, usually /usr/bin/slirp, to provide IP
|
|
|
only networking connectivity through the host. This is similar to IP
|
|
@@ -1737,7 +1737,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 66..1122.. ppccaapp
|
|
|
+ 6.12. pcap
|
|
|
|
|
|
The pcap transport is attached to a UML ethernet device on the command
|
|
|
line or with uml_mconsole with the following syntax:
|
|
@@ -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
|
|
|
slip device, UML won't do any setup on the host. So this is what is
|
|
@@ -1785,7 +1785,7 @@
|
|
|
192.168.0.251 and a UML-side IP of 192.168.0.250 - adjust to suit your
|
|
|
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
|
|
|
configured with a point-to-point address pointing at the UML ip
|
|
|
address.
|
|
@@ -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
|
|
@@ -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.
|
|
|
|
|
|
|
|
@@ -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
|
|
@@ -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
|
|
|
same file. That's the same thing as booting two physical machines
|
|
@@ -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 copy-on-write (COW) layering capability of the ubd block driver.
|
|
@@ -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
|
|
|
space that you're saving, make sure you use 'ls -ls' to see the actual
|
|
@@ -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
|
|
|
file, do not boot directly from it or modify it in any way. Doing so
|
|
@@ -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
|
|
|
merge the changes in the COW file into the backing file every once in
|
|
@@ -2001,7 +2001,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 88.. CCrreeaattiinngg ffiilleessyysstteemmss
|
|
|
+ 8. Creating filesystems
|
|
|
|
|
|
|
|
|
You may want to create and mount new UML filesystems, either because
|
|
@@ -2015,7 +2015,7 @@
|
|
|
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
|
|
|
file of the appropriate size. I usually make it sparse to save time
|
|
@@ -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:
|
|
|
|
|
@@ -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
|
|
|
the kernel, or available as a module, then boot up UML and log in. If
|
|
@@ -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
|
|
@@ -2112,7 +2112,7 @@
|
|
|
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
|
|
|
machine with
|
|
@@ -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
|
|
|
hostfs rather than using the standard filesystem in a file.
|
|
@@ -2194,20 +2194,20 @@
|
|
|
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
|
|
|
two choices:
|
|
|
|
|
|
|
|
|
|
|
|
- +o Compiling hostfs into the kernel:
|
|
|
+ o Compiling hostfs into the kernel:
|
|
|
|
|
|
|
|
|
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
|
|
@@ -2228,7 +2228,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 1100.. TThhee MMaannaaggeemmeenntt CCoonnssoollee
|
|
|
+ 10. The Management Console
|
|
|
|
|
|
|
|
|
|
|
@@ -2240,15 +2240,15 @@
|
|
|
|
|
|
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
|
|
@@ -2300,28 +2300,28 @@
|
|
|
|
|
|
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.
|
|
|
|
|
@@ -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
|
|
|
no syncing of disks and no clean shutdown of userspace. So, they are
|
|
@@ -2357,7 +2357,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 1100..33.. ccoonnffiigg
|
|
|
+ 10.3. config
|
|
|
|
|
|
"config" adds a new device to the virtual machine. Currently the ubd
|
|
|
and network drivers support this. It takes one argument, which is the
|
|
@@ -2378,7 +2378,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 1100..44.. rreemmoovvee
|
|
|
+ 10.4. remove
|
|
|
|
|
|
"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
|
|
@@ -2397,7 +2397,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 1100..55.. ssyyssrrqq
|
|
|
+ 10.5. sysrq
|
|
|
|
|
|
This takes one argument, which is a single letter. It calls the
|
|
|
generic kernel's SysRq driver, which does whatever is called for by
|
|
@@ -2407,14 +2407,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 1100..66.. hheellpp
|
|
|
+ 10.6. help
|
|
|
|
|
|
"help" returns a string listing the valid commands and what each one
|
|
|
does.
|
|
|
|
|
|
|
|
|
|
|
|
- 1100..77.. ccaadd
|
|
|
+ 10.7. cad
|
|
|
|
|
|
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.
|
|
@@ -2432,7 +2432,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 1100..88.. ssttoopp
|
|
|
+ 10.8. stop
|
|
|
|
|
|
This puts the UML in a loop reading mconsole requests until a 'go'
|
|
|
mconsole command is received. This is very useful for making backups
|
|
@@ -2448,7 +2448,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 1100..99.. ggoo
|
|
|
+ 10.9. go
|
|
|
|
|
|
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
|
|
@@ -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.
|
|
|
|
|
|
|
|
@@ -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
|
|
|
beginning by putting 'debug' on the command line. You will get an
|
|
@@ -2498,7 +2498,7 @@
|
|
|
There is a transcript of a debugging session here <debug-
|
|
|
session.html> , with breakpoints being set in the scheduler and in an
|
|
|
interrupt handler.
|
|
|
- 1111..22.. EExxaammiinniinngg sslleeeeppiinngg pprroocceesssseess
|
|
|
+ 11.2. Examining sleeping processes
|
|
|
|
|
|
Not every bug is evident in the currently running process. Sometimes,
|
|
|
processes hang in the kernel when they shouldn't because they've
|
|
@@ -2516,7 +2516,7 @@
|
|
|
|
|
|
Now what you do is this:
|
|
|
|
|
|
- +o detach from the current thread
|
|
|
+ o detach from the current thread
|
|
|
|
|
|
|
|
|
(UML gdb) det
|
|
@@ -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>
|
|
@@ -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
|
|
@@ -2545,7 +2545,7 @@
|
|
|
Note that you can't do anything at this point that requires that a
|
|
|
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
|
|
|
|
|
|
|
|
@@ -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
|
|
|
like this:
|
|
|
|
|
|
- +o Start ddd
|
|
|
+ o Start ddd
|
|
|
|
|
|
|
|
|
host% ddd linux
|
|
@@ -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
|
|
|
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
|
|
|
|
|
|
- +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 ()
|
|
@@ -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.
|
|
|
|
|
|
|
|
|
|
|
|
- 1111..44.. DDeebbuuggggiinngg mmoodduulleess
|
|
|
+ 11.4. Debugging modules
|
|
|
|
|
|
gdb has support for debugging code which is dynamically loaded into
|
|
|
the process. This support is what is needed to debug kernel modules
|
|
@@ -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
|
|
|
it later by sending the tracing thread a SIGUSR1. The first line of
|
|
@@ -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
|
|
|
than starting gdb itself. This is present in CVS as of 17 Apr 2001.
|
|
@@ -2886,7 +2886,7 @@
|
|
|
An example of an alternate debugger is strace. You can strace the
|
|
|
actual kernel as follows:
|
|
|
|
|
|
- +o Run the following in a shell
|
|
|
+ o Run the following in a shell
|
|
|
|
|
|
|
|
|
host%
|
|
@@ -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
|
|
|
|
|
|
- +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.
|
|
|
|
|
|
Note that this is different from running
|
|
@@ -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
|
|
|
to fix things up. I ran fsck -y, which hung:
|
|
@@ -3154,9 +3154,9 @@
|
|
|
|
|
|
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
|
|
|
$16 = (void *) 0x50000800
|
|
@@ -3399,7 +3399,7 @@
|
|
|
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
|
|
|
thread's stack, I reran the kernel.
|
|
@@ -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
|
|
|
on the make command line for all steps in building UML, including
|
|
@@ -3824,8 +3824,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 1133..33.. AA vvaarriieettyy ooff ppaanniiccss aanndd hhaannggss wwiitthh //ttmmpp oonn aa rreeiisseerrffss ffiilleessyyss--
|
|
|
- tteemm
|
|
|
+ 13.3. A variety of panics and hangs with /tmp on a reiserfs filesys-
|
|
|
+ tem
|
|
|
|
|
|
I saw this on reiserfs 3.5.21 and it seems to be fixed in 3.5.27.
|
|
|
Panics preceded by
|
|
@@ -3842,8 +3842,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 1133..44.. TThhee ccoommppiillee ffaaiillss wwiitthh eerrrroorrss aabboouutt ccoonnfflliiccttiinngg ttyyppeess ffoorr
|
|
|
- ''ooppeenn'',, ''dduupp'',, aanndd ''wwaaiittppiidd''
|
|
|
+ 13.4. The compile fails with errors about conflicting types for
|
|
|
+ 'open', 'dup', and 'waitpid'
|
|
|
|
|
|
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
|
|
@@ -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.
|
|
|
Some versions of NFS seems not to handle mmap correctly, which UML
|
|
|
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
|
|
|
this
|
|
@@ -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,
|
|
|
but Debian produces this:
|
|
@@ -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
|
|
|
<http://www.geocrawler.com/lists/3/SourceForge/597/0/> name="pointed
|
|
|
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
|
|
|
next item.
|
|
|
|
|
|
- +o If you see
|
|
|
+ o If you see
|
|
|
|
|
|
|
|
|
File descriptor in bad state
|
|
@@ -3921,8 +3921,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 1133..99.. YYoouu ccaann nneettwwoorrkk ttoo tthhee hhoosstt bbuutt nnoott ttoo ootthheerr mmaacchhiinneess oonn tthhee
|
|
|
- nneett
|
|
|
+ 13.9. You can network to the host but not to other machines on the
|
|
|
+ net
|
|
|
|
|
|
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
|
|
@@ -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
|
|
|
turns out that there's a limit of six environment variables on the
|
|
@@ -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
|
|
|
/usr/include/sys/ucontext.h define the same names. So, when they're
|
|
@@ -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
|
|
|
to calculate the BogoMips rating, using the TSC if it's there or using
|
|
@@ -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
|
|
|
why. See ``UML on 2G/2G hosts'' for the details on getting UML to
|
|
@@ -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
|
|
|
uml_utilities, the port-helper program will not work properly, so
|
|
@@ -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
|
|
|
happen in random places, or you try running the debugger to see what's
|
|
@@ -4059,7 +4059,7 @@
|
|
|
|
|
|
If you want to be super-helpful, read ``Diagnosing Problems'' and
|
|
|
follow the instructions contained therein.
|
|
|
- 1144.. DDiiaaggnnoossiinngg PPrroobblleemmss
|
|
|
+ 14. Diagnosing Problems
|
|
|
|
|
|
|
|
|
If you get UML to crash, hang, or otherwise misbehave, you should
|
|
@@ -4078,7 +4078,7 @@
|
|
|
``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,
|
|
|
you will need to run it under the debugger (add 'debug' to the command
|
|
@@ -4128,7 +4128,7 @@
|
|
|
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
|
|
|
panics. In this case, the kernel debugger will be useless because it
|
|
@@ -4161,7 +4161,7 @@
|
|
|
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
|
|
|
caused the problem. The most common panic of this type is:
|
|
@@ -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
|
|
|
happens, we need a backtrace from the offending process. Run the
|
|
@@ -4257,7 +4257,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
- 1155.. TThhaannkkss
|
|
|
+ 15. Thanks
|
|
|
|
|
|
|
|
|
A number of people have helped this project in various ways, and this
|
|
@@ -4274,20 +4274,20 @@
|
|
|
bookkeeping lapses and I forget about contributions.
|
|
|
|
|
|
|
|
|
- 1155..11.. CCooddee aanndd DDooccuummeennttaattiioonn
|
|
|
+ 15.1. Code and Documentation
|
|
|
|
|
|
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>
|
|
|
|
|
|
- +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
|
|
|
|
|
|
- +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>
|
|
|
|
|
|
- +o redid the config process
|
|
|
+ o redid the config process
|
|
|
|
|
|
|
|
|
Peter Moulder <reiter at netspace.net.au> - Fixed my config and build
|
|
@@ -4296,18 +4296,18 @@
|
|
|
|
|
|
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
|
|
|
|
|
|
- +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
|
|
@@ -4375,176 +4375,176 @@
|
|
|
|
|
|
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
|
|
|
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/>
|
|
|
|
|
|
- +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
|