Hi Bob,
"[init] Error: ctrl_module: environment ROM session denied (label="ctrl_module",
ram_quota=6144, cap_quota=3, diag=0) "
What is this message telling me?
traditionally, init created the initial sessions (aka environment sessions) of its children on the children's behalf without considering any child-specific routing. I.e., a child's PD session, CPU session, the ROM session with the executable binary, the ROM session with the dynamic linker were created by init directly via 'Connection' objects. Therefore, there was no need to route those sessions explicitly in the configuration.
With version 16.11 and 17.02 [1], we revised the child-creation procedure. Now, the environment sessions are subjected to the routing rules as dictated by init's configuration.
[1] http://genode.org/documentation/release-notes/17.02#Routing_of_environment_s...
In short, your routing rules for the "ctrl_module" lack a valid route for the executable binary.
Also, further down the log is the following output:
init -> gpio_drv] resource_request: ram_quota=0, cap_quota=4
[init -> gpio_drv] used before freeing emergency=276K
[init -> gpio_drv] used after freeing emergency=260K
I believe these are a result of the gpio server setting up a session through the session interface.
The 'gpio_drv' component runs out of its capability quota and politely asks its parent (init) for more (cap_quota=4). Capability quotas are new in version 17.05 and are described at [2].
[2] http://genode.org/documentation/release-notes/17.05#Assignment_and_trading_o...
You may try to specify a 'caps=200' attribute to the start node of the corresponding component.
Cheers Norman