l4openbsd
l4openbsd copied to clipboard
OpenBSD/L4 port
OpenBSD port to the Fiasco-UX/L4 microkernel
Build kernel:
-
setup a Linux machine
-
unpack l4re-snapshot, compile fiasco and L4 ( e.g. in /home/l4/ )
-
unpack this source tree into that base path ( e.g. in /home/l4/openbsd/src )
-
export the /home/l4 path via NFS
-
setup an OpenBSD machine with a version corresponding to these sources!
- find current version with
grep "^osr" /home/l4/openbsd/src/sys/conf/newvers.sh
- find current version with
-
import the /home/l4 path via NFS (needs to be the same path on both machines)
-
adjust the kernel configuration to point to your L4 build directory
- edit /home/l4/openbsd/src/sys/arch/i386/conf/L4 and change the makeoption L4_BUILDDIR
-
build the kernel on OpenBSD
cd /home/l4/openbsd/
mkdir -p obj/sys
cd obj/sys
ln -s /home/l4/openbsd/src/sys/arch/i386/conf/L4 .
config -b . -s /home/l4/openbsd/src/sys/ L4
make clean depend
make
[ lots of output => generates file: bsd ]
-
copy final "bsd" to l4loader directory on Linux machine
-
in l4loader directory on the Linux host:
-
edit Makefile and set L4_BUILDDIR as for the OpenBSD kernel configuration above
make
[ less output => generates: l4bsd ]
Build ramdisk:
-
on your OpenBSD machine, build the complete userland
mkdir -d /usr/obj
rm -rf /usr/obj/*
set BSDSRCDIR=/home/l4/openbsd/src/
set BSDOBJDIR=/home/l4/openbsd/obj/
cd $BSDSRCDIR
echo "BSDSRCDIR=$BSDSRCDIR" >> /etc/mk.conf
echo "BSDOBJDIR=$BSDOBJDIR" >> /etc/mk.conf
make obj
cd $BSDSRCDIR/distrib/special
make
cd $BSDSRCDIR/distrib/
uname -m/ramdisk_cd/make mr.fs
-
copy the resulting obj/mr.fs file to your Linux machine
Run:
- treat "l4bsd" as if it was vmlinu[xz] from L4Linux
- treat "mr.fs" as if it was the initrd from L4Linux (load as command line parameter lx_rd=rom/mr.fs)
General hints:
If you need debugging symbols in your userland binaries, add DEBUG and/or DEBUGLIBS to /etc/mk.conf. See mk.conf(5) for details.
To add support for debugging symbols in your kernel, add the DEBUG kernel config(8) option. (NOTE: This is known to be broken at the moment.)