今天写好device,成功编译出CM,接下来肯定是调戏啦(你什么都没看到)~

BUG肯定也是一堆堆的!一开机,果然一堆error~可是尼玛,大蛋一放假就不见人了!!!

我自己折腾几个小时容易么我,我谷歌了几个小时容易么我ヽ(`д´)ノ

- ::48.570: D/memalloc(): init_pmem_area: Initializing pmem area
- ::48.570: D/memalloc(): init_pmem_area_locked: Opening master pmem FD
- ::48.570: E/memalloc(): /dev/pmem: Failed to open pmem device: No such file or directory
- ::48.570: E/memalloc(): /dev/pmem: failed to initialize pmem area
- ::48.570: E/gralloc(): gralloc failed err=No such file or directory
- ::48.570: W/GraphicBufferAllocator(): WOW! gralloc alloc failed, waiting for pending frees!
- ::48.570: E/gralloc(): gralloc failed err=No such file or directory
- ::48.570: W/GraphicBufferAllocator(): alloc(, , , 00000b03, ...) failed - (No such file or directory)
- ::48.570: E/SurfaceFlinger(): GraphicBufferAlloc::createGraphicBuffer(w=, h=) failed (No such file or directory), handle=0x0
- ::48.570: E/BufferQueue(): [BootAnimation] dequeueBuffer: SurfaceComposer::createGraphicBuffer failed
- ::48.570: W/Adreno200-EGLSUB(): <DequeueBuffer:>: dequeue native buffer fail: No such file or directory
- ::48.580: W/Adreno200-EGL(): <qeglDrvAPI_eglMakeCurrent:>: EGL_BAD_ALLOC
- ::48.580: E/libEGL(): eglMakeCurrent: error (EGL_BAD_ALLOC)
- ::48.580: E/SurfaceFlinger(): GL error 0x0505
- ::48.580: W/Adreno200-EGLSUB(): <GetBackBuffer:>: handle base address is NULL
- ::48.580: W/Adreno200-ES20(): <gl2_surface_swap:>: GL_OUT_OF_MEMORY
- ::48.580: W/Adreno200-EGL(): <qeglDrvAPI_eglSwapBuffers:>: EGL_BAD_ALLOC

上面就是错误信息啦,一眼看过去就看出了pmem驱动无法打开

What,为神马打不开啊???因为文件不存在啊,魂淡!

然后我就把kernel的config给提取出来看了下

$ adb pull /proc/config.gz

 KB/s ( bytes in .080s)

$ gunzip -c config.gz |grep PMEM
CONFIG_ANDROID_PMEM=y

次奥,内核都开启了PMEM为神马还是不行啊!!!(つД`)

好吧,接着我就去看dmesg,看看到底是神马回事...

<>[ 2.445319] loop: module loaded
<>[ 2.447678] pmem: pmem_setup: unable to register pmem driver(pmem) - zero size passed in!
<>[ 2.455961] android_pmem: probe of android_pmem. failed with error -
<>[ 2.462321] pmem: pmem_setup: unable to register pmem driver(pmem_adsp) - zero size passed in!
<>[ 2.471003] android_pmem: probe of android_pmem. failed with error -
<>[ 2.477379] pmem: pmem_setup: unable to register pmem driver(pmem_audio) - zero size passed in!
<>[ 2.486199] android_pmem: probe of android_pmem. failed with error -

好吧,pmem都起不来了,怪不得找不到驱动...

个人感觉那货需要从内核源码搞了,但是没有源码啊,肿么破???

那俺就只好用ION取代PMEM了,pougai!!!!

打开device/{manufacturer}/{device}/BoardConfig.mk,添加下面的代码

# Uses ION memory manager,Renounce the use of PMEM
TARGET_USES_ION := true

然后重新编译,你也可以用mmm单独编译模块~

刷进手机,重启,看log!!欧耶,这个BUG没有了,但是剩下的BUG还有一堆堆...

Qualcomm device使用ION memory manager取代PMEM的更多相关文章

  1. The Android ION memory allocator

    http://lwn.net/Articles/480055/ Back in December 2011, LWN reviewed the list of Android kernel patch ...

  2. Buffer Pool--SQL Server:Memory Manager 对象

    --=================================================================SELECT * FROM sys.sysperfinfoWHER ...

  3. Codeforces Beta Round #7 B. Memory Manager 模拟题

    B. Memory Manager 题目连接: http://www.codeforces.com/contest/7/problem/B Description There is little ti ...

  4. Memory Manager surface area changes in SQL Server 2012

    here were various changes to memory related DMVs, DBCC memory status, and Perfmon counters in SQL Se ...

  5. Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it!

    Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it! 解决方法:删除指定  ...

  6. Understanding The Linux Virtual Memory Manager

    http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.588.4660&rep=rep1&type=pdf http://e ...

  7. CodeForce 7 B - Memory Manager(模拟)

    题目大意:给你一段内存,要你进行如下的三个操作. 1.分配内存  alloc   X ,分配连续一段长度为X的内存. 如果内存不够应该输出NULL,如果内存够就给这段内存标记一个编号. 2.擦除编号为 ...

  8. Memory device control for self-refresh mode

    To ensure that a memory device operates in self-refresh mode, the memory controller includes (1) a n ...

  9. Understanding Virtual Memory

    Understanding Virtual Memory by Norm Murray and Neil Horman Introduction Definitions The Life of a P ...

随机推荐

  1. OC基础(2)

    类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 *:first-child { margin-top: 0 !important; } body > *:last-c ...

  2. 实验比较python中的range和xrange

    1 结论: 全用xrange,除非你需要使用返回的列表 2 实验一:性能对比 实验环境:win7 ,64位系统 python2.7 import time StartTime=time.time() ...

  3. android NDk环境编译总结

    首先,这篇文章的撰写是基于很多前人的优秀的帖子,感谢他们的分享让我能够学习这么多的知识.谢谢 Android NDK开发环境的搭建 前言: Android 上,应用程序的开发,大部分基于 Java 语 ...

  4. android 如何设置背景的透明度

    半透明<Button android:background="#e0000000" ... />透明<Button android:background=&quo ...

  5. selenium项目总结(UI自动化测试平台搭建、测试报告生成、邮件转发)

    最近博主完成了一个web端UI自动化平台测试环境搭建,包括常用的操作流程组合成方法,组织测试用例,利用框架及报告文件生成,最后通过邮件添加附件的格式发送. 首先UI自动化平台的核心是selenium+ ...

  6. Docker学习总结之docker介绍

    About Docker 以下均翻译自Docker官方文档 ,转载请注明:Vikings翻译 Develop, Ship and Run Any Application, Anywhere Docke ...

  7. 循环链表Josephus问题(c,cpp)

    问题描述: 设有n个人围坐在一个圆桌周围,现从第s个人开始报数,数到第m个的人出列,然后从出列的下一个人重新开始报数,数到第m个的人又出列,.......,如此反复直到所有的人出列为止. Joseph ...

  8. BZOJ1029 建筑抢修

    Description 小刚在玩JSOI提供的一个称之为"建筑抢修"的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重 ...

  9. STL源码分析-AVL树-RB树

    AVL树 不平衡情况 插入节点位于左子节点的左子树(左左) 插入节点位于左子节点的右子树(左右) 插入节点位于右子节点的左子树(右左) 插入节点位于右子节点的右子树(右右) 左左.右右为外侧插入,左右 ...

  10. python线程使用场景 多线程下载

    http://blog.xiayf.cn/2015/09/11/parallelism-in-one-line http://python.jobbole.com/84327/ http://www. ...