1. 程式人生 > >移植linphone到arm-linux日誌記錄

移植linphone到arm-linux日誌記錄

離上次寫部落格已經一年多,參加工作已經一年多了,做過很多事情,再做一次的時候老是想不起一些細節的東西,故,記錄的部落格上,順便與大家分享。

根據專案需求,移植一個只有語音功能的linphone(無需介面與視訊)

使用arm-linux-gcc4.5.1,這個編譯器是友善之臂提供的,linux版本3.0.8

linphone移植需要依賴其他庫:

readline-6.2.tar.gz(如未加此庫,會出現linphonecsh無法註冊到伺服器的問題)

設定好交叉編譯器環境變數

建立目錄 /home/linphone/build,/home/linphone/arm_target,/home/linphone/sources

將所有安裝包放入/home/linphone/sources,並解壓到該資料夾下

tar -zxvf libogg-1.3.0.tar.gz

tar -zxvf readline-6.2.tar.gz

tar -zxvf speex-1.2rc1.tar.gz

tar -zxvf libosip2-3.3.0.tar.gz

tar -zxvf libeXosip2-3.3.0.tar.gz

tar -zxvf linphone-3.2.0.tar.gz

交叉編譯libogg

mkdir /home/linphone/build/libogg

cd /home/linphone/build/libogg

../../sources/libogg-1.3.0/configure --prefix=/home/linphone/arm_target  CC=arm-linux-gcc --host=arm-linux--enable-static --disable-shared

make

make install(一般情況下沒有錯誤發生)

交叉編譯speex

mkdir /home/linphone/build/speex

cd /home/linphone/build/speex

../../sources/speex-1.2rc1/configure --prefix=/home/linphone/arm_target CC=arm-linux-gcc--host=arm-linux --with-ogg=/home/linphone/arm_target/ --enable-static --disable-shared

make

make install (一般情況下沒有錯誤發生)

交叉編譯libosip2

mkdir /home/linphone/build/libosip2

cd /home/linphone/build/libosip2

../../sources/libosip2-3.3.0/configure --prefix=/home/linphone/arm_target CC=arm-linux-gcc--host=arm-linux --enable-shared --disable-static

make (一般情況下沒有錯誤發生)

make install

交叉編譯libeXosip2

mkdir /home/linphone/build/libeXosip2

cd /home/linphone/build/libeXosip2

../../sources/libeXosip2-3.3.0/configure --prefix=/home/linphone/arm_target CC=arm-linux-gcc --host=arm-linux --enable-shared --disable-static PKG_CONFIG_PATH=/home/linphone/arm_target/lib/pkgconfig/

make

make install (libeXosip2版本需要與libosip2的版本一直,否則編譯不通過)

交叉編譯readline (一般情況下沒有錯誤發生)

mkdir /home/linphone/build/readline

cd /home/linphone/build/readline

../../sources/readline-6.2/configure --prefix=/home/linphone/arm_target --prefix=/home/install/linphone --host=arm-linux --with-gnu-ld --disable-static

make

make install

交叉編譯linphone

mkdir /home/linphone/build/linphone

cd /home/linphone/build/linphone

../../sources/linphone-3.2.0/configure --prefix=/home/linphone/arm_target --host=arm-linux --with-gnu-ld --disable-static  --enable-alsa=yes --disable-glib --with-osip=/home/linphone/arm_target --with-speex=/home/linphone/arm_target SPEEX_CFLAGS="-I/home/linphone/arm_target/include"  SPEEX_LIBS="-L/home/linphone/arm_target/lib -lspeex -lspeexdsp" OSIP_CFLAGS="-I/home/linphone/arm_target/include"  OSIP_LIBS="-L/home/linphone/arm_target/lib -leXosip2 -losipparser2" --disable-video --disable-gtk_ui PKG_CONFIG_PATH=/home/linphone/arm_target/lib/pkgconfig/ READLINE_CFLAGS="-I/home/linphone/arm_target/include" READLINE_LIBS="-L/home/linphone/arm_target/lib"

make

make install

注意:之前使用libeXosip2-4.0.0,編譯linphone會報一堆錯誤,果斷該用3.3.0版本,問題就沒出現了,編譯到後面出現config.h中的巨集定義重複定義,只需在該檔案中把相應的巨集定義註釋就解決了。

將/home/linphone/arm_target下的linphonec linphonecsh拷貝到開發板檔案系統的/usr/local/bin,並執行

缺少庫則從/home/linphone/arm_target/lib拷貝,以此類推

在開發板測試

linphonecsh init

linphonecsh register --host IP --username user --password passwd

linphonecsh generic 'autoanswer enable'

linphonecsh generic 'soundcard use 1'

至此,此版本的linphone已可接聽與撥打。

 ——————————————————————————————————————————————

經過測試,執行linphone導致arm linux 無法重啟,可試下一下步驟

cd /

kill -9 linphonec的pid

reboot