drm设备不工作

DRM驱动(九)之drm_vblank 本文从app到kernel drm driver,vblank更新的详细过程。 阅读详情

在设备升级新版内核后,发现没有 fb0 设备,开机没有打印 drm 相关的信息

首先是检查设备树,确认加入 panel 节点

panel: panel {
		compatible = "lg,lb070wv8”, “simple-panel";
		#address-cells = <1>;
		#size-cells = <0>;
		enable-gpios = <&pio 4 6 GPIO_ACTIVE_HIGH>;

		port@0 {
			reg = <0>;
			#address-cells = <1>;
			#size-cells = <0>;

			panel_input: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&tcon0_out_lcd>;
			};
		};
	};

其次是检查内核是否开启了相关的驱动,这里使用的是 lichepi nano,依赖的驱动是 SUN4I 系列的驱动

CONFIG_DRM_SUN4I=y
CONFIG_DRM_SUN4I_HDMI=y
CONFIG_DRM_SUN4I_BACKEND=y

不过在检查完上面两个地方没有问题后,还是没有解决问题

为了获取 drm 启动过程中的更多信息,在 uboot 的 bootargs 中加入 drm.debug=0x1f debug ,让内核打印 drm 的更多信息

[    1.079849] [drm:drm_core_init] Initialized
[    1.084524] [drm:sun4i_drv_probe] Adding component /soc/display-backend@1e60000
[    1.092143] [drm:sun4i_drv_probe] Adding component /soc/lcd-controller@1c0c000
[    1.099606] [drm:sun4i_drv_probe] Adding component /panel
[    1.105025] [drm:sun4i_drv_traverse_endpoints] No output to bind on port 1
[    1.124695] [drm:compare_of] Comparing of node /soc/lcd-controller@1c0c000 with /soc/display-backend@1e60000
...

发现内核尝试着挂载 /panel 节点,这个本来是不用挂载的

修改 suniv_quirks,加上 has_channel_0 的配置。缺少 has_channel_0 会让内核认为这个 TCON 没有 RGB 口

static const struct sun4i_tcon_quirks suniv_quirks = {
    .has_channel_0		= true,
	.has_channel_1		= true,
};

重新编译烧录后,drm 的启动信息如下。内核没有再去挂载 /panel 节点了,不过 drm 的启动还是没有成功

[    1.079943] [drm:drm_core_init] Initialized
[    1.084616] [drm:sun4i_drv_probe] Adding component /soc/display-backend@1e60000
[    1.092235] [drm:sun4i_drv_probe] Adding component /soc/lcd-controller@1c0c000
[    1.099662] [drm:sun4i_drv_traverse_endpoints] Endpoint is our panel... skipping
[    1.121843] [drm:compare_of] Comparing of node /soc/display-backend@1e60000 with /soc/display-backend@1e60000
[    1.131931] [drm:compare_of] Comparing of node /soc/display-backend@1e60000 with /soc/lcd-controller@1c0c000

后来在看到了这份 commit 中说的内容,将 .has_channel_1 屏蔽掉,drm 正常工作了

static const struct sun4i_tcon_quirks suniv_f1c100s_quirks = {
	/*
	 * The F1C100s SoC has a second channel in TCON, but the clock input of
	 * it is not documented.
	 */
	.has_channel_0		= true,
	/* .has_channel_1	= true, */
};

感谢

非常感谢这两位大神给我的帮助

Linux内核4.14版本——drm框架分析(1)——drm简介 drm框架分析 阅读详情

相关推荐

DRM系列五:注册DRM设备--drm_dev_register

在/sys/kernel/debug/dri/minor_id下为指定的 CRTC 创建一个以crct-x(crtc_id)的目录,并在该目录下添加与 CRTC 相关的调试文件。drm_debugfs_list下有一组调试文件,为state,这里面是plane\crtc\connector的状态信息。drm_connector_registration_state的状态有三种,分别是未注册、初始化中和已注册。初始化debugfs,创建/sys/kernel/debug/dri/minor_id的目录。

sdsc1314的博客 1309

【LCD】【二】 px30驱动移植 - LCD屏驱动讲解(encode + panel )

px30 LCD屏的学习移植过程,记录一下学习过程

weixin_34799243的博客 3724

深入讲解DRM架构介绍(一)

