Could not invoke dnf for external kernel module in Yocto kirkstone

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Could not invoke dnf for external kernel module in Yocto kirkstone

Jump to solution
3,343 Views
JohnKlug
Senior Contributor I

I am trying to add mwifiex/mxm_wifiex wifi module to my image. Maybe I don't know how to write an external module recipe in kirkstone?

I added my firmware recipe just fine, but when I add my kernel modules, the image build fails.

I added this to local.conf:

CORE_IMAGE_EXTRA_INSTALL = "imx-firmware kernel-module-moal kernel-module-mlan"



Result:

ERROR: core-image-base-1.0-r0 do_rootfs: Could not invoke dnf. Command '/home/jklug/imx-yocto-bsp/build/tmp/work/imx6ullevk-fslc-linux-gnueabi/core-image-base/1.0-r0/recipe-sysroot-native/usr/bin/dnf -v --rpmverbosity=info -y -c /home/jklug/imx-yocto-bsp/build/tmp/work/imx6ullevk-fslc-linux-gnueabi/core-image-base/1.0-r0/rootfs/etc/dnf/dnf.conf --setopt=reposdir=/home/jklug/imx-yocto-bsp/build/tmp/work/imx6ullevk-fslc-linux-gnueabi/core-image-base/1.0-r0/rootfs/etc/yum.repos.d --installroot=/home/jklug/imx-yocto-bsp/build/tmp/work/imx6ullevk-fslc-linux-gnueabi/core-image-base/1.0-r0/rootfs --setopt=logdir=/home/jklug/imx-yocto-bsp/build/tmp/work/imx6ullevk-fslc-linux-gnueabi/core-image-base/1.0-r0/temp --repofrompath=oe-repo,/home/jklug/imx-yocto-bsp/build/tmp/work/imx6ullevk-fslc-linux-gnueabi/core-image-base/1.0-r0/oe-rootfs-repo --nogpgcheck install imx-firmware kernel-module-mlan kernel-module-moal packagegroup-base-extended packagegroup-core-boot run-postinsts locale-base-en-us locale-base-en-gb' returned 1:
DNF version: 4.11.1
cachedir: /home/jklug/imx-yocto-bsp/build/tmp/work/imx6ullevk-fslc-linux-gnueabi/core-image-base/1.0-r0/rootfs/var/cache/dnf
Added oe-repo repo from /home/jklug/imx-yocto-bsp/build/tmp/work/imx6ullevk-fslc-linux-gnueabi/core-image-base/1.0-r0/oe-rootfs-repo
User-Agent: falling back to 'libdnf': could not detect OS or basearch
repo: using cache for: oe-repo
oe-repo: using metadata from Tue 04 Apr 2023 11:35:02 PM UTC.
Last metadata expiration check: 0:00:01 ago on Tue 04 Apr 2023 11:35:02 PM UTC.
No match for argument: kernel-module-mlan
No match for argument: kernel-module-moal
Error: Unable to find a match: kernel-module-mlan kernel-module-moal

 

 

0 Kudos
Reply
1 Solution
3,325 Views
JohnKlug
Senior Contributor I
Looks like I can trace this problem back to when I set:

DISTRO=fslc-framebuffer
in my build which sets the default PACKAGE_CLASSES to rpm.

If instead one chooses DISTRO=fsl-imx-fb, this line is placed in local.conf:
PACKAGE_CLASSES = "package_deb"

this causes createrepo to not be called, which I think is broken.

View solution in original post

2 Replies
3,327 Views
JohnKlug
Senior Contributor I

I got a little further.  The directory oe-repo in the working directory for the image does not have the external kernel modules.

It appears that a command createrepo, which is an RPM related command, creates hard links for build/tmp/deploy/rpm/imx6ullevk/*.rpm  files into the oe-repo directory.  The kernel module rpm I need is in the deploy/rpm/imx6ullevk directory, but the hard link is not created to the oe-repo directory.  But what is wrong?  I think I will look into Debian packaging.

0 Kudos
Reply
3,326 Views
JohnKlug
Senior Contributor I
Looks like I can trace this problem back to when I set:

DISTRO=fslc-framebuffer
in my build which sets the default PACKAGE_CLASSES to rpm.

If instead one chooses DISTRO=fsl-imx-fb, this line is placed in local.conf:
PACKAGE_CLASSES = "package_deb"

this causes createrepo to not be called, which I think is broken.