01-Linux常用系统定制

01-Linux常用系统定制

符号说明

  • SDK$:指代源码路径

  • console$:泛指主板的命令行控制台。主板命令行控制台

  • ADB$:Android Debug Bridge 命令行工具,泛指可运行 ADB 的环境

ADB 功能

ADB 教程arrow-up-right

SCP 文件传输

用法

usage: scp [-346ABCOpqRrsTv] [-c cipher] [-D sftp_server_path] [-F ssh_config]
           [-i identity_file] [-J destination] [-l limit]
           [-o ssh_option] [-P port] [-S program] source ... target

快速使用

$ scp $local_path usrname@$ip:$target_path

$local_path - 本地文件路径

$username - 用户名

$ip - 主板ip

$target_path - 目标路径

示例:

屏幕显示方向配置

Debian12

获取使用帮助

查看屏幕信息

旋转控制

根据xrandr,已知目前已连接显示设备 HDMI-1,DSI-1

对 HDMI-1 进行旋转设置

画面正常显示

向右旋转,顺时针旋转90度

向左旋转,顺时针旋转270度

反转,顺时针旋转180度

触摸校准

第一歩 安装工具

第二步 查看 Device 和 ID,可知 goodix-ts 设备id 为 11

第三歩 重置转置矩阵和校准矩阵,这里非常关键,转置矩阵需要根据屏幕旋转,校准矩阵设置默认值即可

修改触摸方向(可根据名字修改) 默认方向

修改触摸方向(可根据名字修改) 向左90度

修改触摸方向(可根据名字修改) 向右90度

修改触摸方向(可根据名字修改) 旋转180度

第四步 开始校准

语言配置

debian12

修改系统语言,请打开命令行终端,执行以下命令。重新启动使修改生效

  • 设置英文语言

  • 设置中文语言

时区配置

命令执行后,重启生效

  • 设置时区亚洲/上海

  • 设置时区美国/纽约

网络配置

使用 ifconfigroute 命令(临时设置)

这种方法在系统重启后会失效,但可以快速测试固定 IP 的配置。

  1. 使用 ifconfig 命令设置 IP 地址、子网掩码和广播地址

例如:

  • sudo:以管理员权限运行命令。

  • ifconfig:用于配置网络接口。

  • eth0:网络接口名称,你可以通过 ifconfig -a 查看自己的网络接口名称,可能是 eth0ens33 或其他名称。

  • <IP 地址>:你想要设置的固定 IP 地址。

  • <子网掩码>:通常是 255.255.255.0 或其他子网掩码。

  • <广播地址>:一般是根据 IP 地址和子网掩码计算得出,例如,对于 192.168.1.100255.255.255.0 的子网掩码,广播地址是 192.168.1.255

  1. 使用 route 命令设置网关

例如:

  • route:用于配置路由。

  • add default gw <网关地址>:添加默认网关。

  • <网关地址>:你的网络网关地址。

使用 /etc/network/interfaces 文件(长期设置)

这种方法可以实现长期稳定的固定 IP 配置。

  1. 编辑 /etc/network/interfaces 文件

  • sudo:以管理员权限运行命令。

  1. 添加或修改网络接口配置

  • auto eth0:表示在系统启动时自动启用 eth0 接口。

  • iface eth0 inet static:表示 eth0 接口使用静态 IP 配置。

  • address:设置 IP 地址。

  • netmask:设置子网掩码。

  • gateway:设置网关。

  • dns-nameservers:设置 DNS 服务器,这里使用了 Google 的 DNS 服务器,你可以使用其他 DNS 服务器,如 114.114.114.114 等。

  1. 保存并退出编辑器

  • vi 中,按 ESC,然后输入:wqENTER键保存并退出。

  1. 重启网络服务或系统

或者直接重启系统:

图像化界面配置WIFI热点

Ubuntu、Debian

1.确保连接以太网

2.单击网络图标打开图像化网络配置界面(Debian:右键 “两台PC图标”)

image-20250901152628037

3.添加WiFi节点

image-20250901152731237

4.选择Wi-Fi类型

image-20250901152814149

5.进行WiFi网络节点配置

image-20250901153026817

SSID:WiFi名称

Mode:模式

Device:使用的设备

6.配置WiFi热点的安全属性

image-20250901154557971

None: 无密码

WPA/WPA2/WPA3 Personal : 常用加密模式

WPA3 Personal: 只支持WPA3

Enhanced Open:公共网络的安全标准

命令行配置WIFI热点(AP)模式

安装依赖和create_ap

create_ap官方介绍文档:

  • 创建虚拟接口:共享WiFi

创建虚拟网卡

