LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3023|回复: 10

[==LFS精华系列==]linux下用兰牙建立无线网路。( PAN 个人局域网的配置)

[复制链接]
发表于 2003-7-24 14:16:02 | 显示全部楼层 |阅读模式
很久没有给linuxsir贡献啥技术文章,今天在msn上看到北男大哥很是不好意思。不写一个实在对不住版主的名号了。既然要贡献文章就要写国内没有的,
1.用中文google搜了一下, “linux pan” 好象没找到相关的技术文章,也许我没多翻吧。
2.所以决定原创一下,呵呵,原创哦。
3. 置办设备,买了一个ipaq2210(有内置兰牙,没有wifi),一个usb dongle就是usb兰牙卡。
4. 准备开始写了哦。
(以上几件事情真实顺序可能有异)

既然是原创就先写上大名:doooom@linuxsir

兰牙下面的ip无线网路叫pan,兰牙设备突出个人进距离电子设备的链接,用personal也不错。和我们适用的一般的网路一样,pan上面也有客户机,router,hub。不过这些角色都是又兰牙设备扮演的,而通过适当的设置一个带有兰牙adapter的linux box 三个都可以作。

在说这个无线网路之前,先说说怎么让linux支持兰牙。
首先我们找到兰牙linux的官方网站bluez。sourceforge。net
然后在这个页面
http://bluez.sourceforge.net/download/download.html
下载
bluez-libs bluez-utils bluez-sdp bluez-pan
这几个包。省下的几个倒数2,3我们用不到,最后一个如果你有XXX硬件的话考虑一下(自己去bluez查查)

然后在http://www.holtmann.org/linux/kernel/
这个地方下载相应内核的补丁,我的是2.4.20的。

然后把你的内核打补丁,编译,把兰牙部分多出来的几个模块都选上反正是M,不占地方,如果你不确定具体哪个有用哪个没用的话。

搞好内核之后逐一安装上面下载的就个包,按照我list的顺序哦。简单的
。/configure && make && make install 就可以了。

now we can R&R

首先加载内核模块:
modprobe bluez  (兰牙支持)
modprobe hci_usb (usb兰牙设备用的到。)

具体要加什么模块可以看看 http://www.holtmann.org/linux/bluetooth/devices.html
找到你的设备需要什么模块的支持。

modprobe l2cap
modprobe bnep (pan网路设备)

接着调用两个守护进程。
hcid
sdpd

这个时候你可以用bluez-util自带的工具看看你的设备
hciconfig
如果你的兰牙装上了并且被识别,会看到hci0这样一个设备,如果你看到了花花绿绿的mac地址就是说明这个设备已经启动了,如果是00:00:00:00:。。。。
hciconfig hci0 up
启动它,和ifconfig很象吧。呵呵

现在我们可以启动PAN守护进程了,在开始之前先说说几个名词。
1. PANU ( pan里面的客户机,就是PAN user了。呵呵)
2. GN 照我的理解就是pan里面的hub
具体看这个图:

  1.              +------+     +------+     +------+
  2.              | PANU |     | PANU |     | PANU |
  3.              +------+     +------+     +------+
  4.                  \           |           /
  5.                   \          |          /
  6.                    \         |         /
  7.                     \        |        /
  8.                      \       |       /
  9.                       \      |      /
  10.                        \     |     /
  11.                         +---------+
  12.                         |   GN    |
  13.                         +---------+
  14.                        /     |     \
  15.                       /      |      \
  16.                      /       |       \
  17.                     /        |        \
  18.                    /         |         \
  19.                   /          |          \
  20.               +------+    +------+    +------+
  21.               | PANU |    | PANU |    | PANU |
  22.               +------+    +------+    +------+
复制代码


3. NAP,network access point,照我的理解就是可以作pan通向其他网路的router的东西。
这个东西我们会比较需要,结构入图:

  1.                    +====================+
  2.                    | LAN Infrastructure |
  3.                    +====================+
  4.                              |
  5.                              |
  6.                              |
  7.                         +---------+
  8.                         |   NAP   |
  9.                         +---------+
  10.                        /     |     \
  11.                       /      |      \
  12.                      /       |       \
  13.                     /        |        \
  14.                    /         |         \
  15.                   /          |          \
  16.               +------+    +------+    +------+
  17.               | PANU |    | PANU |    | PANU |
  18.               +------+    +------+    +------+
复制代码

好了就我的情况来看,我的linux机上面有dsl,插了兰牙usb,并且已经驱动,我就要把这个机器设置成NAP来使得其他的设备(我的ipaq)可以用兰牙链接到dsl上面。

首先设置我们的linux机为兰牙的主机,在你的NAP或者GN机器上面要执行这个命令
pand --master

然后,启动pan的监听,并且适用NAP
pand --listen --role NAP

