01-Linux常用系统定制
01-Linux常用系统定制
符号说明
SDK$:指代源码路径console$:泛指主板的命令行控制台。主板命令行控制台ADB$:Android Debug Bridge 命令行工具,泛指可运行 ADB 的环境
ADB 功能
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
修改系统语言,请打开命令行终端,执行以下命令。重新启动使修改生效
设置英文语言
设置中文语言
时区配置
命令执行后,重启生效
设置时区亚洲/上海
设置时区美国/纽约
网络配置
使用 ifconfig 和 route 命令(临时设置)
这种方法在系统重启后会失效,但可以快速测试固定 IP 的配置。
使用
ifconfig命令设置 IP 地址、子网掩码和广播地址:
例如:
sudo:以管理员权限运行命令。
ifconfig:用于配置网络接口。
eth0:网络接口名称,你可以通过ifconfig -a查看自己的网络接口名称,可能是eth0、ens33或其他名称。
<IP 地址>:你想要设置的固定 IP 地址。
<子网掩码>:通常是255.255.255.0或其他子网掩码。
<广播地址>:一般是根据 IP 地址和子网掩码计算得出,例如,对于192.168.1.100和255.255.255.0的子网掩码,广播地址是192.168.1.255。
使用
route命令设置网关:
例如:
route:用于配置路由。
add default gw <网关地址>:添加默认网关。
<网关地址>:你的网络网关地址。
使用 /etc/network/interfaces 文件(长期设置)
这种方法可以实现长期稳定的固定 IP 配置。
编辑
/etc/network/interfaces文件:
sudo:以管理员权限运行命令。
添加或修改网络接口配置:
auto eth0:表示在系统启动时自动启用eth0接口。
iface eth0 inet static:表示eth0接口使用静态 IP 配置。
address:设置 IP 地址。
netmask:设置子网掩码。
gateway:设置网关。
dns-nameservers:设置 DNS 服务器,这里使用了 Google 的 DNS 服务器,你可以使用其他 DNS 服务器,如114.114.114.114等。
保存并退出编辑器:
在
vi中,按ESC,然后输入:wq,ENTER键保存并退出。
重启网络服务或系统:
或者直接重启系统:
图像化界面配置WIFI热点
Ubuntu、Debian
1.确保连接以太网
2.单击网络图标打开图像化网络配置界面(Debian:右键 “两台PC图标”)

3.添加WiFi节点

4.选择Wi-Fi类型

5.进行WiFi网络节点配置

SSID:WiFi名称
Mode:模式
Device:使用的设备
6.配置WiFi热点的安全属性

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配置
环境配置
服务器端
配置共享的文件
启动服务
查看当前服务器共享文件,证明共享成果
客户端
查看服务器共享文件
挂载文件夹
挂载成功
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 重新进行拨号配置
即:
$ 4G_dialing.sh force
等待 /dev/ttyUSB2
$ 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 - 155、0.003881 - 205、0.003119 - 284、0.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 第⼀次启动的时候,会根据芯⽚安装各种差异包,⽐如 libmali 、isp等packages,安装完后会重启显⽰服务。 如果是独⽴项⽬可以放到制作镜像的时候处理这部分差异即可。
create_ap
dnsmasq报错
如果创建遇到
因为create_ap 需要启动 dnsmasq,但是dnsmasq已经启动了
找到dnsmasq对应的PID
因为iw版本6.7以上兼容补丁
Last updated