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 ...
随机推荐
- 【PL/SQL练习】DML语句的处理(可以处理多行数据)
1.Insert (在表中插入一行数据,并查看) SQL> desc t1; Name Type Nullable Default Comments ---- ------------ ---- ...
- Oracle 删表前验证表名是否存在并且删除
DECLARE num NUMBER; BEGIN SELECT COUNT(1) INTO num FROM USER_TABLES WHERE TABLE_NAME = UPPER('tableN ...
- 网站导航不止有hao123!
网址导航对于我们上网而言非常的重要,在一定程度上决定了我们每天都在接触一些什么样的网络信息.我个人一直用的是hao123,总体感觉这个网址导航是非常的不错的,不过网址导航不只只有这一个好的更不只有这一 ...
- 关于SVN更新时文件加锁的小结
今天使用SVN更新应用,出现了下面的问题: update D:/workspace/acode/resource/springconf -r 6622 --force Attempted to ...
- 匿名管道 远程cmd
管道是单向的,传送数据的方向是固定的,所以互相通信需要两个管道. STARTUPINFO si; ZeroMemory(&si,sizeof(si)); si.dwFlags = STARTF ...
- 开源项目:FFmpeg
ffmpeg命令行使用 将JPG格式图片转成YUV420P格式: ffmpeg -i Z:\demo\pic.jpg -s 720x480 Z:\demo\pic.yuv 解码H265成YUV420 ...
- ostack
- IT职场求生法则(转)
摘要:在IT职场打滚超过10年了,从小小的程序员做到常务副总.相对于其它行业,IT职场应该算比较光明的了,但也陷阱重重,本文说说我的亲身体会,希望大家能在IT职场上战无不胜! 作者:张传波 软件知识大 ...
- css经验点滴积累
1.filter:alpha(opacity=70);-moz-opacity:0.7;-webkit-opacity: 0.7;-o-opacity: 0.7;-ms-opacity: 0.7;op ...
- 实现在Android简单封装类似JQuery异步请求
在android开发中经常会使用异步请求数据,通常会使用handler或者AsyncTask去做,handler 配合message 使用起来比较麻烦,AsyncTask 线程池只允许128个线程工作 ...