对比了RK3288的Ubuntu14.04和按官网编译的Android的log信息后发现很多不一样,鉴于官网上的编译方法是针对开发板的,所以烧录后内核起不来,也要查看一下硬件,先查一下各路电压。

节点电压
电源名称 电压理论值(V) 实际电压值(V) 状态    
VCC_DC 5 5 适配器和FPC出来的5v电压    
VCC_SYSIN 3.7~4.2 3.9 电池电压,通过TPS61232转出VCC_SYS    
VCC_SYS 5 4.98 8846的输入,也是该系统的主电压    
VCC_DDR 1.5 1.5      
VCC_20 2 1.99 好像是8846第4路主输出给自己ldo的输入端    
VCC_IO 3.3 3.3 EMMC RK3288部分电压,和WiFi蓝牙及一些电路的供电    
VDD_LOG 1.1 1.19 RK3288内的LOGIC部分电压    
VDDIO_SD 3.3 3.3 给RK3288的Internal BootRom供电    
VDD10_LCD 1 1.04 给RK3288内的EDP和LVDS部分供电 烧录前OFF  
VCCA_CODEC 3.3 2.79 给音频ALC5640供电 烧录前OFF 不一致
VCC_TP 3.3 3.3 给TP小板供电 烧录前OFF  
VCC18_LCD 1.8 1.84 给RK3288内的EDP和LVDS部分供电 烧录前OFF  
VDD_10 1 1.09 都是去RK3288用了三四处    
VCC_18 1.8 1.79 用到了RK3288和转VCCIO_CODEC    
VCCIO_PMU 3.3 3.28 去RK3288和8846自己,以及耳机电路    
VCC33_RTC 3.3 3.3 由VCC_SYS转出用来给晶振电源按键等    
VCC_SD 3.3 3.3 由VCC_IO转来,给TF卡    
VCC_WL 1.8 1.79 由VCC_18转来给WiFi蓝牙用    
VCC_LCD 3.3 1.1 给RK3288内的EDP和LVDS供电,且转出FPC   不一致
VCC50_USB 无电压 4.76 很显然    
VDD_CPU 1 1.35 VCC_SYS通过SY827转出    
VDD_GPU 1 0.89 VCC_SYS通过SY827转出    
+V16P0_BKLT_IN 5 4.97      
VCCIO_FLASH 1.8 1.8 给EMMC供电也去了RK3288的PIN由VCC_IO出来    
VSYS_DISP 3.3 0 背光使能    
VCCIO_CODEC 1.8 1.79      
           
           

硬件上似乎还看不出问题,这里可能要去dts查了,先放下来,因为看到别人的博客,我在想既然Android是基于Linux内核起来的,那就把之前调试好的Ubuntu系统的东西烧进去,然后烧录Android的文件系统看一下log信息。

烧录的是Ubuntu的kernel.img发现log信息和Android的log信息,几乎一模一样。

烧录的是Ubuntu的kernelimg和resource.img文件报错信息,重启多次的log会有两个版本,其一个是kernel启动很短的过程,在DDR  DEBUG的过程中停下来的,另一个是比较和之前关掉es8323的过程是一样的,从这里总结出的信息是不是firefly给出的编译方法出来的很多驱动源码还是在kernel中,并没有把很多厂商的驱动源码放到硬件抽象层。还有呢?

根据目前的信息掌握度,发现有一个Android的硬件抽象层,这一层放了很多再Linux中原本放在内核中的硬件驱动程序,所以理论上理解时,从开发板上移植到自己的板子时,会出现硬件抽象层的驱动不对劲,然后自己的硬件是不能用的,这可以理解,但关内核什么事呢?

接下来还是一层一层的往下关闭kernel源码中的硬件驱动,这个驱动不止在自己的板子上跑,也要在开发板上跑,这样来看看这个Android内核到底是个什么鬼。当然资料要继续看了。

