树莓派 3B 入门 openSUSE Leap 42.3

科技动态 2018-06-20

以下树莓派简称 RP。 斜体 表示要执行的指令,[] 表示指令参数。本文有多个链接,一般是中文 wiki,可以查看使用方法。

版权归本人所有,转载请注明原作者!

[0] About

openSUSE 是桌面服务器系统 SUSE 的开源版本,以稳定著称,系统工具 YaST 强大,在中国可能流行度不够。Leap 版本是稳定慢更新版,Tumbleweed 是快速更新版。SUSE 最早做出来适用于 RP3B 的 ARMv8 系统,支持几乎所有硬件。本篇将入门 openSUSE Leap 42.3。

[1] Image

打开 RP3B 的系统 介绍页面 ,有多个版本的系统镜像可选,对应不同 GUI 或者无 GUI 的 JeOS。由于那几个 GUI 和系统本身很吃硬件,我选择 JeOS。准备好空的 Micro SD 卡,下载系统 image 到 Linux PC,用 fdisk -l 确认 SD 卡的编号(如 sdb 还是 sdc),注意需要软件包 xzcat。然后执行以下指令,注意 [image.raw.xz] 替换为文件位置,[sd] 替换为 SD 卡编号,参数不能少任何一个: xzcat [image.raw.xz] | dd bs=4M of=/dev/[sd] iflag=fullblock oflag=direct; sync

dd 完成后,应该能看到两个分区 EFI 和 ROOT,不完全占用所有空间。将 5V 2A 或更强 USB Micro-B 电源给 RP3B 供电,不要拿旧线来用,否则工作不稳定!启动后,可以看到界面输出应该填满显示器(ARMv7 系统会有空),分区扩展会自动完成。如果有错误,应该是写入的问题,blocksize (bs) 的指定是必须的。

[2] System

启动后,可以 ssh 或者直接连接键盘操作 RP,root 默认密码 linux。

YaST 是个强大的系统管理工具,能把系统配置到需求状态,可以设置网络、管理软件、控制内核、修改用户......执行 yast 可以启动 YaST。方向键移动,功能键对应不同操作,空格键用于勾选,enter 键用于确认或选择。图形界面很容易操作,不再介绍,可以参考 wiki。用好 YaST,就用好了 openSUSE。

默认只有 vi 编辑器,nano 编辑器要额外安装。

服务管理用 Service Manager。在 Shell 中 service 后接指令即可, service [service] start/stop/status 可以启动或停止或查看服务状态, service [service] enable/disable 可以设置开机启动或不启动服务。在 YaST/System/Services Manager 可以 GUI 操作。

RP 没有实体时钟。设置时间在 /YaST/System/Date and Time 中,将时区改为任意中国城市,在 Other Settings 中设置自动同步:

设置时间同步

Linux 编译各种东西是日常。gcc git make automake cmake wget build 这些软件肯定要。对于其它语言需求,请根据软件包列表和自身需要安装。

[3] Network

(下面的 [if] [dev] 表示 interface,即网络端口,请填写端口名称,如 wlan0 eth0;[phy] 是端口序号,如 0 1。请根据情况替换。)

RP3B 有两个网络芯片:BCM43438 Wi-Fi 芯片,支持 2.4G Wi-Fi,openSUSE 上需要特别操作才能用;LAN9514 以太网控制器,最高 100M 速率,名称 eth0,默认配置为自动连接。修改 /etc/dracut.conf.d/raspberrypi_modules.conf 这个文件(vi 编辑器),改为以下内容,之后执行 mkinitrd ,并重启:

add_drivers+=" bcm2835-sdhost bcm2835_dma mmc_block "
omit_drivers+=" sdhci-iproc"

Wicked 是 openSUSE 指令行的网络管理器。 wicked ifup/ifdown/ifcheck/ifreload [if] 可以启动或关闭或检查或重启端口,wicked ifstatus/show [if] 可以看端口信息。

IFConfig 可以用于配置临时配置网络端口,查看各端口情况和名称: ifconfig [dev] address/netmask/broadcast [IP]/[Netmask]/[Broadcast] 可以为一个端口配置 IP 地址、掩码、广播地址。 ifconfig [dev] 可以查看端口状态信息, ifconfig [dev] up/down 可以启动或者关闭端口, ifconfig [dev] mtu [mtu] 可以设置 MTU 值。

IPRoute2 也可以进行网络管理。 ip link 可以获取网络信息。 ip link show dev [dev] 可以查看某个端口的信息。 ip link set [if] up/down 启用或关闭某个端口。 ip address show 可以打印所有地址信息。 ip addr add [IP]/[netmask] broadcast [broadcast] 可以配置端口静态 IP、掩码、广播地址([netmask] 对应数字,255.255.255.0 是24,255.255.0.0 是16,255.0.0.0 是8,255.255.255.255 是32)。 ip route add default via [IP] 可添加路由出口,出口即网络包从哪出入。

查看无线网络,可以用 iw 。可以 iw list 查看所有芯片及支持能力。 iw dev [dev] info 可以查看指定无线网络芯片信息。 iw dev [if] scan 可以扫描可连接 Wi-Fi,但没法连接 WPA 加密网络。

