![如何通过蓝牙和互联网访问将基于 Android 的手机连接到 Linux?](https://linux22.com/image/167827/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E8%93%9D%E7%89%99%E5%92%8C%E4%BA%92%E8%81%94%E7%BD%91%E8%AE%BF%E9%97%AE%E5%B0%86%E5%9F%BA%E4%BA%8E%20Android%20%E7%9A%84%E6%89%8B%E6%9C%BA%E8%BF%9E%E6%8E%A5%E5%88%B0%20Linux%EF%BC%9F.png)
网络上充斥着关于如何连接某设备(包括基于 Linux 的设备)的解释到提供互联网上行链路的 Android 手机。
我想做另一种方式。我希望能够使用带有蓝牙适配器的小型基于 Linux 的路由器作为我的 Android 手机的上行链路,通过蓝牙 PAN 绑定我的 Android 手机。
我可以设置Android端。如何设置 GNU/Linux 端?
- 目前这可能吗?
- 我该怎么做?
我正在运行 Android 10(连接设备),并且我可以灵活地使用 Linux 端(目前是 Debian 或 OpenWRT,具体取决于我尝试的设备),通过蓝牙和上行链路以及路由提供系绳。
注意:我想强调的是,我是不是对基于 WiFi 的解决方案感兴趣。我需要通过蓝牙,即 PAN。
答案1
看起来你需要类似的东西这(让我在这里复制相关部分,以防万一):
首先,您需要在 OPENWRT 固件中启用 BT PAN 支持:
$ git clone https://git.openwrt.org/openwrt/openwrt.git/
$ cd openwrt
$ ./scripts/feeds update -a
$ ./scripts/feeds install -a
$ cp enable_btpan_usbrndis_for_wzr-hz-g300nh.seed .config
$ make defconfig
$ make
将映像刷新到路由器后,使用 bluetoothctl 打开适配器
bluetoothctl power on
ssh 登录 OpenWrt 并将 NAP UUID 设置为 bluetoothd:
dbus-send --system
--dest=org.bluez /org/bluez/hci0
--type=method_call
org.bluez.NetworkServer1.Register
string:“00001116-0000-1000-8000-00805f9b34fb”
string:"br-lan"
通过运行检查 bluetoothd 是否支持 NAP 角色bluetoothd show
。它应该显示如下内容:
Controller 00:1B:DC:06:61:D4 (public)
Name: BlueZ 5.49
Alias: BlueZ 5.49
Class: 0x00020000
Powered: yes
Discoverable: no
Pairable: yes
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: NAP (00001116-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6
提前将您的设备(手机)设置为受信任(显然,将 MAC 替换为您自己的设备):
root@OpenWrt:~# bluetoothctl
[bluetooth]# trust 00:02:5B:00:A5:A5
[CHG] Device 00:02:5B:00:A5:A5 Trusted: yes
Changing 00:02:5B:00:A5:A5 trust succeeded
[bluetooth]#
使 BT 在 OpenWrt 路由器上可发现,并从 Android 设备与其配对。然后在设备属性中勾选“用于 Internet 访问”复选框。
bnep0
br-lan
现阶段OpenWRT中应该会出现属于bridge的接口。