@anruliu 在 请教关于D1-H_Tina_open V2.0的LCD驱动未加载问题 中说:
@dyd2022 这是开机logo的大小,你替换一张开机logo和你lcd匹配的分辨率即可
感谢大佬
原因找到了,问题有四个:
1、这个 boot_fb0 其实是u-boot的设备树 lcd 节点,我只改了内核的设备树,需要把u-boot的设备树 disp和lcd节点设置的和内核的一样
kernel 板级配置:device/config/chips/d1-h/configs/nezha/linux-5.4/board.dts
uboot 板级配置:device/config/chips/d1-h/configs/nezha/uboot-board.dts
2、u-boot需要配置支持st7701s驱动:
配置文件路径:lichee/brandy-2.0/u-boot-2018/configs/sun20iw1p1_defconfig
3、修改bootlogo.bmp图片文件,源文件是一个800x1280的图片,需要替换成我的480x480文件(图片尺寸太大内核日志会显示错误信息),文件路径:device/config/chips/d1-h/configs/nezha/configs
4、修改st7701s的驱动初始化设置,一般买屏幕卖家会提供初始化代码,修改成自己屏幕的初始化设置
我开始在内核中加了很多屏幕初始化日志,但是一大部分没打印,我以为是内核的驱动没加载,后来发现好像是u-boot做了初始化内核就不做初始化了,内核直接把u-boot的framebuffer复制了一份就接着显示了,系统起来之后输入 cat /dev/random > /dev/fb0 会出现雪花屏,不知道我的理解对不对,要是不对欢迎大佬指正
还有点小问题就是启动过程中屏幕会闪一下,看另一个大佬说的是因为内核复制完u-boot的framebuffer后还没来得及显示,u-boot就把显示关了,所以会闪一下,还请大佬们指点下这个咋改。