recovery 升级界面顶部花屏问题分析
说明:
实际解决问题的过程有点曲折,后面找到原因,分析清楚问题后,总结下正确的分析方法,大致分析流程如下。
问题描述:
在进入recovery的时候,第一次上电进入recovery时,顶部会有一长条花屏,如下图所示。
问题分析:
通过出现花屏的时间点,我们判断,出现花屏的时候,已经进入了recovery系统,那么出现花屏的分析点,定位在recovery中。
通过在recovery中定位,我们发现是,在gr_init初始化的过程出现的花屏,具体是函数get_framebuffer这个函数,通过一步步的跟踪,发现如下规律:
在ioctl(fd, FBIOPUT_VSCREENINFO, &vi)调用之后,整个屏幕花了,在第一次memset(fb->data, 0, vi.yres * fi.line_length);调用之后,屏幕又全部黑了。
我们大致可以猜测,在启动过程中,屏幕开始是黑屏的,中间花屏了一次,后来又黑屏,在花屏 -> 黑屏的过程,时间太长了,那么我们就看到了顶部的一长条的花屏现象,为了验证这个问题,我们在memset(fb->data, 0, vi.yres * fi.line_length);之前,尝试增加延时时间,看能不能看到跟明显的花屏现象。在我们尝试增加不同的延时时间,当延时usleep(5*1000)时,我们看到了如下现象:
这跟我们的预期一样,就是在初始化的过程,中间有一次花屏,然后清除屏幕(memset),在这个花屏到黑屏的过程,时间差很短暂,这样我们就看到了顶部的一长条花屏现象。
让我们疑惑的是,ioctl(fd, FBIOPUT_VSCREENINFO, &vi)这个过程,怎么会花屏,这个是设置屏幕可变参数的ioctl,可能是由于我们修改了屏幕的可变参数,使得屏幕刷新了下,把framebuffer缓冲区的数据显示在了屏幕上面,这样导致了花屏,那么就是framebuffer缓冲区的数据没有清空,带着这个疑惑,我们在启动过程,查看下对应内存地址的数据。
我们从dts中,查看到framebuffer的内存地址是0x3c000000,
fb_reserved:linux,meson-fb {
compatible = "amlogic, fb-memory";
//size = <0x0 0x1900000>;
reg = <0x0 0x3c000000 0x0 0x2000000>;
no-map;
};
在uboot下面md
我们对比下,正常不花屏的时候的内存数据:
显然问题明白了,framebuffer中的数据没有被清除,这样起来进入recovery初始化的时候,ioctl(fd, FBIOPUT_VSCREENINFO, &vi)设置可变参数的时候,把缓冲区的数据显示到屏幕上面,这样导致了花屏的产生。
问题总结:
主要的花屏原因,是因为framebuffer对于的内存中的数据未被清空,导致的ioctl跟memset过程时间差,导致了花屏现象,在这之前,清除framebuffer缓冲区的数据即可。
recovery 升级界面顶部花屏问题分析的更多相关文章
- Windows 花屏问题
已经有2台电脑 Windows 10 系统出现花屏现象,表现为比较炫的界面出现花屏.文字显示不全.移位.闪烁等,如果点击“设置”.“开始”,Chrome浏览器等:比较平素的界面显示正常,比如资源管理器 ...
- LCD显示异常分析——开机闪现花屏【转】
转自LCD显示异常分析--开机闪现花屏 最近在工作中,有同事遇到LCD开机瞬间会闪现雪花屏的问题,而这类问题都有个共同点,那就是都发生在带GRAM的屏上,同样的问题,在休眠唤醒时也会出现. 其实这类问 ...
- RedHat 6.8 打开vga之后Login界面花屏
/******************************************************************* * RedHat 6.8 打开vga之后Login界面花屏 * ...
- 各种RTMP直播流播放权限_音视频_数据花屏_问题检测与分析工具EasyRTMPClient
之前的一篇博客<网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient>,我们介绍了RTSP流的检测和分析工具EasyRTS ...
- 网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient
前言 最近在项目中遇到一个奇怪的问题,同样的SDK调用,访问海康摄像机的RTSP流,发保活OPTIONS命令保活,一个正常,而另一个一发就会被IPC断开,先看现场截图: 图1:发OPTIONS,摄像机 ...
- WinDbg 蓝屏dump分析教程
一.WinDbg是什么?它能做什么? WinDbg是在windows平台下,强大的用户态和内核态调试工具.它能够通过dmp文件轻松的定位到问题根源,可用于分析蓝屏.程序崩溃(IE崩溃)原因,是我们日常 ...
- android 控件花屏问题
发现自己的手机上某个界面出现了花屏,某些控件背景被拉伸过多遮住了其他控件,很难看.这种现象高概率出现,分析了下发现:一旦发生这种现象,必然 会打印下面这种log,google了下,这种log应该是硬件 ...
- 宝爷Debug小记——Cocos2d-x(3.13之前的版本)底层BUG导致Spine渲染花屏
最近在工作中碰到不少棘手的BUG,其中的一个是Spine骨骼的渲染花屏,在战斗中派发出大量士兵之后有概率出现花屏闪烁(如下图所示),这种莫名奇妙且难以重现的BUG最为蛋疼. 前段时间为了提高Spi ...
- 安装ubuntu12.04LTS卡住以及花屏问题
昨天在XP下用grub4dos安装了ubuntu12.04LTS,总体上还算比较顺利,中途有碰到两个异常问题,解决了记录一下. 问题一:安装过程中读取ISO镜像文件时,卡在"checking ...
随机推荐
- ASP.NET Core中自定义路由约束
路由约束 ASP.NET Core中,通过定义路由模板,可以在Url上传递变量,同时可以针对变量提供默认值.可选和约束. 约束的使用方法是在属性路由上添加指定的约束名,用法如下: // 单个使用 [R ...
- linux中环境变量PATH设置错误,导致ls cd 等命令不能使用,提示:没有那个文件或目录
在CentOS7中执行了 PATH=/opt/:$PATH 然后执行ls时,出现 ls-bash: ls: 没有那个文件或目录 试了试其他命令也一样无法使用 后来执行 : export PATH=/u ...
- [EXP]Jenkins 2.150.2 - Remote Command Execution (Metasploit)
## # This module requires Metasploit: https://metasploit.com/download # Current source: https://gith ...
- 【WebAPI No.2】如何WebAPI发布
介绍: Asp.Net Core在Windows上可以采用两种运行方式.一种是自托管运行,另一种是发布到IIS托管运行. 自托管 首先有一个完好的.Net Core WebAPI测试项目,然后进入根目 ...
- java——IObufferedReader文件输入输出流
package com.jredu.ch02_lianxi; import java.io.BufferedReader;import java.io.BufferedWriter;import ja ...
- 关于unity3d的ios帧频问题.
原文:http://blog.csdn.net/spiritring/article/details/17606803 static void Start() { if (Application.pl ...
- html2canvas脚本实现将html内容转换canvas内容
在开始使用html2canvas之前,有一些关于html2canvas及其一些限制的好处. 介绍 该脚本允许您直接在用户浏览器上截取网页或部分网页的“屏幕截图”.屏幕截图基于DOM,因此它可能不是真实 ...
- 【学习笔记】JS经典异步操作,从闭包到async/await
参考文献:王仕军——知乎专栏前端周刊 感谢作者的热心总结,本文在理解的基础上,根据自己能力水平作了一点小小的修改,在加深自己印象的同时也希望能和各位共同进步... 1. 异步与for循环 抛出一个问题 ...
- Extjs4.2 rest 与webapi数据交互----顺便请教了程序员的路该怎么走
这一章接着上一篇 对于Ext.data.Store 介紹 与总结,以及对以前代码的重构与优化 1.对于更新OnUpdate()函数的修改:先上代码: function OnUpdate(record) ...
- 《Photoshop CS4手绘艺术技法》
书名 <Photoshop CS4手绘艺术技法> 图片 时间 2017-4月 学习 想了想当初的学习动机,自己P图片可是P的是实在是丑就会做几张动图.看完了才发现这行博大精深而且自己的审 ...