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 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"));
  }
}