如何确认设备文件 /dev/fb0 对应的帧缓冲设备是开发板上的LCD屏?如何查看LCD屏的属性信息?

要判断 /dev/fb0 是否对应的是 LCD 屏幕,可以通过以下几种方法:


方法 1:使用 fbset 命令查看帧缓冲设备的属性信息

Linux 的 帧缓冲设备(Framebuffer) 通常在 /dev/fbX 下,/dev/fb0 一般是主屏幕(如果有多个屏幕,可能会有 /dev/fb1/dev/fb2 等)。你可以用 fbset 命令检查 /dev/fb0 的属性:

fbset -fb /dev/fb0

运行结果如下:
在这里插入图片描述

mode "1024x600-59"
        # D: 50.000 MHz, H: 37.202 kHz, V: 58.586 Hz
        geometry 1024 600 1024 600 32
        timings 20000 140 160 20 12 20 3
        accel false
        rgba 8/16,8/8,8/0,0/0
endmode
  • geometry 1024 600:分辨率为 1024x600,说明可能是一个 LCD 屏。
  • timings:描述了刷新率、时序等参数,LCD 屏一般有这些信息。
  • accel true:可能表示启用了加速,通常在 LCD 屏上会有。

方法 2:查看 /sys/class/graphics/fb0/name

你可以读取 /sys/class/graphics/fb0/name 这个文件,它会显示 /dev/fb0 对应的设备名称:

cat /sys/class/graphics/fb0/name
  • 如果输出是 “mxs-lcd”、“lcd”、“tft” 之类的,就说明 /dev/fb0 连接的是 LCD 屏。
  • 如果输出是 “HDMI”、“VGA”,则 /dev/fb0 可能对应的是外部显示器。

我实测的运行结果如下:
在这里插入图片描述
说明是一个LCD屏。


方法 3:检查 /proc/fb

你也可以查看 /proc/fb 文件,它列出了所有的帧缓冲设备:

cat /proc/fb

运行结果如下:
在这里插入图片描述

0 mxs-lcdif

这里:

  • 0 表示 /dev/fb0
  • mxs-lcdif 是 LCD 控制器的名称,说明 /dev/fb0 是 LCD 屏。

如果看到 HDMIVGADRM framebuffer 之类的名称,说明 /dev/fb0 可能不是 LCD,而是外部显示设备。


方法 4:直接写入 /dev/fb0 测试

可以直接往 /dev/fb0 写入数据,看看 LCD 是否有变化:

cat /dev/urandom > /dev/fb0

如果 LCD 屏幕出现杂乱的彩色噪点,说明 /dev/fb0 确实对应的是 LCD 屏。如果屏幕没有任何变化,可能 /dev/fb0 不是 LCD 设备。

注意:这个命令会让屏幕显示乱码,重启或刷新屏幕才能恢复!

运行结果如下:
在这里插入图片描述


方法 5:使用 ls /dev/fb* 看是否有多个 Framebuffer

如果你的设备有多个 framebuffer,可能 LCD 不是 /dev/fb0,而是 /dev/fb1 或其他:

ls /dev/fb*

如果有 /dev/fb1,可以用上面的方法检查 /dev/fb1 是否是 LCD 屏。


方法 6:检查设备树(仅适用于嵌入式设备)

如果你的开发板使用 Device Tree,你可以查看 /proc/device-tree/ 里的 display 节点:

ls /proc/device-tree/soc/ | grep fb

或者:

find /proc/device-tree/ -name "fb*"

如果 fb 设备挂载在 lcd 相关的节点下,说明 /dev/fb0 可能是 LCD 屏。


结论

你可以综合使用以上方法判断 /dev/fb0 是否是 LCD 屏:

  • 最快的方法cat /sys/class/graphics/fb0/name,如果输出包含 "lcd",说明是 LCD 屏。
  • 详细查看:用 fbset -fb /dev/fb0 查看分辨率和时序。
  • 直接测试:用 cat /dev/urandom > /dev/fb0 观察屏幕是否变化。

你可以先试试 cat /sys/class/graphics/fb0/name,看看输出是什么? 😊

在某嵌入式开发板上, LINUX系统中, 有/dev/fb0 和/dev/fb1 二个显示设备文件, 但物理上只有 一个液晶显示 。在 ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1 这个目录下,有下列设备文件或目录(fb0 也有对应文件存在) ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1 ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/console ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/device ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/subsystem ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/mode ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/stride ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/power ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/power/runtime_suspended_time ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/power/autosuspend_delay_ms ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/power/runtime_active_time ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/power/control ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/power/runtime_status ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/dev ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/cursor ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/virtual_size ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/bits_per_pixel ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/pan ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/state ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/blank ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/uevent ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/rotate ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/name ./sys/devices/platform/ahb0/13050000.dpu/graphics/fb1/modes 请简单介绍上述文件的作用,特别是, 请重点说明如何操作, 可以在程序运行过程中, 让幕显示从fb0 切换到fb1;
最新发布
11-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昊虹AI笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值