• 树莓派做AP发射wifi(RTL8188CUS芯片) 分类: shell ubuntu Raspberry Pi 2014-11-29 01:25 822人阅读 评论(0) 收藏


    最近在做一个项目,需要用树莓派作为AP发射wifi,对比cubieboard,树莓派的配置容易得多,而且支持也更多。

    较为官方的介绍配置为无线热点的文章莫过于这一篇《RPI-Wireless-Hotspot》

    按照这个设置,我的其实不成功,于是找到这篇文章《Turn Your Raspberry Pi Into a WiFi Hotspot with Edimax Nano USB EW-7811Un (RTL8188CUS chipset)》

    下面是我配置的过程,主要是hostapd加桥接的方式:

    1,安装hostapd

    sudo apt-get install hostapd

    hostapd实现的是无线共享,但需要注意的是官方提供的程序不兼容RTL8188CUS芯片的无线网卡,不过Edimax团队为我们专门编译了兼容的版本,下面的操作需要替换hostapd为兼容版本。

    wget http://www.daveconroy.com/wp3/wp-content/uploads/2013/07/hostapd.zip
       unzip hostapd.zip 
       sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.bak
       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

    接下来有两种方式搭建你的AP,一种是通过桥接的方式设置,类似交换机,另一种是路由的方式。

    2,桥接的方式实现。

    首先要安装桥接的软件

    sudo apt-get install bridge-utils
    然后配置网卡:

    sudo vim /etc/network/interfaces
    最后的配置文件如下:
    auto lo
    
    iface lo inet loopback
    iface eth0 inet dhcp
    
    #allow-hotplug wlan0
    #iface wlan0 inet manual
    #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
    #iface default inet dhcp
    
    #bridge
    auto br0
    iface br0 inet dhcp
    bridge_ports eth0 wlan0
    然后配置hostapd

    sudo vim /etc/hostapd/hostapd.conf
    配置如下:

    interface=wlan0
    driver=rtl871xdrv
    bridge=br0
    ssid=My_SSID_Name
    channel=1
    wmm_enabled=0
    wpa=1
    wpa_passphrase=MYPASSWORD
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    auth_algs=1
    macaddr_acl=0
    然后重启树莓派,就可以测试是否成功了。其中auth_algs指定采用哪种认证算法,采用位域(bit fields)方式来制定,其中第一位表示开放系统认证(Open System Authentication, OSA),第二位表示共享密钥认证(Shared Key Authentication, SKA)。我这里设置alth_algs的值为1,表示只采用OSA;如果为3则两种认证方式都支持。不过很奇怪的是,在我工作中如果配置了3,不管采用WEP/WPA/WP2加密的方式都从没连接成功过,配置为2也是如此。所以在我的配置当中,如果采用认证,则设置auth_algs为1;否则把这行代码注释掉。

    sudo reboot
    重启完成后,测试是否成功:
    sudo hostapd /etc/hostapd/hostapd.conf 
    应该是可以搜索到你的wifi并且正常上网的,这时候树莓派的ip地址就是你的br0的ip地址,查询使用ifconfig。

    3,路由的方式实现

    2014-12-1 更新,原来的路由方式很不稳定,今天重新配置后,两天内多次开机自启动亲测无问题,先记录如下:

    首先,hostapd的配置文件如下:

    打开文件

    sudo vi /etc/hostapd/hostapd.conf

    内容:

    # Basic configuration
    interface=wlan0
    ssid=<span style="font-family:Microsoft YaHei;">YourWifiName</span>
    channel=11
    
    # WPA and WPA2 configuration
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=2
    wpa_passphrase=<span style="font-family:Microsoft YaHei;">Your</span>Password
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    
    # Hardware configuration
    driver=rtl871xdrv
    ieee80211n=1
    hw_mode=g
    device_name=RTL8188CUS
    manufacturer=Realtek
    sudo /etc/init.d/hostapd restart
    然后是DHCP软件,这次改用dnsmasq,之前使用udhcpd总是失败,可能是我的个人问题,如果你选择udhcpd,请参考这个链接:http://wangye.org/blog/archives/845/

    sudo apt-get install dnsmasq
    sudo vi /etc/dnsmasq.conf

    内容如下:

    #无线网卡
    interface=wlan0
    #分配的IP段
    dhcp-range=192.168.1,50,192.168.1.150,12h
    #网关
    dhcp-option=3,192.168.1.1
    #DNS
    dhcp-option=6,8.8.8.8
    sudo /etc/init.d/dnsmasq restart

    设置无线网卡静态IP

    sudo vi /etc/network/interface


    和无线网卡有关的部分内容如下:

    allow-hotplug wlan0
    iface wlan0 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    注意这里的address内容必须和你的网关一致。

    设置自启动(你可以直接把下面内容添加进rc.local文件,也可以写成脚本然后通过rc.local启动):

     # wifi->hosapd
     sudo hostapd /etc/hostapd/hostapd.conf &
     
     # wifi->dnsmasq
     sudo /etc/init.d/dnsmasq restart &
     
     # iptables
     iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
     iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j     ACCEPT
     iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
    

    另外,我还在/etc/sysctl.conf文件中修改了下面这句:

    net.ipv4.ip_forward=1

    /etc/default/ifplugd文件修改成如下:

    INTERFACES="eth0"
    HOTPLUG_INTERFACES="eth0"
    ARGS="-q -f -u0 -d10 -w -I"
    SUSPEND_ACTION="stop"

    最后,重启就好,树莓派每次都可以稳定的成功的开启WIFI,IP固定为192.168.1.1 。连上该wifi的设配也可以正常上网。

    大功告成~


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Eclipse快捷键大全,导包快捷键:ctrl+Shift+/【转】
    xml合并工具【原】
    解决win10无线无故断网,重启才恢复正常的情况【原】
    PL/SQL可以连oracle,但是jdbc连不上 【转】
    Java 编程下使用 Class.forName() 加载类【转】
    Http请求中Content-Type讲解以及在Spring MVC中的应用【转】
    activeMQ
    概念,包括对象,接口,类,方法
    javabean
    session
  • 原文地址:https://www.cnblogs.com/paulweihan/p/4660110.html
Copyright © 2020-2023  润新知