OK I have forked the repository and added a layer for the custom image in fin-custom-image
branch. Not much to it. https://github.com/crazystick/balena-raspberrypi/tree/fin-custom-image
Initial setup was done by running ./balena-yocto-scripts/build/barys -m fincm3 -n
I have also pushed the local.conf
and bblayers.conf
that I’m using, not many changes from the generated one.
Hi @crazystick – thanks very much for sharing your repo with us. We’ve passed this along to our devices team, and they will be digging into this. We will get back to you as soon as we have more news.
All the best,
Hugh
Hi,
Seems like this is caused by the differences in the kernel configuration, which trigger a different checksum for module_layout.
I’ve added some changes to your build example, they include a trimmed down version of the balena-kernel.bbclass which avoids bringing in other dependencies. I also add the same configs that are enabled in a BalenaOS build. With these changes the pre-built modules get loaded and wifi works:
root@fincm3:~# lsmod
Module Size Used by
sd8xxx 602112 2
cfg80211 655360 1 sd8xxx
mlan 471040 1 sd8xxx
rtc_ds1307 24576 0
hwmon 16384 1 rtc_ds1307
i2c_gpio 16384 0
i2c_algo_bit 16384 1 i2c_gpio
bt8xxx 90112 0
bluetooth 397312 2 bt8xxx
ecdh_generic 28672 1 bluetooth
rfkill 28672 4 bluetooth,cfg80211
root@fincm3:~# nmcli d w l
IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
Balena Infra 7 540 Mbit/s 64 *** WPA1 WPA2
T-LNK02 Infra 3 54 Mbit/s 64 *** WPA1
Thanks! This works for me also.
Is there an upstream source for this kernel config? I’d like to know what is the process for future releases. It seemed like this thread prompted a manual rebuild of the binary driver. If there will be a new kernel version, the kernel config might change, and the driver should be rebuilt.
I see that there is already a source file rpi-kernel-misc.cfg
in the balena-raspberrypi repo, but it has only one fragment and seems unused anyway. Would it be possible to add some kind of automation to rebuild the driver and push the working config to the repo?
Hi,
No, there was no re-build of the driver binaries in this case. The final kernel configuration gets assembled from the configs enabled in meta-balena kernel class as well as from the ones in the device layer.
I raised this ticket to track including the generated defconfig along the pre-built modules. You can then re-use that defconfig in your kernel recipe when updating to newer versions. Please note that you should keep the trimmed down version of the kernel.bbclass for bringing in the aufs patches.