如何客制化机械键盘开机Logo

MTK 开机黑屏很长时间_Android开发-织梦者
当前位置:&>&&>& > MTK 开机黑屏很长时间
MTK 开机黑屏很长时间
MT6735平台,可以开机,但是黑屏很长时间才看到开机图片。
查看串口LOG发现手机是正常运行的,也就是说LCM驱动没有异常,黑屏阶段也没有什么错误报出。
在MTK的FAQ上找到如下:
[DESCRIPTION]
本FAQ只讨论开机过程中黑屏,不讨论花屏(可以参考刷)。只讨论L/M版本(之前的KK/JB版本可以作为参考)。
首先要看一下是否IPO开机,即在setting--&辅助功能--&不勾选“fast boot“,如果不黑屏,说明是因为ipo这个过程中的问题,那么问题需要看看这个动画,可以找一下ipo动画的owner。
如果不勾选“fast boot“出现黑屏,那么就是我们现在要讨论的问题。定位问题前一定要搞清楚黑屏发生的时间段,因为开机过程中,会有lk logo,kernel logo,bootanimation,这三个画面里面发生黑屏,解决办法不一样。
如下这张图,是ENG版本的开机logo,说明了开机过程中的logo显示。
查看问题,一定要使用ENG版本,因为ENG版本开机的时候,左下角有一行”normal boot“字样,据此我们可以知道黑屏发生在哪个地方。最好使用不同的logo资源,有些客户把lk logo和kernel logo做成一样,bootanimation的前几张图片也是做成一样,不便于区分,这样容易判断出错。
如下解释:
(阶段1)、带有”normal boot“的lk logo,会在lk阶段显示。显示时间一般1s左右。
(阶段2)、启动到kernel的前7s左右,显示的是带”normal boot“字样的lk logo。(这里L/M版本和KK/JB版本很不同,不在此处细说)
(阶段3)、之后显示kernel logo的时间段很短,一般只有2s左右.
(阶段4)、显示bootanimation动画。
(1)如果怀疑kernel log黑屏,可以单独运行一下kernel log应用,正常情况下会显示kernel logo,如果有黑屏,那么就是他造成的。
cd system/bin
boot_logo_updater
(2)单独删除kernel logo,可以看看是否不黑屏。如果不黑屏,那么可能是因为加载kernel logo的时候,底层向OVL刷进去了异常的黑屏数据或者异常格式的数据等。
adb remount
cd system/bin
rm -rf boot_logo_updater
(3)如果怀疑bootanimation黑屏,可以单独运行一下bootanimation应用,正常情况下会显示bootanimation动画,如果有黑屏,那么就是他造成的。
cd system/bin
bootanimation
(4)单独删除bootanimation,看看还黑屏吗?不黑屏,那么问题在于bootanimation,下面会有
adb remount
cd system/bin
rm -rf bootanimation
出现黑屏问题,请先使用mtk原生的版本和原生的logo资源,看看是否有问题,如果原声的没有问题,那么可能是客户替换的logo资源和客制化问题,需要注意如下几个资源检查:
1、logo.bin的大小限制在4M内
2、lk logo和kernel logo图片是RGB888格式
3、bootanimation图片是png格式
如果以上都check OK,可以参看如下的方式定位
[SOLUTION]
一、如果是(阶段1)黑屏,即lk logo没有显示出来,那么可能是logo资源异常,或者底层没有刷出来,需要抓uart log查看,可以打log跟踪platform.c文件里面的platform_init()函数。
二、如果是(阶段1)和(阶段2)之间黑屏,可能是刷屏的问题,如果有异常,从uart log里面,应该可以看到display error,比如vdo mode屏,这时候等VM Done timeout等。
三、如果是(阶段2)中间黑屏,看uart log是否有display error/fault/timeout/fail.
四、如果是(阶段2)和(阶段3)之间黑屏,可能是因为加载的kernel logo异常,或者mtkfb pan display implementation的时候异常数据进入,通常此时log里面很难看到error,需要加log进去debug。
五、如果是(阶段3)黑屏,可以使用上面的adb命令来区分到底是kernel logo的问题还是bootanimation开始的问题。
注释:以上5个可能出现黑屏的阶段,都与driver层相关,在找对应owner前,请先排除logo资源格式客制化等影响。根据我们这么些年定位问题来总结,很大一部分客户是因为客制化,logo资源等造成的问题。如果log里面有error,属于数据流在engine处理的时候异常,较容易修正。如果log没有异常,那么可能是异常的数据格式或者异常的flow导致的,比较难定位。
六、如果是(阶段4)黑屏,运行bootanimation应用看看,如果黑屏,那么问题在于bootanimation。关于bootanimation黑屏的定位,如下有一个完整的总结,请先自行check一下:
1.关于黑屏问题首先需要确认是否开机动画包本身的问题:
(1)将出现黑屏手机内部的system/media/bootanimation.zip pull到没有黑屏问题的手机,check是否还有黑屏,
如果出现黑屏说明是开机动画包本身的问题,可以转给AF2分析,否则继续查找其他原因;
(2)将正常手机的 system/media/bootanimation.zip pull到目前有黑屏问题的手机,check是否依然黑屏。
如果没有黑屏说明是开机动画包本身的问题,可以转给AF2分析,否则继续查找其他原因。
2.测试去掉开机铃声后是否还会出现黑屏:
如果没有出现黑屏说明与mediaplayer初始化较慢有关,需要与audio 的owner确认进一步的原因。否则继续查找其他原因。
具体可参考[FAQ09563]开机过程kernel logo到开机动画黑屏时间过长。
3.在开机动画前出现一帧闪黑屏可能与Google default 默认的clear screen操作有关,需要在BootAnimation.cpp文件中去掉相关清屏的code。
具体可参考[FAQ14488]kernel logo到开机动画之间闪现黑屏。
[FAQ17969]开机过程kernel logo到开机动画之间黑屏(总)
七、另外,对于 M0.MP1版本,出现kernel logo后,bootanimation前的黑屏问题,请申请patchALPS。
还有这个:
[DESCRIPTION]
开机过程kernel logo到开机动画之间黑屏
[SOLUTION]
在开机过程,如果将bootanimation.zip的图片换成非黑色背景,发现从kernel logo到bootanimation之间会黑屏一下或者黑屏时间过长,这类问题的原因有可能是和Display相关,也有可能和Bootup流程相关。遇到这种问题,请按照如下步骤进行初步分析:
1. 确认哪个过程黑屏:
uartlog和mobilelog确认是lk logo, kernel logo, bootAnimation哪个过程黑屏。如果lk logo, kernel logo, bootAnimation第一张图片相同,先将lk logo, kernel logo, bootAnimation第一张图片分别替换成不同的图片。
2. 确认是否是动画包问题:
交叉测试,排除动画包bootanimation.zip的问题
3. 查看bootanimation进程:
3.1去掉开机铃声system/media/bootaudio.mp3,如果黑屏依然存在
请先在PMS申请patch:ALPS,针对M版本
请先参考以下FAQ:
[FAQ14247][Denali系列]开机动画前黑屏相关的issues
[FAQ14488] kernel logo到开机动画之间闪现黑屏(L)
如果问题依然无法解决,请提交eService进一步分析解决。提交eService时,请参照以下FAQ抓取黑屏layer信息。
[FAQ05755]如何定位花屏和界面错乱等绘制异常的问题?
3.2 去掉开机铃声system/media/bootaudio.mp3后,从Kernel Logo到动画是没有黑屏:
基本可以肯定,黑屏是由于mediaplayer初始化耗时导致。
可以进行如下测试:
(1)如果手机支持IPO(快速开关机),可以查看下IPO开机时是否还有黑屏。如果没有黑屏,进一步可以推论出:黑屏与mediaplayer初始化耗时有关。
(2)如果手机不支持IPO,可以用adb命令当地运行bootanimation bin档测试:adb shell system/bin/bootanimation。结论同(1)。
请先参照相关FAQ:
[FAQ09563] 开机过程kernel logo到开机动画黑屏时间过长。
[FAQ17968] new Mediaplayer耗时导致开机过程中kernel logo到开机动画之间黑屏
如果问题依然无法解决,请提交eService进一步分析解决。
所以,我做了以下尝试:
1、用ENG版本开机,没有看到”normal boot“字样;
2、删除bootaudio.mp3,依然黑屏;
3、删除bootanimation.zip,开机图画变成了android,依然黑屏;
4、确认图片格式、分辨率等都没有问题;
推测和LCM是没有关系的,怀疑是LK和Kernel阶段LCM背光没有亮。所以配置lk目录下cust_leds.c文件,配置backlight。
问题解决。
以上就是MTK 开机黑屏很长时间的全文介绍,希望对您学习应用开发有所帮助.
这些内容可能对你也有帮助
更多可查看Android开发列表页。
猜您也会喜欢这些文章msm8916 lcd 相关调试点指导 - 乐学乐 - 博客园
随笔 - 37, 文章 - 0, 评论 - 0, 引用 - 0
主要代码: LINUX\android\kernel\arch\arm\boot\dts\qcom\dsi-panel-trust-hx8379c-fwvga-video.dtsi LINUX\android\kernel\arch\arm\boot\dts\qcom\msm8916-qrd-skum.dtsi
LINUX/android/bootable/bootloader/lk/dev/pmic/pm8x41/pm8x41_adc.cLINUX/android/bootable/bootloader/lk/dev/pmic/pm8x41/include/pm8x41_adc.hLINUX/android/bootable/bootloader/lk/target/msm8916/include/target/display.hLINUX/android/bootable/bootloader/lk/target/msm8916/init.cLINUX\android\bootable\bootloader\lk\dev\gcdb\display\include\panel_trust_hx8379c_fwvga_video.h \\192.168.142.144\chenhaibing\MSMNEW\LINUX\android\bootable\bootloader\lk\target\msm8916\oem_panel.c
android/bootable/bootloader/lk/dev/pmic/pm8x41/include/pm8x41_adc.h
#defineMPP_2_CHAN_ID 33//chenhaibing
定义相应的adc通道voidpm8x41_enable_mpp_as_adc_for_mpp2(uint16_tmpp_num);//chenhaibing
add for lcm adc
android/bootable/bootloader/lk/dev/pmic/pm8x41/pm8x41_adc.cStatic struct adc_conf adc_data[]={
CHAN_INIT(VADC_USR1_BASE,VADC_BAT_CHAN_ID,VADC_MODE_NORMAL,VADC_DECIM_RATIO_VAL,HW_SET_DELAY_100US,FAST_AVG_SAMP_1,CALIB_RATIO),CHAN_INIT(VADC_USR1_BASE,VADC_BAT_VOL_CHAN_ID,VADC_MODE_NORMAL,VADC_DECIM_RATIO_VAL,HW_SET_DELAY_100US,FAST_AVG_SAMP_1,CALIB_ABS),CHAN_INIT(VADC_USR1_BASE, MPP_2_CHAN_ID,VADC_MODE_NORMAL,VADC_DECIM_RATIO_VAL,HW_SET_DELAY_100US,FAST_AVG_SAMP_1,CALIB_ABS),添加到adc_data初始化数组读adc数据前,需要使能此接口/*begin:add by chenhaibing for pm8x41 mpp2 adc enable */voidpm8x41_enable_mpp_as_adc_for_mpp2(uint16_tmpp_num){ uint32_if(mpp_num &MPP_MAX_NUM){dprintf(CRITICAL,"Error: The MPP pin number is unavailable\n");} /* set the MPP mode as AIN */val =(MPP_MODE_AIN &&Q_REG_MODE_SEL_SHIFT)\ |(0x1&&Q_REG_OUT_INVERT_SHIFT)\ |(0x0&&Q_REG_SRC_SEL_SHIFT);REG_WRITE((MPP_REG_BASE +mpp_num *MPP_REG_RANGE +Q_REG_MODE_CTL),val);/* Enable the MPP */val =(MPP_MASTER_ENABLE &&Q_REG_MASTER_EN_SHIFT);REG_WRITE((MPP_REG_BASE +mpp_num *MPP_REG_RANGE +Q_REG_EN_CTL),val);/* AIN route to AMUX8 */val =(0x1&&Q_REG_AIN_ROUTE_SHIFT);//AMUX1 REG_WRITE((MPP_REG_BASE +mpp_num *MPP_REG_RANGE +Q_REG_AIN_CTL),val);}android/bootable/bootloader/lk/target/msm8916/oem_panel.c
#include"include/panel_trust_hx8379c_fwvga_video.h"//chenhaibing add 0923
主要接口:oem_panel_select: 主要是根据adc判断lcd兼容pm8x41_enable_mpp_as_adc_for_mpp2(0x01);lcm_type =get_vendor_from_adc(MPP_2_CHAN_ID);if(LCM_TYPE_HS==lcm_type){panel_id =ILI9806E_FWVGA_VIDEO_PANEL;//chenhaibing add }elseif(LCM_TYPE_TS==lcm_type){ panel_id =HX8379C_FWVGA_VIDEO_PANEL;}Else{panel_id =UNKNOWN_PANEL;ret = R}oem_panel_on负责把.h相关宏和指令,时序设置等,根据oem_panel_select:指定的panel_id给屏驱动所使用的结构体。
Panel id 会通过command line的方式传递到kernel层, kernel video mdss驱动会通过调用dtsi相关节点信息进行访问,使得lcm被正常驱动。dtsi相关节点信息:时序设置:qcom,mdss-dsi-panel-timings = [4D 1A 12 00 40 42 16 1E 14 03 04 00];
80-NH713-1_DSI_TIMING_PARAMETERS_USER_INTERACTIVE_SPREADSHEET.xlsmDSI and MDP registers sheet 页写入下面信息:frame rate ,lane config,pixel format BPP,Active Width,Active HeightHsync Pulse Width,Hori. Back Porch,Hori. Front Porch,Vsync Pulse Width,Vert. Back Porch,Vert. Front Porch
拷贝下面的值填入上面数组。2. DSI PHY registers PHY Registers value in hexDSIPHY_TIMING_CTRL_0 #VALUE!DSIPHY_TIMING_CTRL_1 1ADSIPHY_TIMING_CTRL_2 12DSIPHY_TIMING_CTRL_3
0DSIPHY_TIMING_CTRL_4 40DSIPHY_TIMING_CTRL_5 42DSIPHY_TIMING_CTRL_6 16DSIPHY_TIMING_CTRL_7 1EDSIPHY_TIMING_CTRL_8 14DSIPHY_TIMING_CTRL_9 3DSIPHY_TIMING_CTRL_10 4
qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 09 08];
qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode";
qcom,mdss-dsi-panel-status-check-mode = "reg_read";
qcom,mdss-dsi-panel-status-value = &0x90&; qcom,esd-check-
若需要返回多个参数,需要改写代码:Mdss_dsi_host.cstatic int mdss_dsi_read_status(struct mdss_dsi_ctrl_pdata *ctrl){ struct dcs_cmd_
memset(&cmdreq, 0, sizeof(cmdreq)); cmdreq.cmds = ctrl-&status_cmds. cmdreq.cmds_cnt = ctrl-&status_cmds.cmd_ cmdreq.flags = CMD_REQ_COMMIT | CMD_CLK_CTRL | CMD_REQ_RX; cmdreq.rlen =0; cmdreq.cb = NULL; cmdreq.rbuf = ctrl-&status_buf.
return mdss_dsi_cmdlist_put(ctrl, &cmdreq);}
/*begin: add by chenhaibing for hx8379c read status */static int mdss_dsi_read_status_for_trust(struct mdss_dsi_ctrl_pdata *ctrl){ struct dcs_cmd_
memset(&cmdreq, 0, sizeof(cmdreq)); cmdreq.cmds = ctrl-&status_cmds. cmdreq.cmds_cnt = ctrl-&status_cmds.cmd_ cmdreq.flags = CMD_REQ_COMMIT | CMD_CLK_CTRL | CMD_REQ_RX; cmdreq.rlen = 4;
//modified 4 这个会发送37指令,指定返回4个参数. cmdreq.cb = NULL; cmdreq.rbuf = ctrl-&status_buf.
return mdss_dsi_cmdlist_put(ctrl, &cmdreq);}
/*end: add by chenhaibing for hx8379c read status */
mdss_dsi_reg_status_check添加相关军客制化判断逻辑.
在msm8916调试 Himax 8379C 时遇到功耗问题:
原因分析:
量测试开机或唤醒的波形图,是因为此IC不能自己进入ulps模式,msm8916默认的source code 也没有开启ulps.导致上面实测试波满足与IC spec不符。
引起屏漏电.
解决方案在dtsi配置下面节点.
qcom,mdss-dsi-lp11- //确保reset 信号拉低时,clock和data都要及时被拉高,某些IC时序有此要求.
qcom,suspend-ulps-
上面节点打开后,还需要高通释放相关patch合入才能最终解决此问题。
客制化启动logo方法
How to customize splash imagentroduction and Background:
For LK display (boot loader) logo, there are two methods:
Read the splash image data from splash.h file.
Get the splash image data from Splash Partition.
Solution Statement:
For a), please see the below source codes:
bootable/bootloader/lk/platform/msm_shared/include/splash.hbootable/bootloader/lk/dev/fbcon/fbcon.c
When fbimg is NULL, LK display data gets from imageBuffer_rgb888 arrays. Please see the below snippet codes.
void display_image_on_screen(){
struct fbimage default_fbimg, *
bool flag =
fbcon_clear();
fbimg = fetch_image_from_partition(); // Splash image from partition
if(!fbimg) {
fbimg = &default_
fbimg-&header.width = SPLASH_IMAGE_HEIGHT;
fbimg-&header.height = SPLASH_IMAGE_WIDTH;#if DISPLAY_TYPE_MIPI
fbimg-&image = (unsigned char *)imageBuffer_rgb888;#else
fbimg-&image = (unsigned char *)imageB#endif
fbcon_putImage(fbimg, flag);}
For b), the steps to generate the splash.img:
1). Install the python on Linux desktop OS.
sudo apt-get install python-imaging
2). Prepare the logo picture with the PNG format in "device/qcom/common/display/logo" folder, such as "test.png".
python ./logo_gen.py test.png
3). Add splash partition on your partition.xml, such as
&partition label="splash" size_in_kb="10240" type="5-4357-B9EE-374BC1D8487D" bootable="false" readonly="false" filename=""/&
4). Check if have "splash.img", and then flash splash image to your device.
fastboot flash splash splash.img
第二种:python ./logo_gen.py test.png (MSM8916平台没有看到logo_gen.py) ,flash.img4). Check if have "splash.img", and then flash splash image to your device.请供应商联系我
手机号不能为空
姓名不能为空
请供应商联系我
您对该公司的咨询信息已成功提交请注意接听供应商电话。
您采购的产品:
请输入采购产品
您的手机号码:
请输入手机号码
*采购产品:
请输入采购产品
*采购数量:
请输入采购数量
*采购截止日期:
请输入正确的手机号码
请输入验证码
*短信验证码:
<input id="valid_Code1" maxlength="6" placeholder="请输入验证码" name="VALIDCODE" class="codeInput" onkeyup="this.value=this.value.replace(/\D/g,'')" onkeypress="if(event.keyCode
57) event.returnValue =" type="text">
免费获取验证码
为了安全,请输入验证码,我们将优先处理您的需求!
请输入验证码
发送成功!
慧聪已收到您的需求,我们会尽快通知卖家联系您,同时会派出采购专员1对1为您提供服务,请您耐心等待!
136 ******
联系人:蔡小江&业务部 业务员
公司名称:深圳市英博桑工艺礼品有限公司
备注:点击关注按钮后才可自动收到卖家电话
请输入正确的手机号码
请输入验证码
*短信验证码:
免费获取验证码
为了安全,请输入验证码,我们将优先处理您的需求!
请输入验证码
按字母分类 :修改WordPress登陸界面LOGO | 暢想資源
網站最後更新日期:日
歡迎大家來到暢想資源 !
讚好Facebook
追隨Twitter
關注微信公眾號
更多聯絡方式
當前位置:
修改WordPress登陸界面LOGO
的網站界面默認會出現一個WordPress的Logo,對於某些需要客制化的網站就不太好了,所以今天就來教大家如何在WordPress登陸界面使用你自己的Logo
1、其實很簡單,你只需要把下列代碼添加到你的主題文件夾內的「佈景函式庫 ()」文件,並且把 /logo.png 改成你的Logo地址就行了
/* WordPress登錄界面Logo修改開始 */
function custom_login_logo() { ?&
.login h1 a {
background-image:url(/logo.png) !
add_action('login_head', 'custom_login_logo');
/* WordPress登錄界面Logo修改結束 */
1234567891011
/* WordPress登錄界面Logo修改開始 */function custom_login_logo() { ?&&style&.login h1 a { background-image:url(http:///logo.png) !important;}&/style&&?php}add_action('login_head', 'custom_login_logo');/* WordPress登錄界面Logo修改結束 */
2、刷新一下登陸介面,是不是變成你的Logo啦?
1、至於如何更改Logo鏈接(現在點擊Logo進去還是進入 wordpress.org ),請看「」這篇文章
2、有問題可以回覆
歷史上的今天2014年:
覺得這篇文章有用麼?分享一下讓更多人知道吧!
爲繼續支持本站繼續寫出優質文章、歡迎捐款!
注:本站同時長期承接WordPress外掛及主題制作、伺服器環境配置等,如需詳情,請「」!
& 版權聲明:「」之所有文章及資源系采用「」發布及共享,轉載時須以相同方式發布並注明「」!
本文固定鏈接:
[上一篇] [下一篇]
您可能還會對這些文章感興趣!
以下是廣告時間,廣告內容僅供參考!
廣告載入中...
廣告載入中...
本頁QR Code
微信公眾號 arefly-com
最新文章熱評文章隨機文章
Facebook專頁
追隨Twitter
部落格統計
文章總數:292 篇
迴響總數:5990 條
標簽數量:560 個
鏈接總數:34 個
建站日期:
執行天數:1605 天
最後更新:
Facebook:
聯絡方式:
Copyright &
. Powered by .

我要回帖

更多关于 matrix客制化 的文章

 

随机推荐