I'm trying to make a l4linux system access the vga directly without mag, l4con or fbdrv. I compiled it using the default configuration with virtual pci bus enabled, x86-mp_vPCI_defconfig. I'm currently trying on qemu, i see that l4linux recognizes the pci devices and is able to mount the root fs from /dev/hda (i also tried with a ramdisk with same results) and loads the driver of the vga (vgaarb: device added: PCI:0000:00:01.0,decodes=io+mem,owns=io+mem,locks=none). But then i get a kernel panic because init (/bin/bash) exited (or didn't execute):
l4linux | EX: 0: pc = 0041176a sp = 07829fac trapno = 0xd err/pfa = 0x402 Kernel panic - not syncing: Attempted to kill init! Pid: 1, comm: bash Not tainted 3.0.0-l4-svn23 #35
Looking at the binary at 0x41176a i see that the kernel is trying to execute execve but fails with trap 13.
... /src/l4linux/arch/l4/kernel/arch-x86/../../../x86/kernel/sys_i386_32.c:36 411765: b8 0b 00 00 00 mov $0xb,%eax 41176a: cd 80 int $0x80
My config files are the following ones and i also attached a full log, where is my setup wrong?
------ linux-x2.cfg ------ loader = L4.default_loader; local lxname = "vmlinuz"; vbus_l4linux = loader:new_channel();
loader:start({ caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; l4linux = vbus_l4linux:svr(); }, log = { "io", "red" }, }, "rom/io rom/x86-legacy.devs rom/l4lx-x86-x2.io");
loader:start({ caps = { log = L4.Env.log:m("rws"); vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Info, log = { "l4linux", "blue" }, }, "rom/" .. lxname .. " mem=120M earlyprintk=yes initcall_debug=1 showpfexc=1 root=/dev/hda init=/bin/bash", "allow_cli","all_sects_writable","allow_vga");
------ l4lx-x86-x2.io ------ l4linux => new System_bus() { PCI0 => new PCI_bus() { host_bridge_dummy => new PCI_dummy_device();
pci_gfx[] => wrap(hw-root.match("PCI/CC_03")); pci_l4x[] => wrap(hw-root.match("PCI/CC_02,PCI/CC_01,PCI/CC_04")); }
vgadev => wrap(hw-root.VGA); ps2dev => wrap(hw-root.PS2); }
L4 Bootstrapper Build: #1 Fri Feb 3 12:59:44 CET 2012, x86-32, 4.4.5 RAM: 0000000000000000 - 000000000009f3ff: 637kB RAM: 0000000000100000 - 0000000012bfcfff: 306164kB Total RAM: 299MB Moving 11 modules to 1100000 with offset dee000 moving module 11 { 15bd000-25bd000 } -> { 23ab000-33ab000 } moving module 10 { 10d7000-15bcc8a } -> { 1ec5000-23aac8a } moving module 09 { 10d6000-10d612b } -> { 1ec4000-1ec412b } moving module 08 { 10d5000-10d53b7 } -> { 1ec3000-1ec33b7 } moving module 07 { 86a000-10d4428 } -> { 1658000-1ec2428 } moving module 06 { 869000-869278 } -> { 1657000-1657278 } moving module 05 { 66d000-868154 } -> { 145b000-1656154 } moving module 04 { 57e000-66cd17 } -> { 136c000-145ad17 } moving module 03 { 3ba000-57d9ee } -> { 11a8000-136b9ee } moving module 02 { 379000-3b9995 } -> { 1167000-11a7995 } moving module 01 { 312000-378a40 } -> { 1100000-1166a40 } Scanning /fiasco -serial_esc Scanning /sigma0 Scanning /moe rom/linux-x2.cfg Bootloader MMAP: [ 0, 9f400) RAM (1) [ 9f400, a0000) reserved (2) [ f0000, 100000) reserved (2) [ 100000, 12bfd000) RAM (1) [ 12bfd000, 12c00000) reserved (2) [ fffbc000, 100000000) reserved (2) Relocated mbi to [0x2dd000-0x2dd18e] Loading /fiasco Loading /sigma0 Loading /moe find kernel info page... found kernel info page at 0x400000 Regions of list regions [ 0, fff] { 1000} Arch BIOS [ 9f400, 9ffff] { c00} Arch BIOS [ f0000, fffff] { 10000} Arch BIOS [ 100000, 10a1b3] { a1b4} Sigma0 /sigma0 [ 140000, 18b0df] { 4b0e0} Root /moe [ 2d0000, 2e13e7] { 113e8} Boot bootstrap [ 2dd000, 2dd28b] { 28c} Root Multiboot info [ 300000, 38ffff] { 90000} Kern /fiasco [ 400000, 46bfff] { 6c000} Kern /fiasco [ 136c000, 33aafff] { 203f000} Root Modules Memory [ 12bfd000, 12bfffff] { 3000} Arch BIOS [ fffbc000, ffffffff] { 44000} Arch BIOS API Version: (87) experimental Sigma0 config ip:001001dc sp:002dca38 Roottask config ip:001401c4 sp:00000000 Starting kernel /fiasco at 00300824
Welcome to Fiasco.OC (ia32)! L4/Fiasco.OC ia32 microkernel (C) 1998-2011 TU Dresden Rev: r38 compiled with gcc 4.4.5 for Intel Pentium Pro [] Build: #5 Mon Feb 6 17:25:11 CET 2012
Performance-critical config option(s) detected: CONFIG_NDEBUG is off CONFIG_FINE_GRAINED_CPUTIME is on
Superpages: yes Kmem:: cpu page at 11406000 (4096Bytes) ACPI-Init ACPI: RSDP[0xf8850] r00 OEM:BOCHS. ACPI: RSDT[0x203fdd90] r01 OEM:BOCHS. OEMTID:BXPCRSDT ACPI: FACP[0x203ffe70] r01 OEM:BOCHS. OEMTID:BXPCFACP ACPI: SSDT[0x203fdef0] r01 OEM:BOCHS. OEMTID:BXPCSSDT ACPI: APIC[0x203fde10] r01 OEM:BOCHS. OEMTID:BXPCAPIC ACPI: HPET[0x203fddd0] r01 OEM:BOCHS. OEMTID:BXPCHPET IO-APIC: MADT = 0x203fde10 IO-APIC[ 0]: struct: 0x203fde44 adr=fec00000 IO-APIC[ 0]: pins 24 PIN[ 0m]: vector=20, del=0, dm=physical, dest=0 (high, edge) PIN[ 1m]: vector=21, del=0, dm=physical, dest=0 (high, edge) PIN[ 2m]: vector=22, del=0, dm=physical, dest=0 (high, edge) PIN[ 3m]: vector=23, del=0, dm=physical, dest=0 (high, edge) PIN[ 4m]: vector=24, del=0, dm=physical, dest=0 (high, edge) PIN[ 5m]: vector=25, del=0, dm=physical, dest=0 (high, edge) PIN[ 6m]: vector=26, del=0, dm=physical, dest=0 (high, edge) PIN[ 7m]: vector=27, del=0, dm=physical, dest=0 (high, edge) PIN[ 8m]: vector=28, del=0, dm=physical, dest=0 (high, edge) PIN[ 9m]: vector=29, del=0, dm=physical, dest=0 (high, edge) PIN[10m]: vector=2a, del=0, dm=physical, dest=0 (high, edge) PIN[11m]: vector=2b, del=0, dm=physical, dest=0 (high, edge) PIN[12m]: vector=2c, del=0, dm=physical, dest=0 (high, edge) PIN[13m]: vector=2d, del=0, dm=physical, dest=0 (high, edge) PIN[14m]: vector=2e, del=0, dm=physical, dest=0 (high, edge) PIN[15m]: vector=2f, del=0, dm=physical, dest=0 (high, edge) PIN[16m]: vector=30, del=0, dm=physical, dest=0 (high, edge) PIN[17m]: vector=31, del=0, dm=physical, dest=0 (high, edge) PIN[18m]: vector=32, del=0, dm=physical, dest=0 (high, edge) PIN[19m]: vector=33, del=0, dm=physical, dest=0 (high, edge) PIN[20m]: vector=34, del=0, dm=physical, dest=0 (high, edge) PIN[21m]: vector=35, del=0, dm=physical, dest=0 (high, edge) PIN[22m]: vector=36, del=0, dm=physical, dest=0 (high, edge) PIN[23m]: vector=37, del=0, dm=physical, dest=0 (high, edge) IO-APIC: dual 8259: yes IO-APIC: ovr[ 0] 00 -> 2 IO-APIC: ovr[ 1] 05 -> 5 IO-APIC: ovr[ 2] 09 -> 9 IO-APIC: ovr[ 3] 0a -> a IO-APIC: ovr[ 4] 0b -> b Allocate cpu_mem @ 0xfdbfa000 Local APIC[00]: version=14 max_lvt=5 APIC ESR value before/after enabling: 00000000/00000000 Using the PIT (i8254) on IRQ 2 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.
KERNEL: Warning: Buddy::alloc: Size mismatch: 1c000 v 20000 Absolute KIP Syscalls using: int 0x30 CPU[0:0]: GenuineIntel (6:2:3:0)[00000623] Model: QEMU Virtual CPU version 0.12.5 at 3309 MHz
32 KB L1 I Cache (8-way associative, 64 bytes per line) 32 KB L1 D Cache (8-way associative, 64 bytes per line) 2048 KB L2 U Cache (8-way associative, 64 bytes per line)
Freeing init code/data: 28672 bytes (7 pages)
Calibrating timer loop... done. SIGMA0: Hello! KIP @ 400000 Found Fiasco: KIP syscalls: yes allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [0:1000;9efff] [0:10b000;13ffff] [4:140000;18bfff] [0:18c000;2dcfff] [4:2dd000;2ddfff] [0:2de000;3fffff] [0:465000;136bfff] [4:136c000;33aafff] [0:33ab000;11404fff] IOMEM:---------------------- [0:0;fff] [0:9f000;fffff] [0:12bfd000;febfffff] [0:fec01000;fedfffff] [0:fee01000;ffffffff] IO PORTS-------------------------- [0:0;fffffff] MOE: Hello world MOE: found 248476 KByte free memory MOE: found RAM from 1000 to 11405000 MOE: allocated 276 KByte for the page array @0x1000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:501000] BOOTFS: [136c000-145ad17] [C:503000] l4re BOOTFS: [145b000-1656154] [C:504000] ned BOOTFS: [1657000-1657278] [C:505000] linux-x2.cfg BOOTFS: [1658000-1ec2428] [C:506000] io BOOTFS: [1ec3000-1ec33b7] [C:507000] x86-legacy.devs BOOTFS: [1ec4000-1ec412b] [C:508000] l4lx-x86-x2.io BOOTFS: [1ec5000-23aac8a] [C:509000] vmlinuz BOOTFS: [23ab000-33ab000] [C:50a000] drops-rd.rd MOE: cmdline: /moe rom/linux-x2.cfg MOE: Starting: rom/ned rom/linux-x2.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/linux-x2.cfg' io | Io service io | Find root Pointer io | Find root Pointer: f8850 io | ACPI: RSDP 0xf8850 00014 (v00 BOCHS ) io | ACPI: RSDT 0x12bfdd90 00034 (v01 BOCHS BXPCRSDT 00000001 BXPC 00000001) io | ACPI: FACP 0x12bffe70 00074 (v01 BOCHS BXPCFACP 00000001 BXPC 00000001) io | ACPI: DSDT 0x12bfdf30 01EC4 (v01 BXPC BXDSDT 00000001 INTL 20100528) io | ACPI: FACS 0x12bffe00 00040 io | ACPI: SSDT 0x12bfdef0 00037 (v01 BOCHS BXPCSSDT 00000001 BXPC 00000001) io | ACPI: APIC 0x12bfde10 00072 (v01 BOCHS BXPCAPIC 00000001 BXPC 00000001) io | ACPI: HPET 0x12bfddd0 00038 (v01 BOCHS BXPCHPET 00000001 BXPC 00000001) io | Parsing all Control Methods: io | Table [DSDT](id 0001) - 254 Objects with 48 Devices 82 Methods 5 Regions io | Parsing all Control Methods: io | Table [SSDT](id 0002) - 1 Objects with 0 Devices 0 Methods 0 Regions io | tbxface-0601 [02] TbLoadNamespace : ACPI Tables successfully acquired io | evxfevnt-0184 [02] Enable : Transition to ACPI mode successful io | evgpeblk-1129 [04] EvCreateGpeBlock : GPE 00 to 0F [_GPE] 2 regs on int 0x9 io | /home/rkj/L4/fiasco-2012/src/l4/pkg/acpica/lib-acpi/src/osl-basic.cc:57:AcpiOsInstallInterruptHandler: UNINPLEMENTED io | Completing Region/Field/Buffer/Package initialization:................. io | Initialized 5/5 Regions 0/0 Fields 8/8 Buffers 4/4 Packages (264 nodes) io | Initializing Device/Processor/Thermal objects by executing _INI methods: io | Executed 0 _INI methods requiring 0 _STA executions (examined 51 objects) io | evgpeblk-1234 [03] EvInitializeGpeBlock : Found 0 Wake, Enabled 16 Runtime GPEs in this block io | ACPICA-Version:20091214, System in ACPI MODE, 32bit timer io | WARNING: device 'S2__' already assigned to an other virtual bus. io | WARNING: device 'PS2' already assigned to an other virtual bus. io | Ready. Waiting for request. l4linux | PH 0 (t: 1) offs=00001000 vaddr=00400000 vend=007ba000 l4linux | phys=00400000 ephys=007ba000 l4linux | f_sz=003ba000 memsz=003ba000 flgs=r-x l4linux | PH 1 (t: 1) offs=003bb000 vaddr=007ba000 vend=0091b000 l4linux | phys=007ba000 ephys=0091b000 l4linux | f_sz=0006e000 memsz=00161000 flgs=rw- l4linux | PH 2 (t: 4) offs=002e8b0c vaddr=006e7b0c vend=006e7b30 l4linux | phys=006e7b0c ephys=006e7b30 l4linux | f_sz=00000024 memsz=00000024 flgs=--- l4linux | Starting binary at 0x400000, argc=8 argv=0x80007f88 *argv=0xb1007ff4 argv0=rom/vmlinuz l4linux | External resolver is at 0xa80006e0 l4linux | ======> L4Linux 2.6 starting... <======== l4linux | Linux version 3.0.0-l4-svn23 (rkj@harpoon) (gcc version 4.4.5 (Debian 4.4.5-8) ) #35 SMP Mon Feb 6 17:50:12 CET 2012 l4linux | Binary name: rom/vmlinuz l4linux | Linux kernel command line (7 args): mem=120M earlyprintk=keep initcall_debug=1 showpfexc=1 root=/dev/hda init=/bin/bash allow_cli l4linux | vcpu 0 gets tamer 0 l4linux | CPU mapping (l:p)[1]: 0:0 l4linux | Image: 00400000 - 0091b000 [5228 KiB]. l4linux | Areas: Text: 00400000 - 007ba000 [3816kB] (a bit longer) l4linux | Data: 007ba000 - 007eb2a0 [196kB] l4linux | Initdata: 007ec000 - 00822000 [216kB] l4linux | BSS: 00828000 - 0090b000 [908kB] l4linux | gs=43 fs=43 l4linux | l4lx_thread_create: Created thread 415 (tamer0) (u:b3000400, sp:00849034) l4linux | Tamer0 is 415 l4linux | Using tamed mode. l4linux | l4lx_thread_create: Created thread 416 (nop) (u:b3000600, sp:00830418) l4linux | Device scan: l4linux | Device: l4linux | MEM: f0000000 - f1ffffff l4linux | MEM: f2000000 - f2000fff l4linux | Device: l4linux | PORT: 000001f0 - 000001f7 l4linux | PORT: 000003f6 - 000003f6 l4linux | IRQ: 0000000e - 0000000e l4linux | PORT: 00000170 - 00000177 l4linux | PORT: 00000376 - 00000376 l4linux | IRQ: 0000000f - 0000000f l4linux | PORT: 0000c000 - 0000c00f l4linux | Device: l4linux | IRQ: 0000000b - 0000000b l4linux | PORT: 0000c100 - 0000c1ff l4linux | MEM: f2020000 - f20200ff l4linux | Device: PNP0900 l4linux | PORT: 000003b0 - 000003bf l4linux | PORT: 000003c0 - 000003df l4linux | MEM: 000a0000 - 000bffff l4linux | Device: PNP0303 l4linux | PORT: 00000060 - 00000060 l4linux | PORT: 00000064 - 00000064 l4linux | IRQ: 00000001 - 00000001 l4linux | IRQ: 0000000c - 0000000c l4linux | l4x_fiasco_gdt_entry_offset = 9 l4linux | rtc not found l4linux | WARNING: RTC server does not seem there! l4linux | l4lx_thread_create: Created thread 418 (cpu0) (u:b3000800, sp:007bbff4) l4linux | main thread will be 418 l4linux | l4x_register_pointer_section: addr = 007ba000 size = 1445888 l4linux | section-with-init: virt: 0x7ba000 to 0x91afff [1412 KiB] l4linux | section-with-init: Phys: 0x0081f000 to 0x00980000, Size: 1445888 l4linux | l4x_linux_startup: thread 418. l4linux | Main thread running, waiting... l4linux | main thread: received startup message. l4linux | l4x_setup_memory: Forcing superpages for main memory l4linux | l4re_global_env: 0xb1007ef4 l4linux | Main memory size: 120MB l4linux | Main memory: virt: 0xc00000 to 0x83fffff [122880 KiB] l4linux | Main memory: Phys: 0x03400000 to 0x0ac00000, Size: 125829120 l4linux | Filling lower ptabs... l4linux | Page fault: addr = 00002002 pc = 007eee2a (rw) l4linux | Page fault: addr = 009fa002 pc = 007eee2a (rw) l4linux | Done (1532 entries). l4linux | l4x_register_pointer_section: addr = 007ba000 size = 1445888 l4linux | end: virt: 0x7ba000 to 0x91afff [1412 KiB] l4linux | end: Phys: 0x0081f000 to 0x00980000, Size: 1445888 l4linux | l4lx_thread_create: Created thread 41d (l4lx.ipi0) (u:b3000a00, sp:0089fff4) Linux version 3.0.0-l4-svn23 (rkj@harpoon) (gcc version 4.4.5 (Debian 4.4.5-8) ) #35 SMP Mon Feb 6 17:50:12 CET 2012 BIOS-provided physical RAM map: L4Lx-Memory: 0000000000000000 - 0000000000400000 (reserved) L4Lx-Memory: 0000000000400000 - 000000000091b000 (usable) L4Lx-Memory: 000000000091b000 - 0000000000c00000 (unusable) L4Lx-Memory: 0000000000c00000 - 0000000008400000 (usable) Notice: NX (Execute Disable) protection cannot be enabled: non-PAE kernel! last_pfn = 0x8400 max_arch_pfn = 0x100000 init_memory_mapping: 0000000000000000-0000000008400000 132MB LOWMEM available. mapped low ram: 0 - 08400000 low ram: 0 - 08400000 Zone PFN ranges: DMA 0x00000400 -> 0x00000000 Normal 0x00000000 -> 0x00008400 Movable zone start PFN for each node early_node_map[2] active PFN ranges 0: 0x00000400 -> 0x0000091b 0: 0x00000c00 -> 0x00008400 Using APIC driver default Intel MultiProcessor Specification v1.0 Virtual Wire compatibility mode. Processors: 1 SMP: Allowing 1 CPUs, 0 hotplug CPUs Allocating PCI resources starting at 8400000 (gap: 8400000:f7c00000) setup_percpu: NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:1 nr_node_ids:1 PERCPU: Embedded 11 pages/cpu @07c00000 s20928 r0 d24128 u4194304 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 31771 Kernel command line: mem=120M earlyprintk=keep initcall_debug=1 showpfexc=1 root=/dev/hda init=/bin/bash allow_cli console [earlykdb0] enabled PID hash table entries: 512 (order: -1, 2048 bytes) Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Initializing CPU#0 Memory: 121760k/135168k available (2973k kernel code, 6348k reserved, 1039k data, 216k init, 0k highmem) virtual kernel memory layout: fixmap : 0x00100000 - 0x001e7000 ( 924 kB) vmalloc : 0x08400000 - 0x10400000 ( 128 MB) lowmem : 0x00000000 - 0x08400000 ( 132 MB) .init : 0x007ec000 - 0x00822000 ( 216 kB) .data : 0x006e7548 - 0x007eb2a0 (1039 kB) .text : 0x00400000 - 0x006e7548 (2973 kB) Hierarchical RCU implementation. NR_IRQS:512 l4lx_irq_init: l4lx_irq_max = 512 l4linux | rtc not found Console: colour dummy device 80x25 console [tty0] enabled l4lx_irq_timer_startup(0) l4linux | l4lx_thread_create: Created thread 41f (timer.i0) (u:b3000c00, sp:008a1ff4) Detected 3309.724 MHz processor. Calibrating delay loop (skipped), value calculated using timer frequency.. 6619.44 BogoMIPS (lpj=33097240) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 512 SMP alternatives: switching to UP code timer_irq_thread: Starting timer IRQ thread. Freeing SMP alternatives: 24k freed CPU0: Intel QEMU Virtual CPU version 0.12.5 stepping 03 Performance Events: unsupported p6 CPU model 2 no PMU driver, software events only. Brought up 1 CPUs Total of 1 processors activated (6619.44 BogoMIPS). NET: Registered protocol family 16 bio: create slab <bio-0> at 0 vgaarb: loaded SCSI subsystem initialized PCI: L4 root bridge is device 17dd0 vgaarb: device added: PCI:0000:00:01.0,decodes=io+mem,owns=io+mem,locks=none PCI: Using L4-IO for IRQ routing pci 0000:00:00.0: No interrupt pin configured for device 0000:00:00.0 pci 0000:00:01.0: No interrupt pin configured for device 0000:00:01.0 pci 0000:00:02.0: No interrupt pin configured for device 0000:00:02.0 L4IRQ: set irq type of 11 to 4 pci 0000:00:03.0: PCI INT A -> GSI 11 (level, high) -> IRQ 11 Switching to clocksource l4kipclk NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 3, 32768 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered UDP hash table entries: 128 (order: 0, 4096 bytes) UDP-Lite hash table entries: 128 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. platform rtc_cmos: registered platform RTC device (no PNP device found) msgmni has been set to 237 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) l4fb l4fb.0: look for capability 'fb' as goos session l4fb l4fb.0: init failed err=-2 initcall l4fb_init+0x0/0x17b returned with error code -2 L4 shared mem serial driver brd: module loaded l4bdds: No name given, not starting. Uniform Multi-Platform E-IDE driver piix 0000:00:02.0: IDE controller (0x8086:0x7010 rev 0x00) pci 0000:00:02.0: No interrupt pin configured for device 0000:00:02.0 piix 0000:00:02.0: not 100% native mode: will probe irqs later ide0: BM-DMA at 0xc000-0xc007 ide1: BM-DMA at 0xc008-0xc00f l4linux | cpu0: utcb=0xb3000800 418 l4linux | l4lx_thread_create: Created thread 420 (idler0) (u:b3000e00, sp:008a3ff8) hda: QEMU HARDDISK, ATA DISK drive Switching to clocksource tsc hda: MWDMA2 mode selected hdc: QEMU DVD-ROM, ATAPI CD/DVD-ROM drive hdc: MWDMA2 mode selected l4lx_irq_dev_startup: creating IRQ thread for 14 (IRQ-cap 421000) l4linux | l4lx_thread_create: Created thread 422 (IRQ14) (u:10400000, sp:008a5ff4) l4linux | irq_thread: Started IRQ thread for IRQ 14 ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 l4lx_irq_dev_startup: creating IRQ thread for 15 (IRQ-cap 423000) l4linux | l4lx_thread_create: Created thread 424 (IRQ15) (u:10400200, sp:008a7ff4) l4linux | irq_thread: Started IRQ thread for IRQ 15 ide1 at 0x170-0x177,0x376 on irq 15 ide_generic: please use "probe_mask=0x3f" module parameter for probing all legacy ISA IDE ports ide-gd driver 1.18 hda: max request size: 512KiB hda: 32768 sectors (16 MB) w/256KiB Cache, CHS=32/255/63 hda: cache flushes supported hda: unknown partition table ide-cd driver 5.00 ide-cd: hdc: ATAPI 4X CD-ROM drive, 512kB Cache cdrom: Uniform CD-ROM driver Revision: 3.20 e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI e1000: Copyright (c) 1999-2006 Intel Corporation. pcnet32: pcnet32.c:v1.35 21.Apr.2008 tsbogend@alpha.franken.de mousedev: PS/2 mouse device common for all mice TCP cubic registered NET: Registered protocol family 17 Registering the dns_resolver key type initcall lapic_insert_resource+0x0/0x35 returned with error code -1 Using IPI No-Shortcut mode async_waiting @ 1 async_continuing @ 1 after 0 usec EXT2-fs (hda): warning: mounting unchecked fs, running e2fsck is recommended VFS: Mounted root (ext2 filesystem) on device 3:0. async_waiting @ 1 async_continuing @ 1 after 0 usec Freeing unused kernel memory: 216k freed l4linux | EX: 0: pc = 0041176a sp = 07829fac trapno = 0xd err/pfa = 0x402 Kernel panic - not syncing: Attempted to kill init! Pid: 1, comm: bash Not tainted 3.0.0-l4-svn23 #35 Call Trace: [<006e4a29>] panic+0x57/0x14b [<0042ddd1>] do_exit+0x601/0x6c0 [<004839e2>] ? do_munmap+0x202/0x290 [<0042df60>] ? sys_exit_group+0x20/0x20 [<0042df73>] sys_exit+0x13/0x20 [<00406b13>] l4x_user_dispatcher+0xdd3/0x22c0 [<00409702>] l4_kernelinternal_execve+0x52/0xe0 [<00400569>] in_kernel_int80_helper+0x9/0x20 [<0041176c>] ? kernel_execve+0x1c/0x30 [<004001b7>] run_init_process+0x17/0x20 [<00400251>] init_post+0x91/0xb0 [<007ec1d5>] kernel_init+0x10e/0x116 [<007ec0c7>] ? parse_early_options+0x25/0x25 [<00409a99>] kernel_thread_start+0x29/0x30 panic: going to sleep forever, bye l4linux | panic: going to sleep forever, bye
Hi,
On Mon Feb 06, 2012 at 18:29:37 +0100, Riccardo Cecolin wrote:
I'm trying to make a l4linux system access the vga directly without mag, l4con or fbdrv. I compiled it using the default configuration with virtual pci bus enabled, x86-mp_vPCI_defconfig. I'm currently trying on qemu, i see that l4linux recognizes the pci devices and is able to mount the root fs from /dev/hda (i also tried with a ramdisk with same results) and loads the driver of the vga (vgaarb: device added: PCI:0000:00:01.0,decodes=io+mem,owns=io+mem,locks=none). But then i get a kernel panic because init (/bin/bash) exited (or didn't execute):
l4linux | EX: 0: pc = 0041176a sp = 07829fac trapno = 0xd err/pfa = 0x402 Kernel panic - not syncing: Attempted to kill init! Pid: 1, comm: bash Not tainted 3.0.0-l4-svn23 #35 Call Trace: [<006e4a29>] panic+0x57/0x14b [<0042ddd1>] do_exit+0x601/0x6c0 [<004839e2>] ? do_munmap+0x202/0x290 [<0042df60>] ? sys_exit_group+0x20/0x20 [<0042df73>] sys_exit+0x13/0x20 [<00406b13>] l4x_user_dispatcher+0xdd3/0x22c0 [<00409702>] l4_kernelinternal_execve+0x52/0xe0 [<00400569>] in_kernel_int80_helper+0x9/0x20 [<0041176c>] ? kernel_execve+0x1c/0x30 [<004001b7>] run_init_process+0x17/0x20 [<00400251>] init_post+0x91/0xb0 [<007ec1d5>] kernel_init+0x10e/0x116 [<007ec0c7>] ? parse_early_options+0x25/0x25 [<00409a99>] kernel_thread_start+0x29/0x30
The excepion is completely normal, should be the exec for init/bash. Looks like bash is exiting itself and as it's init, Linux stops. What's on your 16MB disk? Is the bash statically linked? Or all shared libs there? /dev/console there? Everything 32bits?
Adam
Hi,
I tried with the drops-rd.rd filesystem image found here: http://os.inf.tu-dresden.de/L4/LinuxOnL4/download/drops-rd.rd and with a debootstrap generated one of debian stable and they both hang there. The same images work fine if I boot l4linux with fbdrv and mag. Everything 32 bit, bash is dynamically linked on the drops image as well as on the one i created. Libraries are in their place and /dev/console is there. If instead of /bin/bash i let the default init process start I get a segfault at 405f24 (dispatch.c) and then repeated segfaults in 4109d5 (where i suppose it is trying to dump the stack). I have been able to see this output poking with the VCPU option in the l4linux advanced configuration.
Riccardo
... Freeing unused kernel memory: 220k freed l4linux | EX: 0: pc = 0041173a sp = 07829fac trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 079f9fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e13fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e17fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e1bfc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e13fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e17fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e1bfc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06dd9fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e1dfc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e1ffc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06dd9fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e1dfc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e1ffc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e05fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e13fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06dfdfc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e05fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e11fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06dfdfc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06dfffc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06df9fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e19fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06dfffc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06df9fc8 trapno = 0xd err/pfa = 0x402 l4linux | EX: 0: pc = 0041173a sp = 06e19fc8 trapno = 0xd err/pfa = 0x402 l4linux | Page fault: addr = b69e097c pc = 00405f24 (ro) l4linux | Non-resolvable page fault at b69e097c, ip 405f24. l4linux | Page fault (non-resolved): pfa=b69e097c pc=405f24 l4linux | EX: 0: pc = 00405f24 sp = 06e1df58 trapno = 0xe err/pfa = 0xb69e097c r l4linux | Non-resolvable page fault at b69e097c, ip 405f24. Die message: Trap: 14 l4linux | Page fault: addr = b69e097c pc = 004109d5 (ro) l4linux | Non-resolvable page fault at b69e097c, ip 4109d5. l4linux | Page fault (non-resolved): pfa=b69e097c pc=4109d5 l4linux | EX: 0: pc = 004109d5 sp = 06e1def0 trapno = 0xe err/pfa = 0xb69e097c r l4linux | Non-resolvable page fault at b69e097c, ip 4109d5.
src/l4linux/arch/l4/kernel/arch-x86/dispatch.c:395 405f21: 8b 4d 98 mov -0x68(%ebp),%ecx 405f24: 64 a1 0c 0e 82 00 mov %fs:0x820e0c,%eax 405f2a: 8b 04 85 40 bf 7e 00 mov 0x7ebf40(,%eax,4),%eax 405f31: c7 04 08 10 00 00 00 movl $0x10,(%eax,%ecx,1)
src/l4linux/arch/l4/kernel/arch-x86/../../../x86/kernel/dumpstack.c:210 4109d5: 64 8b 15 0c 0e 82 00 mov %fs:0x820e0c,%edx
bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.0.30, stripped bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
ldd bash: linux-gate.so.1 => (0xb783c000) libncurses.so.5 => /lib/libncurses.so.5 (0xb77eb000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb77e7000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb76a0000) /lib/ld-linux.so.2 (0xb783d000)
On Mon, Feb 6, 2012 at 11:32 PM, Adam Lackorzynski < adam@os.inf.tu-dresden.de> wrote:
Hi,
On Mon Feb 06, 2012 at 18:29:37 +0100, Riccardo Cecolin wrote:
I'm trying to make a l4linux system access the vga directly without mag, l4con or fbdrv. I compiled it using the default configuration with
virtual
pci bus enabled, x86-mp_vPCI_defconfig. I'm currently trying on qemu, i see that l4linux recognizes the pci
devices
and is able to mount the root fs from /dev/hda (i also tried with a
ramdisk
with same results) and loads the driver of the vga (vgaarb: device added: PCI:0000:00:01.0,decodes=io+mem,owns=io+mem,locks=none). But then i get a kernel panic because init (/bin/bash) exited (or didn't execute):
l4linux | EX: 0: pc = 0041176a sp = 07829fac trapno = 0xd err/pfa = 0x402 Kernel panic - not syncing: Attempted to kill init! Pid: 1, comm: bash Not tainted 3.0.0-l4-svn23 #35 Call Trace: [<006e4a29>] panic+0x57/0x14b [<0042ddd1>] do_exit+0x601/0x6c0 [<004839e2>] ? do_munmap+0x202/0x290 [<0042df60>] ? sys_exit_group+0x20/0x20 [<0042df73>] sys_exit+0x13/0x20 [<00406b13>] l4x_user_dispatcher+0xdd3/0x22c0 [<00409702>] l4_kernelinternal_execve+0x52/0xe0 [<00400569>] in_kernel_int80_helper+0x9/0x20 [<0041176c>] ? kernel_execve+0x1c/0x30 [<004001b7>] run_init_process+0x17/0x20 [<00400251>] init_post+0x91/0xb0 [<007ec1d5>] kernel_init+0x10e/0x116 [<007ec0c7>] ? parse_early_options+0x25/0x25 [<00409a99>] kernel_thread_start+0x29/0x30
The excepion is completely normal, should be the exec for init/bash. Looks like bash is exiting itself and as it's init, Linux stops. What's on your 16MB disk? Is the bash statically linked? Or all shared libs there? /dev/console there? Everything 32bits?
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hi,
On Tue Feb 07, 2012 at 11:28:12 +0100, Riccardo Cecolin wrote:
I tried with the drops-rd.rd filesystem image found here: http://os.inf.tu-dresden.de/L4/LinuxOnL4/download/drops-rd.rd and with a debootstrap generated one of debian stable and they both hang there. The same images work fine if I boot l4linux with fbdrv and mag. Everything 32 bit, bash is dynamically linked on the drops image as well as on the one i created. Libraries are in their place and /dev/console is there. If instead of /bin/bash i let the default init process start I get a segfault at 405f24 (dispatch.c) and then repeated segfaults in 4109d5 (where i suppose it is trying to dump the stack).
The way the output works should not make a difference here in this regard, so hmm. Could you add console=ttyLv0 to Linux cmdline to get more output on the serial?
I have been able to see this output poking with the VCPU option in the l4linux advanced configuration.
With it on or off?
Adam
I had to disable the "use vCPU execution model" to get that output. I added console=ttyLv0 and enabled support for it into the l4linux config, then with bash as init i could see "allow_cli: allow_cli: No such file or directory" in the log. So i removed it from the command line and now i get a working bash! After mounting /proc lspci works fine too.
When trying with the default init i never get the login prompt, it freezes after "No user config loaded!", so something is still wrong (this with drops-rd.rd). If i load the other root image with an rc.local which executes "startx" i get the following error: xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted). A previous mail in this list states that this is solved with that "allow_cli" parameter, but I need now some advice about where to put it, assuming that it is still a valid solution.
Thank you for your help. Riccardo
On Wed, Feb 8, 2012 at 1:40 PM, Adam Lackorzynski <adam@os.inf.tu-dresden.de
wrote:
Hi,
On Tue Feb 07, 2012 at 11:28:12 +0100, Riccardo Cecolin wrote:
I tried with the drops-rd.rd filesystem image found here: http://os.inf.tu-dresden.de/L4/LinuxOnL4/download/drops-rd.rd and with a debootstrap generated one of debian stable and they both hang there. The same images work fine if I boot l4linux with fbdrv and mag. Everything
32
bit, bash is dynamically linked on the drops image as well as on the one
i
created. Libraries are in their place and /dev/console is there. If instead of /bin/bash i let the default init process start I get a segfault at 405f24 (dispatch.c) and then repeated segfaults in 4109d5 (where i suppose it is trying to dump the stack).
The way the output works should not make a difference here in this regard, so hmm. Could you add console=ttyLv0 to Linux cmdline to get more output on the serial?
I have been able to see this output poking with the VCPU option in the l4linux advanced configuration.
With it on or off?
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
On Thu Feb 09, 2012 at 11:23:27 +0100, Riccardo Cecolin wrote:
I had to disable the "use vCPU execution model" to get that output. I added console=ttyLv0 and enabled support for it into the l4linux config, then with bash as init i could see "allow_cli: allow_cli: No such file or directory" in the log. So i removed it from the command line and now i get a working bash! After mounting /proc lspci works fine too.
When trying with the default init i never get the login prompt, it freezes after "No user config loaded!", so something is still wrong (this with drops-rd.rd).
The issue is that this ramdisk's inittab is not configured to show a prompt on ttyLv0, that's why no more output there. The login-prompt will only be on tty0 (e.g. the framebuffer).
If i load the other root image with an rc.local which executes "startx" i get the following error: xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted). A previous mail in this list states that this is solved with that "allow_cli" parameter, but I need now some advice about where to put it, assuming that it is still a valid solution.
allow_cli is not valid anymore with any recent version. The easiest way to use X is to configure X for the fbdev driver so it uses the framebuffer.
Adam
l4-hackers@os.inf.tu-dresden.de