zoukankan      html  css  js  c++  java
  • 树莓派变身路由器




    驱动网卡


    买了一个便宜的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

    要做路由器,当然要用dhcp组件了。

    先安装:
    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/sh
    
    
    sudo killall wpa_supplicant
    sudo killall hostapd
    sudo killall aria2c
    
    
    sudo 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


  • 相关阅读:
    远程支付技术方案
    软件架构设计(第2版)——程序员向架构师转型必备
    概念架构是什么
    项目报警机制
    编写有效用例
    移动支付的基本要素
    相机的日常维护和保养注意事项
    吴炜摄影教程随堂笔记1
    D80使用心得3
    项目沟通管理识别干系人
  • 原文地址:https://www.cnblogs.com/tanhangbo/p/4282596.html
Copyright © 2011-2022 走看看