Regarding ARM on Genode virt_qemu_arm_v8a

Martin Stein martin.stein at genode-labs.com
Tue Mar 28 11:56:17 CEST 2023


Hi Divya,

First of all, I'm not sure whether you see this right: It's not your NIC
router that is missing a route but your NIC driver. In Genode NIC
drivers are NIC session clients and the NIC router is a NIC session server.

Second, the main problem in your case seems to be that you do the NIC
driver deployment different from how it is done normally in Sculpt. You
added the NIC driver statically to your "drivers" subsystem. However,
normally, the "drivers" subsystem contains only the most essential
drivers for bringing Sculpt up and the NIC driver is getting deployed on
demand only by the Sculpt manager [1][2] in the "runtime" subsystem (the
typical space for user applications).

I'd recommend you to remove the NIC driver <start> node from your
"drivers" subsystem and instead let the Sculpt manager do this for you.
As far as I can tell you have already achieved the second part. When
asked to do so, the Sculpt manager starts the NIC driver with name
"nic_drv" which causes the driver to request a binary named "nic_drv"
from within "runtime" and as you can see in [3], this is re-routed to
the a binary with the name you provide through [4].

So, once you removed your own NIC driver instance from "drivers",
network should work when you click on "Wired" in your "Network" menu in
Sculpt.

Cheers,
Martin

[1]
https://github.com/genodelabs/genode/blob/master/repos/gems/src/app/sculpt_manager/network.cc#L232
[2]
https://github.com/genodelabs/genode/blob/master/repos/gems/src/app/sculpt_manager/runtime/nic_drv.cc
[3]
https://github.com/genodelabs/genode/blob/master/repos/gems/run/sculpt.run#L631
[4]
https://github.com/genodelabs/genode/blob/master/repos/gems/run/sculpt.run#L153

On 27.03.23 16:32, Divya Sharma wrote:
> 
> On Sat, Mar 25, 2023 at 2:28 PM Divya Sharma <divyasharma26546 at gmail.com
> <mailto:divyasharma26546 at gmail.com>> wrote:
> 
>     Thanks Norman for your suggestion.
>     I modified the sculpt.run as you said but still the uplink session
>     is not getting created may be because of the label mismatch.
> 
>     [init] Warning: drivers: no route to service "Uplink"
>     (label="drivers -> virtio_mmio_nic -> ")
>     [init -> drivers -> virtio_mmio_nic] Error: Uplink-session creation
>     failed (ram_quota=3538944, cap_quota=8,
>     mac_address="52:54:00:12:34:56", tx_buf_size=1638400,
>     rx_buf_size=1638400, label="")
>     [init -> drivers -> virtio_mmio_nic] Error: Uncaught exception of
>     type 'Genode::Service_denied'
> 
> 
>     I  tried to figure it out by inspecting the run scripts and runtime
>     configuration  working behind the scenes but I  am not able to
>     provide that route to nic_router.So,Is there anything that needs to
>     be changed in [1]  to give the route to the uplink session. 
>     Also as you said that by default  Sculpt labels the nic driver as
>     "nic_drv" so is there any way to make it to virtio_mmio_nic by
>     modifying these .cc files  [2],[3],[4].Maybe i could be wrong for it.
> 
>     Then kindly guide me towards it.
>     Also i am sharing the modification that i did to scripts.
> 
>     [1]
>     https://github.com/genodelabs/genode/blob/master/repos/gems/run/sculpt.run#L153
>     [2]
>     https://github.com/genodelabs/genode/blob/master/repos/gems/src/app/sculpt_manager/network.cc
>     [3]
>     https://github.com/genodelabs/genode/blob/master/repos/gems/src/app/sculpt_manager/runtime/nic_drv.cc
>     [4]https://github.com/genodelabs/genode/blob/master/repos/gems/src/app/sculpt_manager/runtime/nic_router.cc
> 
> 
>     Best 
>     Divya.
> 
> Dear Norman Feske ,
> Is there any way possible to do so then kindly help me with this.
> 
> Thanks,
> Divya,



More information about the users mailing list