Linux Bluetooth 檔案傳輸
這個 USB 藍芽裝置是在資訊展會場買 Epson RX630 送的, 可惜手邊的電腦都沒藍芽介面, 所以就算插在 RX630 上也沒啥作用, 乾脆拿到 Liunx 玩玩看 :)
藍芽技術在電腦上最基本、最實用的, 就是檔案傳輸的功能. 以下是在 FC3 使用 GNOME Bluetooth Subsystem 與藍芽手機、藍芽 PDA 進行檔案傳輸的操作備忘.
範例環境:
- Fedora Core 3 with GNOME Desktop Environment
- Bluetooth USB Adapter
- Nokia 6230、Asus MyPAL A620BT (MS Pocket PC 2003)
套件需求:
- BlueZ - Linux Bluetooth protocol stack: bluez
- OpenOBEX - Free open source implementation of Object Exchange (OBEX) protocol: openobex
- GNOME Bluetooth Subsystem: gnome-bluetooth
安裝套件, 以 YUM 安裝為例:
yum -y bluez* yum -y gnome-bluetooth
ps. 若要手動安裝, 請參考上述: “套件需求” 裡的超連結
啟動 bluetooth 服務:
service bluetooth start (常駐 hcid、sdpd 這兩個 daemon)
安裝 Bluetooth USB Adapter 於 Linux PC:
直接將 Bluetooth USB Adapter 插入 USB 插槽即可 執行 hcitool dev 或 hciconfig -a 若出現裝置資訊, 表示系統已抓到 USB 藍芽裝置 系統抓到的第一個藍芽裝置名稱為: hci0
檔案傳輸: Linux PC → 藍芽手機、PDA:
Linux PC: gnome-obex-send <filename> Linux PC: Choose Bluetooth device (點選「重新整理」可重新搜尋周邊裝置) 行動裝置: 儲存收到的檔案
ps. 若裝有 openobex 的 obexftp 可用 obexftp -b <bd addr> -p <filename> 傳送檔案
系統畫面: Choose Bluetooth device

檔案傳輸: 手機 → Linux PC:
Linux PC: gnome-obex-server 行動裝置: 經藍芽發送檔案 Linux PC: Accept a file from ‘Nokia 6230‘? → Yes Linux PC: File received from ‘Nokia 6230‘. What would you like to do? → Save
ps. 執行 sdptool add FTRN 啟用 OBEX File Transfer service, Pocket PC 還是無法瀏覽 Linux 目錄, 也無法選擇以藍芽傳送檔案至其他藍芽裝置... 改天再努力試試看... :P
系統畫面: Incoming Bluetooth Transfer

系統畫面: Bluetooth Transfer Received (會顯示圖檔縮圖喔 :)