传统linux显示设备驱动开发时,通常使用FB驱动架构,随着显卡性能升级:显示覆盖(菜单层级)、GPU加速、硬件光标,传统FB架构无法很好支持,此外,对于多应用的访问冲突也无法很好控制。在这样的背景下,DRM应用而生。DRM是linux内核中负责与显卡交互的管理架构,用户空间很方便的利用DRM提供的API,实现3D渲染、视频解码和GPU计算等工作。

youzhangjing_的博客 4886

linux调试手段

打开linux log print

qq_37567470的博客 1968

Simple-Panel

#简单面板 自述文件即将推出...

rockchip_drm_integration_helper-zh.pdf

概述 DRM全称是Direct Rendering Manager,管理进行显示输出的, buffer分配, 帧缓冲. libdrm库提供了一系列友好的控制封装, 使用户可以方便的进行显示的控制, 但并不是 只能通过libdrm库来 控制drm, 用户可以直接操作drm的ioctl或者是使用framebuffer的 接口实现显示操作. 后面重点介绍kernel态 drm的机制. 以下为drm显示大致框架:

drm调试手段

😄 好记性不如烂笔头:不定期更新记录~ drm调试信息手段记录

Linux Openharmony Android Graphics Stack! 2787

k8s 查看cpu使用率最高的pod

在 Kubernetes 中,可以使用命令查看 Pod 的资源使用情况,从而找到 CPU 使用率最高的 Pod。

u010674101的专栏 3344

(六)正点原子4.3寸RGB屏幕驱动--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>

正点原子ATK4384屏幕,分辨率800*480,支持RGB接口,RGB LCD接口信号线如下所示:

kashine的博客 9420

fMRI独立成分分析方法(ICA)工具GIFT

详细介绍了进行fmri数据进行ICA分析的工具包GIFT的使用,和进行ICA分析的流程。

m0_58256026的博客 1万+

大学物理第二章 质点动力学详解

大学物理第二章 质点动力学概念详解

weixin_63026364的博客 1万+

最简单的 DRM 应用 & drm设备不工作

为了获取 drm 启动过程中的更多信息,在 uboot 的 bootargs 中加入 drm.debug=0x1f debug ,让内核打印 drm 的更多信息。其次是检查内核是否开启了相关的驱动,这里使用的是 lichepi nano,依赖的驱动是 SUN4I 系列的驱动。内核没有再去挂载 /panel 节点了,不过 drm 的启动还是没有成功。在设备升级新版内核后,发现没有 fb0 设备,开机没有打印 drm 相关的信息。中说的内容,将 .has_channel_1 屏蔽掉,drm 正常工作了。

爱她就要努力 1201

C# 上位机开发完全指南:从零开始构建工业控制系统

摘要: 本文详细介绍了使用C#开发工业自动化上位机系统的关键技术和方法。上位机作为工业控制的核心枢纽,负责与PLC、传感器等设备通信,实现数据采集、监控和控制。开发基于C#的上位机需掌握Windows Forms/WPF界面设计、Modbus/OPC等通信协议,以及SQL数据库存储。文章分步讲解了环境搭建、界面设计、设备通信(以Modbus和TCP/IP为例)、数据存储与展示等关键环节,并强调多线程优化与异常处理的重要性。通过C#和.NET技术栈,开发者能够构建高效稳定的工业控制系统,未来可扩展至云平台和物

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1013

screen+设备树配置实战案例详解

深入讲解screen+在嵌入式系统中的应用,结合设备树配置的实际操作步骤,帮助开发者快速掌握screen+与硬件描述的协同工作方式,提升开发效率。

weixin_32306683的博客 390

HDOCK 蛋白蛋白对接软件使用;LZerD、pyDock、ClusPro网页在线对接

参考:hdock支持蛋白与蛋白,也支持蛋白与核酸对接计算。

weixin_42357472的博客 1万+

Windows11搭建GPU版本PyTorch 开发环境教程

Windows11搭建GPU版本PyTorch环境详细过程

世界那么大,我想去看看~【随心更新,看世界去了😄】 3236

RK3588摄像头与LCD协同开发:设备树配置、V4L2/DRM框架与性能优化实战

