首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 25-03-05 01:21
  • 3315
  • 9665
blog.csdn.net

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


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

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

fbset -fb /dev/fb0
  • 1

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

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 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
  • 1
  • 如果输出是 “mxs-lcd”、“lcd”、“tft” 之类的,就说明 /dev/fb0 连接的是 LCD 屏。
  • 如果输出是 “HDMI”、“VGA”,则 /dev/fb0 可能对应的是外部显示器。

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


方法 3:检查 /proc/fb

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

cat /proc/fb
  • 1

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

0 mxs-lcdif
  • 1

这里:

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

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


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

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

cat /dev/urandom > /dev/fb0
  • 1

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

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

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


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

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

ls /dev/fb*
  • 1

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


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

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

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

或者:

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

如果 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,看看输出是什么? ?

昊虹嵌入式技术交流群
QQ群名片
注:本文转载自blog.csdn.net的昊虹AI笔记的文章"https://blog.csdn.net/wenhao_ir/article/details/145438283"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top