Hi Amadeo, even though your current issue may be related to a configuration problem (e.g., the creation of a tap device before starting qemu, configuring the bridge device), I want to mention that networking support is not expected to work on the current Fiasco.OC version. There are two known limitations (documented at 'http://genode.org/documentation/release-notes/11.02#section-7') that currently stand in the way. One is the lacking support for dynamic loading of the lwIP library (ok, I see that you are using a work-around for this limitation via linking statically). But more importantly, the Fiasco.OC version does not support Genode's signalling API yet. This API, however, is used by the data-flow protocol used between lwIP and the NIC driver (Genode's packet-stream interface).
That said, both limitations will be addressed by the upcoming Genode version to be released later this month. In the meanwhile, if you want to get hands-on-experience with using lwIP on Genode, I recommend walking the currently well-explored path of using one of the other kernels. In your case, I would start with Linux and eventually give OKL4 a try. From your test application's perspective, this should not make any difference. For further reference about using lwIP on Genode/Linux with bridging, you may take a look at the steps described here: http://www.genode.org/documentation/release-notes/10.05#section-35 Cheers Norman On 05/12/2011 11:21 AM, Stefan Kalkowski wrote: > Hello Amadeo, > > when looking at your output it seems to me that at least the pci-driver, > and/or timer services are missing in your configuration (normally they > would produce some output), but gPXE's nic-driver depends on them, and > won't run without these services. As long as the nic-driver isn't > available your lwip-application will block while initializing the > lwip-stack. > > Please, verify that init's configuration contains at least these items: > > <start name="timer"> > <resource name="RAM" quantum="512K"/> > <provides> <service name="Timer"/> </provides> > </start> > > <start name="pci_drv"> > <resource name="RAM" quantum="512K"/> > <provides> <service name="PCI"/> </provides> > </start> > > <start name="gpxe_nic_drv"> > <resource name="RAM" quantum="2M"/> > <provides> <service name="Nic"/> </provides> > </start> > > If this doesn't help you, please post your configuration file. > > Regards > Stefan > > On 05/12/2011 12:39 AM, Amadeo Cuadrado wrote: >> Thanks Stefan for your answer. Yes, I am building lwip and libc statically. >> >> I am using qemu to run the .iso, basically: >> >> qemu -cdrom 'myiso.iso' -net nic,model=pcnet >> >> I have also used VBox, with same luck. This is the Nic driver I am using: >> >> <start name="gpxe_nic_drv"> >> <resource name="RAM" quantum="4M"/> >> <provides><service name="Nic"/></provides> >> </start> >> >> This is the output from the serial port: >> >> int main(): --- create local services --- >> int main(): --- start init --- >> int main(): transferred 431 MB to init >> int main(): --- init created, waiting for exit condition --- >> [init -> test-lwip_loop] void init_loopback(): init_loopback() >> [init -> test-lwip_loop] Libc::Lwip_plugin::Lwip_plugin(): using the lwIP >> libc plugin >> [init -> test-lwip_loop] void init_libc_lwip(): init_libc_lwip() >> [init -> test-timer] --- timer test --- >> [init -> test-lwip_loop] int server(): Create new socket ... >> [init -> test-lwip_loop] virtual void Client::entry(): Create new socket ... >> >> And then it just stops there. >> >> What do you mean exactly about the signaling framework? Are these examples >> supposed to not work yet? >> >> Thanks, >> Amadeo >> >> >> -----Original Message----- >> From: Stefan Kalkowski [mailto:[email protected]] >> Sent: Friday, May 06, 2011 1:16 PM >> To: [email protected] >> Subject: Re: lwip examples >> >> Hello Amadeo, >> >> thank you for pointing us out to the build-problem in the linux_drivers >> repository. We immediately fixed that problem. You can checkout the fix >> from our subversion repository. >> >> With respect to your problems related to lwip. I assume that you >> compiled lwip and libc as static libraries, as ldso and shared libraries >> aren't supported for Genode/Fiasco.OC yet? >> >> Without knowing much details I would guess it's a configuration issue. >> Could you please provide some information with respect to your >> test-environment, like what hardware or VM you use, especially which NIC >> you've enabled? Moreover, the init-configuration and the complete serial >> output would be helpful. >> >> But even when we fix your (probably configuration-)issues it's unlikely >> that the NIC service will work out of the box now, because it's based on >> the signalling framework, which isn't supported yet. But we work on >> that, and it will be supported at the latest by the upcoming release. >> Nevertheless, the mentioned problems have nothing to do with a >> non-functional signalling framework. >> >> Regards >> Stefan >> >> On 05/06/2011 01:56 AM, Amadeo Cuadrado wrote: >>> Hello, >>> >>> >>> >>> I have not been able to run any of the lwip examples (I am using 32 >>> bits): loopback hangs in socket() call, and http_srv hangs in the >>> lwip_nic_init() call. I am using the Nic driver from dde_gpxe, since I >>> got compilation errors when building the linux_drivers: >>> >>> >>> >>> .../genode/linux_drivers/src/linux26/arch/i386/lib/bitops.c: In function >>> 'find_next_zero_bit': >>> >>> .../genode/linux_drivers/include/linux26-x86/asm/bitops.h:283: error: >>> can't find a register in class 'BREG' while reloading 'asm' >>> >>> .../genode/linux_drivers/include/linux26-x86/asm/bitops.h:283: error: >>> 'asm' operand has impossible constraints >>> >>> >>> >>> Any clue what I could be missing here to make these examples work? Let >>> me know if you need more info about my environment. >>> >>> >>> >>> Thanks. >>> >>> >>> >>> Amadeo >>> >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> WhatsUp Gold - Download Free Network Management Software >>> The most intuitive, comprehensive, and cost-effective network >>> management toolset available today. Delivers lowest initial >>> acquisition cost and overall TCO of any competing solution. >>> http://p.sf.net/sfu/whatsupgold-sd >>> >>> >>> >>> _______________________________________________ >>> Genode-main mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/genode-main >> > -- Dr.-Ing. Norman Feske Genode Labs http://www.genode-labs.com · http://genode.org Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth ------------------------------------------------------------------------------ Achieve unprecedented app performance and reliability What every C/C++ and Fortran developer should know. Learn how Intel has extended the reach of its next-generation tools to help boost performance applications - inlcuding clusters. http://p.sf.net/sfu/intel-dev2devmay _______________________________________________ Genode-main mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/genode-main
