美文网首页
Raspberry Pi Zero 联网奇妙记

Raspberry Pi Zero 联网奇妙记

作者: yfgeek | 来源:发表于2016-12-22 22:28 被阅读3839次

    说句实话,Zero真的不适合把玩,想让他连上网,太难了。

    痛点

    • 住公寓,有WiFi/Lan登录认证系统
    • 公寓的网络动态分配范围很大,很难快速找到树莓派的IP
    • 公寓的网络防止扫描端口,有惩罚策略
    • 没有显示器 无法查看树莓派Zero的状态
    • 树莓派Zero只有一个OTG USB接口
    • 树莓派Zero没有内置以太网Lan
    • 树莓派Zero没有无线网卡WiFi
    • 树莓派Zero没有蓝牙 更没有蓝牙局域网
    • 树莓派Zero除了核心部分 一无所有

    已有装备

    • 树莓派Zero
    • USB HUB 分线器
    • USB 以太网网卡
    • USB WIFI (芯片 8188EU)
    • 路由器
    • 网线一根
    • MacBook Pro一台

    已有环境

    • Raspbian系统
    • vncserver

    解决方案

    整体思路

    其中 USB HUB USB网卡 临时路由器 PC 是临时之用 配置一旦完成 抛弃这些设备直接插上WiFi自动联网。

    去掉之前的USB网卡模式

    把sd卡取出,插入电脑

    config.txt下删除

    dtoverlay=dwc2
    

    cmdline.txt下删除

    modules-load=dwc2,g_ether
    

    安装WiFi驱动

    之前遇到过很多坑,比如别的内核的WiFi驱动。

    首先手动下载

    https://dl.dropboxusercontent.com/u/80256631/install-wifi.tar.gz

    检查无线适配器版本,同时传到树莓派上

    pi@zero:~ $ sudo ./install-wifi
    
    Your current kernel revision = 4.4.34+
    Your current kernel build    = #930
    
    Checking for a wifi module to determine the driver to install.
    
    Your wifi module is Bus 001 Device 003: ID 0bda:8179 Realtek Semiconductor Corp.
    
    And it uses the 8188eu driver.
    
    Checking for a new 8188eu wifi driver module for your current kernel.
    The script cannot access Dropbox to check a driver is available.
    

    手动下载
    https://dl.dropboxusercontent.com/u/80256631/8188eu-4.4.34-930.tar.gz

    切换WiFi到树莓派网络

    scp 8188eu-4.4.34-930.tar.gz pi@zero.local:~
    

    在树莓派下

    tar xzf  8188eu-4.4.34-930.tar.gz
    sudo ./install.sh
    reboot
    

    然后检查一下 lsusb(这个其实不靠谱)

    然后再检查一下 ifconfig

    wlan0     Link encap:Ethernet  HWaddr 0c:82:68:12:93:8f
              inet6 addr: fe80::4336:2657:c812:f11b/64 Scope:Link
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:6 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    

    果然正确安装了。

    配置WiFi

    但是wlan0 Link encap:Ethernet被识别为了以太网,接下来我们继续解决坑。

    sudo iwlist wlan0 scan
    
      Cell 03 - Address: F0:B0:52:3B:7B:68
                        ESSID:"ASK4 Wireless"
                        Protocol:IEEE 802.11gn
                        Mode:Master
                        Frequency:2.417 GHz (Channel 2)
                        Encryption key:off
                        Bit Rates:144 Mb/s
                        Quality=18/100  Signal level=70/100
                        Extra:fm=0001
    

    随后对wpa_supplicant.conf文件进行编辑,使之加入到自己的网络里。

    请注意,key_mgmt=NONE表示没有WiFi密码(这是个查了很久猜得到的宝贵线索),如果有密码请把这个更改为psk = "密码"

    sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
    
    country=GB
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    network={
            ssid="ASK4 Wireless"
            key_mgmt=NONE
    
    }
    

    编辑/etc/network/interfaces文件,使wlan0为动态分配获取IP。

    sudo vi /etc/network/interfaces
    
    auto lo
    iface lo inet loopback
    
    iface eth0 inet dhcp
    
    auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    
    
    allow-hotplug wlan1
    iface wlan1 inet manual
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    

    随后重启我们wlan0

    sudo ifdown wlan0
    sudo ifup wlan0
    

    如果能搜索到WiFi会自动进行DHCP获取ip地址阶段

    Listening on LPF/wlan0/0c:82:68:12:93:8f
    Sending on   LPF/wlan0/0c:82:68:12:93:8f
    Sending on   Socket/fallback
    DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8
    DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 12
    DHCPREQUEST on wlan0 to 255.255.255.255 port 67
    DHCPOFFER from 10.80.192.1
    DHCPACK from 10.80.192.1
    bound to 10.80.200.83 -- renewal in 440 seconds.
    

    随后,用ifconfig命令查看一下获取的IP地址

    wlan0     Link encap:Ethernet  HWaddr 0c:82:68:12:93:8f
              inet addr:10.80.200.83  Bcast:10.80.207.255  Mask:255.255.240.0
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:17 overruns:0 frame:0
              TX packets:0 errors:0 dropped:1 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:4681 (4.5 KiB)  TX bytes:18372 (17.9 KiB)
    

    再对mac地址进行绑定,再进入vnc,试试看

    哇 可以上网了!

    然而悲痛的消息还有呢~

    内网隔离

    ngrok TCP转发

    这难不倒我,用ngrok就可以解决,正好身在墙外,更加方便。

    下载ngrok

    wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip
    unzip ngrok-stable-linux-arm.zip
    

    配置开机启动项vi /etc/rc.local
    在exit 0 前面加入

    /home/pi/ngrok authtoken 你的AUTO
    /home/pi/ngrok tcp 22
    

    搞定!拔掉USB HUB,关掉路由器,重启!

    过了10分钟后,我们的树莓派上线了!

    用ssh命令连接一下

    ssh pi@0.tcp.ngrok.io -p 13016
    

    连接速度超级快,如同本地一样,给ngrok官网点赞。

    哈哈,上线了,访问一下。

    这个只有4英镑的树莓派实现联网后花费了:

    树莓派:4磅

    OTG线:0.86磅

    WIFI:人民币25元

    储存卡:9磅

    谢谢观看忍耐全文。

    相关文章

      网友评论

          本文标题:Raspberry Pi Zero 联网奇妙记

          本文链接:https://www.haomeiwen.com/subject/mabhvttx.html