[meta-freescale] building kernel drivers as modules

Aaron Solochek aaron.solochek at sri.com
Wed Nov 20 14:44:29 PST 2019


Hello,

I have an imx8mqevk and have been running into a frustrating issue attempting to get the kernel to build some drivers as modules. My build environment:

BB_VERSION           = "1.40.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "ubuntu-18.04"
TARGET_SYS           = "aarch64-poky-linux"
MACHINE              = "imx8mqevk"
DISTRO               = "fsl-imx-xwayland"
DISTRO_VERSION       = "4.19-thud"
TUNE_FEATURES        = "aarch64"

I think I have bitbake doing the right thing (finally) by modifying linux-imx_4.19.35.bb so do_copy_defconfig copies my config instead of the one from ${S}/arch/arm64/configs/defconfig, so that the kernel config isn’t reverting to ‘stock’. It looks like it’s building with my config, and I’m reinstalling the kernel packages via dnf, which seems to be working as expected.

The problem is that the kernel seems to be building these drivers in despite also building them as modules. For example, i2c-imx.

imx8mqevk:/lib/modules/4.19.35-imx_4.19.35_1.0.0+ge4452f4458e4/kernel/drivers/i2c/busses#ls
i2c-bcm-iproc.ko            i2c-imx.ko        i2c-sh_mobile.ko
i2c-bcm2835.ko              i2c-meson.ko      i2c-tegra-bpmp.ko
i2c-brcmstb.ko              i2c-mv64xxx.ko    i2c-tegra.ko
i2c-cros-ec-tunnel.ko       i2c-pxa.ko        i2c-uniphier-f.ko
i2c-designware-core.ko      i2c-qup.ko        i2c-zx2967.ko
i2c-designware-platform.ko  i2c-rcar.ko       xen-i2cback.ko
i2c-exynos5.ko              i2c-rk3x.ko       xen-i2cfront.ko
i2c-imx-lpi2c.ko            i2c-rpmsg-imx.ko
imx8mqevk:/lib/modules/4.19.35-imx_4.19.35_1.0.0+ge4452f4458e4/kernel/drivers/i2c/busses#grep I2C_IMX /boot/config-4.19.35-imx_4.19.35_1.0.0+ge4452f4458e4
CONFIG_I2C_IMX=m
CONFIG_I2C_IMX_LPI2C=m
imx8mqevk:/lib/modules/4.19.35-imx_4.19.35_1.0.0+ge4452f4458e4/kernel/drivers/i2c/busses#insmod i2c-imx.ko
[ 1753.961663] Error: Driver 'imx-i2c' is already registered, aborting...
insmod: ERROR: could not insert module i2c-imx.ko: Device or resource busy

What is going on here? Is there some driver configured to be built in that is causing this driver to be built in, even though it’s configured to be a module? The same thing is happening for all the mipi/v4l drivers I’m trying to build as modules.

Any insights would be greatly appreciated!

Thank you.

-Aaron
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-freescale/attachments/20191120/3b93a001/attachment.html>


More information about the meta-freescale mailing list