是真实无线网卡名,可通过ifconfig查看,是虚拟的无线网卡名

例如命令

查看创建情况

注意:重启电脑后,这里创建的虚拟网卡就会失效

使用create_ap创建热点

是你的无线网卡的姓名, 虚拟网卡名, 分别是创建的热点wifi名和密码

例如

如果创建的热点卡住,开启热点时报如下错误:

可以如下操作停止之前创建的热点,然后重启开启热点。

虚拟网卡名

  • 使用物理接口:共享以太网

创建热点MyAccessPoint,密码:12345678,共享eth0网络

遇到错误可以先参考create_ap常见问题

使用create_ap后 想恢复WiFi 节点

  • 开机就启动热点

配置create_ap 配置文件

关键配置如下项

启动 create_ap.service服务

服务如果存在问题,可以进行修改

例如:添加kill dnsmasq

NFS配置

环境配置

服务器端

  1. 配置共享的文件

  1. 启动服务

  1. 查看当前服务器共享文件,证明共享成果

客户端

  1. 查看服务器共享文件

  1. 挂载文件夹

  1. 挂载成功

Chrome 硬件加速

测试平台:K7 Debian12 Chrome

测试方法

​ 1.拷贝1080P及4K的视频到板子,通过chrome浏览器本地解码。

​ 2.查看GPU占用:

​ 3.打开帧解码日志并打印:

eMMC分区

**注意:**重新分区均需要重新烧录,如果系统不想被格式化,请先备份rootfs

修改有两种方法:

  • 完整镜像修改

参考固件解包和打包,修改parameter.txt文件后重新打包

  • SDK内修改

修改对应板子型号路径下文件,后重新编译

RK3576:

修改的内容:

重新分区主要修改分区文件parameter.txt

例如:将剩余所有空间放到根目录下

文件分区规则:分区大小:分区起始地址(分区名称)

分区大小:0x01c00000*512Byte/1024/1024/1014 ≈ 14G

分区起始地址=前一个分区起始地址+前一个分区大小

最后一个分区格式为:-@0x0xxxxx(xxx:grow) -表示剩余所有空间自适应

Linux系统需要额外加一步修改

将oem userdate的自动挂载注释掉

备份文件系统

注意:这种方式替换后的rootfs 可能存在mount挂载UUID问题 可以blkid查看正确的UUID 然后修改/etc/fstab

接好U盘在板子上,大小至少16GB以上,打包出来的镜像会比较大

脚本位于网盘:

将脚本拷贝到板子Linux系统上运行

ff_export_rootfs (存储设备路径) -t ext4

生成的包名格式如:(系统) _ (存储类型) _ (时间戳).img

/mnt/usb 为U盘挂载的目录

由于文件系统较大,备份系统需要等待较长时间

由于 FAT32 单个文件不超4G,不建议使用该格式文件系统存储设备进行备份

重新打包,将rootfs.img替换进完整镜像,参考固件解包和打包

也可以对需要替换这个系统的板子单独烧录rootfs.img

4G/5G配置

脚本配置

4G/5G移动模块开机配置,检测模块是否存在,进行配置拨号

开机默认仅会拨号一次,在信号不好或通讯异常情况,可能会存在拨号失败的情况

若无网络,可运行拨号脚本进行重试

拨号脚本,已适配 RG200U / EC200 / EC20

RG200U由模块自动拨号,可通过强制配置并重启此模块

此操作会重置模块,需要等待 /dev/ttyUSB2 重新挂载后,4G_dialing.sh 重新进行拨号配置

即:

  1. $ 4G_dialing.sh force

  2. 等待 /dev/ttyUSB2

  3. $ 4G_dialing.sh

上网识别

判断是否接入模块

查看日志进行判断

/dev/ttyUSB2 exists and is a character device.

代表设备识别成功

或查看 /dev/ttyUSB2 是否存在

判断是否拨号成功

实际设备名称为 enx*,以实际为准

ping网络测试

指定设备 enx3e003a5bd6ad 进行ping网络测试

GPU

查看GPU使⽤率

示例:实时查看使用率

$ watch -n 1 'cat /sys/devices/platform/*gpu/utilisation'

移动鼠标或窗口或进行GPU测试,可以查看GPU使⽤率来确定硬加速是否有⽤起来

GLmark2 性能测试

Rockchip 提供 npu 测试脚本

Debian / Ubuntu 文件系统已内置 glmark2-es 性能测试工具

使用虚拟终端或调试串口终端,执行以下命令开始 GPU 性能测试

800x600 glmark2测试分数为 1405

测试结果仅做参考,实际分数以实际测量为准

NPU

Debian / Ubuntu

