我正在尝试用raspberryPi-ng 1.15.3交叉编译一个(示例)linuxmodule for the crosstool(Arm)。
我得到了以下输出:
markus@markus-R55S:~/Desktop/speakerarm$ make ARCH=arm CROSS_COMPILE=arm-unknown-linux-gnueabi-
make -C /lib/modules/3.2.0-35-generic-pae/build SUBDIRS=/home/markus/Desktop/speakerarm modules
make[1]: Entering directory `/usr/src/linux-headers-3.2.0-35-generic-pae'
CC [M] /home/markus/Desktop/speakerarm/speaker.o
In file included from /usr/src/linux-headers-3.2.0-35-generic-pae/arch/arm/include/asm/types.h:4:0,
from include/linux/types.h:4,
from include/linux/list.h:4,
from include/linux/module.h:9,
from /home/markus/Desktop/speakerarm/speaker.c:1:
include/asm-generic/int-ll64.h:11:29: fatal error: asm/bitsperlong.h: No such file or directory
compilation terminated.
make[2]: *** [/home/markus/Desktop/speakerarm/speaker.o] Error 1
make[1]: *** [_module_/home/markus/Desktop/speakerarm] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-35-generic-pae'
make: *** [default] Error 2我想可能是include-path出了问题。我的主机是内核3.2.35,我的目标机器是3.2.27+。我的错误是什么?Makefile包含以下内容:
obj-m := speaker.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules发布于 2013-01-06 01:56:53
需要注意的几件事:
在你的开发主机的源码树上编译的
-generic-pae的后缀来看,它可能不是内核主线。ARM SoC的更改需要很长时间才能进入主线,而进入其他非ARM内核分支的速度更慢。建议您找到集成了SoC更改的内核树,并获取一个标记版本,如3.2而不是head。export ARCH=arm
make clean
make rpi_defconfig
如果您没有这样做,您的内核将被配置为x86构建,并且/arch/arm文件夹中的头文件将不可用-即使您设置的是ARCH
尝试构建一个完整的内核并确保在构建模块之前先运行,这将是一个好主意。
发布于 2013-02-02 16:45:06
下载内核3.2.27 rpi-3.3.27,并按照RPi_Kernel_Compilation中提到的步骤操作
https://stackoverflow.com/questions/14174159
复制相似问题