bluez藍芽協議棧交叉編譯移植教程(附帶視訊下載地址)
由於專案功能的要求,需要移植bluez藍芽協議棧到S3C2410開發平臺上,在移植的過程中出現了很多問題,比如依賴庫的版本不匹配,交叉編譯器版本過高或者過低等問題,為了能讓大家少走移植的彎路,現將自己親測的組合版本以及編譯過程總結如下,同時還附帶有編譯過程的全稱視訊,只是沒有聲音,因為是在實驗室沒有麥,大家將就以下,雖然沒有聲音但是不影響編譯過程,下載地址為:http://115.com/file/aq7pjuh6#
交叉編譯bluez協議棧.avi。
需要的原始碼包有:
bluez-libs-3.36.tar.gz
libxml2-2.6.11.tar.gz
glib-2.16.5.tar.gz
libsndfile-1.0.17.tar.gz
libusb-0.1.12.tar.gz
dbus-1.0.2.tar.gz
bluez-utils-3.36.tar.gz
openobex-1.3.tar.gz
具體的編譯安裝步驟如下:
1、交叉編譯並安裝bluez-libs
進入原始碼包所在路徑,解壓原始碼包到當前路徑,進入原始碼包目錄,依次執行以下命令,在執行命令期間不出現錯誤即可完成交叉編譯安裝工作:
#./configure -prefix=/root/bluez/bluez-libs --host=arm-linux
#make
#make install
#cp /root/bluez/bluelib/lib/pkgconfig/bluez.pc /usr/lib/pkgconfig
2、交叉編譯並安裝libxml
解壓並進入原始碼目錄,依次執行以下命令:
#./configure --prefix=/root/bluez/libxml --host=arm-linux CC=arm-linux-gcc
#make
#make install
#cp /root/bluez/libxml/lib/pkgconfig/libxml-2.0.pc /usr/lib/pkgconfig
3、交叉編譯並安裝glib
解壓並進入原始碼所在目錄,依次執行以下命令:
#apt-get install gettext
gettext用於系統的國際化和本地化,可以在編譯程式的時候使用本國語言支援(NLS),可以使程式的輸出使用使用者設定的語言而不是英文。
#apt-get install libglib2.0-dev
glib 是 GTK+和 GNOME 工程的基礎底層核心程式庫,是一個綜合用途的實用的輕量級的C 程式庫。
#echo ac_cv_type_long_long=yes > arm-linux.cache
#echo glib_cv_stack_grows=no >> arm-linux.cache
#echo glib_cv_uscore=no >> arm-linux.cache
#echo ac_cv_func_posix_getpwuid_r=yes >> arm-linux.cache
#echo ac_cv_func_posix_getgrgid_r=yes>> arm-linux.cache
#./configure -prefix=/root/bluez/glib --host=arm-linux CC=arm-linux-gcc cache-file=arm-linux.cache
#make
#make install
#cp /root/bluez/glib/lib/pkgconfig/* /usr/lib/pkgconfig
4、交叉編譯並安裝libsndfile
解壓並進入原始碼包目錄,依次執行以下命令:
#./configure -prefix=/root/bluez/libsndfile --host=arm-linux CC=arm-linux-gcc
#make
#make install
#cp /root/bluez/libsndfile/lib/pkgconfig/sndfile.pc /usr/lib/pkgconfig
5、交叉編譯並安裝libusb
解壓並進入原始碼包所在目錄,依次執行以下命令:
#./configure -prefix=/root/bluez/libusb --host=arm-linux CC=arm-linux-gc
#make
#make install
#cp /root/bluez/libusb/lib/pkgconfig/libusb.pc /usr/lib/pkgconfig
6、交叉編譯並安裝dbus
解壓並進入原始碼包所在目錄,依次執行以下命令:
#echo ac_cv_have_abstract_sockets=yes > arm-linux.cache
#./configure --host=arm-linux --prefix=/root/bluez/dbus CC=arm-linux-gcc --cache-file=arm-linux.cache --without-x
#make
#make install
#cp /home/song/install_bluez/dbus/lib/pkgconfig/dbus-1.pc /usr/lib/pkgconfig/
7、交叉編譯並安裝bluez-utils
解壓並進入原始碼包所在目錄,依次執行以下操作:
開啟network/bridge.h檔案,新增以下巨集定義:
#define SIOCBRADDBR 0x89a0
#define SIOCBRDELBR 0x89a1
#define SIOCBRADDIF 0x89a2
#define SIOCBRDELIF 0x89a3
開啟input/storage.c檔案,加入以下巨集定義:
#define ENOKEY 161
執行以下命令安裝依賴庫:
#apt-get install libbluetooth-dev
#apt-get install libcwiid1
最後依次執行以下命令完成編譯安裝:
#./configure --prefix=/root/bluez/bluez-utils --host=arm-linux CC="arm-linux-gcc –shared -I/root/bluez/bluez-libs/include -L/root/bluez/bluez-libs/lib" --disable-audio
#make
#make install
8、交叉編譯並安裝openobex
解壓並進入原始碼包所在目錄,依次執行以下命令:
#./configure --prefix=/root/bluez/openobex --host=arm-linux CC="arm-linux-gcc -I/root/bluez/bluez-libs/include -L/root/bluez/bluez-libs/lib" --enable-bluetooth --disable-usb --enable-apps
#make
#make install
總結:bluez-utils的編譯安裝目錄下生成的操作藍芽的工具,bluez-libs安裝目錄下生成的是藍芽程式設計通訊時所以來的庫,其他的都是編譯這兩個所依賴的庫,也就是說需要移植到板子上的只有bluez-libs和bluez-utils安裝目錄下的相關檔案。
相關文章
- 藍芽(Bluetooth)音訊協議藍芽音訊協議
- linux下bluetooth程式設計(二)blueZ協議棧Linux程式設計協議
- 藍芽4.0BLE中協議棧詳解藍芽協議
- Android藍芽協議-藍芽掃描 startDiscoveryAndroid藍芽協議
- 關於Gdb工具的交叉編譯、移植編譯
- 藍芽協議體系結構藍芽協議
- 樹莓派開發筆記(十一):藍芽的使用,BlueZ協議(雙樹莓探測rssi並通過藍芽互傳獲取的rssi訊號強度)樹莓派筆記藍芽協議
- ubuntu下編譯交叉編譯工具鏈Ubuntu編譯
- 保姆級mysql安裝教程+下載教程-附視訊教程MySql
- 交叉編譯編譯
- Android 視訊教程下載Android
- 原創 | Ripple20:Treck TCP/IP協議棧漏洞分析與驗證(附視訊)TCP協議
- lazarus交叉編譯編譯
- GDB交叉編譯編譯
- golang交叉編譯Golang編譯
- 2021看雪SDC議題回顧 | 基於模擬模擬的藍芽協議棧漏洞挖掘藍芽協議
- C2000 編譯器下載地址編譯
- 今日頭條視訊的地址解析下載
- C++視訊和講義下載地址C++
- 軟體推薦-Java反編譯軟體-jd-gui(附下載地址)Java編譯GUI
- c#俄羅斯方塊視訊教程下載地址[陳廣老師]C#
- Spark視訊教程免費下載Spark
- ElasticSearch 視訊教程免費下載Elasticsearch
- Quartz 視訊教程免費下載quartz
- 從零開始移植QT4.8.5之三--linux下交叉編譯QT執行庫QTLinux編譯
- cmake使用教程(九)-關於安卓的交叉編譯安卓編譯
- 交叉編譯入門編譯
- go 交叉編譯,部署Go編譯
- 淺談交叉編譯編譯
- 使用blueZ進行藍芽程式設計時需要注意的問題藍芽程式設計
- Golang在各平臺下如何交叉編譯Golang編譯
- 在WSL下為OpenWRT交叉編譯出CMake編譯
- 全棧交叉編譯X86完成過程經驗分享全棧編譯
- 北風網 web全棧視訊教程 前端全套視訊教程Web全棧前端
- Android 11 原始碼下載+編譯教程Android原始碼編譯
- 帶您瞭解PAX:Android網路交叉許可協議Android協議
- zstack協議棧協議
- Weblogic 視訊教程免費下載Web