移植 usb 藍芽介面卡到 arm 板
expat-2.0.1.tar.gz 這個庫是後面的 dbus 依賴的 #tar -zxvf /mnt/hgfs/Linux/bluez/ expat-2.0.1.tar.gz –C ./ #./configure --prefix=/opt/EmbedSky/bluez/libs --host=arm-linux --target=arm-linux CC=arm-linux-gcc #make #make install
dbus-1.5.12.tar.gz #tar -zxvf /mnt/hgfs/Linux/bluez/ dbus-1.5.12.tar.gz –C ./ #echo ac_cv_have_abstract_sockets=yes>arm-linux.cache #./configure --prefix=/opt/EmbedSky/bluez/libs --host=arm-linux --target=arm-linux CC="arm-linux-gcc -I/opt/EmbedSky/ bluez/libs/include -L/opt/EmbedSky/bluez/libs/lib" --cache-file=arm-linux.cache --with-x=no #make #make install
glib-2.26.1.tar.gz(這個的安裝會遇到相當多的問題,下面有解決的方法) #tar -zxvf /mnt/hgfs/Linux/bluez/glib-2.26.1.tar.gz –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 c_cv_func_posix_getpwuid_r=yes>>arm-linux.cache #echo ac_cv_func_posix_getgrgid_r=yes>> arm-linux.cache 注意:">"和">>"的區別 #./configure --profix=/opt/EmbedSky/bluez/libs --host=arm-linux --target=arm-linux CC="arm-linux-gcc -I/opt/EmbedSky/bl uez/libs /include -L/opt/EmbedSky/bluez/libs/lib" --cache-file=arm-linux.cache #make #make install 錯誤 checking for posix getpwuid_r... configure: error: in `/opt/EmbedSky/bluez/glib-2.26.1 ':configure: error: cannot run test program while cross compiling See `config.log' for more details.
解決方法: # echo ac_cv_func_posix_getpwuid_r=yes>> arm-linux.cache configure: error: Could not find a glib-genmarshal in your PATH 解決方法: yum install libglib2.0-devel,這樣在/usr/bin/目錄下就有一個 glib-genmarshal 的應用程式。 checking for posix getgrgid_r... configure: error: in `/opt/EmbedSky/bluez/glib-2.26.1 ':configure: error: cannot run test program while cross compiling See `config.log' for more details.
解決方法: # echo ac_cv_func_posix_ getgrgid_r _r=yes>> arm-linux.cache configure: error: Could not find a glib-compile-schemas in your PATH
這個問題確實要把我搞吐血了,我差不多找用遍百度、谷歌、搜狗和 360 搜尋,英文的資料都找遍了,問題是有人問,但沒一個人有解決的方案。有人說這個 glib-compile-schemas 是安裝 glib-2.26.1.tar.gz 才有的,但是我現在是安裝這個就要啊。 在/usr/bin/目錄下,有一個名為 glib-genmarshal 的應用程式,但就是沒有 glib-compile-schemas 的應用程式。想了很久,也鬱悶了好久,最後無意看到 ChangeLog 檔案,心裡好像悟到點什麼。先用 gcc 編譯出應用程式來,再用交叉編譯器來編譯行不行呢?哈哈 解決方法: #./configure --prefix=/opt/EmbedSky/bluez/libs CC=" gcc -I/opt/EmbedSky/bluez/libs/include -L/opt/libs/lib" #make #make install 編譯安裝後,在/opt/EmbedSky/bluez/libs/bin/目錄下就生成了 glib-compile-schemas 的應用程式,把它複製到/usr/bin/目錄下,然後再用交叉編譯器來編譯。 用交叉編譯器編譯 make 時出現錯誤 glib-genmarshal : GLib-Genmarshal-WARNING **: unknown type: VARIANT
這個問題的解決也是有點靈感來的。 解 決 方 法 : 前 面 說 到 在 /usr/bin/ 目 錄 下 本 來 就 有 一 個 glib-genmarshal , 當 我 們 用 gcc 編 譯 的 時 候 , 在/opt/EmbedSky/bluez/libs/bin/目錄下同樣生成一個 glib-genmarshal 應用程式,在 make 的時候,呼叫的估計是原來的/usr/bin/目錄下的。由於版本不同或者其他什麼的,出錯了。我們在/usr/bin/目錄下的 glib-genmarshal 刪掉,把/opt/EmbedSky/bluez/libs/bin/目錄下的 glib-genmarshal 應用程式複製到/usr/bin/目錄下即可。 libusb-0.1.12.tar.gz #tar -zxvf /mnt/hgfs/Linux/bluez/libusb-0.1.12.tar.gz –C ./ #./configure --profix=/opt/EmbedSky/bluez/libs --host=arm-linux --target=arm-linux CC="arm-linux-gcc -I/opt/EmbedSky/bl uez/libs /include -L/opt/EmbedSky/bluez/libs/lib" #make #make install bluez-utils-3.36.tar.gz #tar -zxvf /mnt/hgfs/Linux/bluez/bluez-utils-3.36.tar.gz –C ./ #./configure --profix=/opt/EmbedSky/bluez/libs --host=arm-linux --target=arm-linux CC="arm-linux-gcc -I/opt/EmbedSky/bl uez/libs /include -L/opt/EmbedSky/bluez/libs/lib" --disable-audio #make #make install 可能出現的錯誤: checking for BLUEZ... configure: error: Bluetooth library is required
這個問題也搞了我好長時間,同樣在網上幾乎找不到可行的答案。網上有說解決方法為 sudo apt-get install libbluetooth-dev。但是在 fedora 上輸入 yum install libbluetooth-dev,你會發現根本找不到這樣的安裝包的。 甚至你輸入 yum install libbluetooth*都沒有安裝包。網上也有說是輸入 yum install pkg-config,但是根據提示,這裡已經說是 yes 了:
所以應該也不是這個原因。另外還有說路徑不對的,但我這裡我已經很明確指定了路徑了,所以也應該不是這個原因。根據英文意思,是少了依賴的庫,yum install 沒有下載,那可不可以考慮去百度或者谷歌下載一個呢?於是。。。 解決方法: 去網上下載一個 libbluetooth-dev_4.66-3_i386.deb 的軟體包,用好壓工具解壓,裡面有兩個檔案 control.tar.gz 和 data.tar.gz,可以看到 data.tar.gz 裡面包含有我們需要的標頭檔案和庫檔案。通過共享目錄放在虛擬機器上去。 #tar -zxvf /mnt/hgfs/Linux/bluez/data.tar.gz –C ./ 你會發現無論你解壓到哪個目錄,軟體包都會固定安裝在/usr/include、/usr/lib 和/usr/share 目錄下的,這是因為裡 面指定了安裝目錄
這樣再次配置的時候就不會出現上面的錯誤了。 通過上面的操作,庫檔案和藍芽工具都已經安裝好了(安裝在/opt/EmbedSky/bluez/libs 目錄下)。下面就把這些東 西放到根檔案。 Copy /opt/EmbedSky/bluez/libs/lib 目錄下的庫檔案到根檔案的 lib 目錄下,包括 libbluetooth.so.2.11.2 libbluetooth.so libbluetooth.so.2 libgmodule-2.0.so libgmodule-2.0.so.0 libgmodule-2.0.so.0.2600.1 Copy/opt/EmbedSky/bluez/sbin 目錄下的所有檔案到根檔案的 sbin 目錄下 Copy/opt/EmbedSky/bluez/etc/bluetooth 目錄下的所有檔案到根檔案的 etc 目錄下 Copy/opt/EmbedSky/bluez/bin 目錄下的 hcitool,rfcomm,sdptool 檔案到根檔案的 bin 目錄下 重新燒寫根檔案 [[email protected] /]# hciconfig hci0 hci0: Type: USB BD Address: 00:15:83:3D:0A:57 ACL MTU: 310:10 SCO MTU: 64:8 UP RUNNING ISCAN RX bytes:930 acl:0 sco:0 events:23 errors:0 TX bytes:88 acl:0 sco:0 commands:17 errors:0 [[email protected] /]# hciconfig hci0 up 啟用藍芽裝置 [[email protected] /]# hciconfig hci0 iscan 設定開發板的藍芽屬性為可查詢 [[email protected] /]# hcitool scan 掃描藍芽裝置 Scanning ... 7B:29:A1:9F:66:01 我手機的藍芽裝置地址 uff 藍芽裝置名
總結: 移植藍芽的庫確實比較無聊,依賴的庫特別多。整個過程遇到不少問題,當我們遇到問題的時候,除了通過網際網路找資料外,我們也要自己多動腦去分析一下。出路總是有的!另外,我們也學會是看一些英文資料,因為英文資料很多都比較簡潔直接,而不像中文資料那樣你抄我我抄你的!!
相關推薦
移植 usb 藍芽介面卡到 arm 板
操作環境 win7 vmware fedora 10 usb 藍芽介面卡 tq2440 核心 2.6.30 交叉編譯器 4.3.3 配置核心 make menuconfig [*] Networking support ---> <*>
【ARM】嵌入式 ARM Linux 下移植 USB 藍芽、交叉編譯 bluez 各種版本
一、基本說明: 目前在嵌入式 Linux 下使用 USB 藍芽模組,比較好的解決方法就是使用 Linux 官方協議棧 bluez,這同時也是 PC 及 Android 手機上使用的藍芽協議棧,可以說還是比較靠譜的。 但是!不得不說,bluez 有多種版本,如
TP-LINK WR720N升級8M Flash 64M Ram,加USB-TTL,燒openwrt官方韌體,接藍芽介面卡
最近突發奇想,心血來潮,想用ARM開發板做一個家用監控主機,再用微控制器和各種感測器做成環境資料採集終端,還有繼電器控制終端,監控主機負責定時讀取感測器終端資料,如果發現異常的話通過網路把訊息推送到自己的IPhone手機上,我也可以通過手機軟體主動連線到監控
基於藍芽介面卡的PC與Android端通訊
Demo 首先,直接給Demo,對於只想使用的朋友,直接下載使用即可。Demo其實也是從網上爬來的,之後做了各種除錯和修改。 原有Demo程式碼下載,可見地址。 修改後Demo效果如下。效果不太清晰,見諒。 (1)PC端 (2)Android端 細節實現 Android端a
桌上型電腦無線網絡卡與藍芽介面卡的安裝
是的,又到了無聊一刻。今天來無聊無聊裝無線網絡卡。打算把這篇寫得圖文並茂。心疼流量的,趕緊繞道。 所有一切的第一,小心別買了筆記本的無線網絡卡。。。別問我為啥知道。 他們一般長這樣: 而桌上型電腦是這樣的: 不過其實是好好看說明哈,什麼都會過時。
交叉編譯並移植opencv3.0.0到arm板
問題 專案需求,交叉編譯opencv,並移植到arm中。 在opencv2.0以上的版本編譯都要藉助於cmake工具生成Makefile 2.0一下版本才是使用configure生成Makefile 請確保宿主機已經安裝cmake和cm
ARM平臺上藍芽協議棧Bluez的移植使用和配置(寫的狠不錯) .
目錄(?)[-] 相關說明 網站資源 工作環境 編譯 核心 Bluez Lib / Utils 藍芽硬體初始化及基礎服務啟動 何謂硬體初始化 硬體初始化步驟
ARM平臺上藍芽協議棧Bluez的移植使用和配置
作者:劉旭暉 Raymond轉載請註明出處 主頁:http://rgbbones.googlepages.com/ Bluez作為當前最成熟的開源藍芽協議棧,在Linux的各大發行版中已
【STM32 Net MF開發板學習-20】藍芽遙控智慧小車(手機模式)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
將lrzsz工具移植到ARM開發板 ---只通過串列埠實現window和ARM板之間檔案互傳
事情背景:由於需要在windows和ARM板之間只通過串列埠傳輸檔案(windows的檔案只通過串列埠傳輸到ARM板上) 這時超級終端SecureCRT+lrzsz工具可以完成這項使命!(其他終端軟體
CC2541板,藍芽4.0BLE協議棧串列埠收發實現
全域性變數任務ID宣告和串列埠回撥函式宣告/********************************************************************* * LOCAL VARIABLES */static uint8 SimpleBLETe
嵌入式linux開發板使用pulseaudio連線藍芽耳機播放音訊檔案
Show this help list-modules List loaded modules list-cards List cards list-sinks List loaded sinks
02-linux-arm板上opencv移植--終極解決方案之buildroot基礎配置(原創)
接前一篇《迅為4412-linux-arm板上opencv移植–終極解決方案(原創)》。 平臺:Exynos4412。 實驗平臺:iTOP-4412-精英版。 編譯平臺:Ubuntu12.04。 編譯器版本:arm-4.4.1,懶人直接用的開發板自帶的。 buildroot版本:直接
01--迅為4412-linux-arm板上opencv移植--終極解決方案(原創)
—本人由於需要做嵌入式圖形處理,需要用到opencv。網上的移植教程倒是很多,但是幾乎沒有可以正常使用的。 作者經過大量嘗試,最後發現,網上的文章,原創作者漏掉了極其非常關鍵的“glibc”庫問題的描述,原創作者的檔案系統可能使用自己的,其它轉載的大部分都沒有完全實現opencv的移植。
QT程式到arm板(s5pv210)的移植之旅
前記: 由於畢設的原因,將來需要移植QT程式到arm板子執行,故有此文。 看部落格尋資料,看到一位作者寫道:知識來源於網際網路,必將回報網際網路。贊。 介於從陌生到熟悉的折騰,故將移植過程記錄,發文,以己省人。 —————
opencv2.4.9移植到arm板上
感謝這個資源共享的世界!美好的世界! 一:環境 ubuntu 14.0.4 交叉編譯器:4.5.1 二:交叉編譯器的安裝(後面有所有的檔案下載地址) 三:依賴庫的安裝:(沒寫解壓的命令) 1): zlib-1.2.7.tar.gz
樹莓派3串列埠(UART)使用問題(板載藍芽和串列埠)!!
根據官方的反饋和回覆,我們瞭解到樹莓派3上使用者目前無法正常是使用GPIO中的UART串列埠(GPIO14&GPIO15),也就是說使用者無論是想用串列埠來除錯樹莓派,還是想用GPIO中的串列埠來連線GPS,藍芽,XBEE等等串列埠外設目前都是有問題的。 原因是樹莓派CPU內部有兩個串列埠,一個
RTL8723藍芽wifi移植8723bu系列
8723buwifi 軟體包下載 http://download.csdn.net/detail/qqchangjianfei/9554279 WIFI: 增加路徑 linux/kernel/kernel-3.4.39/drivers/net/wir
樹莓派3b串列埠(UART)使用問題的解決方法!及關閉板載藍芽方法
原因是樹莓派CPU內部有兩個串列埠,一個是硬體串列埠(官方稱為PL011 UART),一個是迷你串列埠(官方成為mini-uart)。在樹莓派2B/B+這些老版樹莓派上,官方設計時都是將“硬體串列埠”分配給GPIO的UART(GPIO14&GPIO15),因此可以獨立調整串列埠的速率
在Android4.2中實現bluetooth A2dp Sink(二)——移植Android5.0藍芽協議棧
在Android中,藍芽系統的結構如下圖所示: 在這個體系結構中,從下往上依次是模組驅動、藍芽協議棧、Bluetooth.apk、Framework和各種藍芽應用。其中,核心中的驅動是直接和硬體打交道的,一般由模組廠商提供。Android層中,最下面的是處