linux - 无法在 yocto linux 上为 lvds 屏幕设置正确的分辨率

标签 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 文件夹,但没有成功。

最佳答案

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

相关文章:

linux - 如何将位序列(位掩码)转换为相应的十六进制数

c++ - 在 Linux 下以编程方式更改屏幕分辨率而无需监视器?

c# - 多分辨率图像在 WP8 中无法正确渲染

android - Android SurfaceView 中的分辨率独立性

安装了 Python 3.x,但 python UNIX 命令启动 Python 2.x

linux - `sed` 有效,但 `sed -i` 返回错误

ios - 在 100% 缩放时没有滚动条的情况下查看 iPad 模拟器(纵向)的最低分辨率是多少

ios - 为 IPAD Air 获取不正确的屏幕分辨率

linux - 查看当前存在多少 SSH 连接

android - 如何修复 'TableLayout'内的组件在不同屏幕上的错误显示?