Qualcomm device使用ION memory manager取代PMEM
今天写好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的更多相关文章
- The Android ION memory allocator
http://lwn.net/Articles/480055/ Back in December 2011, LWN reviewed the list of Android kernel patch ...
- Buffer Pool--SQL Server:Memory Manager 对象
--=================================================================SELECT * FROM sys.sysperfinfoWHER ...
- Codeforces Beta Round #7 B. Memory Manager 模拟题
B. Memory Manager 题目连接: http://www.codeforces.com/contest/7/problem/B Description There is little ti ...
- 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 ...
- Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it!
Delphi 安装Cnpack cnvcl后界面不断弹出 Memory Manager's list capablity overflow ,please enlarge it! 解决方法:删除指定 ...
- 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 ...
- CodeForce 7 B - Memory Manager(模拟)
题目大意:给你一段内存,要你进行如下的三个操作. 1.分配内存 alloc X ,分配连续一段长度为X的内存. 如果内存不够应该输出NULL,如果内存够就给这段内存标记一个编号. 2.擦除编号为 ...
- 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 ...
- Understanding Virtual Memory
Understanding Virtual Memory by Norm Murray and Neil Horman Introduction Definitions The Life of a P ...
随机推荐
- Android框架 加载图片 库 Picasso 的使用简介
0 说明 现在Android开源库中有许多图片加载框架,本文以picasso为例,总结下开发过程中的一些优化经验,使用的picasso版本如下 compile 'com.squareup.picass ...
- python连mysql时避免出现乱码
使用python连mysql时候,常常出现乱码,采取以下措施可以避免 1 Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)2 MySQL数据库charset=ut ...
- 怎样用CODESOFT打印连续的条码标签?
在实际工作中,经常会用CODESOFT条 码打印软件来实现打印连续的条码标签,将这些标签按递增或递减等方式连续打印.这样设置可大大提高用户的工作效率.实现在CODESOFT 2015打印连续条码标签, ...
- 【练习】sqlnet.ora
在SQLNET.ora文件中设置以下参数可以实现IP访问限制: $ pwd/u01/app/oracle/product/10.2.0/db_1/network/admin$ vi sqlnet.or ...
- 配置Tomcat的JVM的大小解决Tomcat内存溢出的问题
操作步骤如下图所示(图中也有对应的文字说明已比较详细,不再用文字做过多的解释): 1: 2: 3: 4: 5: 下面是配置的参数的说明: -Xms256m JV ...
- python时间相关
1.格式化时间time.strftime,返回字符串 import time time.strftime('%Y-%m-%d %H:%M:%S') 2.时间差 timedelta from datet ...
- USACO Section 4.4 追查坏牛奶Pollutant Control
http://www.luogu.org/problem/show?pid=1344 题目描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件 ...
- [drp 4] 使用dom4j,读取XML数据,保存至数据库
导读:上篇文章介绍了用XML文件配置数据库的连接,然后通过读取XML文件连接数据库的内容,本篇博客介绍读取XML文件,进行数据持久化的操作.PS:从某种意义上来说,经过Scheme校正的XML文件,本 ...
- JSON时间转换格式化
通常JSON时间一般是这样的格式. 1 /Date(1436595149269)/ 通常我们用AJAX获取下来的JSON数据,如果有时间,都是这种格式的.其中,中间的一段数字"1436595 ...
- WF4.0 自定义CodeActivity与Bookmark<第三篇>
一.自定义CodeActivity CodeActivity用于自定义一段代码,可实现你自己写的任意功能. 要注意的有两点: 1.自定义CodeActivity必须继承自CodeActivity; 2 ...