问题反馈 输出官方的命令:
代码语言:javascript复制cd /sys/kernel/debug/dispdbg
echo disp0 > name; echo switch1 > command; echo 4 10 0 0 0x4 0x101 0 0 0 8 > param; echo 1 > start;
屏幕有logo出现,但是输入命令
cat /dev/urandom > /dev/fb0
后,屏幕只显示了大概一半的屏。怎么设置显示全屏呀。 也就是怎么设置分辨率屏幕信息。 另外能解释以下param参数信息吗?
问题解决: 1、关于显示不全的原因是fb0在内核显示驱动初始化的时候会申请fb0的buffer,这时就指定了fb0的分辨率,因此后面通过命令去切换成HDMI显示的时候,分辨率基本上就对应不上,修改方法有一种,就是开机的时候就指定默认HDMI输出,如下所示,修改完毕后需要重新编译uboot,在lichee/brandy-2.0/u-boot-2018目录下执行make clean && muboot
代码语言:javascript复制diff --git a/configs/nezha/uboot-board.dts b/configs/nezha/uboot-board.dts
index 793dec2..d95a320 100644
--- a/configs/nezha/uboot-board.dts
b/configs/nezha/uboot-board.dts
@@ -229,15 229,15 @@
screen1_output_scan = <0>;
screen1_output_aspect_ratio = <8>;
- dev0_output_type = <1>;
- dev0_output_mode = <4>;
dev0_output_type = <3>;
dev0_output_mode = <10>;
dev0_screen_id = <0>;
- dev0_do_hpd = <0>;
dev0_do_hpd = <1>;
- dev1_output_type = <4>;
- dev1_output_mode = <10>;
dev1_output_type = <1>;
dev1_output_mode = <4>;
dev1_screen_id = <1>;
- dev1_do_hpd = <1>;
dev1_do_hpd = <0>;
def_output_dev = <0>;
hdmi_mode_check = <1>;
2、param参数信息中4 10分别代表DISP_OUTPUT_TYPE_HDMI和DISP_TV_MOD_1080P_60HZ,后面的参数一般不用关心,可以在linux-5.4/include/video/sunxi_display2.h看到相关宏定义
代码语言:javascript复制enum disp_output_type {
DISP_OUTPUT_TYPE_NONE = 0,
DISP_OUTPUT_TYPE_LCD = 1,
DISP_OUTPUT_TYPE_TV = 2,
DISP_OUTPUT_TYPE_HDMI = 4,
/***/
};
代码语言:javascript复制enum disp_tv_mode {
DISP_TV_MOD_480I = 0,
DISP_TV_MOD_576I = 1,
DISP_TV_MOD_480P = 2,
DISP_TV_MOD_576P = 3,
DISP_TV_MOD_720P_50HZ = 4,
DISP_TV_MOD_720P_60HZ = 5,
DISP_TV_MOD_1080I_50HZ = 6,
DISP_TV_MOD_1080I_60HZ = 7,
DISP_TV_MOD_1080P_24HZ = 8,
DISP_TV_MOD_1080P_50HZ = 9,
DISP_TV_MOD_1080P_60HZ = 0xa,
/***/
还需要注意一点是默认开机logo分辨率为800*1280,改了默认HDMI输出后,logo会显示不正常 开机logo位于device/config/chips/d1/configs/nezha/configs/bootlogo.bmp
原贴链接:https://bbs.aw-ol.com/topic/10/