机器详细信息:
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
我怎么能这样做?
答案 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模块