分享

Linux Bluetooth 檔案傳輸...

 农夫子oice 2007-04-28

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 devhciconfig -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

Comments

對不起 想請問你
哪裡有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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多