lwip examples

Daniel Waddington d.waddington at ...60...
Thu May 12 23:50:51 CEST 2011


Guess we need to add the template parameter to max, max<unsigned long>?

Daniel

On 05/12/2011 02:32 PM, Amadeo Cuadrado wrote:
> Thanks Norman and Stefan.
>
> While trying to run these examples with Linux instead of foc, I would like to report I get the following error when building the NIC driver:
>
>    Program drivers/gpxe_nic/gpxe_nic_drv
>      COMPILE  main.o
> .../genode/dde_gpxe/src/drivers/gpxe_nic/main.cc: In member function 'virtual Nic::Session_component* Nic::Root::_create_session(const char*)':
> .../genode/dde_gpxe/src/drivers/gpxe_nic/main.cc:187: error: no matching function for call to 'max(unsigned int, long unsigned int)'
>
> Is this known?
>
> Thanks,
> Amadeo
>
>
> -----Original Message-----
> From: Norman Feske [mailto:norman.feske at ...1...]
> Sent: Thursday, May 12, 2011 5:07 AM
> To: genode-main at lists.sourceforge.net
> Subject: Re: lwip examples
>
> 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:stefan.kalkowski at ...1...]
>>> Sent: Friday, May 06, 2011 1:16 PM
>>> To: genode-main at lists.sourceforge.net
>>> 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
>>>> Genode-main at lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/genode-main
>




More information about the users mailing list