我如何为ARM构建zaptel?

时间:2015-05-13 08:47:50

标签: linux-kernel arm linux-device-driver

我试图为手臂交叉编译zaptel驱动程序

我正在关注这个项目http://svn.astfin.org/software/baps/trunk,为blackfin arch建立zaptel驱动程序。
在构建uClinux,oslec和修补zaptel.patch以构建额外的模块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=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


那么我想用我的扶手板(尤其是我的Beaglebone Black)做同样的事情 首先,我完全构建了BBB Kernel,然后是oslec。我知道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=arm-linux-gnueabihf- KBUILD_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_INTERRUPTIBLE是在$(my_bbb_kernel)/include/linux/sched.h$(blackfin_uclinux_kernel)/linux-2.6.x/include/linux/sched.h中定义的,但是一个工作(uclinux用于blackfin)而一个不工作(我的bbb内核)。我不知道他们怎么能包括因为我对linux内核模块的开发不太熟悉 因此,如果有人在这种情况下有任何想法,请给我一些指示或解释 最诚挚的问候 Loi Dang

0 个答案:

没有答案