Rockchip 提供 npu 测试脚本

npu 频率测试脚本 npu_freq_scaling.sh

示例:npu变频运行60秒,每10秒变频一次

npu 压力测试脚本 npu_stress_test.sh

Begin perf... 后的内容展示了模型多次运行的性能数据:

  • 每次记录了运行的序号以及对应的耗时(Elapse Time)和每秒处理帧数(FPS)。例如,0: Elapse Time = 2.85ms, FPS = 351.12表示第 1 次运行模型推理时,总共花费了 2.85 毫秒的时间,由此计算出每秒可以处理 351.12 帧的数据(FPS 的计算方式就是 1000 除以每次的耗时,单位换算后得到每秒的帧数)。

---- Top5 ---- 部分呈现了模型推理输出结果中概率排名前 5 的类别及其对应的概率值和类别编号:

  • 0.935059 - 156表示模型认为输入的数据(比如可能是一张图像)最有可能属于编号为 156 的类别,其对应的概率高达 0.935059,这个概率值相对较高,说明模型对该判断有比较高的置信度。

  • 后续的0.057037 - 1550.003881 - 2050.003119 - 2840.000172 - 285分别列出了概率排名第 2 到第 5 的类别编号及其概率值,这些概率值依次递减,表明模型对它们属于相应类别判断的把握程度也逐渐降低。

RKNN 部署

系统支持部署 rknn-toolkit2,rknn_model_zoo,参考 rockhip 官方文档如下:

https://github.com/airockchip/rknn-toolkit2/tree/master/doc

https://github.com/airockchip/rknn_model_zoo/tree/main/docs

MPP

调试信息

开启调试信息

开启调试信息后,在调用硬件编解码会有类似如下日志信息 [ 893.134037] rk_vcodec: 27b00100.rkvdec:0 session 3705:19 time: 1333 us hw 1312 us [ 893.167444] rk_vcodec: 27b00100.rkvdec:0 session 3705:19 time: 1381 us hw 1313 us [ 893.200503] rk_vcodec: 27b00100.rkvdec:0 session 3705:19 time: 1420 us hw 1313 us

关闭调试信息

Debian / Ubuntu

Rockchip 提供了 MPP 相关工具进行使用

硬编码测试

mpi_enc_test

  • 编码H.264 4096x2160 100帧测试

查看结果

$ tail -f /var/log/syslog

kickpi mpp[3557]: mpi_enc_test: chn 0 encode 100 frames time 3763 ms delay 27 ms fps 26.57 bps 10605252

  • 编码H.265 4096x2160 100帧测试

查看结果

$ tail -f /var/log/syslog

kickpi mpp[3560]: mpi_enc_test: chn 0 encode 100 frames time 4086 ms delay 36 ms fps 24.47 bps 19594276

硬解码测试

mpi_dec_test

  • 解码H.264 4096x2160 100帧测试

查看结果

$ tail -f /var/log/syslog

kickpi mpp[3564]: mpi_dec_test: decode 100 frames time 596 ms delay 25 ms fps 167.53

  • 解码H.265 4096x2160 100帧测试

查看结果

$ tail -f /var/log/syslog

kickpi mpp[3569]: mpi_dec_test: decode 100 frames time 803 ms delay 49 ms fps 124.47

chromium视频测试

板卡连接显示设备,打开虚拟终端 或 调试串口终端,执行以下命令开始 chromium 视频测试

ubuntu 中 rockchip chromium 和 gstreamer 配置硬解码存在兼容性问题!

默认配置 chromium 进行调用,若chromium未调用硬解码,需要以下命令进行修复

配置后,默认 chromium 可调用硬解码

gstreamer视频测试

如果有mpp调⽤的字样,说明硬件解码成功调用。

ubuntu 中 rockchip chromium 和 gstreamer 配置硬解码存在兼容性问题!

默认配置 chromium 进行调用,若需要 gstreamer 调用硬解码,需要以下命令进行修复

此命令需要联网,保证'apt update'成功

配置后,默认 gstreamer 可调用硬解码

GCC⼯具链

安装命令

常见问题

Linux系统烧录后第一次开机重启问题

通⽤Debian为了兼容不同芯⽚,/etc/init.d/rockchip.sh 第⼀次启动的时候,会根据芯⽚安装各种差异包,⽐如 libmaliisp等packages,安装完后会重启显⽰服务。 如果是独⽴项⽬可以放到制作镜像的时候处理这部分差异即可。

create_ap

dnsmasq报错

如果创建遇到

因为create_ap 需要启动 dnsmasq,但是dnsmasq已经启动了

找到dnsmasq对应的PID

因为iw版本6.7以上兼容补丁

Last updated