hi all!
I compiled myself l4linux and tried to start it, but something goes wrong. When the linux server starts, a page fault occurs at the beginning of its BSS area. The log is the following:
[===============================================]
L4 Bootstrapper Scaning (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco -nowait -nokdb -serial -jdb_never_stop -tbuf_entries=32768 -jdb_cmd=JH Scaning (nd)/tftpboot/drops/bin/x86_586/l4v2/sigma0 Scaning (nd)/tftpboot/drops/bin/x86_586/l4v2/roottask task sigma0 boot_priority 0xA0 task roottask boot_priority 0xA0 task modname "names" boot_priority 0xA0 task modname "log" boot_priority 0xA1 task modname "dm_phys" boot_priority 0xA0 task modname "simple_ts" boot_priority 0xA0 task modname "l4io" allow_cli boot_priority 0xA3 task modname "rtc" allow_cli task modname "l4con" allow_cli task modname "l4exec" boot_priority 0xA0 task modname "loader" allow_cli boot_priority 0xA0 task modname "vmlinuz26" task modname "bmodfs" attached 4 modules Relocated mbi to [0x64000-0x64a22] Loading (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco Loading (nd)/tftpboot/drops/bin/x86_586/l4v2/sigma0 Loading (nd)/tftpboot/drops/bin/x86_586/l4v2/roottask find kernel info page... found kernel info page at 0x1000 API Version: (87) experimental Sigma0 config ip:00090000 sp:00105100 [00090000-00096d44] Roottask config ip:00120000 sp:00108528 [00120000-002bda14] [00001000-00002000) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco [00002000-00055980) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco [00055980-0005e290) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco [0005f000-00062230) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco [00062240-00064000) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco [00090000-000948dc) (nd)/tftpboot/drops/bin/x86_586/l4v2/sigma0 [000958e0-00096d44) (nd)/tftpboot/drops/bin/x86_586/l4v2/sigma0 [0009f000-00100000) BIOS area [00100000-00108764) bootstrap [00120000-00133190) (nd)/tftpboot/drops/bin/x86_586/l4v2/roottask [00134000-0013e67e) (nd)/tftpboot/drops/bin/x86_586/l4v2/roottask [0013f680-002bda14) (nd)/tftpboot/drops/bin/x86_586/l4v2/roottask [00300000-00301a40) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco [00302000-0038f408) (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco [02000000-036b3174) Modules Memory [10000000-ffffffff) Deep Space Starting kernel (nd)/tftpboot/drops/bin/x86_586/l4v2/fiasco at 00300878
[1;32mWelcome to Fiasco(ia32)! [0;32mDD-L4(v2)/x86 microkernel (C) 1998-2006 TU Dresden Rev: Mon Aug 28 08:34:51 2006 compiled with gcc 3.3.1 for Intel Pentium[0m [31mPerformance-critical config option(s) detected: CONFIG_ASSEMBLER_IPC_SHORTCUT is off CONFIG_NDEBUG is off [m Enabling special fully nested mode for PIC Using the PIT (i8254) on IRQ 0 for scheduling Absolute KIP Syscalls using: Sysenter CPU: GenuineIntel (6:3:3:0) Model: Unknown CPU at 735 MHz
8 KB L1 I Cache (4-way associative, 32 bytes per line)
Freeing init code/data: 20480 bytes (5 pages)
[6nSIGMA0: Hello! Found Fiasco: KIP syscalls: yes. Allocated 132kB for maintenance structures.
Roottask. Command line found: "(nd)/tftpboot/drops/bin/x86_586/l4v2/roottask task sigma0 boot_priority 0xA0 task roottask boot_priority 0xA0 task modname "names" boot_priority 0xA0 task modname "log" boot_priority 0xA1 task modname "dm_phys" boot_priority 0xA0 task modname "simple_ts" boot_priority 0xA0 task modname "l4io" allow_cli boot_priority 0xA3 task modname "rtc" allow_cli task modname "l4con" allow_cli task modname "l4exec" boot_priority 0xA0 task modname "loader" allow_cli boot_priority 0xA0 task modname "vmlinuz26" task modname "bmodfs" attached 4 modules"
261759kB ( 255MB) total RAM (reported by bootloader) 215872kB ( 211MB) received RAM from Sigma0 24376kB ( 24MB) 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 command line config. 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 (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:0 mcp:ff prio:a1 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 (l4io): vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:a3 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 (l4con): vm_offs:0 irq:ffff lmcp:ffff allow_cli:1 mcp:ff prio:10 small:ff mods:0 configured task 0x00 (l4exec): 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 configured task 0x00 (vmlinuz26): configured task 0x00 (bmodfs): vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:10 small:ff mods:4
Roottask: Loading 14 modules. [36m#05: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/names" [m from [[37m02085000[m-[37m0208e174[m] to [002d0000-002d616a][002d7000-002e3000] entry at [37m0005f384[m via trampoline page code [36m#06: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/log --prio 0xA1" [m from [[37m0208f000[m-[37m02097354[m] to [00400000-00406c8a][00407000-00439890] entry at [37m00060390[m via trampoline page code [36m#07: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/dm_phys --isa=0x00800000" [m from [[37m02098000[m-[37m020ac174[m] to [01500000-01511dea][01512000-0151c000] entry at [37m00061398[m via trampoline page code [36m#08: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/simple_ts -t 900" [m from [[37m020ad000[m-[37m020b7354[m] to [01400000-0140854a][01409000-0141b050] entry at [37m00062390[m via trampoline page code [36m#09: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/rtc" [m from [[37m020b8000[m-[37m020bf174[m] to [01080000-01084200][01085000-0108a000] entry at [37m00063384[m via trampoline page code [36m#0a: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/l4io --noirq" [m from [[37m020c0000[m-[37m0210f174[m] to [00b80000-00ba2a32][00ba3000-00bf0000] entry at [37m0006538c[m via trampoline page code [36m#0b: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/bmodfs" [m from [[37m02110000[m-[37m02128174[m] to [01220000-012354ee][01236000-01256000] passing module (nd)/tftpboot/cfg/l4linux26.cfg [ 02129000-021290d2 ] passing module drops/bin/x86_586/l4v2/libloader.s.so [ 0212a000-021c8755 ] passing module boot/drops/bin/x86_586/l4v2/vmlinuz26 [ 021c9000-03205e3b ] passing module (nd)/tftpboot/drops/bin/rd/initrd.gz [ 03206000-03606000 ] entry at [37m00066470[m via trampoline page code [36m#0c: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/l4con --l4io" [m from [[37m03606000[m-[37m0365a174[m] to [00b00000-00b4d35e][00b4e000-00b79000] entry at [37m0006738c[m via trampoline page code [36m#0d: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/l4exec" [m from [[37m0365b000[m-[37m03689174[m] to [01100000-0112b80a][0112c000-0114e000] entry at [37m00068384[m via trampoline page code [36m#0e: loading "(nd)/tftpboot/drops/bin/x86_586/l4v2/loader --fprov=BMODFS l4linux26.cfg" [m from [[37m0368a000[m-[37m036b3174[m] to [01300000-01326272][01327000-0134f000] entry at [37m000693a4[m via trampoline page code
rtc | Date:01.03.2008 Time:23:02:14 con | Using fast memcpy. simplets| parse_args(): Too many tasks (900) -- limiting to 891! simplets| Configured for 891 tasks. io | do_args(): Disabling internal IRQ handling. io | PCI: Using configuration type 1 io | PCI: Probing PCI hardware io | PCI: Probing PCI hardware (bus 00) io | PCI: PIIX3: Enabling Passive Release on 00:01.0 io | Limiting direct PCI/PCI transfers. io | Activating ISA DMA hang workarounds. io | 00000000-ffffffff : PCI mem io | f0000000-f1ffffff : Cirrus Logic GD 5446 io | f2000000-f2000fff : Cirrus Logic GD 5446 io | 0000-ffff : PCI IO io | 0cf8-0cff : PCI conf1 io | c000-c00f : Intel Corp. 82371SB PIIX3 IDE [Natoma/Triton II] io | c100-c1ff : Realtek Semiconductor Co., Ltd. RTL-8029(AS) con | Character size is 8x14, font has 256 characters con | VESA reports 800x600@16 1600bpl (00bb) [4096kB] con | Color mapping: red=11:5 green=5:6 blue=0:5 res=0:0 con | No supported accelerated graphics card detected io | Remapping I/O memory f0000000-f0400000 cached con | Mapped I/O video mem f0000000 => 02000000+000000 [4096kB] via l4io con | Using MMXEXT for colorspace transform con | L4INPUT: !!! W A R N I N G !!! con | L4INPUT: Please, do not use Fiasco's "-esc" with L4INPUT. con | L4INPUT: !!! W A R N I N G !!! con | L4INPUT: Registered 0xb03c80 for callbacks. con | serio: i8042 AUX port at 0x60,0x64 irq 12 con | serio: i8042 KBD port at 0x60,0x64 irq 1 con | input: ImExPS/2 Generic Explorer Mouse on isa0060/serio1 con | input: AT Translated Set 2 keyboard on isa0060/serio0 con | input: PC Speaker con | input: L4 input event injector con | L4 input event injector: IRQ handler up con | connect "ImExPS/2 Generic Explorer Mouse", isa0060/serio1/input0 con | connect "AT Translated Set 2 keyboard", isa0060/serio0/input0 con | connect "PC Speaker", isa0061/input0 con | connect "L4 input event injector", l4/sys con | Running as C.02. Video mode is 800x600@16. bmodfs | Passed the following modules: bmodfs | module "(nd)/tftpboot/cfg/l4linux26.cfg" (1kB) bmodfs | module "(nd)/tftpboot/drops/bin/x86_586/l4v2/libloader.s.so" (634kB bmodfs : ) bmodfs | module "(nd)/tftpboot/drops/bin/x86_586/l4v2/vmlinuz26" (16628kB) bmodfs | module "(nd)/tftpboot/drops/bin/rd/initrd.gz" (4096kB) loader | sleeping for 2000 ms exec | vmlinuz26: Loading exec | vmlinuz26: Interpreter section found, contains "/usr/lib/libc.so.1" exec | vmlinuz26: Saved 910939 bytes of symbols exec | libloader.s.so: Loading exec | libloader.s.so: Saved 26701 bytes of symbols exec | libloader.s.so: Relocating to 00010000 exec | libloader.s.so: Linking exec | libloader.s.so: Symbol mmap_normal is weak and undefined exec | libloader.s.so: Symbol munmap_normal is weak and undefined exec | libloader.s.so: Symbol mmap_normal is weak and undefined exec | libloader.s.so: Symbol munmap_normal is weak and undefined exec | libloader.s.so: Relocating entry 00005df0 => 00015df0 exec | libloader.s.so: Setting section flag 0800 exec | vmlinuz26: Setting section flag 0800 loader | vmlinuz26: Starting l4env-style application loader | [36mvmlinuz26,#f: Starting at l4loader_init (00016630)[m exec | vmlinuz26: Linking exec | vmlinuz26: Relocating entry 00400000 => 00400000 exec | vmlinuz26: Packed 737417 bytes of symbols exec | vmlinuz26: Packed 1868352 bytes of lines loader | vmlinuz26,#f: Continue at l4env_init (00016640, libloader.s.so) l4lx | [34;1m======> L4Linux 2.6 starting... <========[0m l4lx | Linux version 2.6.17-l4 (root@umas1) (gcc version 3.3.1 (Mandrake Lin l4lx : ux 9.2 3.3.1-2mdk)) #1 Thu Feb 7 22:57:26 UTC 2008 l4lx | Binary name: vmlinuz26 l4lx | Kernel command line (5 args): mem=128M load_ramdisk=1 ramdisk_size=40 l4lx : 96 root=/dev/ram l4env_rd=(nd)/tftpboot/drops/bin/rd/initrd.gz l4lx | Image: 00400000 - 0071c000 [3184 KiB]. l4lx | Areas: Text: 00400000 - 00631000 [2244kB] (a bit longer) l4lx | Data: 00631000 - 0067b5ac [297kB] l4lx | Initdata: 0067e000 - 006af000 [196kB] l4lx | BSS: 006b0000 - 0071aac0 [426kB] l4lx | L4RM: [PF] read at 0x006b0000, ip 004019e0, src F.02 l4lx | [F.0] l4rm/lib/src/pagefault.c:78:__unknown_pf(): l4lx | unhandled page fault l4lx | l4lx | Exiting with -1 simplets| Exit F.00 [===============================================]
What must be mapped to the BSS area and why it may be unsuccessful? These page faults, as I understand, are handled by l4rm library and dm_phys dataspace manager, but what here can be wrong?
my grub entry is: [===============================================] title loader + l4lx26 mit BMODFS kernel $(ROOT)/bootstrap -serial modaddr 0x02000000 module $(FIASCO) $(FIASCOARGS) module $(P)/sigma0 module $(P)/roottask task sigma0 boot_priority 0xA0 \ task roottask boot_priority 0xA0 \ task modname "names" boot_priority 0xA0 \ task modname "log" boot_priority 0xA1 \ task modname "dm_phys" boot_priority 0xA0 \ task modname "simple_ts" boot_priority 0xA0 \ task modname "l4io" allow_cli boot_priority 0xA3 \ task modname "rtc" allow_cli \ task modname "l4con" allow_cli \ task modname "l4exec" boot_priority 0xA0 \ task modname "loader" allow_cli boot_priority 0xA0 \ task modname "vmlinuz26" \ task modname "bmodfs" attached 4 modules module $(P)/names module $(P)/log --prio 0xA1 module $(P)/dm_phys --isa=0x00800000 module $(P)/simple_ts -t 900 module $(P)/rtc module $(P)/l4io --noirq module $(P)/bmodfs module $(CFG)/l4linux26.cfg module $(P)/libloader.s.so module $(P)/vmlinuz26 module $(S)/rd/initrd.gz module $(P)/l4con --l4io module $(P)/l4exec module $(P)/loader --fprov=BMODFS l4linux26.cfg vbeset $(VBEMODE) [===============================================]
and it uses the following l4linux26.cfg:
[===============================================] modpath "(nd)/tftpboot/drops/bin/x86_586/l4v2"
sleep 2 task "vmlinuz26" "mem=32M load_ramdisk=1 ramdisk_size=4096 root=/dev/ram l4env_rd=(nd)/tftpboot/drops/bin/rd/initrd.gz showpfexc=1" all_sects_writable [===============================================]
as you can probably see, I use a bit old l4linux and l4env sources (downloaded a year or more ago). I think I missed something simple, but I can't understand what. Please help.
WBR, Valery
Hi,
On Sat Mar 08, 2008 at 00:44:46 +1200, Valery V. Sedletski wrote:
I compiled myself l4linux and tried to start it, but something goes wrong. When the linux server starts, a page fault occurs at the beginning of its BSS area. The log is the following:
exec | vmlinuz26: Packed 1868352 bytes of lines loader | vmlinuz26,#f: Continue at l4env_init (00016640, libloader.s.so) l4lx | [34;1m======> L4Linux 2.6 starting... <========[0m l4lx | Linux version 2.6.17-l4 (root@umas1) (gcc version 3.3.1 (Mandrake Lin l4lx : ux 9.2 3.3.1-2mdk)) #1 Thu Feb 7 22:57:26 UTC 2008 l4lx | Binary name: vmlinuz26 l4lx | Kernel command line (5 args): mem=128M load_ramdisk=1 ramdisk_size=40 l4lx : 96 root=/dev/ram l4env_rd=(nd)/tftpboot/drops/bin/rd/initrd.gz l4lx | Image: 00400000 - 0071c000 [3184 KiB]. l4lx | Areas: Text: 00400000 - 00631000 [2244kB] (a bit longer) l4lx | Data: 00631000 - 0067b5ac [297kB] l4lx | Initdata: 0067e000 - 006af000 [196kB] l4lx | BSS: 006b0000 - 0071aac0 [426kB] l4lx | L4RM: [PF] read at 0x006b0000, ip 004019e0, src F.02 l4lx | [F.0] l4rm/lib/src/pagefault.c:78:__unknown_pf(): l4lx | unhandled page fault l4lx | l4lx | Exiting with -1 simplets| Exit F.00 [===============================================]
What must be mapped to the BSS area and why it may be unsuccessful? These page faults, as I understand, are handled by l4rm library and dm_phys dataspace manager, but what here can be wrong?
as you can probably see, I use a bit old l4linux and l4env sources (downloaded a year or more ago). I think I missed something simple, but I can't understand what. Please help.
Quite old but anyway. It would be interesting to know where 0x004019e0 is in the vmlinux binary. So please look up the address with objdump -ld vmlinux and see what .c files and which line in there are mentioned around the address. Then please look it up in the source and show me the function where this happens. As 2.6.17 is quite old it probably won't match with the current source I use.
Adam
l4-hackers@os.inf.tu-dresden.de