接着链接我的ipaq,这里的mac地址,你的设备上面怎么查我就不说了。自己搞定,如果是你linux机器上面的设备hciconfig里面是可以看到mac地址的。
pand --connect 00:04:3E:41:F2:39(要链接的PANU设备的兰牙mac) --service NAP

到此位置台式机设置告一段落。我配置好了ipaq的pan,并且设定固定ip为10.0.0.2,网关为10.0.0.1,然后搜索链接兰牙设备,很幸运,成功的链接到了,BlueZ(我的linux机的兰牙设备名)设备上面的 group network。

在链接建立之后linux里面会多出一个bnep0的设备这个就是我们兰牙链接的虚拟网卡了。

给他一个ip。
ifconfig bnep0  10.0.0.1

再ifconfig,呵呵多了一个bnep设备吧,用一个最常用的共享链接的方法:
iptables -t nat -A POSTROUTING -o ppp0 -s 10.0.0.1/24 -j MASQUERADE

OK,我的ipaq通过兰牙可以上网了。


呵呵这里说说如果是另外一个linux机如何设置,假如我还有一个笔记本,也有一个兰牙卡。想通过兰牙上无线网路。
首先需要象前面linux机那样设置好bluez的支持
然后在你的linux主机上面启动NAP
pand --master
pand --listen --role NAP
pand --connect xx:xx:xx:xx(你笔记本的兰牙mac) --service NAP

接着在你的笔记本上面启动PANU
pand --connect 00:37:5C:673:02(你linux主机的兰牙mac) --service PANU

现在你的两个机器应该在兰牙上面连通了,下面建立ip链接
在主机 ifconfig bnep0 10.0.0.1
on laptop: ifconfig bnep0 10.0.0.2

设置网关和路由
主机:
iptables -t nat -A POSTROUTING -o ppp0(你链接internet的网路设备) -s 10.0.0.1/24 -j MASQUERADE

笔记本:
/sbin/route add -net default gw 10.0.0.1 netmask 0.0.0.0 metric 1 bnep0

不出意外你的笔记本就可以用兰牙上无线网路了。

局我研究,usb兰牙卡有些杂牌是很便宜的,比你在家里买一个无线router,再加笔记本一个无线网卡要便宜的多。所以如果你有一个笔记本象在家里上无线,用兰牙是一个好选择。呵呵。
发表于 2003-7-25 10:30:31 | 显示全部楼层

好!收藏,以备后需!

问一下:您的PAN是在什么发行版下装的?Gentoo?
 楼主| 发表于 2003-7-25 15:02:34 | 显示全部楼层
我是在lfs下作的,这样编译安装的方式于所有编译环境完整的系统应该都是可以起作用的
发表于 2003-7-26 10:32:11 | 显示全部楼层
错别字有点多,但是绝对是好文章,为什么不是精华呢 ;)

想问一下,使用兰牙的IP连接的理论上限传输速度是多少呢?
 楼主| 发表于 2003-7-27 00:34:56 | 显示全部楼层
传东西没有wifi块,具体没测过,10几k吧。qq,msn,bbs是够了。呵呵
发表于 2003-7-27 04:01:31 | 显示全部楼层
师兄的帖字,小弟先顶,
不过还是我先用上兰牙+gprs喽
发表于 2003-7-27 09:37:32 | 显示全部楼层
panda啊
哈哈我也来顶 虽然看不懂 不过doooom版主的文章必是好文
发表于 2006-3-24 21:44:26 | 显示全部楼层
呵呵,我这里可以达到20k,还可以用我的ipaq2210在线看掌上电视的呢。拷贝2个mp3到我的linux台式机也很快啊。这篇真实好文章啊,让我的cf wifi休息了,ipaq上网也省电多了。
回复 支持 反对

使用道具 举报

发表于 2006-3-24 21:46:04 | 显示全部楼层
斑竹有没有试过在osx连pan啊。
http://www.osnews.com/story.php?news_id=9834
找到这篇文章,里头提到几个软件,我去测试下。
我在linux里用可以用蓝牙鼠标(这个很简单),a2dp蓝牙耳塞也成功了,而且我发现对蓝牙适配器的支持,linux竟然要好哦,高锐的蓝牙2。0适配器明明支持蓝牙耳塞,在osx里竟然说硬件不支持。好像hciconfig hci0 revision输出有 SCO mapping:  HCI的才可以在osx里用蓝牙耳塞,而且只是单声道的,力特的1.2版本的适配器试过可以,但是声音非常差,而且经常出问题。ubuntu官方论坛里有人说只有hciconfig hci0 revision输出有 SCO mapping的适配器才支持蓝牙耳塞,其实不是的,像高锐的在linux下面没有这个输出也一样支持的。
回复 支持 反对

使用道具 举报

发表于 2006-3-24 21:51:34 | 显示全部楼层
还有nokia 6260怎么通过linux的蓝牙上网呢,通过xp是可以的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表