svn co -N http://svn.tudos.org/repos/tudos/trunk tudos
TUDOS
Checkout tudos/repomgr:
svn co -N http://svn.tudos.org/repos/tudos/trunk tudos
To list the available modules use:
cd tudos ./repomgr modules
Checkout hello, fiasco, l4env,
./repomgr co hello fiasco l4env
yacc, qemu, arping
Use your distro package manager to install yacc, qemu and arping.
cd kernel/fiasco make menuconfig
Make sure you install yacc, and set yacc properly in the compiler settings.
make
This generates the fiasco kernel image (main) and irq0 tudos/kernel/fiasco/build directory.
cd tudos/l4 mkdir build make O=/path/to/build config
Set DROPS_STDDIR accordingly:
DROPS_STDDIR=/path/to/tudos/l4
To build, use:
make O=/path/to/l4/build
Executables are present in tudos/l4/build/bin directory. bootstrap is present in:
tudos/l4/build/bin/x86_586/ * bootstrap
hello, roottask and sigma0 modules are present in:
tudos/l4/build/bin/x86_586/l4v2/ * hello * roottask * sigma0
If you had configured kernel to build fiasco-ux, you can test with hello using:
./fiasco -l hello
cd tudos/l4/pkg svn up dde svn up ore
cd tudos/l4 make O=/path/to/build config make O=/path/to/build
You can test the modules with qemu. To create a cd-image to test with qemu, put all executables in a top-level directory:
boot/grub/menu.lst boot/grub/stage2_eltorito bootstrap fiasco sigma0 roottask names dm_phys log l4io ore ore_test_arping
stage2_eltorito is available in Debian under /usr/lib/grub/i386-pc/. boot/grub/menu.lst contents:
title ORe kernel /bootstrap -serial -modaddr 0x2000000 module /fiasco -serial_esc -comspeed 115200 -comport 1 -nokdb -jdb_cmd=JH module /sigma0 module /roottask module /names module /dm_phys module /log module /l4io module /ore module /ore_test_arping
To create an .iso use the following from the top-level directory:
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -hide-rr-moved -J -joliet-long -o "cd-image.iso" .
To execute with qemu, use:
sudo qemu -cdrom cd-image.iso -serial stdio -net nic,model=rtl8139,vlan=0 -net tap,vlan=0 -m 200
Qemu runs and stops with the following output:
ore | main(): initialized DDELinux2.6 ore | main(): loopback: 0 ore | (6)device lo entered promiscuous mode ore | (6)device eth0 entered promiscuous mode ore | (6)eth0: link up, 100Mbps, full-duplex, lpa 0x05E1 ore | main(): Initialized 2 network devices. ore | Device = lo, IRQ = 0, MAC = 00:00:00:00:00:00 ore | Device = eth0, IRQ = 11, MAC = 52:54:00:12:34:56 ore | main(): Registering 'ORe' at names... ore | main(): Ready for service. arping | ore_lookup_server(): ORe server ORe = 9.02 arping | ore_do_open(): called ore | __init_mac(): MAC = 04:EA:43:01:96:09 arping | ore_do_open(): opened. worker = 9.08 arping | main(): opened eth0: 0 for 04:EA:43:01:96:09 arping | main(): ORe handle = 0 arping | main(): got send area: 0x00600008
Open another terminal and use arping to test the ping:
./arping -i tap0 04:EA:43:01:96:09 -w 100 -c 10000 60 bytes from 255.255.255.255 (04:ea:43:01:96:09): icmp_seq=9914 time=823.021 usec 60 bytes from 255.255.255.255 (04:ea:43:01:96:09): icmp_seq=9915 time=851.154 usec 60 bytes from 255.255.255.255 (04:ea:43:01:96:09): icmp_seq=9916 time=771.046 usec
[DROPS_download]. DROPS download. http://os.inf.tu-dresden.de/drops/download.html.
[ORe]. ORe. http://wiki.tudos.org/ORe.
[CDimage]. CDimage. http://wiki.tudos.org/CD_image.