在Beagle Bone Black上构建一个树外模块

时间:2015-03-23 02:13:00

标签: module linux-device-driver beagleboneblack

机器详细信息:

Linux beaglebone 3.8.13-bone47 armv7l GNU/Linux

问题详情:

试图在beagle bone black上编写out-of-tree模块(因为intree模块要求我一次又一次地编译/刷新它们),我已经通过ssh客户端登录到beagle bone black revc,这给出了我通过putty命令行界面,就像一般的树外模块开发一样,我试图用以下make文件编译模块

ifneq ($(KERNELRELEASE),)
# kbuild part of makefile
        obj-m  := module.o

        #module-objs := module.o
else
# normal makefile
        KDIR ?= /lib/modules/$(shell uname -r)/build
        PWD  := $(shell pwd)
default:
        $(MAKE) -C $(KDIR) M=$(PWD) modules

endif

导致错误

root@beaglebone:~/lddgeek# make
make -C /lib/modules/3.8.13-bone47/build M=/root/lddgeek modules
make: *** /lib/modules/3.8.13-bone47/build: No such file or directory.  Stop.
make: *** [default] Error 2

但当我解析KDIR的路径时,我找不到构建文件夹,因为我们在x86上安装的普通ubuntu中找到它

如果我必须在Beagle上开发驱动程序/模块out-of-tree我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

我无法编译的原因是我错过了kbuild环境,我需要安装内核头文件,这将使我能够编译树外/外部模块

#wget https://raw.github.com/gkaindl/beaglebone-ubuntu-scripts/master/bb-get-rcn-kernel-source.sh
#chmod +x bb-get-rcn-kernel-source.sh
#./bb-get-rcn-kernel-source.sh

以上步骤实际上帮助我解决了面临的错误,而我能够插入,删除我试图构建的hello world模块