无法在yocto linux上为lvds屏幕设置rigth分辨率

时间:2017-03-29 12:54:01

标签: linux screen-resolution

我试图通过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文件夹中,但是没有用。

1 个答案:

答案 0 :(得分:0)

根据您的目标分辨率验证您的显示时间(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>;

你从boot mode / kernel命令给出的命令是帧缓冲区,但不是显示硬件。

根据目标显示分辨率调整lvds的时序参数。