Raspbian 教学系统安装、配置流程

Raspbian教学系统安装、配置流程

 

本文介绍了基于Raspbian 的教学操作系统的安装、配置流程。整个软件系统安装配置适用于6-18岁青少年、儿童的编程教育。

本安装的基础环境: Raspberry-pi 3B + raspbian strenth

1. 配置网络

因为大多数Raspbian通过 VNC操作,所以能连上网是第一步。

将 Rpi 接到一台显示器上,连好键盘和鼠标,开机启动

1.1配置IP地址

配置文件路径

# sudo nano /etc/dhcpcd.conf

从文件名可以看出,这里是配置动态IP 的地方,当然也可以配置静态IP, 那么到底是配置静态IP还是动态IP呢?

(1)动态 IP 配置

不动此文件中的配置,默认就是动态IP,有线和无线都是。但有时网络中没有 dhcp 服务,比如用电脑直连Rpi 时,如果不配置一个IP,则没法连接到 Rpi 上,如果这时没有可外接的显示器,则Rpi 将无法使用。一种变通的方法是当没有 DHCP时,系统自动启用一个静态IP, 这就是 static profile。 dhcpcd.conf 配置文件中,去掉 #define static profile 以面语句的注释,即可实现这种效果。

 

即当有DHCP时,自动获取IP, 没有时,使用 192.168.2.3 这个地址。

(2)静态IP 配置

此外,也可以配置静态IP地址,如下所示,一旦配置了静态 IP 地址,就无法使用 DHCP 了。

下面分别给出配置 eth0, 和 wlan0 两个设备静态IP

#配置以太网卡

interface eth0

static ip_address=192.168.1.15

static routers=192.168.1.1

static domian_name_servers=114.114.114.114

static domian_name_servers=114.114.115.115

#配置无线网卡

interface wlan0

static ip_address=192.168.1.15

static routers=192.168.1.1

static domian_name_servers=114.114.114.114

static domian_name_servers=114.114.115.115

如果要配置为用有线链接 VNC, 用无线wifi上网的话,只需要添加以下一行即可,无线上网采用 DHCP

interface eth0

static ip_address=192.168.2.11   # 这个 IP 要有别于无线网络所在的网段,并且不可配置 routers 和 domain_name_servers 这两个参数,否是无线也无法上网

1.2 配置无线Wifi

wifi 帐号密码保存文件为  /etc/wpa_supplicant/wpa_supplicant.conf

打开后内容如下

 

其中每个network 保存了一组wifi ID,密码,加密方式。只要照此添加即可。

2. 开启VNC服务

两种方法,基于x桌面和字符界面

2.1 x桌面

启动 Raspberry Pi Configuration

 

Interfaces页中将VNC置为 Enabled 

 2.2 字符界面

$sudo raspi-config

打开字符配置界面,选择第5项 Interfacing Options

 

选择 p3 VNC

 

选择 Yes

 

完成该项配置后,就可以在电脑中通过 VNC连接上来进行后面的操作了

3. 配置分辨率

Raspberry Pi 没有 BIOS,所有的配置都写在 config.txt 文件中

配置文件及路径

$ sudo nano /boot/config.txt

取消以下几行配置的注释,并赋值如下

hdmi_group=2   # 1表示用电视规格分辨率CEA, 2表示用计算机规格分辨率DMT。

hdmi_mode=47  # 1440×900 50Hz 分辨率

在末尾行添加

hdmi_ignore_edid=0xa5000080 

将显存在小设为128M

gpu_men=128

某些时侯,过小的显存会导致在使用VNC时导致连接成功后闪退。

该项是命令树莓派不检测HDMI设备的任何信息,只按照我们指定的分辨率输出。 如果不加,树莓派可能仍会“自作聪明”的检测HDMI设备的分辨率,结果造成我们设置的分辨率无效。

如果插到显示器上没反应,把系统目录下的config.txt里的hdmi_safe=1前面的注释去掉。

4. 调整交换分区大小

Raspbian 默认的交换分区大小是100M,这对于运行复杂的编译程序是不够,建议交换分区大小与内存大小一致,因此需要将交换换分区大小调整为896M

以前通过修改 /var/swap文件大小来调整 swap 分区大小是错误的,因为重新启动后,大小又还原了,正确的做法是在 /etc/dphys-swapfile 文件中进行配置

找到

CONF_SWAPSIZE=100

将其改为 

CONF_SWAPSIZE=896

