本文主要是介绍树莓派变身路由器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
驱动网卡
买了一个便宜的USB网卡,里面的芯片是8188eu。
下面用这个USB网卡来驱动树莓派。首先,树莓派里面没有这个网卡的ko,所以去网上下载了一个:
https://github.com/lwfinger/rtl8188eu/tree/master
再看了一下kernel 的版本:
pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux
接下来编译解压出来的驱动文件,发现kernel header没有装。于是去下载了kernel header:
http://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/
接下来编译又出问题了,于是更新了gcc版本:
sudo apt-get -f install cpp-4.7 gcc-4.7
最后可以编译了,但是最后insmod module发现symbol layout有问题, 于是放弃了自己编译的想法,上网自己下载
了一个编译好的:
http://gordon.d4rc.net/8188eu_3.12.28.zip
加载了这个驱动之后,使用wpa_cli已经可以scan 了,dmesg也显示正常。说明驱动成功。
要注意的是,不要忘记把firmware装进去。
hostapd
下一步就是要使用hostapd了,首先要干掉系统自带的wpa_supplicant,然后用8188eu驱动包里面的
hostapd(官方的hostapd可能不会成功)
sudo killall wpa_supplicant
sudo killall hostapd
./hostapd rtl_hostapd.conf
这样子就可以了成功开启AP了,其中配置文件自己要修改好,密码也要设置好。
DHCP server
sudo apt-get install isc-dhcp-server
然后配置/etc/dhcp/dhcpd.conf :
subnet 192.168.0.0 netmask 255.255.255.0{range 192.168.0.2 192.168.0.250;option subnet-mask 255.255.255.0;option domain-name-servers 8.8.8.8;option routers 192.168.0.1;}
转发开启
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P FORWARD ACCEPT
iptables -F FORWARD
完成配置
注意到,执行各个时候有顺序的,不能随便开启,这里搭配aria2c 给出来吧:
#!/bin/shsudo killall wpa_supplicant
sudo killall hostapd
sudo killall aria2csudo aria2c --conf-path=/home/pi/HDD/aria2/aria2.conf &ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P FORWARD ACCEPT
iptables -F FORWARD
service isc-dhcp-server restart./hostapd rtl_hostapd.conf &
这就是一个完整的脚本了,而且可以搭配aria2c做一个下载器和路由器。
实际上这几步做完简单了,几乎和ubuntu里面的做法一样(不同的是,ubuntu里面要干掉NetworkManager)
pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux
这篇关于树莓派变身路由器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!