Re: insmod - huawei E3372h kernel module


Zoran
 

No, no... I did not mean in the makefile to change m to y.

Please, maybe you can try to set your makefile to lookalike as these ones:
https://github.com/ZoranStojsavljevic/mikrobus/blob/mikrobusv2/Makefile
https://github.com/ZoranStojsavljevic/mikrobus/blob/mikrobusv2-debug/Makefile

Zoran
_______

On Thu, Jan 7, 2021 at 4:17 PM Zoltan Kerenyi Nagy
<kerenyi.nagy.zoltan@...> wrote:

Hi Zoran,

Thanks, I modified the Makefile:

obj-m := huawei_cdc_ncm.o
Kconfig (obj-y := huawei_cdc_ncm.o)
SRC := $(shell pwd)
all:
$(MAKE) -C $(KERNEL_SRC) M=$(SRC)
modules_install:
$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install
clean:
rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
rm -f Module.markers Module.symvers modules.order
rm -rf .tmp_versions Modules.symvers

but this is the error:

ERROR: huawei-1.1-r0 do_configure: oe_runmake failed
ERROR: huawei-1.1-r0 do_configure: Function failed: do_configure (log file is located at /home/kerenyiz/oe-core/build/tmp-glibc/work/barix_ipam400-oe-linux-gnueabi/huawei/1.1-r0/temp/log.do_configure.4488)
ERROR: Logfile of failure stored in: /home/kerenyiz/oe-core/build/tmp-glibc/work/barix_ipam400-oe-linux-gnueabi/huawei/1.1-r0/temp/log.do_configure.4488
Log data follows:
| DEBUG: Executing shell function do_configure
| NOTE: make KERNEL_SRC=/home/kerenyiz/oe-core/build/tmp-glibc/work-shared/barix-ipam400/kernel-source clean
| ERROR: oe_runmake failed
| Makefile:2: *** empty variable name. Stop.
| ERROR: Function failed: do_configure (log file is located at /home/kerenyiz/oe-core/build/tmp-glibc/work/barix_ipam400-oe-linux-gnueabi/huawei/1.1-r0/temp/log.do_configure.4488)
ERROR: Task (/home/kerenyiz/oe-core/build/../stuff/meta-barix-sdk/recipes-z/kernel-modules/huawei/huawei_1.1.bb:do_configure) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3880 tasks of which 3873 didn't need to be rerun and 1 failed.

On Thu, 7 Jan 2021 at 16:03, Zoran Stojsavljevic <zoran.stojsavljevic@...> wrote:

Hello Zoltan,

root@barix-ipam400:~# insmod /lib/modules/4.10.0/extra/huawei_cdc_ncm.ko
insmod: can't insert '/lib/modules/4.10.0/extra/huawei_cdc_ncm.ko': unknown symbol in module, or unknown parameter
Please, try to set Kconfig (obj-y := huawei_cdc_ncm.o) to y, I guess
99.9% that the kernel compilation (actually, driver compilation) will
pass.

I think YOCTO (recipe) behaves perfectly correctly.

Other approach: try to compile the same module with Makefile above on
the target.

(my two cent thoughts)

Zoran
_______

On Thu, Jan 7, 2021 at 2:46 PM Zoltan Kerenyi Nagy
<kerenyi.nagy.zoltan@...> wrote:

Hi Folks,

I bitbaked a Huawei E3372h driver into the distro with this recipe file:

SUMMARY = "Huawei Stick kernel module"
LICENSE = "CLOSED"

inherit module

SRC_URI = "file://Makefile \
file://huawei_cdc_ncm.c \
"

S = "${WORKDIR}"

The makefile looks like this:

obj-m := huawei_cdc_ncm.o

SRC := $(shell pwd)

all:
$(MAKE) -C $(KERNEL_SRC) M=$(SRC)

modules_install:
$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install

clean:
rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
rm -f Module.markers Module.symvers modules.order
rm -rf .tmp_versions Modules.symvers

The source file is the one that matches the kernel:

https://elixir.bootlin.com/linux/v4.0/source/drivers/net/usb/huawei_cdc_ncm.c

I included this into the conf file:
KERNEL_MODULE_AUTOLOAD += "lte"KERNEL_MODULE_PROBECONF += "lte"huawei_cdc_ncm = "options lte iProduct=E3372h iManufacturer=Huawei"

Bitbake runs without error, however when I insert the SD card into the hardware ( barix ipam 400)
and boot the hardware this is the error message:

root@barix-ipam400:~# insmod /lib/modules/4.10.0/extra/huawei_cdc_ncm.ko
insmod: can't insert '/lib/modules/4.10.0/extra/huawei_cdc_ncm.ko': unknown symbol in module, or unknown parameter

To me it looks like that there was an error during the bitbake, or the header files included in the driver doesn't match the kernel.

Do you have any idea how to procede?

Thanks,



--
Zolee

Join {yocto@lists.yoctoproject.org to automatically receive all group messages.