Linux 指南/Linux 和藍牙
以下只是在 Linux 環境中連線藍牙裝置(在本例中為諾基亞手機)的簡單示例。
出於本文的目的,我們假設在計算機上安裝了 Linux Mandrake 10.0(核心 2.6.13,X86)。
首先,我們需要 Bluez 協議,通常在您的發行版中以 RPM 包的形式提供,然後我們需要啟動藍牙服務。
[user@domain.org user]# service bluetooth start
現在需要設定 PIN 碼(如果您需要)以及本地裝置名稱連結,為此,我們編輯(例如,使用 JOE)檔案/etc/bluetooth/hcid.conf:
[user@domain.org user]# joe /etc/bluetooth/hcid.conf
修改以下摘錄
PIN 摘錄
# PIN helper pin_helper /etc/bluetooth/mypin.sh;
其中 mypin.sh 是一個臨時建立的檔案。
名稱摘錄
# Local device name # %d - device id # %h - host name name "userdomain (%d)";
注意:檔案mypin.sh包含
#!/bin/bash echo "PIN:XXX"
其中 XXXX 代表您的 PIN 碼。
現在是時候搜尋裝置了
[user@domain.org user]# hcitool scan
這應該返回類似於
12:34:56:78:90:12 user1
換句話說,bdaddr(BT 地址)和裝置名稱,請記下 bdaddr,現在是時候發現遠端裝置上的可用服務以及它們所在的通道了
[utente@dominio.org utente]# sdptool records 12:34:56:78:90:12
根據我們分析的裝置型別,請求會返回一個很長的配置檔案列表,在本例中,我們對撥號配置檔案感興趣,所以讓我們看看它是否在通道 1 上可用
Service Name: Dial-Up Networking
Service RecHandle: 0x10007
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
然後
[user@domain.org user]# rfcomm bind 0 12:34:56:78:90:12 1
換句話說,我繫結了一個虛擬序列埠,rfcomm0 (/dev/bluetooth/rfcomm/0),透過 rfcomm 工具與遠端裝置調變解調器連線,尚未連線,但已準備好進行軟體請求,讓我們看看
[user@domain.org user]# rfcomm show 0
這將導致
rfcomm0: 12:34:56:78:90:12 channel 1 clean
BT 調變解調器已準備好在/dev/bluetooth/rfcomm/0
無需提及,在此期間,您已在遠端裝置上接受了連線。
或者,從 Linux 端連線,準備一個代理以正確響應 PIN 請求,然後連線
[user@domain.org user]# bluetooth-agent 1234 12:34:56:78:90:12 [user@domain.org user]# rfcomm connect 0 12:34:56:78:90:12
然後,在另一個終端中,您可以例如在 /dev/rfcomm0 上開啟一個終端
[user@domain.org user]# minicom /dev/rfcomm0
要將此即用型裝置用作調變解調器,我建議使用 wvdial 程式作為撥號程式,為此,我們需要編輯其配置檔案/etc/wvdial.conf,像這樣
[Dialer Defaults] Modem = /dev/bluetooth/rfcomm/0 Baud = 460800 Dial Attempts = 1 Init1 = ATZ Init3 = AT+CGDCONT=1,"IP","web.omnitel.it" Phone = *99# Carrier Check = no Stupid Mode = yes Username = "" Password = ""
注意:此示例來自諾基亞手機上 Vodafone 義大利的正常配置,對於不同的國家/運營商/品牌配置,請使用關鍵字 +CGDCONT 和運營商名稱在 Google 上搜索,大多數情況下您只需要修改字串
Init3 = AT+CGDCONT=1,"IP","web.omnitel.it"
根據您的運營商規格,以及
Phone = *99#
根據您手機的品牌。
撥號並連線...
[user@domain.org utente]# wvdial
祝您好運!!!
- hciconfig
- hcitool scan
- hcitool info BT_ADDRESS
BT_ADDRESS 可能類似於 00:89:34:62:67:52
- l2ping BT_ADDRESS
- sdptool browse BT_ADDRESS
- sdptool search DUN
- hciattach -l