重启,查看交换分区大小,确认修改正确

$ free

5. 配置键盘

raspbian默认的键盘布局为 gb ,这会导致键盘上的 @ # | \ 变为 ” £ ~ # @

可以在 X 界面或 字符 界面下进行键盘配置

5.1 X 界面配置键盘

开始菜单选择 Mouse and keyboard Settings

 

Keyboard Layout 中选择 United States English(US)

 

5.2 字符界面配置键盘

选第4项 Localisation Optinos 

 

选第3项 Change Keyboard Layout

 

5.3 修改配置文件

配置文件位置

$ sudo nano /etc/default/keyboard 

修改含有 XKBMODEL 这行,改为 

XKBMODEL=”cn”  # (默认被设置成了 gb )

重启即可。

6. 配置字符集

 

 

 

7. 配置时区

7.1 通过字符界面配置

地区选亚洲

 

城市选上海 或 重庆

 

完成以上配置后会要求重新启动系统

7.2 通过配置文件配置(Stretch版不用)

6.2.1 编辑配置文件

$ sudo nano /etc/rc.conf  # 如果不存在,就创建

修改成如下内容:

LOCALE="en_US.UTF-8"

DAEMON_LOCALE="no"

HARDWARECLOCK="localtime"

TIMEZONE="Asia/Shanghai"

6.2.2 使用NTP来自动对时

NTP是Network Time Protocol, 需要在系统中先安装openntpd:

$ sudo apt-get install openntpd

在/etc/rc.conf中添加最后一句话(在第一步时已经添加,表示让openntpd开机启动):

DAEMONS=(syslog-ng network netfs crond openntpd sshd)

重启即可。

 

8. 配置apt-get源

后面的配置需要就需要安装新的软件了,为了在国内能流畅下载,需要更换apt-get 的源,推荐使用中科大的源(参见 《设置Raspbian apt-get 国内软件源》 )。

配置文件位置

$ sudo nano /etc/apt/sources.list

删除原文件所有内容,用以下内容取代(以下是阿里云):

deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contrib

deb-src http://mirrors.aliyun.com/raspbian/raspbian/ stretch main non-free contrib

编辑此文件后执行以下命令,更新软件列表.

$ sudo apt-get update 

9. 安装中文字体

虽然设置了中文字符集,但Raspbian没有预装中文字体,需要自己安装

这里采用先装字体再设置这了符集的方式,因为先设置了字符集而没有字体,则会显示方块内码,根本无法阅读。所以将安装顺序改动一下。

Raspbian继承了Debian的一个毛病:就算选了默认中文,也不自动安装中文字体。

所以只设置系统支持中文,也无法马上显示汉字。进入桌面会出现乱码,但 Raspbian stretch 后的版本就已经自带中文字体了:

输入命令安装以下中文字体

$sudo apt-get -y install ttf-wqy-zenhei           #文泉驿正黑

$sudo apt-get -y install ttf-wqy-microhei        #文泉驿微黑

$sudo apt-get -y install xfonts-wqy                #点阵宋体

$sudo apt-get -y install fonts-arphic-ukai       #文鼎楷体

$sudo apt-get -y install fonts-arphic-uming    #文鼎明体

10. 安装中文输入法

安装一个非常好用的拼音输入法:

$sudo apt-get -y install scim-pinyin

11. 安装应用软件

11.1安装 Veyon 电子教室软件

安装方法及流程参见 《Linux电子教室软件 Veyon 安装及配置》

直接安装编译成功的 deb 包,将deb包拷贝到Download目录下

$ dpkg -i veyon_4.0.4_armv7l.deb

 

使用 以下命令安装依赖的包

$ apt –fix-broken install

依赖解决后,Veyon也一并安装完成

但是在 Raspbian Buster上安装时,报告的依赖关系如下

 

用 apt-get install 安装以下依赖包 liblzo2-dev  libqca2-dev libqca-qt5-2-dev

另外从Debian — Package Download Selection — libprocps6_3.3.12-3+deb9u1_armhf.deb下载libprocps6_3.3.12-3+deb9u1_armhf.deb 依赖包安装。

11.2. 安装影音播放器 Mplayer, KMplayer

$ sudo apt-get install mplayer

KMpalyer 是 Mplayer的 KDE界面版本

11.3. 安装 Tux4Kid 系列软件

Tux4Kid包括 TuxTyping, TuxPaint, TuxMath 三个软件

