第3章 让树莓派运行起来

   前面章节我们已经对树莓派进行了简单的介绍,使用树莓派作为机器人的控制系统是一个非常不错的选择,本章我们将进一步介绍如何安装、配置和使用树莓派,主要内容如下。

  • 所需材料,介绍运行树莓派所需的软、硬件材料及其注意事项和建议。
  • 安装操作系统,介绍一种安装树莓派官方操作系统Raspbian的方法。
  • 登录树莓派,介绍在无显示器条件下使用SSH方式远程登陆树莓派的方法和技巧,包含启用SSH、WiFi配置、XShell使用等内容。
  • 配置操作系统,介绍Raspbian系统的配置工具raspi-config,以及系统的语言和区域、默认语言环境等基本配置的配置方法。
  • 升级软件包,介绍使用Raspbian系统的软件包管理工具apt进行系统升级的相关知识和技巧。
  • 关机和重启,介绍几个关闭和重启树莓派的基本命令。

3.1 所需材料

3.1.1 硬件

  • 树莓派3B+型主板
       树莓派3B+型主板是当前的最新版本,提供了最为丰富的功能,可以很方便的作为机器人的控制系统。
  • 电源
       树莓派3B+型主板的额定电压为5V稳压直流电,额定电流为2.5A,可采用micro USB、GPIO和PoE三种方式供电,本章使用micro USB方式供电。在低负载运行的情况下,2A的电流也可以让树莓派正常运行,目前许多安卓智能手机的充电器(2A电流)都是可以使用的。当高负载运行时,我们应该使用能提供更大电流的电源,否则可能导致充电器过热甚至报废,也可能引起树莓派重启。另外,由于树莓派本身没有电源开关,为方便开关机,同时避免拔插电源线对树莓派造成损伤,建议使用带有开关的micro USB电源。
  • MicroSD卡
       树莓派使用MicroSD卡安装系统和存储数据,对性能要求较高,因此建议选择大容量(16GB以上)的高速(Class10以上)的MicroSD卡。您还可以准备多一张MicroSD卡用于安装不同的操作系统。
  • 读卡器(可选)
       如果您的计算机没有自带MicroSD卡读卡器,那么您需要准备一个,安装系统的时候需要用到。
  • 网线(可选)
       用于将树莓派接入网络,由于树莓派3B+提供了千兆的以太网口,使用千兆超6类网线可能获得更快的网速。当然了,使用百兆的超5类网线也是可以的。
  • 树莓派外壳(可选)
       树莓派本主板身是不带外壳的,主板外面裸露许多连接部件,当把接触到金属的时候非常容易发生短路,甚至造成损坏。所以,为树莓派配备一个合适的外壳进行保护是很有必要的。目前,市面上有很多类型的树莓派外壳,树莓派官方也出品有相应的外壳,您可以根据需要进行选择。

3.1.2 软件

  • Raspbian Stretch Lite
       树莓派官网提供了NOOBS和Raspbian两个官方的操作系统镜像。NOOBS的全称为New Out Of Box System(全新开箱即用系统),实际上是一个图形化的操作系统安装工具,其中NOOBS自带完整版的Raspbian,而NOOBS Lite则仅仅是NOOBS本身,您只要在NOOBS中选择想要安装的系统,它就会自动下载安装。Raspbian才是树莓派官方真正的操作系统,基于Debian系统定制,官方提供了Raspbian Stretch with desktop and recommended software、Raspbian Stretch with desktop和Raspbian Stretch Lite三个版本的镜像,“Stretch”是Debian系统的版本代号,其中“Raspbian Stretch with desktop and recommended software”带有图形界面和一些推荐的应用软件,“Raspbian Stretch with desktop”仅提供图形界面,“Raspbian Stretch Lite”则仅提供命令行界面。由于NOOBS和系统安装包会占用一定的存储空间,且安装操作系统的时候需要外接显示器,因此NOOBS并不是最好的选择。另外,按照“简单”的原则,我们选择使用最为精简的Raspbian Stretch Lite版本,使用过程中再按需手工安装相应软件。
       下载地址:https://www.raspberrypi.org/downloads/
  • Etcher
       Etcher是一款免费的U盘镜像制作工具,可以将镜像刻录到U盘,我们将用它将Raspbian系统安装到MicroSD卡上。类似的软件还有Win32 Disk Imager等,您可以根据习惯选择。
       下载地址:https://www.balena.io/etcher/
  • SDFormatter(可选)
       SDFormatter是一个简单的SD卡修复工具,也是树莓派官网推荐的SD格式化工具。在安装树莓派后,您会发现MicroSD卡的容量与实际容量不符(只剩下很少的存储空间),如果你想恢复MicroSD卡的容量,就可以使用SDFormatter进行格式化。
       下载地址:https://www.sdcard.org/downloads/formatter_4/
  • XShell
       XShell是一个强大的安全终端模拟软件,支持SSH1、SSH2、TELNET、Serial等多种协议,我们将用它远程登录树莓派。官方提供有免费版供个人和教育使用,相比专业版,免费版仅是限制最多只能打开四个标签页,但这并不影响我们的使用。与XShell类似的软件还有SecureCRT、Putty等,您可以根据习惯选择。
       下载地址:https://www.netsarang.com/en/
  • Advanced IP Scanner(可选)
       Advanced IP Scanner是一个免费的网络扫描器,可以分析LAN,我们将用它来确定树莓派的IP地址。类似的网络扫描工具有很多,您也可以选择其他类似的工具。
       下载地址:http://www.advanced-ip-scanner.com/cn/