把关闭了es8323的烧录文件烧到了开发板上,和想的一样当然也不会出现es8323,不过通过对比发现开发板和司板会有一些可能引起注意的信息:“[    1.242285]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p141358..dw_mci_set_ios:  no card. [mmc1]”这条信息显示的内容是在司板上的,和开发板对比下来,好像mmc1没起来,贴一下开发板的信息:“[    1.105850]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13[    1.107046] dwmmc_rockchip ff0c0000.rksdmmc: DW MMC controller at irq 64, 32 bit host data width, 256 deep fifo”开发板上的信息似乎是起来的。贴一张对比图片

这个信息,没仔细看出来什么。

接下来还是一步一步来,关闭log信息现实的最后一个“[    1.366166] rockchip-spdif-card rockchip-spdif-card.25:  rk-hdmi-spdif-hifi <-> ff880000.rockchip-spdif mapping ok”关闭spdif

根据之前关闭es8323的思路,这次直接在Kconfig文件中取消这个选项看看会报什么错,但是先还是在menuconfig下改一下看

编译的报错信息这样显示

根据报错显示,grep一下看看发现好多文件都有,准备一个一个来看,根据上次经验在./sound/soc/rockchip/hdmiin_audio.c这个文件可能性很大,先从这里做起

打开./sound/soc/rockchip/hdmiin_audio.c文件找到“snd_hdmiin_capture_mode”共有两处,注释掉。

编译下来还是包一样的错误,仔细再看看细节上搞错了

grep的是“snd_hdmiin_capture_mode”那么应该在和“snd_pcm_capture_open”相关的文件中改,所以刚刚在./sound/soc/rockchip/hdmiin_audio.c中不应该立即改,先把注释取消了。在./sound/core/pcm_native.c文件中注释掉

从信息看,确实把第二个错误注释掉了。继续grep -r "snd_stop_hdmi_in_audio_route" ./    根据结果来显示

根据对应关系,应先打开./sound/soc/rockchip/hdmiin_audio.c这个文件注释掉snd_stop_hdmi_in_audio_route先看看结果

报错依旧

接下来再看相关的./drivers/media/video/rk_camsys/tc358749.c这个文件把其中的snd_stop_hdmi_in_audio_route注释掉

因为发现注释掉的信息,在我注释之前也会看到其他的注释信息,所以我住校的信息都会加上标识。

编译完竟然还有报错

这个显示一个报错了,自信看是snd_start_hdmi_inaudio_route,没仔细看到,有start和stop之分,现在把start也注释掉,保存编译。

还是报错

还是会报错,根据报错信息只要在hamiin_audio_store关键字相关的文件中处理就行,报错的话去tc358749文件中去看看,注释掉start相关

