我正在尝试交叉编译ARM的星号。
当我交叉编译强制模块(例如 sqlite3,ncurses和openssl )然后在交叉编译星号及其各自的选项时包含它们时,一切都很好strong> - with-sqlite3, - with-ncurses --with-crypto和--with-ssl。
但是当我试图包括dahdi时,没有任何事实成真。这发生在--with-dahdi = $(DAHDI_DIR)/ linux:
checking for tone_zone_find_by_num in -ltonezone...no
checking for tone_zone_find in -ltonezone... no
我知道它可以检查音区然后查找dahdi / tonezone.h。然后我看到没有错误,但运行 make menuconfig 时无法选择 chan_dahdi 这发生在--with-dahdi = $(DAHDI_BUILD_RESULT_DIR):
checking for mandatory modules: CRYPTO DAHDI NCURSES SQLITE3 OPENSSL... fail
configure: ***
configure: *** The DAHDI installation appears to be missing or broken.
configure: *** Either correct the installation, or run configure
configure: *** including --without-dahdi.
注意$(DAHDI_BUILD_RESULT_DIR)在构建dahdi时包含我的结果,假设我做得正确,因为这是结果中的一个驱动程序:
$(DAHDI_BUILD_RESULT_DIR)/lib/modules/3.8.13/dahdi/dahdi.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), BuildID[sha1]=2b16a606c922ca5f10288dba98f2b365e8316748, not stripped
我的过程中使用的东西:
1. dahdi 2.10完成
2. linaro交叉编译工具链
3. Linux内核3.8.13
4.星号11.11.0
5.硬件:Beagleboneblack
如果有人有想法,或者知道如何用dahdi交叉编译星号,我们将非常感谢您的帮助。
最好的问候。
Loi Dang
答案 0 :(得分:1)
查看asterisk的configure.ac,它会检查dahdi完成的dahdi-tools部分(用户空间),编译时不需要dahdi-linux部分(kernel-modules)。确保头文件安装在正确的位置,通常是/ usr / include。
答案 1 :(得分:1)
非常感谢@viktike帮我解决问题。在运行 configure 星号脚本时,添加CFLAGS
指向DAHDI C头文件和LDFLAGS
指向lib文件作为参数很好地解决了我的问题。
./configure [other argument] CFLAGS="-g -I/home/thanhloi/workspace/asterisk/dahdi-linux-complete-2.10.1+2.10.1/RESULT/usr/include/" LDFLAGS="-L/home/thanhloi/workspace/asterisk/dahdi-linux-complete-2.10.1+2.10.1/RESULT/usr/lib/ -lpthread -ldl"
Asterisk然后配置并使用dahdi安装。
最好的问候
Loi Dang