1. 程式人生 > >移植 usb 藍芽介面卡到 arm 板

移植 usb 藍芽介面卡到 arm 板

操作環境  win7 vmware fedora 10 usb 藍芽介面卡  tq2440  核心 2.6.30    交叉編譯器 4.3.3  配置核心  make menuconfig  [*] Networking support  --->                  <*>   Bluetooth subsystem support  --->    //藍芽子系統必須選擇  <*>   L2CAP protocol suppor       //邏輯鏈路控制和適配協議。  <*>   SCO links support           //藍芽語音和耳機支援  <*>   RFCOMM protocol suppor      //面向流的傳輸協議,支援撥號網路等  [*]   RFCOMM TTY support          //  <*>   BNEP protocol support       //藍芽網路封裝協議,自組網支援  [*]   Multicast filter support    //藍芽多播,支援支援 BNEP  [*]   Protocol filter support //藍芽多播,支援支援支援 BNEP  <*>   HIDP protocol support       //基本支援協議  Bluetooth device drivers  --->  <*> HCI USB driver              //USB 藍芽模組支援  HCI UART driver              //基於串列埠,CF 卡或 PCMCIA 的藍芽  <*> HCI BlueFRITZ! USB driver  <*> HCI VHCI (Virtual HCI device) driver  編譯核心燒入開發板中  啟動,插入藍芽介面卡  usb 1-1.2: new full speed USB device using s3c2410-ohci and address 3  usb 1-1.2: New USB device found, idVendor=0a12, idProduct=0001  usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0  usb 1-1.2: configuration #1 chosen from 1 choice  移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板 移植藍芽協議棧  庫檔案  bluez-libs-3.36.tar.gz  dbus-1.5.12.tar.gz  expat-2.0.1.tar.gz  glib-2.26.1.tar.gz  bluez-utils-3.36.tar.gz  libusb-0.1.12.tar.gz  編譯安裝  bluez-libs-3.36.tar.gz  沒有什麼依賴,直接解壓,配置,編譯安裝  #tar -zxvf /mnt/hgfs/Linux/bluez/bluez-lib-3.36.tar.gz –C ./  #./configure --prefix=/opt/EmbedSky/bluez/libs --host=arm-linux --target=arm-linux CC=arm-linux-gcc  在/opt/EmbedSky/bluez/目錄下新建一個 libs 用來儲存藍芽的庫檔案、標頭檔案和其他檔案。  #make  #make install 
移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板

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 移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板

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
移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板


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. 
移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板


解決方法:  # 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.  移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板

解決方法:  # echo ac_cv_func_posix_ getgrgid_r _r=yes>> arm-linux.cache  configure: error: Could not find a glib-compile-schemas in your PATH  移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板
這個問題確實要把我搞吐血了,我差不多找用遍百度、谷歌、搜狗和 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  移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板

這個問題的解決也是有點靈感來的。  解 決 方 法 : 前 面 說 到 在 /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  移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板
這個問題也搞了我好長時間,同樣在網上幾乎找不到可行的答案。網上有說解決方法為 sudo apt-get install  libbluetooth-dev。但是在 fedora 上輸入 yum install libbluetooth-dev,你會發現根本找不到這樣的安裝包的。 甚至你輸入 yum install libbluetooth*都沒有安裝包。網上也有說是輸入 yum install pkg-config,但是根據提示,這裡已經說是 yes 了: 移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板
所以應該也不是這個原因。另外還有說路徑不對的,但我這裡我已經很明確指定了路徑了,所以也應該不是這個原因。根據英文意思,是少了依賴的庫,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 目錄下的,這是因為裡 面指定了安裝目錄 移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板
這樣再次配置的時候就不會出現上面的錯誤了。  通過上面的操作,庫檔案和藍芽工具都已經安裝好了(安裝在/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  移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板 [[email protected] /]# hciconfig hci0 up    啟用藍芽裝置  [[email protected] /]# hciconfig hci0 iscan    設定開發板的藍芽屬性為可查詢  [[email protected] /]# hcitool scan    掃描藍芽裝置  Scanning ...                  7B:29:A1:9F:66:01  我手機的藍芽裝置地址            uff    藍芽裝置名  移植 <wbr>usb <wbr>藍芽介面卡到 <wbr>arm <wbr>板

總結:  移植藍芽的庫確實比較無聊,依賴的庫特別多。整個過程遇到不少問題,當我們遇到問題的時候,除了通過網際網路找資料外,我們也要自己多動腦去分析一下。出路總是有的!另外,我們也學會是看一些英文資料,因為英文資料很多都比較簡潔直接,而不像中文資料那樣你抄我我抄你的!!

相關推薦

移植 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工具可以完成這項使命!(其他終端軟體

CC25414.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內部有兩個串列埠,一個

RTL8723wifi移植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層中,最下面的是處