嵌入式视觉系统中,MIPI CSI与DSI接口共享D-PHY物理层,V4L2与DRM框架分别负责摄像头采集和显示输出,二者协同工作依赖设备树精确配置与DDR带宽合理规划。通过DMA-BUF零拷贝和AFBC压缩技术,可显著降低CPU占用与端到端延迟,提升系统流畅度。该方案广泛应用于智能视觉终端、工业检测设备及AI边缘计算场景。本文以RK3588为例,深入解析摄像头与LCD同时工作的设备树配置、驱动加载顺序及典型问题排查,助力开发者实现从能跑到好用的工程落地。

weixin_31858171的博客 323

QT入门开发一个时钟

本文讲述了时钟开发的具体过程以及代码。 涉及到一下几个知识点: 1. 定时器使用 2. 本地时间获取 3. resource资源读取 4. 图片绘制 5. 图片按照中心旋转 6. sin或者cos角度计算。

啊渊的专栏 5142

DRM(一):什么是DRM

DRM内部的Objects是组成DRM框架的核心,下图中蓝色部分为物理硬件的抽象,棕色部分则为软件的抽象,其中GEM结构体为:drm_gem_object,其余部分位于结构体drm_mode_object中.PS:drm_panel不属于object范畴,只是为了降低LCD驱动与encoder驱动间的耦合,是一堆回调函数集合。这个图真的太哇塞了。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1万+

Sigrity Power DC Single-BoardPackage IR Drop Analysis模式进行单板压降仿真分析操作指导

如果需要单独对某个via设置参数,右侧选择Setup by padstack,下方下拉选择某个via,单独设置参数即可。举例:板厚1.6mm,内层1OZ(1.2mil,即0.03mm),铜皮宽度1mm,20度温升,允许通流I为2.5A。目的是模拟实际情况,via的孔壁电镀1mil,中间是空心的,让via不完全被填充金属成为实心via。Upper/lower Tolerance:上下公差,设置为5%,也就是压降允许的范围。电流密度计算公式:J=I/A(J为电流密度,I为电流,A为横截面积)

weixin_54787054的博客 695

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【DRM】DRM Display Driver Guide

显示子系统是显示输出相关软件硬件的统称,它包括VOP 和 RGB 、BT1120、BT656、I8080、LVDS、MIPI DSI、EDP、DP、HDMI等显示信号输出以及与之对应的软件驱动。显示子系统硬件架构图之 VOP1.0 显示系统架构显示子系统硬件架构图之 VOP2.0 显示系统架构。

爱她就要努力 3805

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Linux-drm-display_sys-设备树及其启动流程

DRM超级设备的设备树解析与DRM启动流程

ICE_Cream03的博客 1870

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android-DRM详解

DRM简介:   DRM: Digital Rights Management(数字版权管理)。   日常生活中,我们经常听到“版权“这两个字,到底是什么版权的呢?你大概可以理解: 版权就是别人拥有的东西你需要按照所有者的条款才能对这个东西进行观看,转发或者存储等。例如: 爱奇艺视频最近热播的电视剧《在远方》,你需要会员才可观看最新的剧集,这就是爱奇艺拥有的版权。   但是如果没有版权保护,...

cheriyou_的博客 1万+

linux的drm注册监听,Linux DRM那些事-master设备bind

本文介绍RockPI 4A单板DRM模块master设备bind函数rockchip_drm_bind()。文件:drivers/gpu/drm/rockchip/rockchip_drm_drv.c。功能:完成DRM主设备的初始化,并调用所有从设备的bind函数初始化整个显示系统。执行流程见下图:rockchip_drm_bind函数1、drm_dev_alloc(&rockchip_d...

weixin_35363322的博客 1080

linux drm子设备号,Linux DRM (三) RK 平台 DRM 代码分析 · Rockchip

本篇是 DRM 的第三篇文章。在 《Linux DRM (一) Display Server》 中我们了解了 DRM 诞生的历史。在 《Linux DRM (二) 基本概念和特性》 中我们了解了一些基本的概念。现在,我们终于要向 DRM 源码进军了。+一、概览不知大家是否还记得,之前我有引用 Wiki 中对 DRM 的介绍,这里我们再回顾一下:DRM 由两个部分组成:一是 Kernel 的子系统,...

weixin_42160425的博客 1334
上一篇: 升级内核遇到的问题汇总
下一篇: 编译根文件系统遇到的问题
greedyhao
博客等级 码龄10年 304粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值