(个人工作记录)
由于项目需要,需要把android模拟器的分辨率调到1366*768,但是修改了SKIN后,发现不能显示出来,但是模拟器仍然后台运行,经过琢磨的调试,解决方法如下:
1:修改SKIN,特别是里面的LAYOUT,具体参数不做说明,很easy(废话)
2:下载模拟器运行的kernel,一般SDK中所带的模拟器的kernel是预编译好的,就是说没有源代码,需要从官网上下载一个匹配的源代码,方法和编译详见我的外一个帖子.
3:修改kernel源码驱动:
a 修改/arch/arm/mach-goldfish/include/mach/memory.h文件
-#define CONSISTENT_DMA_SIZE (2*SZ_2M)
+#define CONSISTENT_DMA_SIZE (2*SZ_8M)
b 修改/drivers/video/goldfishfb.c
这里注意一下,如果里面是写死的话,需要修改,如果没有特别限定,则不用修改,基本上看看里面的init函数即可.
c 修改/include/linux/mmzone.h文件
/* Free memory management - zoned buddy allocator. */
#ifndef CONFIG_FORCE_MAX_ZONEORDER
-#define MAX_ORDER 11
+#define MAX_ORDER 14//11
#else
这里写下总结,主要的解决方法集中在看看LCD驱动是否限定分辨率,如果没问题,则看看是不是DMA分配失败,失败的话就需要扩展DMA大小和整个KERNEL分配的内存大小,至此,可以解决大分辨率问题,当然,还要手动调整SKIN的工作还是少不了的,这里仅仅讲出核心修改!