0

I'm trying to write a recipe for an out-of-tree kernel module for RTL8189FTV SDIO WiFi module located in recommended repo. jwrdegoede/rtl8189ES_linu

The module is being built against mainline kernel 5.15.35

  1. kernel/linux-mainline
  2. defconfig

Here is the recipe:

rtl8188eu_git.bb

❯ cat rtl8188eu_git.bb
SUMMARY = " WiFi driver for orange-pi-r1"
LICENSE = "CLOSED"
SRCREV = "96ecc776167a15cc7df4efc4f721ba5784c55c85"
SRC_URI = "git://github.com/lwfinger/rtl8188eu.git;protocol=https;branch=master"

S = "${WORKDIR}/git"

inherit module

#RDEPENDS:${PN} += "linux-firmware-rtl8188"

EXTRA_OEMAKE += "-C ${STAGING_KERNEL_DIR} M=${S}"

KERNEL_MODULE_AUTOLOAD += "8189eu"
COMPATIBLE_MACHINE = "(orange-pi-zero|orange-pi-r1)"

And the log of a do_compile task:

orange_pi_r1-ino-linux-musleabi/rtl8189es/r0-r0/temp/log.do_compile

DEBUG: Executing shell function do_compile
NOTE: make -j 8 KERNEL_SRC=/../build/tmp/work-shared/orange-pi-r1/kernel-source -I/../build/tmp/work/orange_pi_r1-ino-linux-musleabi/rtl8189es/r0-r0/git/usr/bin  ARCH=arm KSRC=/../build/tmp/work-shared/orange-pi-r1/kernel-build-artifacts "$@"
make -j 8  KERNEL_SRC=/../build/tmp/work-shared/orange-pi-r1/kernel-source -I/../build/tmp/work/orange_pi_r1-ino-linux-musleabi/rtl8189es/r0-r0/git/usr/bin ARCH=arm KSRC=/../tmp/work-shared/orange-pi-r1/kernel-build-artifacts KERNEL_PATH=/../build/tmp/work-shared/orange-pi-r1/kernel-source KERNEL_VERSION=5.15.35 CC=arm-ino-linux-musleabi-gcc  -mno-thumb-interwork -marm -fuse-ld=bfd -fmacro-prefix-map=/../build/tmp/work/orange_pi_r1-ino-linux-musleabi/rtl8189es/r0-r0=/usr/src/debug/rtl8189es/r0-r0 -fdebug-prefix-map=/../build/tmp/work/orange_pi_r1-ino-linux-musleabi/rtl8189es/r0-r0=/usr/src/debug/rtl8189es/r0-r0 -fdebug-prefix-map=/../build/tmp/work/orange_pi_r1-ino-linux-musleabi/rtl8189es/r0-r0/recipe-sysroot=                      -fdebug-prefix-map=/../build/tmp/work/orange_pi_r1-ino-linux-musleabi/rtl8189es/r0-r0/recipe-sysroot-native=  -fdebug-prefix-map=/../build/tmp/work-shared/orange-pi-r1/kernel-source=/usr/src/kernel -fdebug-prefix-map=/../build/tmp/work-shared/orange-pi-r1/kernel-build-artifacts=/usr/src/kernel LD=arm-ino-linux-musleabi-ld.bfd   AR=arm-ino-linux-musleabi-ar  O=/../build/tmp/work-shared/orange-pi-r1/kernel-build-artifacts KBUILD_EXTRA_SYMBOLS=
DEBUG: Shell function do_compile finished

The log seems to indicates that build was success-full, however there is no kernel module file (*.ko) located in the build directory. Nothing was built. The trouble only occurs with this specific repository, because I am able to build and deploy similar out-of-tree kernel driver's using exact same recipe.

Why nothing is compiled even if build is finished successfully?

  • Looks like the `"$@"` part of the `make` command line didn't expand any arguments other than `KBUILD_EXTRA_SYMBOLS=`. No make target is specified. Is there a default target in the makefile that's supposed to do what you want? Do the working packages do the exact same thing with no target? What working directory is this in, and what is the `Makefile` there? – Kaz Sep 27 '22 at 19:15
  • Yes, you were right. I compared Makefiles of the repository from the forks that were working form me and it turns out that I had to patch the makefile to to define a `CONFIG_RTL8189FS = m`. It was actually building a correct target `modules` but no object files were included. Thank you! – BlameCapitalism Sep 28 '22 at 10:06

0 Answers0