Well, I've decided I need to tell someone abuot the frustrations I've
had trying to get UML networking with the host machine - so here it
is. Feel free to skip this message if you don't want to listen to a
Well - I decided that since I had much of a debian archive on my box,
including the install files, and the 2.4.2 kernel sources, that I
would do-it-myself rather than download precompiled images/kernels.
Anyway, I like to do stuff like this myself so I know exactly what
goes in and how to do it. What a mistake!
(BTW, I have played wih UML before on other machines and got it
working to a greater or lesser degree)
My reason for using UML impacts on how I decided to do things, so I'll
describe it here. I'm running a Debian Potato (stable) box here, but
I would also like to play with Woody (testing) and perhaps Sid
(unstable). I'm doing some development of packages which will be
installed on other stable systems, so I don't want to upgrade my main
box to testing; otherwise they will depend on libraries from testing.
However, I've reached a state where I need tools from a testing system -
even though the target systems are still stable systems.
So UML is the perfect answer - at least I thought so. I would upgrade
my box to testing and have a stable UML with a compiler etc. I could
also have another UML running unstable just to play with. I decided
to have my stable sytem root filesystem on a disk partition rather
than in a file, so that in the unlikely event that my main system
becomes unusable for whatever reason, I can boot the system from the
I downloaded the UML kernel patch, compiled an appropriate kernel and
tried to run the debian installer in UML. The installer failed -
trying to detect the root filesystem, as I think others have noted
here. No problem, I just rebooted and continued the install using a
normal kernel on the new partition. Once the install was completed, I
rebooted to my main system and booted the UML kernel using the new
partition and it worked - great.
The only problem (from memory) was that fsck was reporting a zero size
on the ubd0 device (mapped thru to /dev/hda5), conflicting with the
superblock, which had the real size. So I took out the fsck on
Now to set up networking - after reading the networking page,
searching the download site (no networking tools) and the mailling
list - I decided that the networking code must be in a state of flux.
At least, the documentation on the site is out of date. I discovered
a recent message in this list that describes the "new" way of doing
things, and set about trying to use that.
I have no previous experience with bridging, but I downloaded and
compiled the bridging utils and read the HOWTO/FAQ. I also downloaded
the persistent TAP/TUN patch and recompiled my host kernel (was 2.4.1,
upgraded to 2.4.2 in the process).
I also downloaded two patches suggested for the UML kernel
(uml2.4.2-irqfix-1.diff and umlnetfast2.4.2-3.diff).
I set up a persistant TAP device (I gather it needs to be called
umlhostname.eth0) and added it to a bridge on the host machine. I
gave the bridge an IP number (I want communication between the host
and uml). I booted the uml and assigned an ip number to eth0. AFAIK I
have done everything reqired to attain communication between host and
UML - but it doesn't work.
So, some questions would be:
1. Should I just give up and go back to an older filesystem with the
older network tools?
2. How do I debug the networking stuff? (Actually, I haven't run
tcpdump at either end yet, maybee I should try that)
3. What should I answer to the various network device options in the
UML kernel config (esp "use fast protocol") - does it matter?
4. What is the arping command? It is refered to in an RH setup script
patch referenced on the list.
5. When will up to date network tools/docs be available, are the old
tools that appear in the prebuilt filesystems still available
Of course I could answer some of these questions myself with a little
further research, but this is where I'm at right now. A little
frustrated and confused and a good number of hours down the drain