我正在尝试通过提供以下参数的 u-boot args 在 yocto linux 上设置 640x480 分辨率:
videomode=mxcfb0:dev=ldb,640x480p@60,if=RGB666
或使用
videomode=mxcfb0:dev=ldb,LDB-VGA-NL,if=RGB666
但是这两个参数都不起作用: 我得到了正确的垂直分辨率,但水平分辨率更大, 我可以看到大约 3/4 的水平屏幕。
相反,如果我以更高分辨率启动,比如说 WVGS (800x600), 我可以通过 xrandr 给出以下命令来解决这个问题:
xrandr --fb 640x480
屏幕获得了正确的分辨率,无论如何在命令之后我得到了 xrandr 消息
specified screen 640x480 not large enough for output DISP3 BG (800x480+0+0)
在第一种情况下(600x480 启动参数),即使我给 xrandr 命令没有任何改变。 我可以在不使用更高分辨率启动然后给出 xrandr --fb 640x480 命令的情况下获得正确的分辨率吗?
我曾尝试将启动脚本放入 etc/init.d 文件夹,但没有成功。
最佳答案
根据您的目标分辨率验证您的显示时间(hactive、vactive 和其他)。
例如:
lvds-channel@0 {
fsl,data-mapping = "spwg";
fsl,data-width = <24>;
crtc = "ipu1-di0";
reg = <0>;
primary;
status = "okay";
display-timings {
native-mode = <&timing1>;
timing0: dgt4 {
clock-frequency = <61627500>;
****hactive = <1280>;
vactive = <720>;****
hback-porch = <250>;
hfront-porch = <75>;
vback-porch = <20>;
vfront-porch = <5>;
hsync-len = <40>;
vsync-len = <5>;
linux,phandle = <&timing0>;
您从启动模式/内核命令中提供的命令是针对帧缓冲区的,而不是针对显示硬件的。
根据目标显示分辨率调整lvds的时序参数。
关于linux - 无法在 yocto linux 上为 lvds 屏幕设置正确的分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43094122/