竟然编译通过了,看一下结果。这点上我很奇怪根据报错信息,不显示tc358749.c的文件里,应该在hdmiin_audio相关的文件里,如果不是之前有在处理这个 undefined reference to `snd_stop_hdmi_in_audio_route'使知道有这个tc358749.c文件可能就不知道怎么解决了,这说明有些报错不一定全部在报错显示的相关文件里,如果实在找不到错误所在,就全部搜索,注释试试。

把编译结果烧录到开发板和司板,开发板依然能启动,各自的log信息目前看不出什么区别。

Android编译笔记二相关推荐

  1. 第一行代码 Android读书笔记(二)

    第一行代码 Android读书笔记 第三章 软件也要拼脸蛋-UI开发的点点滴滴 常用控件的使用方法 详解4种基本布局 自定义控件 最常用和最难用的控件-ListView 更加强大的滚动控件-Recyc ...

  2. android英语笔记二

    1.banner 旗帜 2.android studio 如何找到类的出处,右键选择"Find Usages" 3.subject n. 主题,话题;学科,科目;[哲]主观 adj ...

  3. Android编译系统分析二:mm编译单个模块

    因为Android的编译系统不同于Linux Kernel的递归式的编译系统,它的编译系统是一种称之为independent的模式,每个模块基本独立(它有可能依赖其他模块),每个模块都可以单独编译,这 ...

  4. Android 编译系统分析(二)

    把Android所有的Make文件分为4种: 1.For config 这类文件主要来配置product,board,以及根据你的Host和Target选择相应的工具以及设定相应的通用编译选项: bu ...

  5. Android逆向笔记(二) -- 破解AutoR的注册码验证

    文章目录 0x0 前言 0x1 界面分析 0x2 反编译 0x3 破解 0x0 前言 此软件为练习用Crackme.apk 仅有验证逻辑 此软件不同于普通的Android软件, 是由Mono for ...

  6. [Android学习笔记二] View转化Bitmap

    在View类中的onDraw方法的参数Canvas是View绘制的背景,要将View转换为Bitmap实际上就是让Canvas上的绘制操作绘制到Bitmap上. View转化为Bitmap也称为截屏, ...

  7. Android编译笔记之五

    在官网上看到的编译kernel时的两条命令 make ARCH=arm rockchip_defconfig make ARCH=arm rk3288-firefly-rk808.img 第一条命令等 ...

  8. Android编译笔记三

    关闭外围谁被还是要做的,但是现在中间像把dts替换成司板之前Ubuntu能用的dts,试一下. 发现好像没什么变化,但是和开发板的log信息已经很接近了,前期的不一样也消除了很多. 又把Ubuntu的 ...

  9. Android编译笔记一

    在kernel下的make menuconfig中禁用es8323 在kernel中执行make  -j8  firefly-rk3288.img 报错显示如下 看了Kconfig menuconfi ...

最新文章

  1. python 画图 内存-python来做专项测试-内存测试
  2. Java / JVM是如何构建的? 采用OpenJDK是您的答案!
  3. ExtJs + Struts2 + JSON 程序总结
  4. iOS底层探索之多线程(十七)——通过 Swift的Foundation源码分析锁(NSLock、NSCondition、NSRecursiveLock)
  5. 使用Adorner显示WPF控件的边界点
  6. 清除Conficker蠕虫病毒详细步骤
  7. python个人简历爬取_python爬取简历模板
  8. c#制作仿win7屏幕键盘之笔记
  9. mysql计算相关系数_用sql实现相关系数的计算
  10. python如何拼读英语单词怎么写_Python简单的拼写检查
  11. 服务器版博客系统、前后端交互1
  12. 北京大学生物信息学(9)第二代基因组测序技术
  13. 寻票软件医院挂号攻略
  14. 20135220谈愈敏-期末总结
  15. 集合有哪些 java_java集合有哪些
  16. Python数据分析实战【十二】:机器学习决策树算法案例实战【文末源码地址】
  17. 快手福虎迎春季短视频涨粉活动规则[快手获取商品详情]
  18. 进口配额管理和出口配额管理_实行配额许可证管理的进出口商品及其申领方法...
  19. 环境艺术设计是计算机,【艺术设计论文】环境艺术设计计算机辅助设计研究(共5097字)...
  20. 庄懂的TA笔记(十三)<特效-混合模式:四种主要透明通道用法 AC,AB,AD,自定义混合>

热门文章

  1. linux ping策略打开_linux ping策略打开_如何在Linux服务器禁止和开启ping包 互联网技术圈 互联网技术圈......
  2. python soup findall 第几个元素_python – 如何在BeautifulSoup中获取所有父标签的列表?...
  3. python框架怎么学_Python框架学习
  4. python写前端代码_哪种ide能同时写java和前端代码?
  5. ElasticSearch重启之后shard未分配问题的解决
  6. 【Python面试】 列举Python中的标准异常类?
  7. 苹果x可以双卡吗_苹果12支持双卡吗
  8. 去除图片水印_只需一键,即可快速去除图片水印!如此简单的方法,谁不知谁吃亏...
  9. eclipse打包项目为aar_eclipse中将项目打包成jar的两种方法,及其问题与解决方法...
  10. squid 不缓存特定页面_【零基础学云计算】squid代理服务器介绍与配置(理论+实践)一...