I've managed to get my l4linux build to start running, but it doesn't seem to get far: l4linux | libio: Warning: Finding 'icu' in system bus failed with 'No such object found' 4linux | PH 0 (t: 1) offs=00001000 vaddr=00400000 vend=005d1000 l4linux | phys=00400000 ephys=005d1000 l4linux | f_sz=001d0cb8 memsz=001d1000 flgs=r-x l4linux | PH 1 (t: 1) offs=001d2000 vaddr=005d1000 vend=00d36000 l4linux | phys=005d1000 ephys=00d36000 l4linux | f_sz=006c4c10 memsz=00765000 flgs=rw- l4linux | PH 2 (t: 4) offs=0015df14 vaddr=0055cf14 vend=0055cf38 l4linux | phys=0055cf14 ephys=0055cf38 l4linux | f_sz=00000024 memsz=00000024 flgs=--- l4linux | Starting binary at 0x400000, argc=3 argv=0x80007f9c *argv=0xb1007ff4 argv0=rom/vmlinuz l4linux | External resolver is at 0xa80006e0 l4linux | ======> L4Linux 2.6 starting... <======== l4linux | Linux version 3.0.0-l4-svn23 (ribrdb@ribox.sfo.corp.google.com) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) ) #10 Wed Jun 27 16:00:19 PDT 2012 l4linux | Binary name: rom/vmlinuz l4linux | Linux kernel command line (2 args): mem=200M console=ttyLv0 l4linux | Configuration checks disabled, you know what you're doing. l4linux | CPU mapping (l:p)[1]: 0:0 l4linux | Image: 00400000 - 00d36000 [9432 KiB]. l4linux | Areas: Text: 00400000 - 005d1000 [1860kB] (a bit longer) l4linux | Data: 005d1000 - 005edc60 [115kB] l4linux | Initdata: 005ef000 - 00c96000 [6812kB] l4linux | BSS: 00c96000 - 00d26000 [576kB] l4linux | gs=43 fs=43 l4linux | Device scan: l4linux | l4x_fiasco_gdt_entry_offset = 9
Then it just stops. What's happened here? Should I see more output? Or does the kernel output go somewhere else? I've compiled my kernel with an initramfs that does an "echo hello init" at the beginning of init, but I never see that.
Do I need to worry about that 'icu' 'No such object found'? I tried adding a capability to icu for l4linux, but that didn't seem to help.
Also, I'm having trouble getting my io config correct. IO prints out: io | Loading: config 'rom/l4lx-virtio.io' io | rom/l4lx-virtio.io:7.37-50: warning: could not find 'PCI/VEN_1AF4'
but then later on I see:
io | P6Device: S4__ "" io | Hw::Device[S4__] io | 0000:00:04.0: display controller [0] io | 0x1af4 0x1000 io | Red Hat, Inc Virtio network device io | IOPORT [0000000000c000-0000000000c03f 40] non-pref (32bit) (align=3f flags=4a03) io | IRQ [0000000000000b-0000000000000b 1] level high (32bit) (align=0 flags=104201)
What's up with that?
Here's my settings:
modules.list:
entry L4Linux-virtio kernel fiasco -serial_esc roottask moe rom/l4lx-virtio.cfg module l4re module ned module l4lx-virtio.cfg module io module rtc module x86-legacy.devs module l4lx-virtio.io module vmlinuz
l4lx-virtio.cfg
loader = L4.default_loader;
bus_linux = loader:new_channel(); bus_rtc = loader:new_channel(); rtc_cap = loader:new_channel();
loader:start({ caps = { rom = rom; sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); l4linux = bus_linux:svr(); icu = L4.Env.icu; rtc_bus = bus_rtc:svr(); }, log = { "io", "red" }, }, "rom/io -vvvv rom/x86-legacy.devs rom/l4lx-virtio.io");
loader:start({ caps = { rom = rom; vbus = bus_rtc; rtc = rtc_cap:svr(); }, log = { "rtc", "green" }, }, "rom/rtc");
L4.default_loader:start( { caps = { log = L4.Env.log:m("rws"); vbus = bus_linux; rtc = rtc_cap; }, l4re_dbg = L4.Dbg.Warn, log = { "l4linux", "yellow" }, }, "rom/vmlinuz mem=200M console=ttyLv0 ");
l4lx-virtio.io
l4linux => new System_bus() { # Add a new virtual PCI root bridge PCI0 => new PCI_bus() { # Allow access to virtio devices. pci_l4x[] => wrap(hw-root.match("PCI/VEN_1AF4")); } }
Ok, I tried it without the rtc server and got further. But now I'm getting a kernel panic, and I still don't see any output from the linux kernel. How can I get linux to output to the serial console?
l4linux | libio: Warning: Finding 'icu' in system bus failed with 'No such object found' l4linux | PH 0 (t: 1) offs=00001000 vaddr=00400000 vend=005d2000 l4linux | phys=00400000 ephys=005d2000 l4linux | f_sz=001d1040 memsz=001d2000 flgs=r-x l4linux | PH 1 (t: 1) offs=001d3000 vaddr=005d2000 vend=00d39000 l4linux | phys=005d2000 ephys=00d39000 l4linux | f_sz=006c4102 memsz=00767000 flgs=rw- l4linux | PH 2 (t: 4) offs=0015e948 vaddr=0055d948 vend=0055d96c l4linux | phys=0055d948 ephys=0055d96c l4linux | f_sz=00000024 memsz=00000024 flgs=--- l4linux | Starting binary at 0x400000, argc=2 argv=0x80007fa0 *argv=0xb1007ff4 argv0=rom/vmlinuz l4linux | External resolver is at 0xa80006e0 l4linux | ======> L4Linux 2.6 starting... <======== l4linux | Linux version 3.0.0-l4-svn23 (ribrdb@ribox.sfo.corp.google.com) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) ) #15 Wed Jun 27 20:27:59 PDT 2012 l4linux | Binary name: rom/vmlinuz l4linux | Linux kernel command line (1 args): mem=200M l4linux | CPU mapping (l:p)[1]: 0:0 l4linux | Image: 00400000 - 00d39000 [9444 KiB]. l4linux | Areas: Text: 00400000 - 005d2000 [1864kB] (a bit longer) l4linux | Data: 005d2000 - 005edd20 [111kB] l4linux | Initdata: 005ef000 - 00c97000 [6816kB] l4linux | BSS: 00c98000 - 00d29000 [580kB] l4linux | gs=43 fs=43 l4linux | Device scan: l4linux | Device scan done. l4linux | l4x_fiasco_gdt_entry_offset = 9 l4linux | upage l4linux | l4lx_thread_create: Created thread 416 (cpu0) (u:b3000400, v:b3000600, sp:005d3ff4) l4linux | main thread will be 416 l4linux | l4x_register_pointer_section: addr = 005d2000 size = 7761920 l4linux | section-with-init: virt: 0x5d2000 to 0xd38fff [7580 KiB] l4linux | section-with-init: Phys: 0x00649000 to 0x00db0000, Size: 7761920 l4linux | l4x_linux_startup: thread 416. l4linux | Main thread running, waiting... l4linux | main thread: received startup message. l4linux | l4x_setup_memory: Forcing superpages for main memory l4linux | l4re_global_env: 0xb1007f34 l4linux | Main memory size: 200MB l4linux | Main memory: virt: 0x1000000 to 0xd7fffff [204800 KiB] l4linux | Main memory: Phys: 0x02c00000 to 0x0f400000, Size: 209715200 l4linux | Filling lower ptabs... l4linux | Done (1707 entries). l4linux | l4x_register_pointer_section: addr = 005d2000 size = 7761920 l4linux | end: virt: 0x5d2000 to 0xd38fff [7580 KiB] l4linux | end: Phys: 0x00649000 to 0x00db0000, Size: 7761920 l4linux | l4lx_thread_create: Created thread 41d (timer.i0) (u:b3000800, v:00000000, sp:00cc3ff8) l4linux | timer_irq_thread: Starting timer IRQ thread. l4linux | panic: going to sleep forever, bye
On Wed, Jun 27, 2012 at 4:28 PM, Ryan Brown ribrdb@gmail.com wrote:
I've managed to get my l4linux build to start running, but it doesn't seem to get far: l4linux | libio: Warning: Finding 'icu' in system bus failed with 'No such object found' 4linux | PH 0 (t: 1) offs=00001000 vaddr=00400000 vend=005d1000 l4linux | phys=00400000 ephys=005d1000 l4linux | f_sz=001d0cb8 memsz=001d1000 flgs=r-x l4linux | PH 1 (t: 1) offs=001d2000 vaddr=005d1000 vend=00d36000 l4linux | phys=005d1000 ephys=00d36000 l4linux | f_sz=006c4c10 memsz=00765000 flgs=rw- l4linux | PH 2 (t: 4) offs=0015df14 vaddr=0055cf14 vend=0055cf38 l4linux | phys=0055cf14 ephys=0055cf38 l4linux | f_sz=00000024 memsz=00000024 flgs=--- l4linux | Starting binary at 0x400000, argc=3 argv=0x80007f9c *argv=0xb1007ff4 argv0=rom/vmlinuz l4linux | External resolver is at 0xa80006e0 l4linux | ======> L4Linux 2.6 starting... <======== l4linux | Linux version 3.0.0-l4-svn23 (ribrdb@ribox.sfo.corp.google.com) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) ) #10 Wed Jun 27 16:00:19 PDT 2012 l4linux | Binary name: rom/vmlinuz l4linux | Linux kernel command line (2 args): mem=200M console=ttyLv0 l4linux | Configuration checks disabled, you know what you're doing. l4linux | CPU mapping (l:p)[1]: 0:0 l4linux | Image: 00400000 - 00d36000 [9432 KiB]. l4linux | Areas: Text: 00400000 - 005d1000 [1860kB] (a bit longer) l4linux | Data: 005d1000 - 005edc60 [115kB] l4linux | Initdata: 005ef000 - 00c96000 [6812kB] l4linux | BSS: 00c96000 - 00d26000 [576kB] l4linux | gs=43 fs=43 l4linux | Device scan: l4linux | l4x_fiasco_gdt_entry_offset = 9
Then it just stops. What's happened here? Should I see more output? Or does the kernel output go somewhere else? I've compiled my kernel with an initramfs that does an "echo hello init" at the beginning of init, but I never see that.
Do I need to worry about that 'icu' 'No such object found'? I tried adding a capability to icu for l4linux, but that didn't seem to help.
Also, I'm having trouble getting my io config correct. IO prints out: io | Loading: config 'rom/l4lx-virtio.io' io | rom/l4lx-virtio.io:7.37-50: warning: could not find 'PCI/VEN_1AF4'
but then later on I see:
io | P6Device: S4__ "" io | Hw::Device[S4__] io | 0000:00:04.0: display controller [0] io | 0x1af4 0x1000 io | Red Hat, Inc Virtio network device io | IOPORT [0000000000c000-0000000000c03f 40] non-pref (32bit) (align=3f flags=4a03) io | IRQ [0000000000000b-0000000000000b 1] level high (32bit) (align=0 flags=104201)
What's up with that?
Here's my settings:
modules.list:
entry L4Linux-virtio kernel fiasco -serial_esc roottask moe rom/l4lx-virtio.cfg module l4re module ned module l4lx-virtio.cfg module io module rtc module x86-legacy.devs module l4lx-virtio.io module vmlinuz
l4lx-virtio.cfg
loader = L4.default_loader;
bus_linux = loader:new_channel(); bus_rtc = loader:new_channel(); rtc_cap = loader:new_channel();
loader:start({ caps = { rom = rom; sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); l4linux = bus_linux:svr(); icu = L4.Env.icu; rtc_bus = bus_rtc:svr(); }, log = { "io", "red" }, }, "rom/io -vvvv rom/x86-legacy.devs rom/l4lx-virtio.io");
loader:start({ caps = { rom = rom; vbus = bus_rtc; rtc = rtc_cap:svr(); }, log = { "rtc", "green" }, }, "rom/rtc");
L4.default_loader:start( { caps = { log = L4.Env.log:m("rws"); vbus = bus_linux; rtc = rtc_cap; }, l4re_dbg = L4.Dbg.Warn, log = { "l4linux", "yellow" }, }, "rom/vmlinuz mem=200M console=ttyLv0 ");
l4lx-virtio.io
l4linux => new System_bus() { # Add a new virtual PCI root bridge PCI0 => new PCI_bus() { # Allow access to virtio devices. pci_l4x[] => wrap(hw-root.match("PCI/VEN_1AF4")); } }
Hi,
On Wed Jun 27, 2012 at 20:56:04 -0700, Ryan Brown wrote:
Ok, I tried it without the rtc server and got further. But now I'm getting a kernel panic, and I still don't see any output from the linux kernel. How can I get linux to output to the serial console?
l4linux | libio: Warning: Finding 'icu' in system bus failed with 'No such object found'
This usually means that l4linux does not have a 'vbus' cap assigned.
l4linux | PH 0 (t: 1) offs=00001000 vaddr=00400000 vend=005d2000 l4linux | phys=00400000 ephys=005d2000 l4linux | f_sz=001d1040 memsz=001d2000 flgs=r-x l4linux | PH 1 (t: 1) offs=001d3000 vaddr=005d2000 vend=00d39000 l4linux | phys=005d2000 ephys=00d39000 l4linux | f_sz=006c4102 memsz=00767000 flgs=rw- l4linux | PH 2 (t: 4) offs=0015e948 vaddr=0055d948 vend=0055d96c l4linux | phys=0055d948 ephys=0055d96c l4linux | f_sz=00000024 memsz=00000024 flgs=--- l4linux | Starting binary at 0x400000, argc=2 argv=0x80007fa0 *argv=0xb1007ff4 argv0=rom/vmlinuz l4linux | External resolver is at 0xa80006e0 l4linux | ======> L4Linux 2.6 starting... <======== l4linux | Linux version 3.0.0-l4-svn23 (ribrdb@ribox.sfo.corp.google.com) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) ) #15 Wed Jun 27 20:27:59 PDT 2012 l4linux | Binary name: rom/vmlinuz l4linux | Linux kernel command line (1 args): mem=200M
console=ttyLv0 earlyprintk=1 (of course needs earlyprintk-driver enabled)
l4linux | CPU mapping (l:p)[1]: 0:0 l4linux | Image: 00400000 - 00d39000 [9444 KiB]. l4linux | Areas: Text: 00400000 - 005d2000 [1864kB] (a bit longer) l4linux | Data: 005d2000 - 005edd20 [111kB] l4linux | Initdata: 005ef000 - 00c97000 [6816kB] l4linux | BSS: 00c98000 - 00d29000 [580kB] l4linux | gs=43 fs=43 l4linux | Device scan: l4linux | Device scan done. l4linux | l4x_fiasco_gdt_entry_offset = 9 l4linux | upage l4linux | l4lx_thread_create: Created thread 416 (cpu0) (u:b3000400, v:b3000600, sp:005d3ff4) l4linux | main thread will be 416 l4linux | l4x_register_pointer_section: addr = 005d2000 size = 7761920 l4linux | section-with-init: virt: 0x5d2000 to 0xd38fff [7580 KiB] l4linux | section-with-init: Phys: 0x00649000 to 0x00db0000, Size: 7761920 l4linux | l4x_linux_startup: thread 416. l4linux | Main thread running, waiting... l4linux | main thread: received startup message. l4linux | l4x_setup_memory: Forcing superpages for main memory l4linux | l4re_global_env: 0xb1007f34 l4linux | Main memory size: 200MB l4linux | Main memory: virt: 0x1000000 to 0xd7fffff [204800 KiB] l4linux | Main memory: Phys: 0x02c00000 to 0x0f400000, Size: 209715200 l4linux | Filling lower ptabs... l4linux | Done (1707 entries). l4linux | l4x_register_pointer_section: addr = 005d2000 size = 7761920 l4linux | end: virt: 0x5d2000 to 0xd38fff [7580 KiB] l4linux | end: Phys: 0x00649000 to 0x00db0000, Size: 7761920 l4linux | l4lx_thread_create: Created thread 41d (timer.i0) (u:b3000800, v:00000000, sp:00cc3ff8) l4linux | timer_irq_thread: Starting timer IRQ thread. l4linux | panic: going to sleep forever, bye
On Wed, Jun 27, 2012 at 4:28 PM, Ryan Brown ribrdb@gmail.com wrote:
I've managed to get my l4linux build to start running, but it doesn't seem to get far: l4linux | libio: Warning: Finding 'icu' in system bus failed with 'No such object found' 4linux | PH 0 (t: 1) offs=00001000 vaddr=00400000 vend=005d1000 l4linux | phys=00400000 ephys=005d1000 l4linux | f_sz=001d0cb8 memsz=001d1000 flgs=r-x l4linux | PH 1 (t: 1) offs=001d2000 vaddr=005d1000 vend=00d36000 l4linux | phys=005d1000 ephys=00d36000 l4linux | f_sz=006c4c10 memsz=00765000 flgs=rw- l4linux | PH 2 (t: 4) offs=0015df14 vaddr=0055cf14 vend=0055cf38 l4linux | phys=0055cf14 ephys=0055cf38 l4linux | f_sz=00000024 memsz=00000024 flgs=--- l4linux | Starting binary at 0x400000, argc=3 argv=0x80007f9c *argv=0xb1007ff4 argv0=rom/vmlinuz l4linux | External resolver is at 0xa80006e0 l4linux | ======> L4Linux 2.6 starting... <======== l4linux | Linux version 3.0.0-l4-svn23 (ribrdb@ribox.sfo.corp.google.com) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) ) #10 Wed Jun 27 16:00:19 PDT 2012 l4linux | Binary name: rom/vmlinuz l4linux | Linux kernel command line (2 args): mem=200M console=ttyLv0
console=ttyLv0 is good :)
l4linux | Configuration checks disabled, you know what you're doing. l4linux | CPU mapping (l:p)[1]: 0:0 l4linux | Image: 00400000 - 00d36000 [9432 KiB]. l4linux | Areas: Text: 00400000 - 005d1000 [1860kB] (a bit longer) l4linux | Data: 005d1000 - 005edc60 [115kB] l4linux | Initdata: 005ef000 - 00c96000 [6812kB] l4linux | BSS: 00c96000 - 00d26000 [576kB] l4linux | gs=43 fs=43 l4linux | Device scan: l4linux | l4x_fiasco_gdt_entry_offset = 9
Then it just stops. What's happened here? Should I see more output? Or does the kernel output go somewhere else? I've compiled my kernel with an initramfs that does an "echo hello init" at the beginning of init, but I never see that.
You should see the complete kernel boot log as we're all used to and then the output of your init.
Do I need to worry about that 'icu' 'No such object found'? I tried adding a capability to icu for l4linux, but that didn't seem to help.
It just means it won't get any devices (device scan also showed that nothing was found). But this does not prevent that it does not work at all.
Also, I'm having trouble getting my io config correct. IO prints out: io | Loading: config 'rom/l4lx-virtio.io' io | rom/l4lx-virtio.io:7.37-50: warning: could not find 'PCI/VEN_1AF4'
but then later on I see:
io | P6Device: S4__ "" io | Hw::Device[S4__] io | 0000:00:04.0: display controller [0] io | 0x1af4 0x1000 io | Red Hat, Inc Virtio network device io | IOPORT [0000000000c000-0000000000c03f 40] non-pref (32bit) (align=3f flags=4a03) io | IRQ [0000000000000b-0000000000000b 1] level high (32bit) (align=0 flags=104201)
What's up with that?
Buggy, VEN_ and DEV_ mixed up, so DEV_ should do.
l4lx-virtio.cfg
loader = L4.default_loader;
bus_linux = loader:new_channel(); bus_rtc = loader:new_channel(); rtc_cap = loader:new_channel();
loader:start({ caps = { rom = rom; sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); l4linux = bus_linux:svr(); icu = L4.Env.icu; rtc_bus = bus_rtc:svr(); }, log = { "io", "red" }, }, "rom/io -vvvv rom/x86-legacy.devs rom/l4lx-virtio.io");
loader:start({ caps = { rom = rom; vbus = bus_rtc; rtc = rtc_cap:svr(); }, log = { "rtc", "green" }, }, "rom/rtc");
L4.default_loader:start( { caps = { log = L4.Env.log:m("rws"); vbus = bus_linux; rtc = rtc_cap; }, l4re_dbg = L4.Dbg.Warn, log = { "l4linux", "yellow" }, }, "rom/vmlinuz mem=200M console=ttyLv0 ");
l4lx-virtio.io
l4linux => new System_bus() { # Add a new virtual PCI root bridge PCI0 => new PCI_bus() { # Allow access to virtio devices. pci_l4x[] => wrap(hw-root.match("PCI/VEN_1AF4")); } }
For rtc the io config is missing its bus but otherwise it looks ok. So I do not understand why L4Linux doesn't get it.
Adam
Thanks, I'm up and running now! What should the io config for rtc look like? And what's the benefit of using rtc? I haven't given l4linux access to any RTC hardware in my io config, but it seems to be running ok so far without the rtc server.
On Thu, Jun 28, 2012 at 10:56 AM, Adam Lackorzynski < adam@os.inf.tu-dresden.de> wrote:
Hi,
On Wed Jun 27, 2012 at 20:56:04 -0700, Ryan Brown wrote:
Ok, I tried it without the rtc server and got further. But now I'm
getting
a kernel panic, and I still don't see any output from the linux kernel.
How
can I get linux to output to the serial console?
l4linux | libio: Warning: Finding 'icu' in system bus failed with 'No
such
object found'
This usually means that l4linux does not have a 'vbus' cap assigned.
l4linux | PH 0 (t: 1) offs=00001000 vaddr=00400000 vend=005d2000 l4linux | phys=00400000 ephys=005d2000 l4linux | f_sz=001d1040 memsz=001d2000 flgs=r-x l4linux | PH 1 (t: 1) offs=001d3000 vaddr=005d2000 vend=00d39000 l4linux | phys=005d2000 ephys=00d39000 l4linux | f_sz=006c4102 memsz=00767000 flgs=rw- l4linux | PH 2 (t: 4) offs=0015e948 vaddr=0055d948 vend=0055d96c l4linux | phys=0055d948 ephys=0055d96c l4linux | f_sz=00000024 memsz=00000024 flgs=--- l4linux | Starting binary at 0x400000, argc=2 argv=0x80007fa0 *argv=0xb1007ff4 argv0=rom/vmlinuz l4linux | External resolver is at 0xa80006e0 l4linux | ======> L4Linux 2.6 starting... <======== l4linux | Linux version 3.0.0-l4-svn23 (ribrdb@ribox.sfo.corp.google.com
)
(gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) ) #15 Wed Jun 27 20:27:59
PDT
2012 l4linux | Binary name: rom/vmlinuz l4linux | Linux kernel command line (1 args): mem=200M
console=ttyLv0 earlyprintk=1 (of course needs earlyprintk-driver enabled)
l4linux | CPU mapping (l:p)[1]: 0:0 l4linux | Image: 00400000 - 00d39000 [9444 KiB]. l4linux | Areas: Text: 00400000 - 005d2000 [1864kB] (a bit longer) l4linux | Data: 005d2000 - 005edd20 [111kB] l4linux | Initdata: 005ef000 - 00c97000 [6816kB] l4linux | BSS: 00c98000 - 00d29000 [580kB] l4linux | gs=43 fs=43 l4linux | Device scan: l4linux | Device scan done. l4linux | l4x_fiasco_gdt_entry_offset = 9 l4linux | upage l4linux | l4lx_thread_create: Created thread 416 (cpu0) (u:b3000400, v:b3000600, sp:005d3ff4) l4linux | main thread will be 416 l4linux | l4x_register_pointer_section: addr = 005d2000 size = 7761920 l4linux | section-with-init: virt: 0x5d2000 to 0xd38fff [7580 KiB] l4linux | section-with-init: Phys: 0x00649000 to 0x00db0000, Size:
7761920
l4linux | l4x_linux_startup: thread 416. l4linux | Main thread running, waiting... l4linux | main thread: received startup message. l4linux | l4x_setup_memory: Forcing superpages for main memory l4linux | l4re_global_env: 0xb1007f34 l4linux | Main memory size: 200MB l4linux | Main memory: virt: 0x1000000 to 0xd7fffff [204800 KiB] l4linux | Main memory: Phys: 0x02c00000 to 0x0f400000, Size:
209715200
l4linux | Filling lower ptabs... l4linux | Done (1707 entries). l4linux | l4x_register_pointer_section: addr = 005d2000 size = 7761920 l4linux | end: virt: 0x5d2000 to 0xd38fff [7580 KiB] l4linux | end: Phys: 0x00649000 to 0x00db0000, Size: 7761920 l4linux | l4lx_thread_create: Created thread 41d (timer.i0) (u:b3000800, v:00000000, sp:00cc3ff8) l4linux | timer_irq_thread: Starting timer IRQ thread. l4linux | panic: going to sleep forever, bye
On Wed, Jun 27, 2012 at 4:28 PM, Ryan Brown ribrdb@gmail.com wrote:
I've managed to get my l4linux build to start running, but it doesn't
seem
to get far: l4linux | libio: Warning: Finding 'icu' in system bus failed with 'No
such
object found' 4linux | PH 0 (t: 1) offs=00001000 vaddr=00400000 vend=005d1000 l4linux | phys=00400000 ephys=005d1000 l4linux | f_sz=001d0cb8 memsz=001d1000 flgs=r-x l4linux | PH 1 (t: 1) offs=001d2000 vaddr=005d1000
vend=00d36000
l4linux | phys=005d1000 ephys=00d36000 l4linux | f_sz=006c4c10 memsz=00765000 flgs=rw- l4linux | PH 2 (t: 4) offs=0015df14 vaddr=0055cf14
vend=0055cf38
l4linux | phys=0055cf14 ephys=0055cf38 l4linux | f_sz=00000024 memsz=00000024 flgs=--- l4linux | Starting binary at 0x400000, argc=3 argv=0x80007f9c *argv=0xb1007ff4 argv0=rom/vmlinuz l4linux | External resolver is at 0xa80006e0 l4linux | ======> L4Linux 2.6 starting... <======== l4linux | Linux version 3.0.0-l4-svn23 (
ribrdb@ribox.sfo.corp.google.com)
(gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) ) #10 Wed Jun 27 16:00:19
PDT
2012 l4linux | Binary name: rom/vmlinuz l4linux | Linux kernel command line (2 args): mem=200M console=ttyLv0
console=ttyLv0 is good :)
l4linux | Configuration checks disabled, you know what you're doing. l4linux | CPU mapping (l:p)[1]: 0:0 l4linux | Image: 00400000 - 00d36000 [9432 KiB]. l4linux | Areas: Text: 00400000 - 005d1000 [1860kB] (a bit longer) l4linux | Data: 005d1000 - 005edc60 [115kB] l4linux | Initdata: 005ef000 - 00c96000 [6812kB] l4linux | BSS: 00c96000 - 00d26000 [576kB] l4linux | gs=43 fs=43 l4linux | Device scan: l4linux | l4x_fiasco_gdt_entry_offset = 9
Then it just stops. What's happened here? Should I see more output? Or does the kernel output go somewhere else? I've compiled my kernel with
an
initramfs that does an "echo hello init" at the beginning of init, but
I
never see that.
You should see the complete kernel boot log as we're all used to and then the output of your init.
Do I need to worry about that 'icu' 'No such object found'? I tried
adding
a capability to icu for l4linux, but that didn't seem to help.
It just means it won't get any devices (device scan also showed that nothing was found). But this does not prevent that it does not work at all.
Also, I'm having trouble getting my io config correct. IO prints out: io | Loading: config 'rom/l4lx-virtio.io' io | rom/l4lx-virtio.io:7.37-50: warning: could not find 'PCI/VEN_1AF4'
but then later on I see:
io | P6Device: S4__ "" io | Hw::Device[S4__] io | 0000:00:04.0: display controller [0] io | 0x1af4 0x1000 io | Red Hat, Inc Virtio network device io | IOPORT [0000000000c000-0000000000c03f 40] non-pref (32bit) (align=3f flags=4a03) io | IRQ [0000000000000b-0000000000000b 1] level high (32bit) (align=0 flags=104201)
What's up with that?
Buggy, VEN_ and DEV_ mixed up, so DEV_ should do.
l4lx-virtio.cfg
loader = L4.default_loader;
bus_linux = loader:new_channel(); bus_rtc = loader:new_channel(); rtc_cap = loader:new_channel();
loader:start({ caps = { rom = rom; sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); l4linux = bus_linux:svr(); icu = L4.Env.icu; rtc_bus = bus_rtc:svr(); }, log = { "io", "red" }, }, "rom/io -vvvv rom/x86-legacy.devs rom/l4lx-virtio.io");
loader:start({ caps = { rom = rom; vbus = bus_rtc; rtc = rtc_cap:svr(); }, log = { "rtc", "green" }, }, "rom/rtc");
L4.default_loader:start( { caps = { log = L4.Env.log:m("rws"); vbus = bus_linux; rtc = rtc_cap; }, l4re_dbg = L4.Dbg.Warn, log = { "l4linux", "yellow" }, }, "rom/vmlinuz mem=200M console=ttyLv0 ");
l4lx-virtio.io
l4linux => new System_bus() { # Add a new virtual PCI root bridge PCI0 => new PCI_bus() { # Allow access to virtio devices. pci_l4x[] => wrap(hw-root.match("PCI/VEN_1AF4")); } }
For rtc the io config is missing its bus but otherwise it looks ok. So I do not understand why L4Linux doesn't get it.
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 Jun 28, 2012 at 13:20:14 -0700, Ryan Brown wrote:
Thanks, I'm up and running now! What should the io config for rtc look like? And what's the benefit of using rtc? I haven't given l4linux access to any RTC hardware in my io config, but it seems to be running ok so far without the rtc server.
Yes, will do but the date will not be set properly.
rtc => new System_bus() { rtcdev => wrap(hw-root.match("PNP0B00")); }
Adam
l4-hackers@os.inf.tu-dresden.de