CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 21378|回复: 15

利用 hostapd 把 Cubietruck 变成一个 AP

[复制链接]
发表于 2014-2-9 21:00:30 | 显示全部楼层 |阅读模式
本帖最后由 killercat 于 2014-2-9 21:46 编辑

查了论坛上的帖子,但是一直都没有搞好 AP,后来逛了逛英文论坛,得到了答案,现在把具体实现过程分享一下。

先加载一下模块(见:http://linux-sunxi.org/A20-Cubietruck):
  • # modprobe bcmdhd
如果你希望开启 AP 模式,那么:
  • # modprobe bcmdhd op_mode=2
要在启动时加载 bcmdhd(或 bcmdhd op_mode=2)则将其加入 /etc/modules 文件。这里我希望 Cubietruck 成为一台 AP 来为其他无线设备提供网络,那么首先安装一下 hostapd(一个 IEEE 802.11 AP 和 IEEE 802.1X/WPA/WPA2/EAP/RADIUS 验证器),这里需要注意的是默认软件源上的 hostapd 不能较好的工作,我们先下载一个编译好的最新版 https://github.com/igorpecovnik/Cubietruck-Debian/raw/master/bin/hostapd21.tgz(相关讨论详见:http://www.cubieforums.com/index.php/topic,963.0.html),当然也可以自己编译。下载完 hostapd 可以拷贝到 /usr/sbin 中。我这里把 hostapd 的配置文件放在 /etc/hostapd/hostapd.conf 中,详细配置如下(参考:http://wireless.kernel.org/en/users/Documentation/hostapd):
  • interface=wlan0
  • driver=nl80211
  • ssid=__cubietruck__
  • channel=1
  • hw_mode=g
  • macaddr_acl=0
  • auth_algs=1
  • ignore_broadcast_ssid=0
  • wpa=2
  • wpa_passphrase=12345678
  • wpa_key_mgmt=WPA-PSK
  • wpa_pairwise=TKIP
  • rsn_pairwise=CCMP
以上是最基本的配置,这里聊聊 channel(更详细的分析请参考:http://support.zen.co.uk/kb/KnowledgebaseArticle.aspx?articleid=11344)。对于 channel 来说,有两点需要注意:
  • 避免竞争(contended)。假定有多台路由器,它们都在一个 channel 上,那么意味着会出现竞争,但是不存在干扰,传输能够有序的进行
  • 避免干扰(interfering)。首先要明确的是,我们选择了某个 channel,例如 channel 6,这不意味着通讯仅在 channel 6 上进行,实际上通讯会横跨 5 个 channel(相邻的,channel 4 ~ channel 8,20MHz 的 channel 带宽)。现在两个路由器,一个在 channel 6 上(channel 4 ~ channel 8),一个在 channel 7 上(channel 5 ~ channel 9),那么干扰就会出现(它们无法管好自己进行有序的通讯)。需要注意的是,干扰会比竞争带来更多的问题
如果你周围没有什么无线设备,那么可以轻易的选择一个合适的 channel(例如 channel 6),而且还可以使用 40MHz 的 channel 带宽。但是实际的情况往往并非这样,我们需要考虑到干扰的问题。channel 6 通常是被最频繁使用的 channel,按上所述,channel 11 就是下一个很合适的 channel(除了 channel 11 以外 channel 1 也是很不错的)。顺带说一下的是,虽然使用 40MHz 的 channel 带宽能传输更多的数据(更快的 WiFi 速度),但是 40MHz 意味着通讯横跨 7 个 channel,也就是说严重的干扰可能发生,所以说更大的带宽不意味着更高效的数据传输。
接着聊聊验证和加密,这里我选用 wpa2,这是因为 wep 不安全,所以也只能选择 wpa 或 wpa2,而最安全的就是使用 wpa2。
还有一些设置没有详细介绍,如果你不满足可以参考一下其他资料。
现在可以在 /etc/rc.local 中加入以下代码来在开机时打开 WiFi:
  • hostapd -B /etc/hostapd/hostapd.conf
到这里,应该可以看到一个 SSID 为 __cubietruck__ 的 AP,可以尝试用密码 12345678 连接上去。目前的情况是 Cubietruck 可以通过有线连接互联网,WiFi 可以被其他设备连接,那么其他无线设备如何通过连接 Cubietruck 的 WiFi 来访问互联网呢?有几种办法:
  • 创建一个新的 IP 子网
  • 桥接
这里我使用桥接的方式,首先安装 bridge-utils:
  • # apt-get install bridge-utils
修改 /etc/network/interfaces:
  • # loopback
  • auto lo
  • iface lo inet loopback
  • # bridge
  • iface eth0 inet manual
  • iface wlan0 inet manual
  • auto br0
  • iface br0 inet static
  •     bridge_ports eth0 wlan0
  •     address 192.168.1.150
  •     netmask 255.255.255.0
  •     gateway 192.168.1.1
这里将 eth0 和 wlan0 桥接在一起,Cubietruck 使用的是静态 IP 192.168.1.150(这样内网访问比较方便),当然你也可以调整一下配置来使用路由器动态分配的 IP:
  • auto br0
  • iface br0 inet dhcp
  • bridge_ports eth0 wlan0
最后,在稍微编辑一下 hostapd 的配置文件 /etc/hostapd/hostapd.conf,在其中加入:
  • bridge=br0
现在连接上 Cubietruck 的 WiFi 就可以上网啦。





回复

使用道具 举报

发表于 2014-3-2 18:25:41 | 显示全部楼层
很好,看着不错,学习参考一下,准备在CT上实现一个类似的环境。
回复 支持 反对

使用道具 举报

发表于 2014-4-1 19:58:53 | 显示全部楼层
你好,我是CT菜鸟!我按照你的方法,想设置一个AP热点,可是不成功,一下是我的理解并执行的操作:
1、加载模块:# modprobe bcmdhd
2、开启 AP 模式:# modprobe bcmdhd op_mode=2
3、下载了最新版hostapd,包含另个文件:hostapd和hostapd.cli,把他们拷贝到/usr/sbin中
4、配置文件: /etc/hostapd/hostapd.conf  ,基本按照你的要求来写的
5、hostapd -B /etc/hostapd/hostapd.conf  这一句是加入还是在终端执行的?我两样都试过了可是最终还是没搜索到我的 SSID !!

请问是怎么回事啊?求大神回复呀!!!!谢谢啦
回复 支持 反对

使用道具 举报

发表于 2014-4-1 20:11:33 | 显示全部楼层
你好,我是CT菜鸟,按照你的方法想建立一个AP,以下是我的理解和操作:
1、加载一下模块:# modprobe bcmdhd
2、开启 AP 模式:# modprobe bcmdhd op_mode=2
3、下载了hostapd,里面包含两个文件:hostapd和hostapd.cli ,把它们拷贝放到了/usr/sbin里面
4、配置文件: /etc/hostapd/hostapd.conf   基本上是按照你写的来配置的
5、hostapd -B /etc/hostapd/hostapd.conf  这一句是加进去还是在终端里操作,两种我都试过了,可是还是没看到SSID,建立AP失败.....

请问是怎么回事啊?求大神指导回复啊!!谢谢啦
回复 支持 反对

使用道具 举报

发表于 2014-4-1 22:14:02 | 显示全部楼层
linux能不能eth0拨号,wlan0做AP,相当于无线路由
回复 支持 反对

使用道具 举报

发表于 2014-4-3 12:51:03 | 显示全部楼层
xian 发表于 2014-4-1 22:14
linux能不能eth0拨号,wlan0做AP,相当于无线路由

可以,Linux 新建 pppoe 拨号之后会有一个新的 interface,把它和 wlan0 桥接起来(或者配置 Nat 转发)就行
回复 支持 反对

使用道具 举报

发表于 2014-4-6 15:37:26 | 显示全部楼层
编译好的最新版 https://github.com/igorpecovnik/ ... r/bin/hostapd21.tgz
下载下来有hostapd和hostapd_cli两个文件,是复制到/usr/sbin覆盖原来安装的hostapd就行了吗?
还要改什么其它内容吗?
因为原来的可以正常用hostapd /etc/hostapd/hostapd.conf命令
但覆盖后,再用hostapd /etc/hostapd/hostapd.conf提示错误
原来版本为1.0,可以正常开启无加密的AP,但加密的连接时总有错误=11的提示
求帮助~~~~
回复 支持 反对

使用道具 举报

发表于 2014-4-8 10:47:33 | 显示全部楼层
xian 发表于 2014-4-6 15:37
编译好的最新版 https://github.com/igorpecovnik/Cubietruck-Debian/raw/master/bin/hostapd21.tgz
下载下 ...

同问啊!!  我现在把hostapd全卸载了,去hostapd官网重新下个最新版本的hostapd-2.1,希望能够重新编译,可是还是有问题
回复 支持 反对

使用道具 举报

发表于 2014-4-9 00:56:06 | 显示全部楼层
GT10NO 发表于 2014-4-8 10:47
同问啊!!  我现在把hostapd全卸载了,去hostapd官网重新下个最新版本的hostapd-2.1,希望能够重新编译 ...

我的解决了
apt-get remove --purge hostapd #卸载原来的安装,原来没安装就不用这句
apt-get install hostapd #重新安装,切记不要运行
还是上面那个包,解压后终端cd 到该文件目录
然后运行下面这些命令
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.original && \
sudo mv hostapd /usr/sbin/hostapd.edimax && \
sudo ln -sf /usr/sbin/hostapd.edimax /usr/sbin/hostapd && \
sudo chown root.root /usr/sbin/hostapd && \
sudo chmod 755 /usr/sbin/hostapd

好了~~~
hostapd -v
看到版本2.1那就恭喜你
回复 支持 反对

使用道具 举报

发表于 2014-4-9 09:44:25 | 显示全部楼层
xian 发表于 2014-4-9 00:56
我的解决了
apt-get remove --purge hostapd #卸载原来的安装,原来没安装就不用这句
apt-get install hos ...

请问9楼,你的板子是CT的嘛? 你这样做是成功移植安装了hostapd了嘛?能建立AP热点了不?求解答啊....
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-23 13:29 , Processed in 0.026474 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部