移植android系统到mini2440
2009-06-09 17:16
246 查看
在上周五,我将最新android系统的Linux内核2.6.29下载下来,针对我的G1手机进行了打补丁(nand flash、多点触摸支持),并编译出了G1的Linux内核,使用Fastboot引导入G1,实践证明此内核可以使用。之后便开始了向mini2440移植的工作。
我的移植和之前的网上已有的人的移植方法有不同,之前的移植者都是向已经移植好S3C2440的内核里打Android补丁,这样补丁量大,出错的机会也大。而我经过考虑,决定使用反方法,先实现可以使用的Android内核,然后在这之上打上mini2440的补丁。这样避免了打大量的补丁产生大量的错误。而这个2440的补丁要实现LCD 、触摸屏和网卡等基本驱动。
我从Tekkaman Ninja处得到了他最新的Linux-2.6.29.4的补丁(Tekkaman Ninja会在近期发布此补丁)。在去除了内核中的fusion模块(用于DFB)和Yaffs模块(G1内核已经有了)后把这个补丁打在了我的android的Linux内核2.6.29上,很快,也很顺利(除了Makefile有问题之外,但很好解决,就是改一下交叉编译器)。
然后就是配置内核,这很关键,我一开始大部分按照G1去配置(除了system type和一些驱动的配置),可是用在启动到nfs文件系统的时候就挂了。后来我根据网上的文章,只是在原来mini2440的配置上稍作修改,添加必要的android系统特有的驱动,编译好后就可以引导最简单的文件系统,这说明这内核基本OK了。
要证明这个内核的可用性,只能使用android的文件系统来测试了。在此之前已经有高人搞了一个可以在ARMV4上使用的Android文件系统(armv4.tar.gz)。其实这个文件系统是从openmoko 的 freerunner 的文件系统中简化来的。现在暂时用拿来主义先测试一下内核,以后在自己做一个。
在下载文件系统armv4.tar.gz之后,根据网上的说明:
3.拷贝包中的system目录到nfs中rootfs根目录下的/system, data目录到nfs中rootfs根目录下的/data, root目录中的内容到nfs中rootfs根目录下
4.设置内核启动参数中的init=/init,既指向根目录下的init
5.删除init.rc中的部分内容,去掉除mount tmpfs tmpfs /sqlite_stmt_journals size=4m之外所有的mount命令
现在就可以开启mini2440,使用nfs作为根文件系统。以下是启动后的画面:
我的移植和之前的网上已有的人的移植方法有不同,之前的移植者都是向已经移植好S3C2440的内核里打Android补丁,这样补丁量大,出错的机会也大。而我经过考虑,决定使用反方法,先实现可以使用的Android内核,然后在这之上打上mini2440的补丁。这样避免了打大量的补丁产生大量的错误。而这个2440的补丁要实现LCD 、触摸屏和网卡等基本驱动。
我从Tekkaman Ninja处得到了他最新的Linux-2.6.29.4的补丁(Tekkaman Ninja会在近期发布此补丁)。在去除了内核中的fusion模块(用于DFB)和Yaffs模块(G1内核已经有了)后把这个补丁打在了我的android的Linux内核2.6.29上,很快,也很顺利(除了Makefile有问题之外,但很好解决,就是改一下交叉编译器)。
然后就是配置内核,这很关键,我一开始大部分按照G1去配置(除了system type和一些驱动的配置),可是用在启动到nfs文件系统的时候就挂了。后来我根据网上的文章,只是在原来mini2440的配置上稍作修改,添加必要的android系统特有的驱动,编译好后就可以引导最简单的文件系统,这说明这内核基本OK了。
要证明这个内核的可用性,只能使用android的文件系统来测试了。在此之前已经有高人搞了一个可以在ARMV4上使用的Android文件系统(armv4.tar.gz)。其实这个文件系统是从openmoko 的 freerunner 的文件系统中简化来的。现在暂时用拿来主义先测试一下内核,以后在自己做一个。
在下载文件系统armv4.tar.gz之后,根据网上的说明:
3.拷贝包中的system目录到nfs中rootfs根目录下的/system, data目录到nfs中rootfs根目录下的/data, root目录中的内容到nfs中rootfs根目录下
4.设置内核启动参数中的init=/init,既指向根目录下的init
5.删除init.rc中的部分内容,去掉除mount tmpfs tmpfs /sqlite_stmt_journals size=4m之外所有的mount命令
现在就可以开启mini2440,使用nfs作为根文件系统。以下是启动后的画面:
相关文章推荐
- FriendlyArm MINI210 系统移植之Android 4.0.3
- Android 文件系统移植到 2440 未完
- Android 文件系统移植到 2440 未完
- 内核移植和Android文件系统
- Android系统移植(一)-让android系统在目标平台上运行起来
- 【备忘】Android系统级深入开发—移植与调试 PDF 下载
- Android系统移植与调试之------->如何修改Android设备的开机第二阶段Logo
- Android系统移植与调试之-------)如何修改Android系统默认显示
- Android系统移植方法详解(转)
- 【视频课程】Android底层开发关键技术—Android系统移植与HAL框架开发
- Android系统移植与调试之------->如何修改Android设备添加重启、飞行模式、静音模式等功能(二)
- 深入浅出 - Android系统移植与平台开发(十三) - Sensor HAL框架分析之三
- 将directFB移植到Android系统上
- 深入浅出 - Android系统移植与平台开发(八)- HAL Stub框架分析
- 深入浅出 - Android系统移植与平台开发(二)- 安装Vmware虚拟机及Ubuntu12.04
- QEMU KVM 虚拟机移植之性能提高篇小结(android 虚拟机双系统方案)
- Android系统的移植要做的两个工作
- Android 文件系统移植总结
- android系统开发(四)-触摸屏tslib移植(内核)和原理分析
- android系统开发(十)-audio移植一