Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
交叉编译arm的linuxmodule(raspberryPi)_Arm_Kernel Module_Raspberry Pi_Cross Compiling - Fatal编程技术网

交叉编译arm的linuxmodule(raspberryPi)

交叉编译arm的linuxmodule(raspberryPi),arm,kernel-module,raspberry-pi,cross-compiling,Arm,Kernel Module,Raspberry Pi,Cross Compiling,我正试图用crosstool ng 1.15.3为raspberryPi(arm)交叉编译一个(示例)linuxmodule 我得到了以下输出: 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/spe

我正试图用crosstool ng 1.15.3为raspberryPi(arm)交叉编译一个(示例)linuxmodule

我得到了以下输出:

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路径有问题。我的主机有内核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

有几件事需要注意:

  • 您正在根据开发主机的linux源代码树进行编译—从
    判断,通用pae
    后期修复可能不是内核主线。ARM SoC的变化需要很长时间才能进入主线,而进入其他非ARM内核分支的速度甚至更低。建议您找到集成了SoC更改的内核树,并获得一个标记版本,例如
    3.2
    ,而不是head

  • 您是否为构建ARM内核配置了linux构建系统?e、 g

  • export-ARCH=arm

    makeclean

    make rpi_defconfig

    如果没有,您的内核将配置为x86版本,并且
    /arch/arm
    文件夹中的头将不可用-即使您已设置
    arch

    尝试构建一个完整的内核,并确保在构建模块之前先工作,这将是一个好主意

    下载内核3.2.27,并按照