在新安裝的 Fedora 24 系統,使用隨著「MATE 桌面環境」安裝的 Bluetooth 管理程式,在傳輸聲音時並沒有什麼問題。不過,當想傳輸檔案時,卻不能做。雖然可以用 USB 傳輸檔案,速度也比較快。但若不是資料量大時,用藍牙傳輸小檔案,少了一些插、拔的動作。
之前的版本是可以經由藍牙傳輸檔案,最近的更新卻不行傳輸。根據經驗,一定是某些套件未安裝,或是某些設定未啟用。
1. 查詢藍牙模組的功能
首先查詢 PC 端的藍牙控制器功能,在終端機開啟『bluetoothctl』藍牙管理程式。再下『show』命令,會列出目前所能提供的功能
[bluetooth]# show |
Controller 00:A0:96:1D:48:78 |
| Name: Celeron-D |
| Alias: Celeron-D |
| Class: 0x0c0104 |
| Powered: yes |
| Discoverable: no |
| Pairable: yes |
| UUID: Headset AG | (00001112-0000-1000-8000-00805f9b34fb) |
| UUID: Generic Attribute Profile | (00001801-0000-1000-8000-00805f9b34fb) |
| UUID: A/V Remote Control | (0000110e-0000-1000-8000-00805f9b34fb) |
| UUID: Generic Access Profile | (00001800-0000-1000-8000-00805f9b34fb) |
| UUID: PnP Information | (00001200-0000-1000-8000-00805f9b34fb) |
| UUID: A/V Remote Control Target | (0000110c-0000-1000-8000-00805f9b34fb) |
| UUID: Audio Sink | (0000110b-0000-1000-8000-00805f9b34fb) |
| UUID: Audio Source | (0000110a-0000-1000-8000-00805f9b34fb) |
| Modalias: usb:v1D6Bp0246d0529 |
| Discovering: no |
接著,再用『info xx:xx:xx:xx:xx:xx』查詢藍牙裝置的功能;命令後的 16 進位數字,就是藍牙裝置的 MAC 位址 (MAC Address) (
註:或稱為『識別碼』),可以用『devices』或『paired-devices』查詢得知。
[bluetooth]# info B8:D9:CC:7F:3A:A3 |
Device B8:D9:CC:7F:3A:A3 |
| Name: GT-I9100 |
| Alias: GT-I9100 |
| Class: 0x5a020c |
| Icon: phone |
| Paired: yes |
| Trusted: yes |
| Blocked: no |
| Connected: no |
| LegacyPairing: no |
| UUID: OBEX Object Push | (00001105-0000-1000-8000-00805f9b34fb) |
| UUID: Audio Source | (0000110a-0000-1000-8000-00805f9b34fb) |
| UUID: A/V Remote Control Target | (0000110c-0000-1000-8000-00805f9b34fb) |
| UUID: Advanced Audio Distribu.. | (0000110d-0000-1000-8000-00805f9b34fb) |
| UUID: Headset AG | (00001112-0000-1000-8000-00805f9b34fb) |
| UUID: NAP | (00001116-0000-1000-8000-00805f9b34fb) |
| UUID: Handsfree Audio Gateway | (0000111f-0000-1000-8000-00805f9b34fb) |
| UUID: SIM Access | (0000112d-0000-1000-8000-00805f9b34fb) |
| UUID: Phonebook Access Server | (0000112f-0000-1000-8000-00805f9b34fb) |
| UUID: Message Access Server | (00001132-0000-1000-8000-00805f9b34fb) |
| UUID: PnP Information | (00001200-0000-1000-8000-00805f9b34fb) |
| Modalias: bluetooth:v0075p0100d0100 |
若兩個藍牙裝置有互相對應的功能,才可以建立互通的通道。上例中,『OBEX Object Push』這個功能只有手機端有,而 PC 端並沒有對應的功能。查詢這個套件的作用為何,
[root@Celeron-D ~]# dnf info bluez-obexd |
上次中介資料過期檢查:3:06:22 以前,時間點為 Sun Sep 4 16:26:50 2016。 |
可用的軟體包 |
名稱 | : bluez-obexd |
架構 | : x86_64 |
Epoch | : 0 |
版本 | : 5.41 |
發行版 | : 1.fc24 |
大小 | : 192 k |
軟體庫 | : updates |
摘要 | : Object Exchange daemon for sharing content |
URL | : http://www.bluez.org/ |
授權 | : GPLv2+ |
描述 | : Object Exchange daemon for sharing files, contacts etc over bluetooth |
由描述可以看出:造成不能傳輸檔案的原因,應該就是這個模組未安裝所致。
2. 安裝 OBEX 套件
用 DNF 就可以補安裝這個套件,命令如下:
[root@Celeron-D ~]# dnf install bluez-obexd
同時也會安裝另一個套件 libical。
接下來可以測試,會發現 PC 端仍然看不『OBEX』相關功能,重新開啟藍牙服務 (
註:systemctl restart bluetooth.service)、重開機也沒用。這個因為新安裝的 bluez-obexd 套件,所提供的 OBEX 功能未啟動,啟動的命令有兩組,一組在使用者端,
[SiB@Celeron-D ~]$ systemctl --user status obex
[SiB@Celeron-D ~]$ systemctl --user enable obex
一組在 root 管理者
[root@Celeron-D ~]# systemctl --global enable obex
註:網路資料也有稱只要 root 管理者下命令即可,筆者沒有去測試,確保可以用比較重要。
3. 確認 OBEX 功能
再查詢 PC 端的藍牙功能,確認是否有 OBEX 相關功能。
[bluetooth]# show |
Controller 00:A0:96:1D:48:78 |
| Name: Celeron-D |
| Alias: Celeron-D |
| Class: 0x0c0104 |
| Powered: yes |
| Discoverable: no |
| Pairable: yes |
| UUID: Headset AG | (00001112-0000-1000-8000-00805f9b34fb) |
| UUID: Generic Attribute Profile | (00001801-0000-1000-8000-00805f9b34fb) |
| UUID: A/V Remote Control | (00001106-0000-1000-8000-00805f9b34fb) |
| UUID: OBEX File Transfer | (0000110e-0000-1000-8000-00805f9b34fb) |
| UUID: Generic Access Profile | (00001800-0000-1000-8000-00805f9b34fb) |
| UUID: OBEX Object Push | (00001105-0000-1000-8000-00805f9b34fb) |
| UUID: PnP Information | (00001200-0000-1000-8000-00805f9b34fb) |
| UUID: A/V Remote Control Target | (0000110c-0000-1000-8000-00805f9b34fb) |
| UUID: Audio Sink | (0000110b-0000-1000-8000-00805f9b34fb) |
| UUID: Audio Source | (0000110a-0000-1000-8000-00805f9b34fb) |
| UUID: Message Notification Se.. | (00001133-0000-1000-8000-00805f9b34fb) |
| UUID: Phonebook Access Server | (0000112f-0000-1000-8000-00805f9b34fb) |
| UUID: Message Access Server | (00001132-0000-1000-8000-00805f9b34fb) |
| Modalias: usb:v1D6Bp0246d0529 |
| Discovering: no |
由結果可以看出有提供兩個
OBEX 相關功能,也有兩個與
訊息 (Message) 交換有關功能,還有一個
電話簿存取 (Phonebook Access) 功能。經實測,已經可以透過藍牙傳輸檔案了。
已測試版本:
- Fedora 24 + MATE 桌面 1.14.1 + BlueZ 5.41
參考資料:
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)