使用正点原子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
然后重新构建
最终改动
源码永久改动(会进版本管理)
-
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
-
新增 rootfs overlay 的 inittab(双登录口)inittab
-
tty1 登录提示
-
ttyFIQ0 串口登录提示
-
-
内核启动参数加入本地控制台与日志(你之前要求看内核开机状态)rk3588-linux.dtsi
-
增加:console=tty1 loglevel=7 ignore_loglevel
-
保留:console=ttyFIQ0
-
-
内核 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

浙公网安备 33010602011771号