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 ...
随机推荐
- cocos2d-lua 3.5 ios搭建步骤
xcode搭建cocos2d-lua是最简单的,不用 配置一系列环境变量,只把xcode安装好就可以 步骤一:去官网下载quick-3.5,然后打开命令行工具 步骤二:cd进入/Users/song/ ...
- 剑指Offer:面试题17——合并两个排序的链表
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 思路1: 分别用p1,p2两个指针扫描两个有序链表,p3指针去构建新链表h3. p1.val & ...
- Mysql 自动增长 重置
重置 MySQL 自增列 AUTO_INCREMENT 初时值 注意, 使用以下任意方法都会将现有数据删除. 方法一: delete from tb1; ALTER TABLE tbl AUTO_IN ...
- [翻译]你不会想知道的kobject,kset,和ktypes
---------------------------------------------------------------------------------------------------- ...
- java学习之(接口)
使用接口 接口不能用于创建实例,但接口可以用于声明引用类型变量.当使用接口来声明引用类型变量时,这个引用类型变量必须引用到其实现类的对象.除此之外,接口的主要用途就是被实现类实现.归纳起来,接口主要有 ...
- WP8__从windowsphone app store 中根据app id获取应用的相关信息(下载网址及图片id等)
windows phone 官网应用商店地址 http://www.windowsphone.com/zh-cn/store/featured-apps------------------------ ...
- 关于OJ上内存问题的试验
char类型占一个字节 int类型占4个字节 如果杭电OJ上给的范围是32678K,那么内存大小就是32678*1024=33554432 那么可以开到多大的数组呢?!可以开到很大,但是可用的就只有3 ...
- undefined reference to `pthread_create'问题解决
在编译pthread有关的程序时,出现undefined reference to `pthread_create'这样的错误. 问题原因: pthread 库不是 Linux 系统默认的库,连接时需 ...
- [原]Python 简单异常处理
s=raw_input("Input your age:") if s =="": raise Exception("Input must no be ...
- iOS中UIKit——UIFont得到iOS设备上的系统字体
for (NSString *fontFamily in [UIFont familyNames]) { NSLog(@"字体家族是:%@",fontFamily); for(N ...