Linux kernel 如何为ARM构建zaptel?
我正在为Arm交叉编译zaptel驱动程序 我正在跟踪这个项目,为blackfin arch构建zaptel驱动程序。在构建uClinux、oslec和补丁以构建额外的模块wcfxs、sport_interface、bfsi而不是原来的模块之后,这个命令发挥了神奇的作用Linux kernel 如何为ARM构建zaptel?,linux-kernel,arm,linux-device-driver,Linux Kernel,Arm,Linux Device Driver,我正在为Arm交叉编译zaptel驱动程序 我正在跟踪这个项目,为blackfin arch构建zaptel驱动程序。在构建uClinux、oslec和补丁以构建额外的模块wcfxs、sport_interface、bfsi而不是原来的模块之后,这个命令发挥了神奇的作用 make -C /home/working/BAPS/uClinux-dist/linux-2.6.x/ SUBDIRS=/home/working/BAPS/zaptel-1.4.3/ modules V=1 ARCH=bla
make -C /home/working/BAPS/uClinux-dist/linux-2.6.x/ SUBDIRS=/home/working/BAPS/zaptel-1.4.3/ modules V=1 ARCH=blackfin CROSS_COMPILE=bfin-uclinux- EXTRA_CFLAGS="-DCONFIG_4FX_SPI_INTERFACE"
构建过程成功运行,bfsi.ko、sport_interface.ko、wcfxs.ko、zaptel.ko生成并对我的astfin板有用,在上一个过程中也是oslec.ko
bfsi.ko: ELF 32-bit LSB relocatable, Analog Devices Blackfin, version 1 (SYSV), not stripped
sport_interface.ko: ELF 32-bit LSB relocatable, Analog Devices Blackfin, version 1 (SYSV), not stripped
wcfxs.ko: ELF 32-bit LSB relocatable, Analog Devices Blackfin, version 1 (SYSV), not stripped
zaptel.ko: ELF 32-bit LSB relocatable, Analog Devices Blackfin, version 1 (SYSV), not stripped
所以我想用我的臂板做同样的事情,特别是我的小猎犬骨黑色。
首先,我完全建成了奥斯陆,然后是奥斯陆。我知道oslec也是一个内核模块,但我很容易构建它
make -C [my bbb kernel] ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- EXTRA_CFLAGS="-I/home/working/AAPS/oslec/kernel -I/home/working/AAPS/oslec/spandsp-0.0.3/src/spandsp" SUBDIRS=/home/working/AAPS/oslec/kernel modules
我有oslec.ko,看起来还可以
kernel/oslec.ko: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped
但我被困在了最后一步——建造zaptel
这是我的make命令
make-C/home/working/AAPS/dl/buildroot-bbb/output/build/linux-3.8.13/\
SUBDIRS=/home/working/AAPS/zaptel-1.4.3/modules V=1 ARCH=arm\
CROSS_COMPILE=armlinux gnueabihf-KBUILD\u NOPEDANTIC=1\
EXTRA_CFLAGS=-DCONFIG_4FX_SPORT_INTERFACE-I/home/working/AAPS/zaptel-1.4.3/staging/usr/include
出现错误:
include/linux/wait.h:159:47: error: ‘TASK_INTERRUPTIBLE’ undeclared (first use in this function)
#define wake_up_interruptible(x) __wake_up(x, TASK_INTERRUPTIBLE, 1, NULL)
我发现常量TASK_interruptable是在$my_bbb_kernel/include/linux/sched.h和$blackfin_uclinux_kernel/linux-2.6.x/include/linux/sched.h中定义的,但其中一个适用于blackfin的uclinux,另一个不适用于我的bbb内核。我不知道它们是如何包含的,因为我不太熟悉linux内核模块的开发。
因此,如果有人对此有任何想法,请给我一些指示或解释。
顺致敬意,
来当