DDEkit for Linux2.6 from svn

Björn Döbel doebel at os.inf.tu-dresden.de
Sat Jan 3 13:50:35 CET 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

>  sudo qemu -cdrom cd-image.iso -serial stdio -net
> nic,model=rtl8139,vlan=0 -net tap,vlan=0 -m 200

Ok, you are running qemu emulating a Realtek NIC.

[..]

> arping  | main(): Hello from the ORe arping shared memory client
> arping  | main(): verbosity: 0
> arping  | main(): connecting to 'ORe'
> arping  | main(): interface: 'eth0'
> arping  | main(): verbosity: 0
> arping  | main(): string ipc receive
> arping  | main(): sending with string ipc
> arping  | l4ore_open(): called
> arping  | l4ore_open(): descriptor: 0
> io      | Using platform configuration 'x86'
> 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      |   f2001000-f20010ff : Realtek Semiconductor Co., Ltd. RTL-8139/8139C/
> io      : 8139C+

This is where the RTL chip is found by L4IO.

> io      | 0000-ffff : PCI IO
> io      |   0cf8-0cff : PCI conf1
> io      |   b000-b03f : Intel Corporation 82371AB/EB/MB PIIX4 ACPI
> io      |   b100-b11f : Intel Corporation 82371AB/EB/MB PIIX4 ACPI
> io      |   c000-c00f : Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
> io      |   c100-c1ff : Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
> io      | Available IRQs=[ <!0> 1 <!2> 3 <!4> 5 6 7 8 9 a b c d e f 10 11 ]
> ore     | Softirq daemon starting
> ore     | Initializing DDE page cache
> ore     | unimplemented: pci_fixup_device
> ore     | unimplemented: pci_fixup_device
> ore     | _add_ddekit_device: Detected device: 8086:7000
> ore     | unimplemented: pci_fixup_device
> ore     | unimplemented: pci_fixup_device
> ore     | _add_ddekit_device: Detected device: 8086:7010
> ore     | unimplemented: pci_fixup_device
> ore     | unimplemented: pci_fixup_device
> ore     | _add_ddekit_device: Detected device: 8086:7113
> ore     | unimplemented: pci_fixup_device
> ore     | unimplemented: pci_fixup_device
> ore     | _add_ddekit_device: Detected device: 1013:b8
> ore     | unimplemented: pci_fixup_device
> ore     | unimplemented: pci_fixup_device
> ore     | _add_ddekit_device: Detected device: 10ec:8139
> ore     | <6>Intel(R) PRO/1000 Network Driver - version 7.3.15-k2
> ore     | <6>Copyright (c) 1999-2006 Intel Corporation.

This is where ORe tries to initialize the Intel e1000 driver (for a NIC
which is not there).

> ore     | unimplemented: pci_fixup_device
> ore     | unimplemented: pci_fixup_device
> ore     | unimplemented: pci_fixup_device
> ore     | unimplemented: pci_fixup_device
> ore     | unimplemented: pci_fixup_device
> ore     | l4dde26_register_rx_callback: New rx callback @ 0x018012f0.
> ore     | main(): initialized DDELinux2.6
> ore     | main(): loopback: 0
> ore     | <6>device lo entered promiscuous mode
> ore     | main(): Initialized 1 network devices.
> ore     | Device =   lo, IRQ =  0, MAC = 00:00:00:00:00:00

This results in loopback being the only device found and driven by ORe...

> ore     | main(): Registering 'ORe' at names...
> ore     | main(): Ready for service.
> arping  | ore_lookup_server(): ORe server ORe = 9.02
> arping  | ore_do_open(): called
> ore     | [9.2] ore/server/src/clients.c:215:setup_connection():
> ore     |  Error: no device found.
> arping  | ore_do_open(): opened. worker = 7FF.7F
> arping  | [A.2] ore/lib/client/lib.c:181:l4ore_open():
> arping  |  Error: ore_open() returned INVALID_ID

... and your application not being able to connect to ORe.

> arping  | main(): opened eth0: -1 for 00:00:64:64:65:6B
> arping  | [A.2] ore/examples/arping/main.c:303:main():
> arping  |  Error: could not open eth0!
> arping  |
> arping  | Exiting with 1
> 
> === END ===
> 
> Execution of ore with qemu with your provided image works fine though:
> http://os.inf.tu-dresden.de/~doebel/downloads/ore_image.iso
> 
> Appreciate any inputs,

The ORe version in the disk image is configured to include a RTL8139+
driver. It may be that this is not the default when compiling ORe. Go to
l4/pkg/ore/server and run "make config" - there you can select which
drivers to include. This should get you up and running.

Cheers,
Bjoern
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAklfXxgACgkQP5ijxgQLUNnwHwCgmK5oj6pTeM+o2QhMw3SmY97V
OxgAnjBvycSHjZHdpsZbJB9cDw3Cut4/
=aa8o
-----END PGP SIGNATURE-----




More information about the l4-hackers mailing list