使用bitbake将静态库链接到内核模块

时间:2018-09-10 20:38:50

标签: linker static-libraries kernel-module bitbake

我想使用bitbake为我的BBB构建一个静态模块的内核模块,该模块具有外部符号。

此问题是我的静态库未链接到内核模块,并且缺少符号。

使用此Makefile序列:

obj-m += hcsr04.o
hcsr04-src := hcsr04.o 
SRC := $(shell pwd)
all:
    $(MAKE) -C $(KERNEL_SRC) M=$(SRC)

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

生成二进制文件,该二进制文件当然缺少nm所示的符号,如(只是一个片段)

         U printk
00000004 b pruData
00000000 b pruDataMem
         U prussdrv_exec_program
         U prussdrv_exit
         U prussdrv_init
         U prussdrv_map_prumem
         U prussdrv_open
         U prussdrv_pru_clear_event
         U prussdrv_pru_disable
         U prussdrv_pruintc_init
         U prussdrv_pru_wait_event

到目前为止,这对我来说很有意义。

现在,如果我这样设置我的makefile(libprussdrv.a是我需要链接的库):

obj-m += hcsr04.o
hcsr04-src := hcsr04.o 
hcsr04-objs := hcsr04.o libprussdrv.a
SRC := $(shell pwd)
all:
    $(MAKE) -C $(KERNEL_SRC) M=$(SRC)

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

我收到了一个更小的模块,其中仅包含以下符号:

00000000 d $d
00000000 r $d
00000000 r $d
00000024 r __module_depends
00000000 D __this_module
00000000 r __UNIQUE_ID_srcversion9
0000002d r __UNIQUE_ID_vermagic8
00000000 r ____versions

我尝试为任何规则指定-l[libpostfix].a,但没有成功。

我走错了路还是将库链接到内核模块时丢失了什么?

0 个答案:

没有答案