3.1 安装操作系统

   Raspbian系统的安装步骤如下:
   步骤 1: 将MicroSD卡插入到电脑上。
   步骤 2: 运行Etcher,点击“Select image”按钮选择要安装的系统镜像,选择要安装系统的驱动器,然后点击“Flash!”按钮开始安装系统,如图 3.1所示。整个过程大约需要几分钟的时间,请耐心等待。

图 3.1 安装操作系统

提示:

  • Etcher通常能自动识别出要安装系统的驱动器,我们一般不需要进行额外设置。
  • raspbian的镜像是一个zip格式的压缩文件,文件名一般为“发布时间-raspbian-stretch-lite.zip",例如:2018-11-13-raspbian-stretch-lite.zip,Etcher支持直接使用zip格式压缩文件进行安装,所以我们不需要把镜像文件解压出来。
  • 开始安装系统后,MicroSD卡原有的数据都会给格式化掉,因此我们应该非常谨慎。

   安装成功后,把MicroSD卡插入树莓派,同时给树莓派接上鼠标、键盘、显示器和电源,就可以和普通个人计算机一样使用。

3.2 登录树莓派(SSH方式)

   在使用树莓派时,尤其是作为机器人控制系统,很少会使用到显示器,更多是采用网络远程登录的方式。事实上,网络远程登录方式更为便捷,且几乎可以完成所有的工作。常见的远程登录树莓派的方法有SSH和VNC。其中,SSH是命令行界面的远程管理工具,也就是登录后只提供命令行界面,而VNC则是图形化的远程管理工具,提供图形化界面,前提是你的系统上安装了图形界面。以下是SSH方式登录树莓派的步骤和技巧:
   步骤 1: 开启SSH服务。将MicroSD卡插回计算机,在MicroSD卡的根目录下(也就是树莓派的/boot目录)新建一个空白的文件,并命名为ssh,注意文件名不要带有后缀。
   步骤 2: 接入网络。有线方式接入网络,仅需要用网线将树莓派和交换机(路由器)连接起来即可。若想在没有显示器的情况下通过WiFi接入网络,则可以通过在MicroSD卡的根目录下新建一个名为wpa_supplicant.conf的配置文件来实现,配置文件内容参考以下格式填写。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev  
update_config=1  
  
network={  
ssid="WiFi名称"  
psk="WiFi密码"  
key_mgmt=WPA-PSK  
priority=1  
scan_ssid=1  
}

   配置文件的前两行为固定写法,不需要改动。network字段的内容应根据WiFi的实际设置修改,配置文件中可以有多个network配置表示连接不同的WiFi。其中,ssid为WiFi名称;psk为WiFi密码;key_mgmt为WiFi加密方式;priority为WiFi连接优先级,为非负数,数字越大优先级越高;scan_ssid用于设置是否连接到隐藏ssid的WiFi,其值为1时表示连接。以下是几个常见的network配置:

  • 连接没有密码的WiFi:
network={  
ssid="WiFi名称"  
key_mgmt=NONE  
}  
  • 连接使用WEP加密的WiFi:
network={  
ssid="WiFi名称"  
key_mgmt=NONE  
wep_key0="wifi密码"  
}  
  • 连接使用WPA/WPA2加密的WiFi
network={  
ssid="WiFi名称"  
key_mgmt=WPA-PSK  
psk="wifi密码"  
}  

   完成以上步骤后,就可以将MicroSD卡插回树莓派,接上电源启动树莓派。

提示:

  • 建议尽量采用WiFi方式接入网络,这样可以减少树莓派的接线数量,增加灵活性,便于今后的使用。
  • 不要同时使用有线和WIFi方式连接网络,很可能会造成你的树莓派无法访问。

   步骤 3: 确定IP地址。在没有显示器的情况下,我们很可能不知道树莓派的IP地址,而远程登陆到树莓派首先需要知道树莓派的IP地址,以下是两个解决这个问题的技巧。

  • 网络扫描法
       如图3.2所示,运行Advanced IP Scanner设置要扫描的地址范围,软件会自动识别出您的电脑所在的网段,您也可以根据实际修改,然后点击扫描(Scan)开始扫描,根据网络的规模和速率的不同,扫描的时间也会有所不同。扫描结束后,我们从结果中要到制造商(Manufacturer)为“Raspberry Pi Foundation”就是您的树莓派的网络信息,从中可以找到树莓派的IP地址。

    图 3.2 获取树莓派网络信息

  • 路由器查询法(DHCP)
       在局域网中,IP地址一般由DHCP服务器负责管理,对于家庭或中小型企业的局域网,DHCP服务器的功能通常由路由器承担。如果您拥有路由器的管理权限,那么可以登陆路由器管理界面查找树莓派的IP地址。树莓派Raspbian系统的默认主机名是raspberrypi,您只要在路由器里面找到该主机名对应IP地址即可,不同路由器的管理界面大同小异,请根据您的路由器说明书操作。

提示:
   路由器为树莓派动态分配的地址是有租期的,租期一到,树莓派的IP地址很可能会改变,因此不便于我们以后的使用。如果路由器具备管理功能,建议在路由器上把树莓派的MAC地址和IP地址绑定在一起,确保同一台树莓派的IP地址永远不会改变(即使更换了操作系统),让我们既能享受自动分配IP地址的方便,又能保证IP地址是固定的,方便今后的各种网络连接操作。

   步骤 4: 登录树莓派。如图3.3所示,运行XShell,新建一个会话(Sessions),并按图3.4填写连接(Connection)和用户身份验证(Authentication)。其中,名称(Name)字段为会话名称,可任意填写;主机(Host)字段为树莓派的IP地址,请根据实际填写;用户名(User Name)字段为树莓派的用户名,第一次登录树莓派使用pi用户即可,今后您可以根据实际新建其它的用户登录;密码(Password)为pi用户的密码,默认为raspberry。

图 3.3 XShell 新建会话(Session)

图 3.4 SSH登录配置信息

   XShell登录树莓派后的界面如图3.5所示,这是一个典型的Linux命令行界面,我们可以在这里使用各种命令来控制树莓派。

图 3.5 XShell登录树莓派

3.3 配置操作系统

   为了更好的使用树莓派,建议在第一次登录树莓派后进行一些基本的配置。Raspbian系统自带一个叫raspi-config的系统配置工具,可以对树莓派的CPU频率、内存分配、网络、接口等众多项目进行配置。
   运行raspi-config需要root权限,可以在终端输入以下命令运行。

sudo raspi-config  

   raspi-config的界面如图3.6所示。这个界面操作比较简单,用键盘上的上、下键进行菜单项目的选择,左右键进行确定和取消等按钮的选择,回车键进入,Esc键取消返回,空格键选定选项,改完后选择Finish退出(可能会重启)。

图 3.6 raspi-config

