Ubuntu Desktop 系统特点如下
- 桌面环境:采用 LXDE 或 GNOME
- 系统服务:针对嵌入式平台,精简系统服务
- 图形支持:提供基于 Arm Mali GPU 的 OpenGL、OpenCL 支持
- 视频编解码:提供基于 Rockchip VPU + Mpp 的视频硬编解码支持
- 开发框架:适配 QT、Docker、Electron 等开发框架
- 接口支持:提供一系列接口以操作板载资源设备
- 文件系统:系统采用 overlayfs 文件系统,支持导出 rootfs,二次打包等功能
用户和密码设置
ADB使用
有线ADB
通过 Type-C 或双头 USB 连接设备和 PC 端
adb devices
adb shell
SSH使用
SSH连接
查看开发板 IP 地址
ifconfig
PC 端通过网络访问
ssh neardi@192.168.x.x
SSH拷贝
从PC 端拷贝 test.txt 到设备/home/neardi目录
scp /Users/work/neardi/test.txt neardi@192.168.x.x:/home/neardi/
从设备/home/neardi目录拷贝 test.txt 到PC 端
scp neardi@192.168.x.x:/home/neardi/test.txt /Users/work/neardi/
固定以太网IP地址
编辑 /etc/network/interfaces 文件,添加 eth0 和 eth1 的配置。
sudo vi /etc/network/interfaces
完整配置文件示例:
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto eth0
iface eth0 inet static
address 192.168.100.100
netmask 255.255.255.0
gateway 192.168.100.200
auto eth1
iface eth1 inet static
address 192.168.101.100
netmask 255.255.255.0
gateway 192.168.101.200
配置说明:
- auto eth0 和 auto eth1:表示系统启动时自动启用 eth0 和 eth1 网络接口。
- iface eth0 inet static 和 iface eth1 inet static:指定 eth0 和 eth1 使用静态IP配置。
- address:指定静态IP地址。
- netmask:指定子网掩码。
- gateway:指定网关地址。
应用配置或重启设备生效:
sudo ifdown eth0 && sudo ifup eth0
sudo ifdown eth1 && sudo ifup eth1
设置以太网规则
识别以太网控制器
首先,使用 lspci 命令识别以太网控制器:
neardi@LPA3588:~$ lspci
0002:21:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
创建Udev规则
为了确保以太网设备每次启动时都分配相同的设备名称,创建一个Udev规则。这个规则文件应该放在 /etc/udev/rules.d/ 目录下。
创建并编辑 /etc/udev/rules.d/70-persistent-net.rules 文件:
sudo vi /etc/udev/rules.d/70-persistent-net.rules
在文件中添加以下内容,以确保特定的以太网控制器总是被识别为 eth2:
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0002:21:00.0", NAME="eth2"
说明
- ACTION=="add":指定当设备添加时触发该规则。
- SUBSYSTEM=="net":仅针对网络子系统设备。
- KERNELS=="0002:21:00.0":设备的PCI地址,用于唯一标识特定的以太网控制器。
- NAME="eth0":分配设备名称为 eth4。
应用新规则或重启设备生效:
sudo udevadm control --reload-rules
sudo udevadm trigger
验证设置
使用 ip link 或 ifconfig 命令来验证设备名称是否已正确分配:
ifconfig eth2
通过这些步骤,可以确保以太网设备每次启动时都分配相同的设备名称,避免由于设备名称变化引起的网络配置问题。
修改DNS
Ubuntu 20.04 系统中的 DNS 配置,使用 systemd-resolved 服务,可以通过编辑 /etc/systemd/resolved.conf
文件来实现。
neardi@LPA3588:~$ cat /etc/systemd/resolved.conf
[Resolve]
DNS=8.8.8.8
#FallbackDNS=
#Domains=
修改保存后,重启 systemd-resolved 服务或重启系统保证生效。
# 重启 systemd-resolved 服务
sudo systemctl restart systemd-resolved
# 重启系统
sudo reboot
Ubuntu 系统中创建新用户并配置自动登录
以下脚本和配置说明展示了如何在 Ubuntu 系统中创建一个新用户,并将其添加到指定的用户组中。之后,修改 LightDM 配置文件,使系统在启动时自动登录该用户。
1. 创建新用户并设置用户组
编写 new_user.sh
脚本
#!/bin/bash
# 创建新用户 `test`,设置默认 shell 为 `/bin/bash`,并创建主目录
useradd -G sudo -m -s /bin/bash test
# 设置用户 `test` 的密码为 `test`
echo 'test:test' | chpasswd
# 将用户 `test` 添加到 `video` 和 `audio` 组,以确保其具有访问音视频设备的权限
usermod -aG video test
usermod -aG audio test
赋予脚本执行权限
chmod +x new_user.sh
运行脚本
neardi@LPA3588:~$./new_user.sh
2. 配置 LightDM 以自动登录新用户
要使系统在启动时自动登录新创建的用户 test
,需要修改 /etc/lightdm/lightdm.conf
文件。
+++ b/lightdm.conf
@@ -1,4 +1,4 @@
[SeatDefaults]
-autologin-user=neardi
+autologin-user=test
autologin-user-timeout=0
user-session=LXDE
修改后重启系统。
安装浏览器
sudo apt update
sudo apt install chromium-browser //Chrome浏览器
sudo apt install firefox //火狐浏览器
Chrome浏览器内核需要打开如下配置:
+++ b/kernel/arch/arm64/configs/rockchip_linux_defconfig
@@ -607,6 +607,8 @@ CONFIG_JFFS2_FS=y
CONFIG_UBIFS_FS=y
CONFIG_UBIFS_FS_ADVANCED_COMPR=y
CONFIG_SQUASHFS=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
CONFIG_PSTORE=y
CONFIG_PSTORE_CONSOLE=y
CONFIG_PSTORE_RAM=y
切换成无界面模式
在 Ubuntu 上可以通过以下命令切换系统运行级别,从而选择启动进入字符模式(无界面)或图形模式:
#字符模式
sudo systemctl set-default multi-user.target
#图形模式
sudo systemctl set-default graphical.target
切换后重启设备。
若无法开机,需要修改源码:
SDK/kernel/arch/arm64/configs/rockchip_linux_defconfig
加入以下三个配置,重新编译kernel
CONFIG_DUMMY_CONSOLE_COLUMNS=100
CONFIG_DUMMY_CONSOLE_ROWS=100
CONFIG_FRAMEBUFFER_CONSOLE=y