跳转至

Armbian 系统定制

Note

K2B V1 使用 Kickpi-k2b-v1 镜像,K2B V2 使用 Kickpi-k2b-v2 镜像!

目前已适配 Armbian 系统的主板如下:

主板 SOC 平台 系统
K2B H618 Allwinner Ubuntu24.04 xfce、Ubuntu24.04 minimal
K2C H618 Allwinner Ubuntu24.04 xfce、Ubuntu24.04 minimal
K7 RK3576 Rockchip Ubuntu24.04 gnome、Ubuntu24.04 server
K7C RK3576 Rockchip Ubuntu24.04 gnome、Ubuntu24.04 server
K7S RK3576 Rockchip Ubuntu24.04 gnome、Ubuntu24.04 server

Rockchip 系列

MIPI 显示屏配置

主板中已存在 dtbo 文件:

/boot/dtb-6.1.115-vendor-rk35xx/rockchip/overlay/rk3576-kickpi-lcd-mipi-AT101DS40I.dtbo
/boot/dtb-6.1.115-vendor-rk35xx/rockchip/overlay/rk3576-kickpi-lcd-mipi-MX101BA1340.dtbo
/boot/dtb-6.1.115-vendor-rk35xx/rockchip/overlay/rk3576-kickpi-lcd-mipi-MX080B2140.dtbo
/boot/dtb-6.1.115-vendor-rk35xx/rockchip/overlay/rk3576-kickpi-lcd-mipi-F050008M01.dtbo

操作示例(连接 MX080B2140 8寸屏):

$ vim /boot/armbianEnv.txt 
verbosity=1
bootlogo=true
console=both
overlay_prefix=rk35xx
fdtfile=rockchip/rk3576-kickpi-k7.dtb
rootdev=UUID=389fa6c5-33a8-4653-99ec-f532b9d5a742
rootfstype=ext4
overlays=rk3576-kickpi-lcd-mipi-MX080B2140
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

Armbian 镜像导出与修改

1. 导出文件系统至 U 盘:

sudo ./ff_export_rootfs /mnt/ -t ext4

2. 确认镜像大小,若导出镜像大于原镜像容量,需扩容:

sudo fallocate -l 9G armbian.img
sudo losetup -P /dev/loop777 ./armbian.img
sudo parted /dev/loop777
# (parted) print free
# (parted) resizepart 1 100%
# (parted) quit
sudo e2fsck -f /dev/loop777p1
sudo resize2fs /dev/loop777p1

3. 挂载并替换文件系统:

sudo mount /dev/loop777p1 orgin/
sudo mount ext4.img copy/
sudo cp -rfp copy/* orgin/
sudo umount copy/ orgin/
sudo losetup -d /dev/loop777

RK RKNN 部署

Rockchip 系列主板 Armbian 系统支持部署 rknn-toolkit2rknn_model_zoo,详细步骤见 NPU 开发

Allwinner 系列

GPU 测试

GLmark2 性能测试(连接 HDMI-1080P 显示器)

# 安装 GLmark2 工具
sudo apt install glmark2 glmark2-es2 -y

kickpi@kickpi-k2b-v2:~$ glmark2-es2
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    Mali-G31 (Panfrost)
    GL_VERSION:     OpenGL ES 3.1 Mesa 25.2.8-0ubuntu0.24.04.1
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================

...

=======================================================
                                  glmark2 Score: 216
=======================================================

GLmark2 性能测试(串口终端测试)

# 安装 GLmark2 工具
sudo apt install glmark2-es2-drm -y

kickpi@kickpi-k2b-v2:~$ glmark2-es2-drm
Warning: DRM_CAP_ASYNC_PAGE_FLIP not supported, falling back to 'mailbox' mode for SwapInterval(0).
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    Mali-G31 (Panfrost)
    GL_VERSION:     OpenGL ES 3.1 Mesa 25.2.8-0ubuntu0.24.04.1
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   1920x1080 fullscreen
=======================================================
[build] use-vbo=false:Error: Failed to become DRM master (hint: glmark2-drm needs to be run in a VT)
 FPS: 278 FrameTime: 3.598 ms
=======================================================
                                  glmark2 Score: 277
=======================================================

测试结果:外接显示屏可查看GPU渲染图形(得分约216),调试串口可查看GPU渲染日志(得分约277)

VPU 测试

# 安装GStreamer
sudo apt install -y gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad ffmpeg

ffmpeg -decoders 2>/dev/null | grep -E "v4l2|cedrus"

# 生成原始 YUV 源
ffmpeg -f lavfi -i testsrc=duration=5:size=1920x1080:rate=30 \
    -pix_fmt yuv420p -f rawvideo temp.yuv -y

H.264 硬件解码测试

# 编码 H.264 (2Mbps CBR)
ffmpeg -s 1920x1080 -r 30 -pix_fmt yuv420p -i temp.yuv \
    -c:v libx264 -b:v 2M -maxrate 2M -bufsize 4M \
    -preset medium -x264-params "nal-hrd=cbr" test_h264.mkv -y


# 使用 GStreamer 强制 VPU 硬解
time gst-launch-1.0 filesrc location=test_h264.mkv \
    ! matroskademux ! h264parse ! v4l2slh264dec ! fakesink -t

Execution ended after 0:00:04.852539138

real    0m5.170s
user    0m4.379s
sys     0m0.160s

H.265 硬件解码测试

# 编码 H.265 (2Mbps CBR)
ffmpeg -s 1920x1080 -r 30 -pix_fmt yuv420p -i temp.yuv \
    -c:v libx265 -b:v 2M -maxrate 2M -bufsize 4M \
    -preset medium -x265-params "hrd=1" test_h265.mkv -y

# 使用 GStreamer 强制 VPU 硬解
time gst-launch-1.0 filesrc location=test_h265.mkv \
    ! matroskademux ! h265parse ! v4l2slh265dec ! fakesink -t

Execution ended after 0:00:04.438429614

real    0m4.684s
user    0m4.528s
sys     0m0.113s

测试结果:目前系统默认的软件版本无法支持FFmpeg硬件编解码;GStreamer 硬解码测试可行

解码 H.264 1920x1080 150帧测试 fps 30.9

解码 H.265 1920x1080 150帧测试 fps 33.8

通用修改

Chromium 浏览器

sudo apt update
sudo apt install chromium

FireFox 浏览器

firefox 存在 profile 问题,重启后无法打开:

# 方法一:配置管理器
firefox -profilemanager

# 方法二:删除旧 profile
rm ~/.mozilla/firefox/ -rfv