www.nosreme.org

User-mode Linux on PPC

I was working on a port of User-mode Linux to PowerPC Linux. Unfortunately I no longer have time to work on it, so it's fallen behind the changes Jeff has been making. I'd be delighted if someone resumed development.

NEW: UML/PPC is in development again , this time with kernel 2.6.

Current status

Not working. Some core UML changes (some stack handling) broke the PPC port, and AFAIK the signal problem is still there (ptrace on PPC kernels doesn't intercept [rt_]sigreturn). I haven't got time to work on it.

Current Patches

Patch against kernel 2.4.6 (with UML from CVS on July 12, 2001).

Current status (September 11, 2001)

The port is basically integrated into Jeff's code. There's still an annoying signal problem which stops init from working properly.

Old status (July 15, 2001)

Updated to Jeff's 2.4.6-5um, and shuffled a few more bits around.

Old status (July 12, 2001)

Updated to Jeff's 2.4.6-4um, and shuffled a few bits around.

Old status (July 10, 2001)

Updated to Jeff's 2.4.6-3um.

Old status (July 9, 2001)

Updated to Jeff's 2.4.6 stuff from CVS.

Old status (May 30, 2001)

I've updated the patch to Jeff's 2.4.5 stuff from CVS.

Old status (May 25, 2001)

After fixing a problem with copy_from_user etc., the Debian boot process gets as far as starting inetd.

Old status (May 22, 2001)

Bash now works, and things are generally less flaky. The current problem during booting of a Debian image is a panic while remounting the root read-write (in copy_mount_options()).

Old status (May 15, 2001)

I've fixed two major bugs. One occasionally confused ld.so in a way which depended on the number of arguments, and the other meant that system call failures weren't properly indicated, which confused everyone else. Bash now works as an interactive shell, but I seem to get a lot of processes dying unexpectedly of SIGILL or SIGSEGV so I haven't yet managed to boot the Debian base system without init=/bin/ash.

Old status (May 13, 2001)

I'm trying to get a sensible filesystem image set up. I've got a Debian base image, but haven't been able to get far in booting it because there seems to be a problem running bash.

The patch has shrunk again, as Jeff Dike has incorporated more of my patch into his tree.

Old status (later on May 11, 2001)

It can now mount and run a shell a Debian root floppy image. mmap, fork, and exec all seem to be working. There are still glitches, but it's looking good so far.

Old status (May 11, 2001)

The kernel boots and runs some user-level code. Simple system calls (eg getuid, uname, exit) work, but some more complicated ones (eg mmap) are still broken.

Old status (April 29, 2001)

The kernel compiles and links, and partly boots. With root on hostfs, I get an EPERM when trying to run init. With an ext2 image (the Debian root.bin), it gets as far as "mounting root (ext2)..." and then hangs.

Old status (July 2, 2000)

I've had the kernel booting and starting, but failing to properly run init. This was at the 2.3.99-pre6 stage, and I've sadly fallen a bit behind the current UML development. I'm working to rectify this.

Old Patches

Patch against kernel 2.4.6 (with UML from CVS on July 12, 2001).

Patch against kernel 2.4.6 (with UML from CVS on July 10, 2001).

Patch against kernel 2.4.6 (with UML from CVS on July 9, 2001).

Patch against kernel 2.4.5 (with UML from CVS on June 3, 2001).

Patch against kernel 2.4.5 (with UML from CVS on May 29, 2001).

Patch against kernel 2.4.4 (with UML from CVS on May 21, 2001).

Patch against kernel 2.4.4 (with UML from CVS on May 21, 2001).

Patch against kernel 2.4.4 (with UML from CVS on May 13, 2001).

Patch against kernel 2.4.4 (with UML from CVS on May 13, 2001).

Patch against kernel 2.4.4 (with UML from CVS on May 11, 2001).

Patch against kernel 2.4.4 (with UML from CVS on May 10, 2001).

Patch against kernel 2.4.3 (with UML from CVS on April 23, 2001).

Patch against kernel version 2.3.99-pre6 with corresponding UML patches . This version compiles for me, but init dies suddenly not long after returning from the initial exec(). This patch includes bits of debug code I've inserted while investigating problems, some extra files, and breaks the i386 code in several places. You've been warned...

A patch with changes against the 2.4.0-test2 Linux+UML source . This doesn't yet compile. I've merged most of my changes into the current tree in this patch, but I haven't yet dealt with some of the new stuff (eg the new interrupt code).