asterisk for mipsel
任務(wù):將asterisk1.8.24.0移植到rt5350上面
交叉工具鏈:mipsel-linux(3.4.2)
1. 配置asterisk,執(zhí)行./configure --host=mipsel-linux
??? 找不到termcap和libxml2,分別對(duì)他們交叉編譯,然后將生成的庫拷貝到交叉工具鏈的lib目錄下即可。
再執(zhí)行./configure --host=mipsel-linux,發(fā)現(xiàn)還是找不到libxml2。根據(jù)提示可以將其關(guān)閉。
執(zhí)行./configure --host=mipsel-linux --disable-xmldoc
2. 編譯asterisk, 執(zhí)行make,編譯報(bào)錯(cuò),報(bào)錯(cuò)信息望記了,實(shí)際就是少了SDL庫,交叉編譯后,將庫文件和
頭文件都拷貝到交叉工具鏈的include和lib目錄下。再編譯即可。
3. 成功編譯后,并沒有生成chan_sip.so(最重要的文件)。
修改menuselect.makeopts文件,將chan_sip去掉。即可編譯。
??? 在編譯channels/sip/reqresp_parser.c時(shí)報(bào)錯(cuò)
LC_CTYPE_MASK undeclared
解決辦法,修改include/asterisk/autoconfig.h文件,去掉#define HAVE_XLOCALE_H 1這行。
這樣就可以生成出chan_sip.so了。
實(shí)際這個(gè)問題比較奇怪,在configure的時(shí)候,可以看到這兩句,
checking for locale_t in locale.h... no
checking for locale_t in xlocale.h... no
理論上說,HAVE_XLOCALE_H這個(gè)宏不應(yīng)該被定義。
4. 因?yàn)閞t5350上面只有一個(gè)4MB大小的norflash,所以只能將其放到外部存儲(chǔ)上來運(yùn)行。
所以重新配置asterisk,./configure --host=mipsel-linux --disable-xmldoc --prefix=/media/sda1
make && make install。
注意:先在上午機(jī)上面創(chuàng)建/media/sda1這個(gè)目錄,這樣在make install 后,就可以直接在/media/sda1目錄
下得到編譯好的asterisk了。
5. 將編譯好的asterisk拷貝到外部存儲(chǔ)上運(yùn)行,發(fā)現(xiàn)不正常,但又看不到錯(cuò)誤信息,
修改main/asterisk.c ,將daemon(1, 0)的第二個(gè)參數(shù)改為1,再編譯,然后只把a(bǔ)sterisk這個(gè)可執(zhí)行文件拷貝過 去即可。
6. 再次運(yùn)行后,看到報(bào)錯(cuò)信息,在源碼里搜索報(bào)錯(cuò)信息后,發(fā)現(xiàn)是main/asterisk.c的這一行報(bào)的錯(cuò)
res = bind(ast_socket, (struct sockaddr *)&sunaddr, sizeof(sunaddr));
實(shí)際就在綁定unix域協(xié)議socket的時(shí)候報(bào)的錯(cuò),再使用unix域協(xié)議的時(shí)候,實(shí)際是綁定了一個(gè)本地的socket
?? 類型的文件,經(jīng)過自己編寫測(cè)試程序,發(fā)現(xiàn)是沒法在外部存儲(chǔ)上創(chuàng)建這個(gè)socket文件。(應(yīng)該是外部存儲(chǔ)是
?? FAT32文件系統(tǒng)的緣故,估計(jì)格式化為ext3就行了。)那么我們可以將其指? 定到norflash上即可。
7. 經(jīng)過查看源碼,發(fā)現(xiàn)這個(gè)socket文件的路徑是在configure的時(shí)候生成在defaults.h這個(gè)頭文件里的,修改這個(gè)頭文件,將#define DEFAULT_SOCKET改為norflash的位置即可。再次編譯,將編譯出來的asterisk文件拷貝過去即可。
總結(jié)
以上是生活随笔為你收集整理的asterisk for mipsel的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国足球成“段子” 抖音曲线救球
- 下一篇: Asterisk拨号方案语法基础