ubuntu下手机连接到蓝牙局域网pan/pand
这篇文章是专门面向懂得玩ubuntu linux和手机的技术人士
索爱在K550以后的主流手机和M608/W958后的智能手机都支持利用蓝牙局域网技术PAN通过蓝牙连接到电脑,通过电脑的网络上互联网,从而享受到了手机免费玩互联网的乐趣,比如PlayNow,可以随便和快速地试听歌曲而不用花费用(仅限试听),或从mp3百度下载mp3,或收取blog在手机查看。速度比gprs/edge快上几十倍(如果是蓝牙2.0,速度只受你的ADSL和手机处理器限制),而又没什么什么包月500元封顶这样的费用。PlayNow会给你轻松的感受,程序员的你可以想象出建立一个手机上的P2P音乐网络。
PAN在windows下配置很容易,要靠安装蓝牙软件和点鼠标,但出了问题就无法查找,难解决。在ubuntu下掌握了工作原理后就很容易了,配置好后,就非常透明和自动了,手机在每次想开始使用时可以随时连接网络,而不用点任何鼠标开任何软件,是一个free的世界,在windows下则要忍受蹩脚的蓝牙软件,如果你是程序员,甚至感觉到蓝牙软件搞乱了你的系统。
我尝试配置了一天下午,搞通了这个,就很畅快了。给我指引和启示主要是如下两篇网上文章,A篇给了一个配置的整体结构,B篇避免了前篇的缺点和复杂,要结合两篇配置的优点才做到一个更好的配置:
A篇: http://www.howtoforge.com/bluetooth_pand_debian_etch
B篇: http://linux.chinaunix.net/bbs/viewthread.php?tid=884562
C篇: 从这篇了解蓝牙PAN NAP网络模式是怎样的, 但其它内容都算复杂,不需深究: http://bluez.sourceforge.net/contrib/HOWTO-PAN
同时,按A篇的说明,配置时和试验单个部分时经常查看 tail -n 100 /var/log/messages 会对Troubleshooting和了解原理非常有好处。
有一个比较重要的原理是: 蓝牙网络连接bnep0,只有手机连接上来时,才会生效/可见,手机断开时,bnep0就会消失,这和有线eth0或wifi是不同的。
(1)前提准备:首先将你的手机和ubuntu配置起来支持基本的蓝牙连接,即是能搜索到,能输入匹配密码,如果已经能互传文件就是更好了。
(2)桌面电脑需要的额外软件: 先按A篇,安装好dhcp3-server:
install apt-get install dhcp3-server
(3)按A篇在/etc/dhcp3/dhcpd.conf配置好,让手机自动获取ip地址:
option domain-name "example.org";(这个无所谓)
option domain-name-servers 202.96.128.166, 202.96.134.133;(这个为你的dns server ip)
subnet 10.0.254.0 netmask 255.255.255.0 {
authoritative; (这个是A篇的设置没提示的,但手机能连上来,并发出dhcp包后,dhcp server的/var/log/message会提示)
range 10.0.254.1 10.0.254.10;
option domain-name-servers 202.96.128.166;
option domain-name "cache-b.guangzhou.gd.cn";
option routers 10.0.254.1;
option broadcast-address 10.0.254.255;
default-lease-time 600;
max-lease-time 7200;
}
此时手机没连接上来,没配置好蓝牙网络连接bnep0 ip为10.0.254.1,/etc/init.d/dhcp3-server restart是fail的,因为根本还没这个10.0.254.1这个ip和subnet 10.0.254.0
(4)按A篇在/etc/bluetooth/hcid.conf设置: lm accept, master;
(5)按A篇在/etc/default/bluetooth设置:
PAND_ENABLED=1
PAND_OPTIONS="--listen --role=NAP --devup /etc/bluetooth/pan/dev-up" (手机蓝牙pan连接上来时bnep0就会生效,并会自动启动dev-up执行)
配置好后,记得:
/etc/init.d/bluetooth restart
(6)不按A篇在/etc/network/interfaces作任何配置,由B篇的启示,直接在/etc/bluetooth/pan/dev-up设置bnep0的ip地址和nat路由:
mkdir /etc/bluetooth/pan
vi /etc/bluetooth/pan/dev-up
chmod +x /etc/bluetooth/pan/dev-up
dev-up内容:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
ifconfig $1 10.0.254.1 netmask 255.255.255.240 mtu 900
iptables -t nat -A POSTROUTING -s 10.0.254.0/24 -j MASQUERADE
iptables -A FORWARD -i bnep0 -o eth0 -j ACCEPT
iptables -A FORWARD -o bnep0 -i eth0 -j ACCEPT
sleep 2
/etc/init.d/dhcp3-server restart
(7)此时就可以按网上其它文章在手机上建立蓝牙PAN连接上来就可以了就算配置结束和成功了,手机tcp/ip/dns都用默认的自动配置。
可以通过tail -n 100 /var/log/messages看到dhcp分配给手机的IP地址,并能ping得通。
手机有了IP地址并能以TCP/IP网络的方式运行,会给做软件的你很多想象,你能以你熟悉的socket编程方式开发你的手机应用程序了。
分享到:
相关推荐
day08字符串概述和特点视频的笔记.PanD
1.扭转变形笔记.PanD.pand
通过对这一项目的研究,我们可以了解到C51编程、ADC工作原理以及LCD显示技术在实际应用中的细节。 C51是Atmel公司推出的一种8位微控制器,广泛应用于嵌入式系统设计。它的优点在于指令集与Intel 8051兼容,同时提供...
手机:单人游戏,虚拟操纵杆和按钮 Windows:单人或双人播放器 Player1动作:A / D Player1射击:空间 Player2移动:向左箭头/向右箭头Player2射击:Ctrl 分配: 首先也是最重要的-我从小就玩Pang,所以我很高兴...
国际培养讲座说明(1).PanD
潘德Linux 可能是开发Android APP 的最佳平台,因为它兼容大多数Android 手机,调试时无需为驱动程序而斗争。 我自己是 VIM 的重度用户,我觉得 Eclipse ADT 和 Android Studio 做了很多正确的事情,但也让我在很多...
利用搜狗输入法的快捷键(ctrl+,),实现右shift恒中文输入,左shifit恒英文输入.PanD
10. `visualization_input.py`:可能涉及到输入数据的可视化,比如显示原始图像和预处理后的图像,帮助理解数据预处理的重要性。 通过这些文件,我们可以深入学习以下知识点: 1. **LeNet-5架构**:理解LeNet-5的...
小白,wed初学者
Chat with your data (SQL, CSV, pandas, polars, noSQL, etc). PandasAI makes data analysis conversational using LLMs (GPT 3.5 / 4, Anthropic, VertexAI) and RAG
使用`left_index=True`和`right_index=True`,可以基于数据集的索引进行连接,这在某些场景下非常有用。 5. **重复列名处理** 当合并的两个数据集有相同列名时,`merge`会自动在列名后加上`_x`和`_y`作为后缀,...
本实验选自华为集成学习实验——房价预测,本实验在原由实验的基础上,修复了原实验代码,解决了_pand_MachineLearning_HousesPrice
编程和脚本问题集解决方案2021 作业摘要 该存储库包含我2021年的编程和脚本编写问题单。在这八周中,github,Matplolib,Seaborn,NumPy和Pandas的技能得到了发展。 1-BMI.py第02周 1-编写一个程序来计算某人的身体...
当系统检测到可用的网络连接时,NetworkManager 会自动选择最佳连接选项。 - **使用建议**:对于需要频繁切换网络连接类型的用户(例如便携式电脑用户),建议启用该服务。对于固定连接类型的系统(如服务器),可...
Ghostscript windows官网安装包
在数据分析过程中,有时我们需要将处理后的中间或最终结果存储到数据库中,以便后续查询和分析。Pandas 提供了一个方便的 `to_sql` 函数,能够将 DataFrame 对象轻松地导出到各种类型的数据库中。这里我们将深入探讨...
模板库评审委员会评审委员会必读README.md资料库中的信息,请访问gesamten社区和Sie der derte的个人资料。 Wenn ihr noch nicht mit Markdown gearbeitet habt hilft euch dyer :bookmark_tabs: 和 阅读全文6 ...
Red Panda Dev-C++(Red Panda Dev-CPP,旧名 Dev-C++ 2020)是已停产的 ... * 在运行或调试时将 STDIN 重定向到数据文件(以方便调试/需要修补 gdb) * graphics.h (EGE) 和项目模板包括在内。还有更多,请参阅 News.t
4. **数据合并与连接**:Pandas通过concat、merge、join等方法轻松处理数据的合并和连接,支持不同方式的连接条件。 5. **时间序列分析**:Pandas内置了对日期和时间的支持,可以方便地进行日期操作和时间序列分析...