If I think more... For driver development the Out Of (OOT) Tree driver
is a must, and so far the most efficient way is to have native tool
environment presence on the target, so the quick recompilation of the
module is a must/should be achieved... It is a pain doing this on the
host using cross compilation, or even building it to the kernel.

Once the driver is stable, then it should be built-in with Y in the
kernel, changing the YOCTO kernel defconfig (not the topic for this
problem, there is a good explanation how to do that in YOCTO manuals).

If the driver is out of shelf, it should be recompiled as built-in the kernel.

There are differences between having an OOT driver versus a built-in driver.

Since some variables and functions are exported in .c files, and not
propagated into related .h files. And then this makes some confusion
while having OOT drivers.

Zoran
_______

On Thu, Jan 7, 2021 at 4:27 PM Zoran via lists.yoctoproject.org
<zoran.stojsavljevic=gmail....@lists.yoctoproject.org> wrote:
>
> 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.zol...@gmail.com> 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.stojsavlje...@gmail.com> 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.zol...@gmail.com> 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
> >> >
> >> >
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#51921): https://lists.yoctoproject.org/g/yocto/message/51921
Mute This Topic: https://lists.yoctoproject.org/mt/79498728/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to