Hello,
This is my first contact with L4 mKernel so forgive my limited knowledge on this subject. I've compiled dice, fiasco and L4env and starting to run some servers with trusted grub (grabbed the code from the latest OpenTC snapshot). But after reading all the L4-linux how-to's, I still cannot start L4-linux under "dope" or "con". I've noticed these docs looks aged, and some options are not accepted with current code base (--l4io, --noirq, etc). So, there is something I'm missing here... So far i can load everything (including dope server and l4-linux loads fine), but I can't see something like a system console, only plain and empty dope screen... I was especting some small dope window showing the l4-linux boot progress and maybe a console. Someone could show me the light please? Thanks :)
Tiago Lopes
Here is my config: --- start menu.lst ----------------------------------------------------- default 0 timeout 1
set ROOT := (cd) set SERIAL ?= "-serial -serial_esc -comspeed 115200 -comport 1" set FIASCOARGS := "-nokdb -nowait $(SERIAL)"
title = test kernel $(ROOT)/tcb/bootstrap modaddr 0x02000000 module $(ROOT)/tcb/fiasco $(FIASCOARGS) module $(ROOT)/tcb/sigma0 -v module $(ROOT)/tcb/roottask -sigma0 -configfile task modname "bmodfs" attached 7 modules module $(ROOT)/tcb/roottask.config module $(ROOT)/tcb/events module $(ROOT)/tcb/names --events module $(ROOT)/tcb/log module $(ROOT)/tcb/dm_phys -v --events module $(ROOT)/tcb/simple_ts --events -t 384 module $(ROOT)/tcb/rtc --events module $(ROOT)/tcb/l4io --events module $(ROOT)/tcb/ore --events module $(ROOT)/tcb/l4dope --events
module $(ROOT)/tcb/bmodfs module $(ROOT)/tcb/libloader.s.so module $(ROOT)/tcb/libld-l4.s.so module $(ROOT)/tcb/task_config.cfg # module $(ROOT)/tcb/con module $(ROOT)/tcb/run module $(ROOT)/tcb/proxygon module $(ROOT)/userland/l4linux2.6.21 module $(ROOT)/userland/drops.rd
module $(ROOT)/tcb/loader --events --fprov=BMODFS task_config.cfg vbeset 0x117 --- end menu.lst ------------------------------------------------------
--- start roottask.config -------------------------------------------- #!roottask
task sigma0 boot_priority 0xA0 task roottask boot_priority 0xA0 task modname "events" boot_priority 0xA0 task modname "names" boot_priority 0xA0 task modname "log" allow_cli boot_priority 0xA0 task modname "dm_phys" boot_priority 0xA0 task modname "simple_ts" boot_priority 0xA0 task modname "rtc" allow_cli task modname "l4io" allow_cli boot_priority 0xA0 task modname "ore" allow_cli boot_priority 0xA0 task modname "l4dope" allow_cli boot_priority 0xA0 task modname "bmodfs" boot_priority 0xA0 task modname "loader" allow_cli boot_priority 0xA0 --- end roottask.config --------------------------------------------
--- start task_config.cfg------------------------------------------- verbose 0 sleep 10
task "l4linux2.6.21" "mem=128M root=/dev/ram load_ramdisk=1 ramdisk_size=16384 l4env_rd=drops.rd video=l4fb:800x600@16 ,xpos:214,ypos:140,refreshsleep:75,title:LegacyLinux" all_sects_writable allow_vga allow_cli --- end task_config.cfg --------------------------------------------
--- start serial output ------------------------------------------------ Welcome to Fiasco(ia32)! DD-L4(v2)/x86 microkernel (C) 1998-2007 TU Dresden Rev: rUNKNOWN compiled with gcc 4.1.2 for Intel Pentium Performance-critical config option(s) detected: CONFIG_ASSEMBLER_IPC_SHORTCUT is off CONFIG_NDEBUG is off CONFIG_NO_FRAME_PTR is off CONFIG_FINE_GRAINED_CPUTIME is on
Enabling special fully nested mode for PIC Using the PIT (i8254) on IRQ 0 for scheduling SERIAL ESC: allocated IRQ 4 for serial uart SERIAL ESC: allocated IRQ 4 for serial uart Not using serial hack in slow timer handler. Absolute KIP Syscalls using: Sysenter CPU: AuthenticAMD (6:8:0:0) Model: Athlon (Thoroughbred) at 696 MHz
16/256 Entry I TLB (4K pages) 8 Entry I TLB (4M pages) 32/256 Entry D TLB (4K pages) 8 Entry D TLB (4M pages) 64 KB L1 I Cache (2-way associative, 64 bytes per line) 64 KB L1 D Cache (2-way associative, 64 bytes per line) 256 KB L2 U Cache (8-way associative, 64 bytes per line)
Freeing init code/data: 24576 bytes (6 pages)
Calibrating timer loop... done. SIGMA0: Hello! KIP @ 1000 Found Fiasco: KIP syscalls: yes allocated 4KB for maintenance structures
Roottask. Command line found: "(cd)/tcb/roottask -sigma0 -configfile task modname "bmodfs" attached 7 modules"
409150kB ( 399MB) total RAM (reported by bootloader) 367424kB ( 359MB) received RAM from Sigma0 41376kB ( 41MB) reserved RAM for RMGR Received I/O ports 0000-ffff Attached irqs = [ <!0> 1 <!2> 3 <!4> 5 6 7 8 9 A B C D E F ]
Roottask: Parsing config file. configured task 0x02 (): vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0 configured task 0x04 (): vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0 configured task 0x00 (events): vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0 configured task 0x00 (names): vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0 configured task 0x00 (log): vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:a0 small:ff mods:0 configured task 0x00 (dm_phys): vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0 configured task 0x00 (simple_ts): vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0 configured task 0x00 (rtc): vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:10 small:ff mods:0 configured task 0x00 (l4io): vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:a0 small:ff mods:0 configured task 0x00 (ore): vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:a0 small:ff mods:0 configured task 0x00 (l4dope): vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:a0 small:ff mods:0 configured task 0x00 (bmodfs): vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:a0 small:ff mods:0 configured task 0x00 (loader): vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:a0 small:ff mods:0
Roottask: Parsing command line config. configured task 0x00 (bmodfs): vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:10 small:ff mods:7
Roottask: Loading 18 modules. #05: loading "(cd)/tcb/events" from [0212c000-0216e66c] to [01540000-01548c10][01549000-0155e5d0] entry at 00062368 via trampoline page code symbols at [18ffe000-19000000] (8kB), lines at [18ff7000-18ffe000] (28kB) #06: loading "(cd)/tcb/names --events" from [0216f000-021ae253] to [002d0000-002d5e6a][002d6000-002e1000] entry at 00063370 via trampoline page code symbols at [18ff5000-18ff7000] (8kB), lines at [18fef000-18ff5000] (24kB) #07: loading "(cd)/tcb/log" from [021af000-021eb905] to [00400000-004068aa][00407000-00439848] entry at 00064368 via trampoline page code symbols at [18fed000-18fef000] (8kB), lines at [18fe7000-18fed000] (24kB) #08: loading "(cd)/tcb/dm_phys -v --events" from [021ec000-0227838c] to [01500000-015121ca][01513000-0151d000] entry at 00065378 via trampoline page code symbols at [18fe2000-18fe7000] (20kB), lines at [18fd5000-18fe2000] (52kB) #09: loading "(cd)/tcb/simple_ts --events -t 384" from [02279000-022c4d04] to [01400000-014080ea][01409000-01418608] entry at 0006637c via trampoline page code symbols at [18fd3000-18fd5000] (8kB), lines at [18fcb000-18fd3000] (32kB) #0a: loading "(cd)/tcb/rtc --events" from [022c5000-022f5ec1] to [01080000-010840e0][01085000-0108a000] entry at 00067370 via trampoline page code symbols at [18fc9000-18fcb000] (8kB), lines at [18fc4000-18fc9000] (20kB) #0b: loading "(cd)/tcb/l4io --events" from [022f6000-0254ee28] to [00b80000-00ba22a5][00ba3000-00c0a000] entry at 00069370 via trampoline page code symbols at [18f72000-18fc4000] (328kB), lines at [18f58000-18f72000] (104kB) #0c: loading "(cd)/tcb/ore --events" from [0254f000-0272f014] to [01800000-01832019][01833000-01862000] entry at 0006a370 via trampoline page code symbols at [18f4f000-18f58000] (36kB), lines at [18f29000-18f4f000] (152kB) #0d: loading "(cd)/tcb/l4dope --events" from [02730000-0289de76] to [01b00000-01b411a1][01b42000-01b83000] entry at 0006b374 via trampoline page code symbols at [18f1b000-18f29000] (56kB), lines at [16ed9000-16f05000] (176kB) #0e: loading "(cd)/tcb/bmodfs" from [0289e000-0293d5d0] to [01220000-01235659][01236000-0124d000] passing module (cd)/tcb/libloader.s.so [ 0293e000-029dcc02 ] passing module (cd)/tcb/libld-l4.s.so [ 029dd000-02a569c9 ] passing module (cd)/tcb/task_config.cfg [ 02a57000-02a57319 ] passing module (cd)/tcb/run [ 02a58000-02aa5ee1 ] passing module (cd)/tcb/proxygon [ 02aa6000-02b6bcbb ] passing module (cd)/userland/l4linux2.6.21 [ 02b6c000-0371baad ] passing module (cd)/userland/drops.rd [ 0371c000-0471c000 ] entry at 0006c47c via trampoline page code symbols at [18f16000-18f1b000] (20kB), lines at [18f04000-18f16000] (72kB) #0f: loading "(cd)/tcb/loader --events --fprov=BMODFS task_config.cfg" from [0471c000-047f49e4] to [01300000-01324ef9][01325000-01343000] entry at 0006d390 via trampoline page code symbols at [16ed3000-16ed9000] (24kB), lines at [16eba000-16ed3000] (100kB)
names | Starting thread listening for `exit' events ROOT: Sending ports 0070-0070 to task #0a ROOT: Sending ports 0080-0080 to task #0a ROOT: Sending ports 0071-0071 to task #0a rtc | Date:29.08.2007 Time:18:16:01 simplets| Configured for 384 tasks. DMphys | DMphys memory map: DMphys | phys. memory 0x00000000-0x19000000 (from L4 kernel info page) DMphys | using 0x00100000-0x19000000 DMphys | Memory area Pool PS Flags DMphys | 0x00000000-0x0009f000 -- -- RESERVED DMphys | 0x00100000-0x00161000 -- -- RESERVED DMphys | 0x00161000-0x001c6000 -- -- DENIED DMphys | 0x001c6000-0x002d0000 0 12 MAPPED DMphys | 0x002d0000-0x002e1000 -- -- DENIED DMphys | 0x002e1000-0x00400000 0 12 MAPPED DMphys | 0x00400000-0x0043a000 -- -- DENIED DMphys | 0x0043a000-0x00b80000 0 12 MAPPED DMphys | 0x00b80000-0x00c0a000 -- -- DENIED DMphys | 0x00c0a000-0x01080000 0 12 MAPPED DMphys | 0x01080000-0x0108a000 -- -- DENIED DMphys | 0x0108a000-0x01220000 0 12 MAPPED DMphys | 0x01220000-0x0124d000 -- -- DENIED DMphys | 0x0124d000-0x01300000 0 12 MAPPED DMphys | 0x01300000-0x01343000 -- -- DENIED DMphys | 0x01343000-0x01400000 0 12 MAPPED DMphys | 0x01400000-0x01419000 -- -- DENIED DMphys | 0x01419000-0x01500000 0 12 MAPPED DMphys | 0x01500000-0x0151c000 -- -- RESERVED DMphys | 0x0151c000-0x01540000 0 12 MAPPED DMphys | 0x01540000-0x0155f000 -- -- DENIED DMphys | 0x0155f000-0x01800000 0 12 MAPPED DMphys | 0x01800000-0x01862000 -- -- DENIED DMphys | 0x01862000-0x01b00000 0 12 MAPPED DMphys | 0x01b00000-0x01b83000 -- -- DENIED DMphys | 0x01b83000-0x01c00000 0 12 MAPPED DMphys | 0x01c00000-0x02800000 0 22 MAPPED DMphys | 0x02800000-0x0293e000 0 12 MAPPED DMphys | 0x0293e000-0x0471c000 -- -- DENIED DMphys | 0x0471c000-0x04800000 0 12 MAPPED DMphys | 0x04800000-0x16c00000 0 22 MAPPED DMphys | 0x16c00000-0x16eba000 0 12 MAPPED DMphys | 0x16eba000-0x18ef0000 -- -- DENIED DMphys | 0x18f00000-0x18f04000 0 12 MAPPED DMphys | 0x18f04000-0x19000000 -- -- DENIED DMphys | DMphys | DMphys memory pools: DMphys | pool 0 (Default memory pool): DMphys | size: 340552KB total, 340552KB free, 32KB reserved DMphys | 0x001c6000-0x002d0000 ( 1064KB, 1MB) free DS: DMphys | 0x002e1000-0x00400000 ( 1148KB, 1MB) free DS: DMphys | 0x0043a000-0x00b80000 ( 7448KB, 7MB) free DS: DMphys | 0x00c0a000-0x01080000 ( 4568KB, 4MB) free DS: DMphys | 0x0108a000-0x01220000 ( 1624KB, 2MB) free DS: DMphys | 0x0124d000-0x01300000 ( 716KB, 1MB) free DS: DMphys | 0x01343000-0x01400000 ( 756KB, 1MB) free DS: DMphys | 0x01419000-0x01500000 ( 924KB, 1MB) free DS: DMphys | 0x0151c000-0x01540000 ( 144KB, 0MB) free DS: DMphys | 0x0155f000-0x01800000 ( 2692KB, 3MB) free DS: DMphys | 0x01862000-0x01b00000 ( 2680KB, 3MB) free DS: DMphys | 0x01b83000-0x0293e000 ( 14060KB, 14MB) free DS: DMphys | 0x0471c000-0x16eba000 (302712KB, 296MB) free DS: DMphys | 0x18f00000-0x18f04000 ( 16KB, 0MB) free DS: io | Enabling events support. l4dope | DOpE(init): using events mechanism ROOT: Sending ports 0cfb-0cfb to task #0b ROOT: Sending ports 0cf8-0cfb to task #0b ROOT: Sending ports 0cfe-0cff to task #0b bmodfs | Passed the following modules: io | PCI: Using configuration type 1 bmodfs | module "(cd)/tcb/libloader.s.so" (636kB) io | PCI: Probing PCI hardware bmodfs | module "(cd)/tcb/libld-l4.s.so" (487kB) io | PCI: Probing PCI hardware (bus 00) ROOT: Sending ports 0cfc-0cff to task #0b bmodfs | module "(cd)/tcb/task_config.cfg" (1kB) io | PCI: Cannot allocate resource region 4 of device 00:07.1 bmodfs | module "(cd)/tcb/run" (312kB) io | Limiting direct PCI/PCI transfers. bmodfs | module "(cd)/tcb/proxygon" (792kB) io | 00000000-ffffffff : PCI mem bmodfs | module "(cd)/userland/l4linux2.6.21" (11967kB) io | e8000000-ebffffff : Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX H bmodfs | module "(cd)/userland/drops.rd" (16384kB) io : ost bridge loader | sleeping for 10000 ms io | ec000000-ec7fffff : VMware Inc [VMware SVGA II] PCI Display Adapter io | ec800000-ec800fff : LSI Logic / Symbios Logic 53c1030 PCI-X Fusion- io : MPT Dual Ultra320 SCSI io | f0000000-f7ffffff : VMware Inc [VMware SVGA II] PCI Display Adapter io | 0000-ffff : PCI IO io | 0cf8-0cff : PCI conf1 io | 1000-103f : Intel Corporation 82371AB/EB/MB PIIX4 ACPI io | 1040-105f : Intel Corporation 82371AB/EB/MB PIIX4 ACPI io | 1060-106f : VMware Inc [VMware SVGA II] PCI Display Adapter io | 1070-107f : Intel Corporation 82371AB/EB/MB PIIX4 IDE io | 1080-10ff : LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual io : Ultra320 SCSI io | 1400-147f : Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] io | Available IRQs=[ <!0> 1 <!2> 3 <!4> 5 6 7 8 9 a b c d e f ] l4dope | L4INPUT native mode activated ore | l4dde_mm_init(): Using ... l4dope | L4INPUT: !!! W A R N I N G !!! ore | 16 MB at 0x00180000 (vmem) l4dope | L4INPUT: Please, do not use Fiasco's "-esc" with L4INPUT. ore | 16 MB in 1 regions (kmem) l4dope | L4INPUT: !!! W A R N I N G !!! ROOT: Sending ports 0060-006f to task #0b ore | main(): initialized DDELinux2.4 l4dope | serio: i8042 AUX port at 0x60,0x64 irq 12 ore | main(): loopback: 0 l4dope | serio: i8042 KBD port at 0x60,0x64 irq 1 ore | device lo entered promiscuous mode l4dope | input: ImPS/2 Generic Wheel Mouse on isa0060/serio1 ore | main(): Initialized 1 network devices. l4dope | input: AT Translated Set 2 keyboard on isa0060/serio0 ore | Device = lo, IRQ = 0, MAC = 00:00:00:00:00:00 l4dope | input: PC Speaker ore | main(): Registering 'ORe' at names... l4dope | input: L4 input event injector ore | main(): Ready for service. l4dope | L4 input event injector: IRQ handler up l4dope | a0060/serio1/input0 l4dope | connect "ImPS/2 Generic Wheel Mouse", isa0060/serio1/input0 l4dope | connect "AT Translated Set 2 keyboard", isa0060/serio0/input0 l4dope | connect "PC Speaker", isa0061/input0 l4dope | connect "L4 input event injector", l4/sys l4dope | SharedMem(alloc): hl.raw=100000, id=43, size=800 l4dope | SharedMem(get_adr): address = 0x6000 l4dope | SharedMem(alloc): hl.raw=100000, id=44, size=800 l4dope | SharedMem(get_adr): address = 0x7000 l4dope | SharedMem(alloc): hl.raw=100000, id=45, size=800 l4dope | SharedMem(get_adr): address = 0xd000 l4dope | SharedMem(alloc): hl.raw=100000, id=46, size=800 l4dope | SharedMem(get_adr): address = 0xe000 l4dope | SharedMem(alloc): hl.raw=100000, id=47, size=800 l4dope | SharedMem(get_adr): address = 0xf000 l4dope | SharedMem(alloc): hl.raw=100000, id=49, size=800 l4dope | SharedMem(get_adr): address = 0x16000 l4dope | SharedMem(alloc): hl.raw=100000, id=4a, size=800 l4dope | SharedMem(get_adr): address = 0x17000 l4dope | dope: paddr=f0000000 size=16384KiB l4dope | Mapped video memory at f0000000 to 03000000+000000 [16384kB] via L4IO l4dope | mapping: vaddr=0x3000000 size=16777216(0x1000000) offset=0(0x0) l4dope | Frame buffer base: 0x3000000 l4dope | Resolution: 1024x768x16 l4dope | Bytes per scanline: 2048 l4dope | Current video mode is 1024x768 red=11:5 green=5:6 blue=0:5 res=0:0 loader | l4linux2.6.21: Starting application using libld-l4.s.so loader | l4linux2.6.21,#10: Loading binary loader | l4linux2.6.21,#10: Loading ldso loader | l4linux2.6.21,#10: Starting libld-l4.s.so at 00013800 via 0000cbf0 l4lx | ======> L4Linux 2.6 starting... <======== l4lx | Linux version 2.6.21-l4 (tjcl@fx242) (gcc version 4.1.2) #3 Wed Aug 2 l4lx : 2 16:43:46 WEST 2007 l4lx | Binary name: l4linux2.6.21 l4lx | Kernel command line (6 args): mem=128M root=/dev/ram load_ramdisk=1 r l4lx : amdisk_size=16384 l4env_rd=drops.rd video=l4fb:800x600@16 ,xpos:214,yp l4lx : os:140,refreshsleep:75,title:LegacyLinux l4lx | Image: 00400000 - 00683000 [2572 KiB]. l4lx | Areas: Text: 00400000 - 005e9000 [1956kB] (a bit longer) l4lx | Data: 005e9000 - 005fe2cc [84kB] l4lx | Initdata: 00602000 - 006260a0 [144kB] l4lx | BSS: 00628000 - 00680900 [354kB] l4lx | l4lx_thread_create: Created thread 10.03 (tamer) l4lx | Using tamed mode. ROOT: Sending all ports (for cli/sti) to task #0f l4lx | Got 65536 out of 65536 I/O ports l4lx | l4env_linux_startup thread 4. l4lx | l4lx_thread_create: Created thread 10.04 (server) l4lx | main thread will be 10.04 l4lx | l4env_register_pointer_section: addr = 00600000 size = 536576 l4lx | sec-w-init: virt: 0x00600000 to 0x00682fff [524 KiB] l4lx | sec-w-init: Number of physical regions: 1, 536576 Bytes l4lx | sec-w-init: 1: Phys: 0x0093e000 to 0x009c1000, Size: 536576 l4lx | main thread: received startup message. l4lx | Main thread running, waiting... l4lx | setup_l4env_memory: Forcing superpages for main memory l4lx | Main memory size: 128MB l4lx | Main memory: virt: 0x00800000 to 0x087fffff [131072 KiB] l4lx | Main memory: Number of physical regions: 1, 134217728 Bytes l4lx | Main memory: 1: Phys: 0x06800000 to 0x0e800000, Size: 134217728 l4lx | Filling lower ptabs... l4lx | Done (1338 entries). l4lx | l4env_rd_path: drops.rd l4lx | Loading: drops.rd l4lx | INITRD: Size of RAMdisk is 16384KiB l4lx | RAMdisk from 08800000 to 09800000 [16384KiB] l4lx | l4lx_thread_create: Created thread 10.05 (timer.i0) l4lx | l4lx_thread_create: Created thread 10.06 (Idler) l4lx | Creating 1 ORe device(s). l4lx | Opening device eth0 at ORe instance ORe l4lx | l4ore_open(): called l4lx | l4ore_open(): descriptor: 0 l4lx | ore_lookup_server(): ORe server ORe = C.02 l4lx | ore_do_open(): called ore | [C.2] ore/server/src/clients.c:215:setup_connection(): ore | Error: no device found. l4lx | ore_do_open(): opened. worker = 7FF.7F l4lx | [10.4] ore/lib/client/lib.c:181:l4ore_open(): l4lx | Error: ore_open() returned INVALID_ID --- end serial output ------------------------------------------------