树莓派ZeroW系统安装
电脑系统:WIN10
树莓派型号:Zero W
树莓派系统:Raspbian,2018-11-13-raspbian-stretch-lite.img
SD卡:闪迪32G class10 高速Micro SD卡(TF卡)
软件工具:Win32DiskImager 1.0,DiskGenius 5.2.0,PuTTY Release 0.71,Bonjour
其他工具:Micro USB 数据线,TF卡读卡器
安装系统主要包括下面几个步骤:
1、下载映像文件
2、烧录操作系统
3、用USB Gadget连接配置树莓派
4、用WIFI登录树莓派
安装完成后,树莓派可以连接无线网络,支持串口通讯,电脑在相同网络下可以用SSH远程登录树莓派。
1、下载映像文件
Raspbian是树莓派官方推荐的系统,是Linux系统的一种,以到这个页面下载:
https://www.raspberrypi.org/downloads/raspbian/
这个项目中用不到桌面,选择Lite版本就行了。
解压后得到系统的映像文件,当时下载的版本是2018-11-13-raspbian-stretch-lite.img。
2、烧录操作系统
SD卡装到读卡器中,插到电脑上,打开Win32DiskImager,设备栏显示扫描到的SD卡盘符。
映像文件栏,打开之前解压好的映像文件 2018-11-13-raspbian-stretch-lite.img,点击写入,大概会持续2-3分钟,完成后点击退出。
烧录完成后,电脑上会显示一个boot盘,另外一个里面是Linux系统所在的盘,Windows系统读不出来。
可以用DiskGenius软件查看这两个盘,可以看到第1个盘是FAT32格式的,第2盘是EXT4格式的(Windows不识别这种格式的磁盘),这个盘就是Linux系统盘,用DiskGenius可以查看第2个盘中的文件。
下面这个图显示SD卡上还有28GB的空间是空闲的(有时会出现这个问题,有时又正常),Linux系统不能使用该空闲区域,会在后面的文章里去介绍如何扩展分区,把空闲的空间给扩进来,暂时先不管。
再次回到我的电脑,直接进入boot盘,这里要配置几个文件。
打开文件 cmdline.txt,显示如下信息:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=7ee80803-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh
树莓派ZeroW上只有1个引出的串口,默认是做控制台使用的,而不是用于串口通讯,所以要禁用这个默认设置,删掉文件中的 console=serial0,115200 console=tty1。
quiet和后面的东西没什么用,全部删掉了。
在rootwait 后面空一格,然后加上 modules-load=dwc2,g_ether
换一行加上enable_uart=1
改完之后:
dwc_otg.lpm_enable=0 root=PARTUUID=16907568-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether enable_uart=1
打开文件 config.txt,在最后加上这两句:
dtoverlay=dwc2 dtoverlay=pi3-miniuart-bt
树莓派ZeroW的CPU有两个串口,一个是硬件串口,一个是迷你串口(mini-uart),后者采用内核频率作为时钟源,导致其速率不稳定,通讯不可靠。系统默认把硬件串口分配给蓝牙模块,迷你串口分配给GPIO(后续会用来做串口通讯)。这里的意思是把两个串口交换一下。
树莓派的SSH服务默认是关闭的(SSH服务可以用来远程登录,树莓派ZeroW没有桌面,后面需要通过SSH来远程登录树莓派),需要创建一个ssh文件来开启SSH服务。
在Boot盘根目录下新建一个文本文件,重命名为ssh,去掉.txt后缀。
完成后到Boot盘上右键安全弹出,两个盘会一起弹出来。
3、用USB Gadget连接配置树莓派
USB分为USB Host和USB Device两种,PC一般是USB Host,手机等数码设备一般是USB Device。OTG是指设备既可以作为USB Device,又可以作为USB Host。
在Linux中,USB Device设备称为Gadget。
用USB数据线连接树莓派和电脑,用USB Gadget驱动将USB-OTG模拟为有线网卡,这样就可以通过USB模拟的有线网卡来进行SSH登录,从而访问树莓派了。
SD卡插到树莓派ZeroW上,Micro USB一端接电脑,一端接树莓派中间那个Micro USB口。
等待十几秒以后,设备管理器上可以看到新增的硬件:USB以太网卡 USB Ethernet/RNDIS Gadget。
如果不正常,可以到这篇文章上去找找解决办法:
https://blog.csdn.net/chentuo2000/article/details/81051308
安装Bonjour软件,这个软件可以让电脑识别raspberrypi.local主机名。
运行PuTTY,Host Name:raspberrypi.local,Port:22,点击Open
弹出界面,选择“是”
用户名(login as):pi,密码(pi@raspberrypi.local's password):raspberry
输密码的时候,输入的字符不会显示出来,输完之后按回车就好了。
显示下面这个界面时,说明我们已经通过USB以太网卡,用SSH服务登录树莓派了:
下面设手动设置一下开启SSH服务,防止ssh文件丢了之后不能远程登录。
pi@raspberrypi:~ $ sudo raspi-config
弹出如下界面,按上下键切换到 5 Interfacing Options,按回车。
选择 P2 SSH,回车
问是否要使能SSH服务,选择 YES,回车
成功后提示如下,按回车
退回到这个界面,选择Finish退出。
接下来配置一下树莓派的WIFI,以后就可以用无线远程登录。
首先修改/etc/network/interfaces文件,使得wlan0可以动态分配获取IP。
pi@raspberrypi:~ $ sudo nano /etc/network/interfaces
在nano编辑器中,通过上下箭头把光标移动到最后,复制(鼠标右键点一下)下面几句:
auto wlan0 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
弄完之后是这样:
按Ctrl+X退出,弹出下面这个,询问是否保存修改,输入Y
弹出下面这个,确认要保存的文件名,按回车
配置WIFI的账号密码
pi@raspberrypi:~ $ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
在nano编辑器中,把光标移动到最后,复制下面几句(WIFI账号密码记得改成自己的),然后保存退出。
network={ ssid="user_ssid_null" psk="user_psk_null" priority=5 } network={ ssid="mobile_hotspot_ssid_xxxx" psk="mobile_hotspot_psk_xxxx" priority=4 }
这里我们设置了两组WIFI账号和密码,树莓派优先连接优先级高的WIFI:
mobile_hotspot是指手机热点的,用手机热点的话可以看到树莓派是否连接,以及树莓派的IP地址,调试会比较方便;
user是指普通的WIFI,后面还可以用通讯来配置这一组WIFI的账号密码。
mobile_hotspot_ssid_xxxx :手机热点的名称
mobile_hotspot_psk_xxxx :手机热点的密码
user_ssid_null:用户的WIFI名称
user_psk_null:用户的WIFI密码
注意:加入语句的格式一定要正确,“=”附近不能有空格。
这样就配置好了,把USB线拔下来,关闭PuTTY,之后我们就可以用无线来登录树莓派了。
4、用WIFI登录树莓派
把USB线从树莓派上拔下来,插到旁边的那个Micro USB口上(写着PWR),这时USB线只用来供电。开启手机热点(或者直接使用正常的WIFI),电脑连接到相同的网络上。
如果是用手机热点,可以在手机上看到连接情况,还有树莓派的IP地址:
打开PuTTY,Host Name(or IP address)可以填raspberrypi.local或者是刚刚看到的树莓派IP地址,之前调试的时候有几次用raspberrypi.local找不到树莓派,用IP地址是稳定可以的。
用之前相同的方法登录,到这个界面说明用WIFI来SSH登录树莓派成功了,系统安装结束。
关闭树莓派,退出:
pi@raspberrypi:~ $ sudo shutdown -h now