使用正点原子RK3588的mipi屏幕作为终端

修改后可以直接在MIPI屏幕看见内核日志和启动过程,方便调试

修改的地方

关闭 Qt 桌面自启动 + 打开 tty1 登录

rk3588_sdk/buildroot/configs/rockchip_atk_dlrk3588_defconfig

关闭 Qt 桌面自启动 + 打开 tty1 登录文件:rockchip_atk_dlrk3588_defconfig

  • BR2_PACKAGE_SYSTEMUI is not set

  • BR2_TARGET_GENERIC_GETTY=y

  • BR2_TARGET_GENERIC_GETTY_PORT="tty1"

  • BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP=y

  • BR2_TARGET_GENERIC_GETTY_TERM="linux"

作用:开机不再起 systemui,并在 LCD 对应的 tty1 出现登录提示

图片

固化 inittab(同时保留 LCD + 串口登录)

rk3588_sdk/buildroot/board/rockchip/rk3588/fs-overlay/etc/inittab

# /etc/inittab
#
# BusyBox init configuration for ATK RK3588:
# - tty1: local MIPI terminal
# - ttyFIQ0: serial terminal

# Startup the system
::sysinit:/bin/mount -t proc proc /proc
::sysinit:/bin/mount -o remount,rw /
::sysinit:/bin/mkdir -p /dev/pts /dev/shm
::sysinit:/bin/mount -a
::sysinit:/bin/mkdir -p /run/lock/subsys
::sysinit:/sbin/swapon -a
null::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
null::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
null::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
null::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr
::sysinit:/bin/hostname -F /etc/hostname
::sysinit:/etc/init.d/rcS

# Local and serial login prompts
tty1::respawn:/sbin/getty -L tty1 0 linux
ttyFIQ0::respawn:/sbin/getty -L ttyFIQ0 1500000 vt100

# Shutdown
::shutdown:/etc/init.d/rcK
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r

关键行:

  • tty1::respawn:/sbin/getty -L tty1 0 linux

  • ttyFIQ0::respawn:/sbin/getty -L ttyFIQ0 1500000 vt100

作用:LCD 和串口都能登录(都有 login 提示)。

内核 bootargs 增加 LCD 控制台与日志

rk3588_sdk/kernel/arch/arm64/boot/dts/rockchip/rk3588-linux.dtsi

图片

chosen: chosen {
		bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 console=tty1 loglevel=7 ignore_loglevel irqchip.gicv3_pseudo_nmi=0 root=PARTUUID=614e0000-0000 rw rootwait";
	};

清除glibc缓存

cd /home/lhb/linux/rk3588_driver/rk3588_sdk

./build.sh clean:rootfs

然后重新构建

最终改动

源码永久改动(会进版本管理)

  1. Buildroot 机型配置改为终端优先rockchip_atk_dlrk3588_defconfig

    • 关闭 systemui 自启动:# BR2_PACKAGE_SYSTEMUI is not set

    • 启用本地终端登录:tty1 getty

    • 禁用会抢屏的用户态栈:

* # BR2_PACKAGE_WAYLAND is not set

* # BR2_PACKAGE_WESTON is not set

* # BR2_PACKAGE_CHROMIUM_WAYLAND is not set

* # BR2_PACKAGE_QT5WAYLAND is not set

  1. 新增 rootfs overlay 的 inittab(双登录口)inittab

    • tty1 登录提示

    • ttyFIQ0 串口登录提示

  2. 内核启动参数加入本地控制台与日志(你之前要求看内核开机状态)rk3588-linux.dtsi

    • 增加:console=tty1 loglevel=7 ignore_loglevel

    • 保留:console=ttyFIQ0

  3. 内核 defconfig 打开 fb 控制台并关闭企鹅rockchip_linux_defconfig

    • 打开:CONFIG_FRAMEBUFFER_CONSOLE=y

    • 关闭:# CONFIG_LOGO is not set(去掉开机企鹅)

图片

  • rk3588_sdk/buildroot/configs/rockchip_atk_dlrk3588_defconfig

  • rk3588_sdk/buildroot/board/rockchip/rk3588/fs-overlay/etc/inittab

  • rk3588_sdk/kernel/arch/arm64/boot/dts/rockchip/rk3588-linux.dtsi

  • rk3588_sdk/kernel/arch/arm64/configs/rockchip_linux_defconfig

可以查看我github仓库的rk3588_kernel分支
https://github.com/HanbinLuo/rk3588_driver_learning.git

posted @ 2026-06-16 18:19  嵌入式点灯小白  阅读(2)  评论(0)    收藏  举报