$sudo apt-get install tuxtype

$sudo apt-get install tuxpaint

$sudo apt-get install tuxmath

11.4. Kig 几何作图软件,

$sudo apt-get install kig

安装大小:122M

11.5 Okular 电子文档阅读软件 

支持pdf 等多种格式,界面功能比Raspbian自带的要好

$sudo apt-get install okular

安装大小 160M

11.6 Krita 专业电子彩绘软件

功能强大比拟photoshop,对于 Raspbian 系统需要编译安装

目前没有进入 debian 软件库

11.7 安装 KMix 声卡驱动混音及管理软件

库存名:kmix

安装大小:1.7M

11.8 安装 Kdenlive 视频非编软件

库存名:kdenlive

安装大小:121M

安装后首次启动提示

 

运行不太流畅,CPU占用率高

11.9 安装Arduino IDE

$sudo apt-get install arduino

11.10 安装 Dia 绘图软件

$sudo apt-get install dia

11.11 安装gimp 图像处理软件

$sudo apt-get install gimp

gimp是Linux 下替代photoshop 的软件

11.12 安装 Audacity 音频编辑工具

安装大小 34.2M

试用点评:全中文界面,社区支持,支持MP3格式,使用简便,一看就会,功能非富

11.12 安装 xchm chm阅读器

安装大小 662k

试用点评:全中文界面,社区支持,支持MP3格式,使用简便,一看就会,功能非富

11.13 安装 Kalzium 元素周期表软件

安装大小 24M 试用点评:全英文界面,界面美面,易于使用

11.14 安装 Kmplot 函数图象绘制软件

安装大小 20M

试用点评:安装后首次运行有问题

11.15 安装 Kstarts 星图软件

安装大小 87.4M

试用点评:无重庆座标,需要下载当地数据包,但下载失败

11.16 安装 Labplot 科学数据可视化软件

安装大小 21M

试用点评:安装后首次无法启动

11.17 安装 Step 二维物理仿真软件

安装大小 17.4M

试用点评:中文界面,可运行

11.18 安装 Cantor 数据函数软件

安装大小 194M

试用点评:中文界面,可运行

11.18 安装 S4A Arduino图形编程界面

deb 方式安装

安装包大小 33.5M

试用点评:中文界面,安装成功后, 需要先用 Arduino IDE 向Arduino 中装入fireware 程序,装完后才能连接。

附带的 固件程序为 S4AFirmware16.ino 

S4A是一种在线编程的方式,只要连上USB线,打开 S4A,则Rpi 就会一直与 Arduino 通信,可以从 Arduino 一直闪烁的 Tx/Rx 灯上看出来。

已测可编程控制

11.18 安装 Qtcreator Qt开发软件

安装大小 

试用点评:中文界面,可运行

安装 qtcreator 前还需要安装 qt5-default 即Qt基础包,详见 Qt5开发环境搭建文档

# sudo apt-get install qtcreator

11.19 安装 shutter 截屏软件

shutter是一款非常棒的 Linux 截屏工具(不支持录屏),支持指定区域截屏,截图编辑等功能。

截图自动保存在 pi/picture 目录下

安装 shutter 时会附带安装一个 ImageMagic 软件工具

安装大小 76M

$ sudo apt-get install shutter

 

在Raspbian Buster 上安装会出现以下依赖问题

 

libgnome2-perl   libgoo-canvas-perl   libgtk2-appindicator-perl

尝试从安装源中找到这个三个依赖包

11.20 安装 Samba 

 

 

 

11.21 安装Omxplayer

Omxplayer是一款利用树莓派GPU硬解码实现1080P流畅播放的软件。

 

更多使用信息请参阅“Omxplayer——树莓派的硬件解码播放神器”博文。

12. 删除下载文件及编译文件

apt安装的软件下载保存在  /var/cache/apt/archives下,下面命令及时清除这些文件。

$ sudo apt-get clean 

13 拷贝范例文件

音视频文件,pdf文件,各拷贝一份,测试用

14. 整理任务栏、桌面、开始菜单

14.1 整理任务栏

任务栏右击 选"面板设置”

 

 

双击快速启动栏弹出下面窗口

 

整理成如下窗口

 

14.2 整理桌面

整理桌面主要是删除桌面无用的图标,将桌面背景图片替换为带有 企业Logo 的桌面背景图片

/usr/share/rpd-wallpaper

用做好logo的图片替换这个目录里的文件

14.3 整理开始菜单

