【发布时间】:2015-05-10 03:26:55
【问题描述】:
我正计划为 Beagleboneblack 构建 DAHDI
首先,我完全按照本教程为 BBB 构建了内核
http://elinux.org/Building_BBB_Kernel,
使 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- beaglebone_defconfig
使 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage dtbs
制作 ARCH=arm CROSS_COMPILE=arm-linux-gnu- uImage-dtb.am335x-boneblack 模块
我为 armhf (CROSS_COMPILE=arm-linux-gnueabihf-) 使用了 linaro 工具链,而不是按照说明使用的。
然后我开始构建 DAHDI:
cd dahdi-linux-complete-2.10.1-rc2+2.10.1-rc2
cd linux/ # 我只构建 dahdi,而不是他们的工具
使 KSRC=PATH_TO_MY_ABOVE_KERNEL
不幸的是,编译 dahdi-base.c 时,进程以以下错误结束:
/home/working/dl/dahdi-linux-complete-2.10.1-rc2+2.10.1-rc2/linux/drivers/dahdi/dahdi-base.c:1:错误:代码模型内核不支持32 位模式
/home/working/dl/dahdi-linux-complete-2.10.1-rc2+2.10.1-rc2/linux/drivers/dahdi/dahdi-base.c:1:对不起,未实现:64位模式未编译
我不知道为什么,因为我的 linaro 工具链是 32 位的
/home/working/dl/gcc-linaro-arm-linux-gnueabihf-4.7-2012.10-20121022_linux/bin/arm-linux-gnueabihf-gcc-4.7.3: ELF 32 位 LSB 可执行文件,Intel 80386,版本 1 (SYSV),动态链接(使用共享库),适用于 GNU/Linux 2.6.15,已剥离
我的 gnu gcc 工具链也是 32 位的。
/usr/bin/gcc:ELF 32 位 LSB 可执行文件,Intel 80386,版本 1 (SYSV),动态链接(使用共享库),用于 GNU/Linux 2.6.18,已剥离
如果有人有想法,我们将不胜感激。
最良好的问候。
黎登清
【问题讨论】:
-
您的
--host是如何为您的arm-linux-gnueabihf-gcc配置的。运行arm-linux-gnueabihf-gcc并寻找--host -
试试
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KSRC=PATH_TO_MY_ABOVE_KERNEL -
为什么需要 DAHDI? ...您是否将 Digium 卡连接到小猎犬骨黑?否则,您不需要 DAHDI 来运行星号。
-
BBB 没有 HPET。所以是的,他需要 dahdi 或其他计时器。不幸的是,除了 x86 之外,没有允许 dahdi 可以编译为其他平台。开发人员必须对其进行更改以支持新平台。 DAHDI 只是说你在这个盒子上没有 x86。我建议您使用 openwrt 论坛上的主题来获取想法。
-
谢谢你们,我对构建它感到困惑。我认为仅在构建 dahdi 时只需要 KSRC 参数,而不是 dahdi 的工具。所以我没有输入 CROSS_COMPILE 或 ARCH。遵循 Miline 的指示很好地解决了这个问题。最好的问候
标签: linux linux-kernel cross-compiling asterisk beagleboneblack