Recovery模式下进行重启或者关机LCD会闪一下白屏

2024-08-21 12:18

本文主要是介绍Recovery模式下进行重启或者关机LCD会闪一下白屏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现象描述:

Recovery模式下进行重启或者关机或者恢复出厂设置后都会闪一下白屏

抓取kernel log未发现明显异常:

[   40.137930] <0>.(0)[1:init]******** battery driver shutdown!! ********
[   40.141461] <0>.(0)[58:kworker/0:1]EXT4-fs (mmcblk0p24): re-mounted. Opts: (null)
[   40.143458] <0>.(0)[58:kworker/0:1]Emergency Remount complete
[   40.272535] <0>.(0)[181:mtk charger_hv_][charging_get_battery_status] battery exist for bring up.
[   40.273685] <0>.(0)[181:mtk charger_hv_][charging_get_battery_status] battery exist for bring up.
[   40.274822] <0>.(0)[181:mtk charger_hv_][charging_get_battery_status] battery exist for bring up.
[   40.749289] <0>.(0)[1:init][battery_meter_shutdown]
[   40.751221] <0>.(0)[1:init][MUSB]musb_shutdown 1356: shut down
[   40.752132] <0>-(0)[1:init][MUSB]mt_usb_disable 340: <1,1>,<3,5,3,2>
[   40.753801] <0>-(0)[1:init][MUSB]usb_phy_savecurrent 534: usb save current success
[   40.754777] <0>-(0)[1:init][MUSB]mt_usb_disable 358: <3,5,3,3>
[   40.756254] <0>-(0)[0:swapper/0][Power/swap]SODI: blocking by uptime count = 14
[   40.970074] <0>.(0)[1:init]kernel lcm_suspend
[   40.976840] <0>.(0)[1:init][gps]null pointer!!
[   40.978227] <0>.(0)[1:init]reboot: Restarting system with command ''
[   40.979052] <0>-(0)[1:init]machine_restart, arm_pm_restart(  (null))
[   40.979871] <0>-(0)[1:init]ARCH_RESET happen!!!
[   40.980461] <0>-(0)[1:init]arch_reset: cmd = 
[   40.981046] <0>-(0)[1:init]CPU: 0 PID: 1 Comm: init Tainted: G        W      3.18.19 #12

只能看到一行和LCD相关的log信息;


分析过程:

1. log里面看不出来,没辙,想其他办法吧,闲着没事看一下 [   40.970074] <0>.(0)[1:init]kernel lcm_suspend 看一下这个log是从哪里打印的吧,既然是lcm_suspend就到LCD驱动里卖弄看一下,在lcm_suspend()函数里面添加log信息,发现确实走的是kernel里面我们自己添加的LCD驱动,开机lcd probe驱动log如下:

[    1.239771] <3>.(3)[1:swapper/0][kernel]:get_lcm_id=83.
[    1.240421] <3>.(3)[1:swapper/0][kernel]:disp_lcm_probe ,lcm_ic_id=0x83.
[    1.241256] <3>.(3)[1:swapper/0][kernel]:disp_lcm_probe ,lcd_id_voltage=3._lcm_count()=1
[    1.242264] <3>.(3)[1:swapper/0][kernel]:disp_lcm_probe ,check lcd:DiJing-ili9806e.lcd_id_voltage=3.
[    1.243403] <3>.(3)[1:swapper/0][kernel]:disp_lcm_probe ,detect lcd successfully.lcd_name=DiJing-ili9806e.

suspend时没有对屏幕进行灭背光动作,没辙,想其他版本

2. 想到调节LCD亮度有对应的文件节点,通过直接往文件里面echo数值,直接修改亮度,看看是否好使

设备文件节点路径(recovery模式下adb开启需要单独调试出来):

/sys/class/leds/lcd-backlight/brightness

先cat出来brigthness节点初始默认值是多少,

cat /sys/class/leds/lcd-backlight/brightness 后发现为0

echo 200>/sys/class/leds/lcd-backlight/brightness

之后再进行重启或者关机白屏现象不复现,现在有点眉目了,看来和亮度初始值有关


3. 在dts里面找到设置的/sys/class/leds/lcd-backlight/brightness文件节点内容的位置如下:

dts路径:kernel-3.18/arch/arm/boot/dts/$(project).dts

led6:led@6 {
compatible = "mediatek,lcd-backlight";
led_mode = <4>;
data

这篇关于Recovery模式下进行重启或者关机LCD会闪一下白屏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1093139

相关文章

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

模版方法模式template method

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/template-method 超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 上层接口有默认实现的方法和子类需要自己实现的方法

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

迭代器模式iterator

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/iterator 不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素

《x86汇编语言:从实模式到保护模式》视频来了

《x86汇编语言:从实模式到保护模式》视频来了 很多朋友留言,说我的专栏《x86汇编语言:从实模式到保护模式》写得很详细,还有的朋友希望我能写得更细,最好是覆盖全书的所有章节。 毕竟我不是作者,只有作者的解读才是最权威的。 当初我学习这本书的时候,只能靠自己摸索,网上搜不到什么好资源。 如果你正在学这本书或者汇编语言,那你有福气了。 本书作者李忠老师,以此书为蓝本,录制了全套视频。 试

遮罩,在指定元素上进行遮罩

废话不多说,直接上代码: ps:依赖 jquer.js 1.首先,定义一个 Overlay.js  代码如下: /*遮罩 Overlay js 对象*/function Overlay(options){//{targetId:'',viewHtml:'',viewWidth:'',viewHeight:''}try{this.state=false;//遮罩状态 true 激活,f

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87