NetStat 可以看到网络总体连接情况, netstat 输出信息, netstat -r 可以看到路由列表和对应端口 IP, netstat -i 可以看到活跃的网络端口信息, netstat -h 查看用法。

RFKill 用于屏蔽无线通信: rfkill list 列出已连接无线设备及序号, rfkill block/unblock [no] 可以屏蔽或解除某个设备。一般不会用到。

如果要使用 PPPoE 拨号,需要安装软件包 rp-pppoe。 pppoe-setup 即可开始配置,按照引导一步步来。配置后, pppoe-start 启动, netstat -r 应该能看到端口 ppp0, pppoe-stop 停止。如果拨号后 ip route 查看到默认出口不是 ppp,用 ip route 加入并更改默认路由。

YaST 可以在 Shell 中图形界面编辑网络设置,在 Syetem/Network Settings。

YaST 网络管理界面

安装桌面后,一般有 Network Manager 可选用。在 YaST 网络管理页面把管理器换掉,然后桌面右下角的 Network Manager 插件就能用了,命令行是 nmcli 开头。

[4] Software Management

Zypper 是命令行软件管理工具。 zypper update 可以更新软件列表和软件, zypper in [pack] 安装软件, zypper search [name] 可以搜索(含关键字的所有包)并显示是否安装了软件包, zypper rm [pack] 可以删除软件,zyppper repos 可以查看已配置的源。

YaST 第一面就是软件管理,Software Management 即软件管理器,Media Check 是搜索软件包光盘,Software Repositories 是设置软件源。

在高亮位置按空格可以选择操作,如 + 代表安装,- 代表卸载。

openSUSE 软件 列出了已编译的软件包。

[5] GPIO

树莓派的 GPIO 是个好玩的东西,能扩展很多功能,编译 GPIO 程序需要库。

wiringPi 是简单流行的一个 C 库,很容易找到帮助和示例。按照 指引 即可安装: git clone git://git.drogon.net/wiringPi 下载代码, cd wiringPi 进入目录, git pull origin 确认是新版, ./build 进行编译安装。gpio -v 可以查看 RP 型号和 wiringPi 版本,gpio readall 可以查看很多信息,编译需在 gcc 指令末尾加上 -lwiringPi。

RPi.GPIO() 是个 Python 库,适合会 Py 人,容易使用。先安装管理工具 pip,然后 pip install rpi.gpio 下载安装。在代码文件开头加入 import RPi.GPIO as GPIO 即可使用。本人不会 Py,看这里的 说明 吧,还可以找找别人的 examples。

BCM2835 C 是比较底层的库,有点难用,兼容性强。访问 网站 ,找到以 .tar.gz 结尾的链接下载文件(可以在 RP 上用 wget), tar zxvf [bcm2835-1.xx.tar.gz] 解压文件, cd bcm2835-1.xx 进入目录, makemake install 安装。根据版本不同,1.xx 替换成下载的版本。编译时要在 gcc 指令末尾加上 -lbcm2835 才可以。查看 官方示例 、别人的例子和 .h 文件慢慢学习吧。下面是测试程序,如果能编译就是已安装并能用:

#include 
#include 
#include 
int main()
{_Bool test = bcm2835_init();
 bcm2835_close();}

[6] Desk

openSUSE 上可选的桌面很多,已配置的 images 就有几种不同的桌面,能安装的更多。打开 YaST Software Management,搜索 X11,把 xorg-x11 xorg-x11-server yast2-x11 和有关的安装了,这是所有 GUI 必要的。

推荐 LXDE。搜索 LXDE,把 lxcc lxdm lxde-common lxde-common-branding-openSUSE patterns-openSUSE-lxde 选择安装,所需时间比较多。重启后,应该能见到 LXDE 桌面。

如果想要 VNC,可以安装 x11vnc 和 tigervnc,然后 vncserver 配置密码。

[7] End

入门就不写这么多。openSUSE 源于 SUSE,工具很强,有技术支援时很好用。在中国不算流行,服务器也不稳定。系统本身为了先进,占用很多硬件运行东西,运行慢。推荐英语好、有耐心的人折腾, 中文 wiki 可以看看。

简书

责编内容by:简书 (源链)。感谢您的支持!

您可能感兴趣的

Adafruit的树莓派教程第十二课:感知运动... 概览 在这节课里,你将学习到如何使用PIR人体热式传感器连接GPIO来激活门禁。 这节课,我们将把注意力放到感知运动和激活门禁开关上。我们会在...
树莓派新手入门教程 树莓派 (Raspberry Pi)是学习计算机知识、架设服务器的好工具,价格低廉,可玩性高。 本文根据我的亲身经验,介绍如何从零开始,...
Vivaldi Web Browser Comes to the Raspberry Pi Vivaldi web browser is now available for Raspberry Pi. The customizatio...
Building ARM Docker images on the Raspberry Pi Install Docker for ARM using the install script: curl -sSL https://get.docker....
低成本安全硬件(二):RFID on PN532 * 原创作者:ya0guang,本文属FreeBuf原创奖励计划,未经许可禁止转载 引言 鉴于硬件安全对于大多数新人是较少接触的,而这方面又非...