提示:

  • 其他Linux系统一样,在Raspbian系统的命令行下仅需要输入命令、目录或文件的前几个字符,然后按Tab键就能自动补全,如有相重的,再按一下Tab键,系统会列出当前目录下所有以这几个字符开头的名字。例如:输入“raspi-”,再按Tab键,就能自动补全为“raspi-config”,而输入“raspi”,再按两下Tab键,则会列出以raspi为开头的命令。这种命令行自动补全的功能非常方便,极大的提升了输入命令的效率。
  • sudo命令表示以系统管理员身份执行指令。例如:运行raspi-config需要管理员权限,而登录树莓派的pi用户是一个普通的用户,所以我们需要输入“sudo raspi-config”。这是Linux系统下一个非常常用的方法,后继章节中我们还会不断用到。

   Raspbian系统的语言、时区等国际化选项(Internationalisation Options)的默认值均为英国,为了适应本地化的需要,我们在这里重点介绍如何使用raspi-config设置语言和时区,让树莓派更好的支持中文,其余配置将在今后使用到的时候再进行介绍。

  • 语言和区域设置
       运行raspi-config,进入Localisation Options->I1 Change Locale添加支持语言,如图3.7所示,用上下键和空格去掉“en_GB.UTF-8 UTF-8”,添加以下5项:

en_US.UTF-8 UTF-8
zh_CN GB2312
zh_CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8

图 3.7 添加支持语言

   添加完成后回车确认,在出现的菜单选择en_US.UTF-8为默认值并回车确认,如图3.8所示。

图 3.8 设置默认语言环境

   最后,退出raspi-config并运行以下命令重启系统,让设置生效。

sudo reboot  

提示:
在Raspbian系统中,并非所有的软件都能很好的支持中文,所以我们还是把系统的默认语言环境设置为en_US.UTF-8。

  • 设置时区
       Raspbian系统的默认时区为格林威治时间 (GMT),要比北京时间慢8小时。进入Localisation Options->I2 Change Timezone,选择Asia(亚洲)再选择shanghai(上海)即可更正时间问题。

3.4 升级软件包

   Raspbian系统默认安装的软件比较旧,安装完系统后,建议首先进行升级。Raspbian系统使用apt(Advanced Packaging Tool)管理软件包,可以使用apt命令升级软件,升级的速度受apt源的影响比较大,默认使用的apt源由树莓派基金会提供,服务器在国外,速度比较慢,因此建议先修改apt的配置文件,将apt源更换为国内的镜像以提高升级速度。
   Raspbian系统有两个apt源的配置文件,分别是 /etc/apt/sources.list/etc/apt/sources.d/raspi.list。其中,/etc/apt/sources.list是Raspbian系统apt源的配置文件,包含了大部分的软件。/etc/apt/sources.list.d/raspi.list是树莓派基apt源的配置文件,由树莓派基金会单独提供维护,仅包含raspi-config、minecraftpi、树莓派桌面环境、内核固件驱动等少量软件,国内目前只有清华大学和中国科技大学提供有该apt源的镜像,且不是很稳定。因此,这里我们仅对/etc/apt/sources.list进行修改。
   已更换Raspbian系统apt源为例,首先使用管理员权限编辑/etc/apt/sources.list文件,参考命令行为:

sudo nano /etc/apt/sources.list  

   其次,如图3.9所示,使用#注释掉原来的内容,并更换相应的配置。


图 3.9 更换Raspbian系统apt源

   最后,使用 Ctrl+O 回车保存文件后,Ctrl+X 退出编辑器。

提示:

   修改完后,依次执行以下命令就可以完成升级,升级过程一般需要几十分钟甚至几个小时才能完成,请耐心等待。

sudo apt update # 更新apt源  
sudo apt upgrade # 更新已安装的软件包  
sudo apt dist-upgrade # 升级系统  

3.5 关机和重启

   树莓派本身没有开关机按钮,但我们不建议直接拔插电源来关机或重启,而是使用以下方法。

  • 关机可以使用以下任一条命令:
sudo shutdown -P now  
sudo halt  
sudo poweroff  
  • 重启可以使用以下任一条命令:
sudo reboot  
sudo shutdown -r now  

3.6 本章小结

   本章首先介绍了运行树莓派所需的硬件和软件,其次介绍了安装Raspbian系统的方法,然后介绍了在没有显示器的条件下采用ssh方式登录树莓派的方法和技巧,简单介绍了配置Raspbian系统的基本知识,讨论了升级Raspbian系统的方法,最后介绍了关机和重新系统的几个基本命令。

推荐阅读更多精彩内容