整理开始菜单包括三项工作,1. 将应用程序重新归类 2. 删除某些应用存在于多个菜单的情况 3. 为各个应用图标添加中文标识

菜单项的 desktop 文件位于 /usr/share/applications 目录下

找到菜单项对应的 desktop 文件并进行修改。

每个desktop文件包含以下各标识

Name 名称

GenericName 通用名

Commnet 说明

Exec 执行文件

Icon 图标

Type 类型

StartupNotify

Categories 类别(决定菜单项在哪个目录分支下) Education 教育: Setting 设置 : Network 网络 ….

X-Ubuntu-Gettext-Domain 

15 后期开发配置

15.1 配置 root 帐户

Raspbian 默认情况下 root 帐户是 lock 了的,即没有启用。登录系统使用的主要是 pi 用户。为了安全考虑pi 用户在学生接管系统后,应由学生设一个自己密码(否则后期学生掌握了远程技术后会用 pi 帐号干环事)。但为了方便教师管理学生机,如:分发文件,系统升级,过行程序等,教师仍要有权限可以登录学生机,因此有必要拿到系统的 root 权限。操作步骤如下:

1. 为 root 设置密码

$ sudo passwd root

2. 解锁 root 帐户

$ sudo passwd –unlock root

 

如果要重新锁定 root 用户可以如下操作

$ sudo passwd –lock root

 

3. 测试用户是否可用

$ su root

4. 如果要切换为 系统启动登录到 root 帐户,可以修改 

$ sudo nano /etc/systemd/system/getty.target.wants/getty@tty1.service

将第28行 ExecStart=-/sbin/agetty –noclear %I $TERM 

改为: ExecStart=-/sbin/agetty –autologin root –noclear %I $TERM

重启以后系统自动以root帐户登录了。

目前,安装学生系统并不需要做这一步。

5. 让 ssh 可以 root 帐号登录

编辑 /etc/ssh/sshd_config ,搜索 PermitRootLogin 关键字

# PermitRootLogin prohibit-password

改为

PermitRootLogin yes

重启系统

现在 root 帐户可以使用了,但 root 帐户还并不安全,因为 pi 用户还可以以 sudo  方式更改 root 帐户的密码。让 pi 失去更改 root 帐户密码的权限。

15.2 收回部分sudo权限

因为有了 sudo,pi用户可以以 root 的身份做一些事情,到底能做哪些事情呢?这一切都在sudoers 这个配置文件中的定义中。

sudo 的配置位于/etc/sudoers文件中,但是并不能直接打开这个文件编辑,需要用 visudo 命令来编辑,这个命令与普通编辑的不同之处在于,当编辑格式有误时,会无法保存,并给予提示,防止该配置文件遭到破坏。

1. 查看 pi 用户当前拥有的 sudo 权限

$ sudo -l

可以看到,只要 sudo,就可以运行任何命令,包括给 root 用户改密码 sudo passwd,这是非常危险的。

 

2. 重新配置 /etc/sudoers 文件

因此,在任意位置执行以下命令即可打开对该文件的编辑

$ sudo visudo 

 

 

可以看到在 User privilege 中给了 root 用户 以任何主机名(第一个ALL),以任何组的任何帐号(ALL:ALL),执行任何命令(最后一个ALL)

下面一行 Allow members of group sudo中,给了 sudo 组同样的权限,这就是造成 sudo -l 查询时看以的pi权限中的第一个 (ALL:ALL) ALL,因此这一行需要更改

但我们并没有看到产生 (ALL)NOPASSWD: ALL 这条权限的语句

我们还注意最后一行 #includedir 包含了一个文件进来,这里 # 并不是注释,而是一条包含语句,于是打开对应 目录查看,果然这里有 010_pi-nopasswd 

 

于是用编辑打开查看,里面有这样一句

 

因此,在以上各处的 ALL 后添加排除语句 !/usr/bin/passwd,!/usr/sbin/visudo,!/bin/nano /etc/sudoers,!/bin/nano /etc/sudoers.d/010_pi-nopasswd,!/usr/bin/vi /etc/sudoers,!/usr/bin/vi /etc/sudoers.d/010_pi-nopasswd 将所有可以修改这两个文件的命令的权限都取消。

 

sudoers.d 目录下的010文件也一并加

 

添加再次查看 sudo 权限,符合我们的要求了

 

试验一下,

 

成功,pi 用户无法sudo 修改root 密码了。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平