On Wed, Sep 4, 2019 at 6:07 AM Hongzhi, Song <hongzhi.s...@windriver.com> wrote: > > > On 9/4/19 11:55 AM, Bruce Ashfield wrote: > > On Tue, Sep 3, 2019 at 9:43 PM Hongzhi.Song <hongzhi.s...@windriver.com> > > wrote: > >> There are two errors when compile an out of tree kernel module > >> using sdk: > >> > > This is not universally true. Can you expand on what kernel version > > and architectures you are building ? I'm able to build kernel modules > > across all the arches I'm currently testing, so I'd like to capture > > your exact config in the long log. Neither is the autobuilder showing > > any errors. > > Hi Bruce, > > > kernel version: 5.0.19 > > git clone poky > > echo TOOLCHAIN_HOST_TASK_append = " nativesdk-openssl-dev > nativesdk-bison nativesdk-flex" > TOOLCHAIN_TARGET_TASK_append = " python-dev kernel-dev > kernel-devsrc") > > >> conf/local.conf > > Other config is default. > > > bitbake core-image-minimal && bitbake core-image-minimal -c populate_sdk > > ./tmp/deploy/sdk/xxx.sh > > cd ${Your SDK path}/sysroots/xxx/usr/src/kernel > > make scripts > > Then you can build yourself module. And you will meet missing some head > files and scripts/mod/modpost. > > > I test qemux86-64 and qemuarm. > > Both of above arch miss different head files, which all of them > generated in ${B}/arch/${ARCH}/include/generated/asm > > (qemux86-64 needs asm/early_ioremap.h and asm/mmiowb.h > > qemuarm needs asm/bitsperlong.h) > > > > > >> 1. "In file included from ./include/linux/seqlock.h:36:0, > >> from ./include/linux/time.h:6, > >> from ./include/linux/stat.h:19, > >> from ./include/linux/module.h:10, > >> from kernel-module/char.c:1: > >> ./include/linux/spinlock.h:60:10: fatal error: asm/mmiowb.h: No such > >> file or directory" > >> > >> mmiowb.h is generated to ${B}/arch/${ARCH}/include/generated/asm/. > >> > >> And there is only generated/ under ${B}/arch/${ARCH}/include/, > >> so I copy whole ${B}/arch/${ARCH}/include/ to $kerneldir/build/ > >> in case of other files under generated/ is needed in the future. > >> > >> 2. "/bin/sh: scripts/mod/modpost: No such file or directory" > >> > >> Copy above files or directory to $kerneldir/build/ fix the errors. > >> > >> Signed-off-by: Hongzhi.Song <hongzhi.s...@windriver.com> > >> --- > >> meta/recipes-kernel/linux/kernel-devsrc.bb | 6 ++++++ > >> 1 file changed, 6 insertions(+) > >> > >> diff --git a/meta/recipes-kernel/linux/kernel-devsrc.bb > >> b/meta/recipes-kernel/linux/kernel-devsrc.bb > >> index 3900489..feff9f1 100644 > >> --- a/meta/recipes-kernel/linux/kernel-devsrc.bb > >> +++ b/meta/recipes-kernel/linux/kernel-devsrc.bb > >> @@ -80,6 +80,12 @@ do_install() { > >> > >> cp .config $kerneldir/build > >> > >> + if [ -d arch/${ARCH}/include ]; then > >> + cp -a --parents arch/${ARCH}/include $kerneldir/build/ > >> + fi > > Just copy the files you need, not the entire directory. > > > Just as explained above, exactly speaking I think include/generated is > necessary.
It shouldn't be. The point of what we include in devsrc is that it can regenerate all these files either on target, or the SDK. > > ps: only generated/ under include/. > > > > > > >> + > >> + cp --parents scripts/mod/modpost $kerneldir/build/ > > We shouldn't be copying binaries or scripts. They are regenerated on target. > > > > Bruce > > > But scripts/mod/modpost is needed when compile a module by sdk. yes, that is expected. But 'make scripts prepare' should be recreating them. Is that not working for you ? We can't copy the binaries, since you'll get QA errors depending on your host/target arch combination. Bruce > > Otherwise it will show error info: > > " > > /bin/sh: scripts/mod/modpost: No such file or directory > scripts/Makefile.modpost:92: recipe for target '__modpost' failed > > " > > > --Hongzhi > > > > >> + > >> # This scripts copy blow up QA, so for now, we require a more > >> # complex 'make scripts' to restore these, versus copying them > >> # here. Left as a reference to indicate that we know the scripts > >> must > >> -- > >> 2.8.1 > >> > > -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core