相關指令備忘:
指令 |
說明 |
hcitool dev |
顯示本機藍芽裝置 BD Address |
hcitool scan |
搜尋週邊藍芽裝置 |
hciconfig -a |
顯示本機藍芽裝置詳細資訊 |
hciconfig hci0 up / down |
啟用 / 關閉第一個藍芽裝置 ( hci0 ) |
sdptool browse <bd addr> |
查詢指定藍芽裝置可使用的服務 |
sdptool add <service> |
啟動 SDP servers
- SP = Serial Port service
- DUN = Dial-Up Networking service
- LAN = LAN Access service
- FAX = Fax service
- OPUSH = OBEX Object Push service
- FTRN = OBEX File Transfer service
- HS = Headset service
- HF = Handsfree service
- NAP = NAP service
- GN = GN service
- HID = HID service
- CIP = CIP service
- CTP = CTP service
- A2SRC = Audio source service
- A2SNK = Audio sink service
|
rfcomm connect <bd addr> |
以 RFCOMM 通訊協定連結至指定藍芽裝置 |
l2ping <bd addr> |
ping 藍芽裝置 |
ps. BD = Bluetooth Device
相關 daemon:
Daemon |
Info |
Description |
bluetooth |
Bluetooth daemon |
hcid - Bluetooth Host Controller Interface Daemon sdpd - allows Bluetooth devices connected to the host to advertise via SDP Bluetooth services available. |
dund |
BlueZ Bluetooth dial-up networking daemon |
|
hidd |
Bluetooth HID daemon |
|
pand |
BlueZ Bluetooth PAN daemon |
The pand PAN daemon allows your computer to connect to ethernet networks using Bluetooth. |
相關設定檔:
檔案 |
說明 |
/etc/bluetooth/hcid.conf |
本機設定檔 (HCI daemon configuration file) |
/etc/bluetooth/pin |
本機 PIN 碼 |
/etc/bluetooth/rfcomm.conf |
遠端裝置設定檔 |
/etc/sysconfig/bluetooth |
(未研究) |
/etc/sysconfig/dund |
(未研究) |
/etc/sysconfig/hidd |
(未研究) |
/etc/sysconfig/pand |
(未研究) |
相關網頁:
Posted by Jamyy at 2005年08月10日 17:08
Trackback Pings
TrackBack URL for this entry: http://cha./cgi-bin/mt/mt-tb.cgi/113
對不起 想請問你 哪裡有BULEZ的KERNEL 我找不到 還有kernel是直接燒進去嗎 然後再執行你上面所寫的程序嗎
對不起 我對linux很不熟
Posted by: camel at 2006年11月30日 18:33
BlueZ 所需的 kernel 模組都已經包含在 Linux kernel v2.4 和 v2.6 裡面了
Linux kernel source 可以到 http://www./ 下載
要在 Linux 使用 Bluetooth, 除了 kernel 裡的藍牙模組, 還需要安裝相關的函數庫 (libs) 和工具程式 (utils), 而 BlueZ 官方網站 (http://www./) 就能下載到這些套件
如果您想了解 Linux 作業系統, 可以到鳥哥的網站逛逛 (http://linux./)
Posted by: Jamyy at 2006年11月30日 20:59
謝謝你的回答 對於YUM這部分我還是不太懂 YUM算是一個更新套件? 我對那邊的操作還是不甚了解
再次打擾了 >"<
Posted by: camel at 2006年12月01日 08:29
u‘r welcome :)
YUM 簡單來說, 就是 RPM 套件的管理程式 透過 yum 指令, 就能在 Linux 系統中新增、更新、移除 RPM 套件 更重要的是, 它能解決 RPM 套件的 "相依性" 問題 舉例來說, 假設 a 套件安裝時, 需要先安裝 b, c, d 套件 若使用 rpm 指令手動安裝這些套件, 就需要一個一個手動下載, 然後再逐一安裝 而當我們以 yum 安裝 a 套件時, 它能順便將 a 套件需要的 b, c, d 套件一起自動下載、安裝起來
如果你想更了解 YUM, 可參考它的官方網站: http://linux./projects/yum/index.ptml
鳥哥的網站也有相關說明: http://linux./linux_server/0450apt.php (參考 "甚麼是 APT/YUM 呢?他們如何運作?" 即可)
Posted by: Jamyy at 2006年12月01日 10:19
OpenOBEX and GNOME 對於這邊 我不懂它們主要是可以幹麻 可以解釋一下嗎? 謝謝
還有就是你的流程都很簡略 常常看到一個地方就會卡住(資質不好 對不起) 所以我都會一直問你 實在是非常的對不起
Posted by: camel at 2006年12月04日 17:06
對不起 想問你有沒有更詳細的流程 我對LINUX系統真的不是非常的了解
Posted by: camel at 2006年12月04日 17:30
gnome 簡而言之, 是 linux 作業系統的一種桌面環境 (Ref: http://zh./wiki/GNOME)
openobex 這我就不太熟了. 從 "Object Exchange protocol" 的字面意義來看, 是物件交換的一種通訊協定 (如: 檔案傳輸)
其實只要使用 yum 安裝必要的套件:
yum -y bluez* gnome-bluetooth openobex
就能操作本篇所提的各項藍牙指令 (指令皆以亮藍色表示)
不好意思, 基本上在下的 blog 大多是自己的備忘筆記, 所以並不像教學文章或入門文章一樣寫得那麼詳細.
如果您有任何問題, 亦歡迎來信討論. 我的 e-mail 是:
jamyychang 小老鼠 gmail 點 com
(為避免遭垃圾信搔擾, 以上 e-mail address 請自行翻譯、組合 :)
Posted by: Jamyy at 2006年12月05日 17:31
您好,想請教Linux和藍芽的問題,我用兩台NB, 一台是Linux+ASUS USB藍芽, 另一台是ASUS M9V+WinXP SP2+內建藍芽。 我在Linux裡用hcitool scan可以偵測到WinXP的藍芽, 使用gnome-obex-send指令也可以將檔案傳送到WinXP。 但是如果從WinXP偵測Linux的藍芽卻偵測不到, WinXP也沒指令可以傳送檔案,請問我Linux要怎樣設定藍芽, 才能讓WinXP偵測到? 先謝謝您撥空回答,感謝您。
Posted by: Dennis at 2007年02月09日 14:22
|