今天写好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. cocos2d-lua 3.5 ios搭建步骤

    xcode搭建cocos2d-lua是最简单的,不用 配置一系列环境变量,只把xcode安装好就可以 步骤一:去官网下载quick-3.5,然后打开命令行工具 步骤二:cd进入/Users/song/ ...

  2. 剑指Offer:面试题17——合并两个排序的链表

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 思路1: 分别用p1,p2两个指针扫描两个有序链表,p3指针去构建新链表h3. p1.val & ...

  3. Mysql 自动增长 重置

    重置 MySQL 自增列 AUTO_INCREMENT 初时值 注意, 使用以下任意方法都会将现有数据删除. 方法一: delete from tb1; ALTER TABLE tbl AUTO_IN ...

  4. [翻译]你不会想知道的kobject,kset,和ktypes

    ---------------------------------------------------------------------------------------------------- ...

  5. java学习之(接口)

    使用接口 接口不能用于创建实例,但接口可以用于声明引用类型变量.当使用接口来声明引用类型变量时,这个引用类型变量必须引用到其实现类的对象.除此之外,接口的主要用途就是被实现类实现.归纳起来,接口主要有 ...

  6. WP8__从windowsphone app store 中根据app id获取应用的相关信息(下载网址及图片id等)

    windows phone 官网应用商店地址 http://www.windowsphone.com/zh-cn/store/featured-apps------------------------ ...

  7. 关于OJ上内存问题的试验

    char类型占一个字节 int类型占4个字节 如果杭电OJ上给的范围是32678K,那么内存大小就是32678*1024=33554432 那么可以开到多大的数组呢?!可以开到很大,但是可用的就只有3 ...

  8. undefined reference to `pthread_create'问题解决

    在编译pthread有关的程序时,出现undefined reference to `pthread_create'这样的错误. 问题原因: pthread 库不是 Linux 系统默认的库,连接时需 ...

  9. [原]Python 简单异常处理

    s=raw_input("Input your age:") if s =="": raise Exception("Input must no be ...

  10. iOS中UIKit——UIFont得到iOS设备上的系统字体

    for (NSString *fontFamily  in [UIFont familyNames]) { NSLog(@"字体家族是:%@",fontFamily); for(N ...