[PLUG] UML

Kyle Hayes kyle at silverbeach.net
Sun Jan 25 23:19:01 UTC 2004


Anyone here have some experience with user mode linux?

I'm trying to set up a UML instance (or three) to run Debian on top of my 
Gentoo machine.  

I've got a UML kernel built (2.4.23) and I think I've configured everything 
correctly.  However, when I have md support in the kernel, it just stops cold 
when it starts doing the speed tests for various kinds of md RAID5 checksum 
calculations (i.e. using MMX, SSE or 8087 registers).  When I take md support 
out, it seems to get fairly far.

I got a minimal Debian image off of the UML site on Source Forge.  This 
doesn't appear to come with a kernel.  In trying to use mine, I found that I 
had to make /dev/ubd/0 point to /dev/ubd0.  The devfs-like path wasn't 
already there and the kernel persists in trying to use it.  I thought that I 
had devfs turned off in the kernel...

The kernel boots, finds the root image (a big file, not COW) and seems to 
start moving right along.  Until it gets to the end of the boot process for 
run level 2.  Then nothing happens.  No login prompt:

... [snip] ...
Configuring network interfaces: done.
Cleaning: /tmp /var/lock /var/run.
Initializing random number generator... done.
Recovering nvi editor sessions... done.
INIT: Entering runlevel: 2
Starting system log daemon: syslogd.
Starting kernel log daemon: klogd.
Starting internet superserver: inetd.
Starting deferred execution scheduler: atd.
Starting periodic command scheduler: cron.

After this, nothing at all happens.  The last things that runs 
is /etc/init.d/rmnologin.  This is some sort of guard against allowing logins 
during boot that Debian appears to use.  

I tried running it in GDB, but interestingly, it never seems to get my command 
line args even with "set args".  I renamed my root file system image to 
root_fs to make sure the defaults work and it still gets to the exact point 
above.  If I send it a SIGTERM, GDB says that it got the signal while in 
waitpid().  Backtrace says that waitpid() and something at address 0x0000000 
are on the call stack :-(  So, I think I bounced through a null pointer 
somewhere.

Is it just a bad image?  Should I get another Debian image from somewhere?  

I'm totally new to UML, so I'm sure I'm asking dumb questions :-)

Best,
Kyle





More information about the PLUG mailing list