Hello,
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'
this message tells us that you have added the network driver to the drivers subsystem. It does not belong there. In fact, if you inspect the routing rules for the 'drivers' subsystem [1] in sculpt.run, you will see that the drivers subsystem is not supposed to request any 'Uplink' session. So the driver's attempt to request such a session is denied.
Sculpt hosts the network driver inside the runtime subsystem. The driver is dynamically spawned by the sculpt manager - always named 'nic_drv' - once the user selects 'LAN' in the network dialog. The change in [2] is needed because the executable binary of the driver (as present in core's ROM service) is named differently from 'nic_drv'. With the relabeling in place (see [3]), the runtime subsystem will obtain the 'virtio_mmio_nic' executable binary whenever a ROM named "nic_drv" is requested from within the runtime subsystem.
[1] https://github.com/genodelabs/genode/blob/master/repos/gems/run/sculpt.run#L... [2] https://github.com/genodelabs/genode/blob/master/repos/gems/run/sculpt.run#L... [3] https://github.com/genodelabs/genode/blob/master/repos/gems/run/sculpt.run#L...
Regards, Norman