genodelabs/genode-world

lte modem: missing antenna is not handled correctly

Sh-Anand opened this issue · 5 comments

When booted without an antenna, mbimcli does not connect to network even if the antenna is attached during runtime.

mbimcli instead errors:

Error: Device not registered after 101 tries

and then exits immediately.

Instead of exiting after a set number of tries mbimcli should retry forever with a backoff strategy.

As @Sh-Anand is currently working on his master thesis, I have taken over this Issue from him.

When I did want to test his changes, using the mbimcli run script I discovered, that this no longer works after the update to Genode 23.02. Therefore I created a separate commit that fixes this run script.
As I do not have the hardware for most of the platforms, I hope, this doesn't break anything. I was able to build it for all platforms up to where it tries to launch it. Except for RPI where I got the following error:

building targets: bootstrap/hw core/hw
spawn make bootstrap/hw core/hw
make[1]: Entering directory '/data/genode/build/arm_v7a'
checking library dependencies...
Library-description file bootstrap-hw-rpi.mk is missing
Library-description file core-hw-rpi.mk is missing
make[1]: Leaving directory '/data/genode/build/arm_v7a'
genode build completed
error copying "bin/core-hw-rpi.a": no such file or directory
    while executing
"file copy -force $src $dst"
    (procedure "copy_file" line 2)
    invoked from within
"copy_file bin/core-hw-[board].a      [run_dir]/genode/ "
    (procedure "run_boot_dir" line 17)
    invoked from within
"run_boot_dir $binaries"
    (procedure "build_boot_image" line 35)
    invoked from within
"build_boot_image $boot_modules"
    (file "/data/genode/repos/world/run/mbimcli.run" line 215)
    invoked from within
"source $include_name"
    ("foreach" body line 6)
    invoked from within
"foreach include_name [get_cmd_arg --include ""] {
	# first check if the include name is absolute
	if {[string first "/" $include_name] == 0} {
		puts ..."
    (file "/data/genode/tool/run/run" line 1169)
make: *** [Makefile:431: run/mbimcli] Error 1
make: Leaving directory '/data/genode/build/arm_v7a'

This could be due to my personal setup, as I normally do not build for any arm_v7a platform.

When doing further tests, we discovered, that after a signal loss (simulated by removing the antenna) the connection isn't re established. I created a separate commit that fixes this.

Except for RPI where I got the following error:

building targets: bootstrap/hw core/hw
spawn make bootstrap/hw core/hw
make[1]: Entering directory '/data/genode/build/arm_v7a'
checking library dependencies...
Library-description file bootstrap-hw-rpi.mk is missing
Library-description file core-hw-rpi.mk is missing

[...]

This could be due to my personal setup, as I normally do not build for any arm_v7a platform.

The script fails as rpi is an arm_v6 platform. Mind the missing library mk files, which can be found in the /lib/mk/spec/arm_v6/bootstrap-hw-rpi.mk subdirectory that is not visible in an arm_v7a build.

@chelmuth when I try to build base-hw for rpi (arm_v6) with the following branches

  • genode: 23.02 (57fcc7a25f)
  • genode-rpi: master (fe52ae28c3)

I get, beside others, the following error:

/data/genode/depot/genodelabs/src/base-hw-rpi/2023-04-17T1042/src/core/spec/arm/bcm2835_pic.cc:18:17: error: ‘Core’ is not a namespace-name
   18 | using namespace Core;
      |                 ^~~~

If I remember correctly the namespace Core was introduced in 23.02. Is there a known good combination of genode/genode-imx repositories, that I can use to build? Or are you fine if I do not investigate further?

I guess something got tangled up here.

  1. genode-rpi and genode-imx cannot be used in combination, most basically because rpi is arm_v6 and imx is arm_v8a.
  2. The Core namespace was introduced after release 23.02.
  3. The available sync points between all genode repositories are the release tags.

So, please checkout tag 23.02 in both - genode and genode-rpi.

@chelmuth Thanks for the information. With that the build succeeds.