s3c2410/2440(armv4t) 移植android

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

【本教程版权以及image属于Androidin 转载和使用请注明出处并附带链接】
Androidin首发
Androidin Dev.Team 熊猫哥哥

ARMv4移植简单教程

    相信国内很多朋友手上都有s3c2410/2440的片子,基于armv4t(arm920t)的指令架构。在之前,因为android的一些底层代码含有armv5t的指令, 所以以前无法移植到这样的平台。 在这里也放出移植教程和已经编译好的image。 让更多的朋友可以在自己的开发板上亲身体验android。教程基于勤研qt2410以及扬创utu2440完成。
    注意,移植是到armv4而不是armv4t,  原因应该是不开thumb支持会比较好移植一些(改动未涉及的库依然会用thumb代码,所以kernel依然要开thumb支持)。
    kernel移植及nfs配置的详细部分等请自行查阅相关文档,本文只做提点,另外需要些git的操作。
    目前的image只是临时方案。主要是基于openmoko的benno一些尚未正式发布的patch,整体来说已经比较完善和clean,我仅做了点小修改就能使用,由于部分库用c实现替换掉了arm实现,同时一些critical的armv5指令被armv4的替换,速度可能有点慢,尤其是2410上速度很慢。。对于严苛的android开发组来说,这些patch部分尚未提交,部分在reviewing,还需要一些周期才会被接受进官方git。等这些patch被官方接受后,我会整理另一套正式一些的版本,同时可能会提供些优化方案。

A.  kernel的移植
    1. 移植,两个方案可以选。
        1). 将android的官方kernel的补丁打到自己的kernel上,这个方法对于kernel版本比较新的朋友比较合适,也很简单。比如2.6.24或以上。
            a. 下载android kernel,执行 git diff v2.6.25 HEAD > android.patch
            b. 进入你自己的kernl,执行 git apply android.patch
            c. 一般都会出error,手动合并所有带error的文件,如果你是2.6.25的话很简单,2.6.24会费点周折,因为kobject/kset的一些改动造成android power/ipv4等驱动不太好合。。
        2). 将自己kernel上的bsp移植到android官方kernel。适用于kernel比较旧的朋友。
            因为2410/2440是linux原生支持,所以基本上只需要移植lcd/touchpanel/网卡等等的驱动,并打开2410/2440支持选项即可。这个目前网上已经有大量的资料详细阐明, 在此不再累述,但是出问题比较多的地方就在这里了。
    2. 这些步骤完成后,检查如下选项是否都已经打开(make menuconfig):
        CONFIG_AEABI=y   
        CONFIG_SHMEM=y   
        CONFIG_ASHMEM=y
        CONFIG_ARM_THUMB=y
        CONFIG_ANDROID_BINDER_IPC=y
        CONFIG_ANDROID_LOGGER=y
        以下不一定重要, 但能开就开,除非移植有问题,比如power驱动:
        CONFIG_ANDROID_POWER=y
        CONFIG_ANDROID_POWER_STAT=y
        CONFIG_ANDROID_POWER_ALARM=y
        CONFIG_ANDROID_RAM_CONSOLE=y
        CONFIG_ANDROID_TIMED_GPIO=y
        CONFIG_ANDROID_PARANOID_NETWORK=y
    3. 按需要make zImage,再生成uImage,烧写到nand。

B. 制作android nfs root
    1. 下载我做好的android_armv4 image包,在这里(android_armv4_image 上传中..稍等..)
    2. 准备好能启动的nfs root,设置好访问权限(重要!),资料请网上查阅,不再累述
    3. 拷贝包中的system目录到nfs_root/system, data目录到nfs_root/data, root目录到nfs_root/ (其他.img文件可以模拟器使用,同时也可以做真实文件系统,后话了)
    4. 设置nfs启动参数中的init=/init,既指向nfs_root下的init
    5. 删除nfs_root/init.rc,去掉除mount tmpfs tmpfs /sqlite_stmt_journals size=4m之外所有的mount命令

C. 运行!
    跑跑看吧, 进入android console之后可以运行logcat查看log。第一次启动会创建很多的数据,会比较慢,2410几乎是折磨了。。平常的启动速度2440大概在1分多钟,2410要5分钟了。看到漂亮的大手表,你就搞定了!!

常见问题:
1. lcd不显示, 检查framebuffer..如果正常,查看nfs权限。
2. 非法指令,检查thumb,eabi选项。
3. servicemanager异常退出,检查binder & ashmem选项。
其他的看kernel log和logcat自己分析吧~ 呵呵~

简单流程就是如此,中间可能会遇到很多困难的!wish u luck!


20081208修改:
最新进展, s3c2440上也已经跑起来了,能进idle, 触摸有kernel消息但是android还没认.
使用的是utu2440f平台, 扬创的..2410太慢啦..上2440咯!
前段时间太忙没来得及更新和放patch..
今天晚上直接放支持2410/2440的android image..

下载我做好的android_armv4 image包,在这里

http://www.androidin.com/bbs/viewthread.php?tid=2741&page=1&extra=page%3D1

原来的帖子(s3c2410):
目前已经能进入idle..但屏幕颜色显示还有问题..触摸驱动也还没有搞..
硬件配置为s3c2410 200mhz, 64m ram, 64m nand..
我的板子kernel比较老~直接用官方android kernel做的..于是所有驱动都得自己移植进来..后面估计有得搞了..
试了几个方案..感谢openmoko两位牛人..Sean的patch没有跑起来..最终还是用的Benno的patch..另外有些小修改..
启动速度一般, 感觉还行!
要看图的话明天上图..不会发图阿..呵呵..
patch我会整理一下, 后面发布出来~

基于ARM2440平台的Android操作系统的移植 移植可以参考看看,主要是关于mini2440开发板的移植 立即下载

相关推荐

基于ARM9S3C2440Android操作系统移植

是学位论文,本文讨论操作系统移植到开发平台的可行性,讲述移植过程,设计电路板和,移植内核与文件系统,总结在移植过程中碰到的问题。最后将操作系统移植到开发平台,启动。记内核挂载文件系统完成主要的应用功能。

深入浅出 - Android系统移植与平台开发(一)

+-------------------------------------------------++      本系列为连载,不定期会更新       + +-------------------------------------------------+一、Android4.0系统的下载与编译Android系统的下载与编译,Google的官方网站上已经给出了详细的说明,请参照Android

mr_raptor的专栏 3万+

android源代码编译和到s3c2440移植

1,到官网www.android.com下载源代码的过程,就是按照官网的提示一步一步地做就可以了。http://source.android.com/source/initializing.html上面有详细的过程介绍,虽然不懂为什么这么配置和编译,但是先编译完再说。2,编译的时候,由于我天生弱智,所以在开始make的时候,应该打make -j2,结果我打了个make j2,然后编译总是停下来,然后说找不到一些DOC目录,如find: `frameworks/base/frameworks/base/doc

samantha_sun的专栏 5883

FriendlyArm MINI210 系统移植Android 4.0.3

(参考MINI210用户手册.pdf) 一、准备        FriendlyArm MINI210开发板,串口线(我使用的是USB转串口线(注意是母口)),镜像文件(images文件夹),烧写软件SD-Flasher.exe,4G TF卡。         images文件夹目录结构如下所示:         Android4.0.3的目录结构如下所示:   二、安装系统

whbsdu的专栏 2755

Android移植之硬件篇

http://www.builder.com.cn/2008/0925/1152148.shtml 开发者在线 Builder.com.cn 更新时间:2008-09-25本文关键词: Android 硬件 内核   Android操作系统兼容ARM9和ARM11处理器,目前大部分开发板都可以很好的运行Android操作系统。Android内核采用ARM926-EJ-S内核,大

紫梧桐的专栏 592

s3c2440移植MQTT

因为项目需要从机接收MQTT广播,网上有关2440的MQTT移植文章非常少,懵逼死我了,所以移植成功以后先把它写出来,给有需要的人看。我当时是参考了下面几篇文章,但是都不能顺利完成,几篇文章写得很好,需要相互借鉴。http://blog.sina.com.cn/s/blog_951adad70101tnyg.html http://zhuzhouhong8.blog.163.com/blog/st

Dodo 3660

s3c2410/2440(armv4t) 移植教程

Androidin首发Androidin Dev.Team 熊猫哥哥ARMv4移植简单教程:    相信国内很多朋友手上都有s3c24102440的片子,基于armv4t(arm920t)的指令架构。在之前,因为android的一些底层代码含有armv5t的指令, 所以以前无法移植到这样的平台。 在这里也放出移植教程和已经编译好的image。 让更多的朋友可以在自己的开发

opendroid的专栏 5107

2440 android,s3c2440 android 移植

ARMv4移植简单教程:相信国内很多朋友手上都有s3c2410/2440的片子,基于armv4t(arm920t)的指令架构。在之前,因为android的一些底层代码含有armv5t的指令,所以以前无法移植到这样的平台。在这里也放出移植教程和已经编译好的image。让更多的朋友可以在自己的开发板上亲身体验android。教程基于勤研qt2410以及扬创utu2440完成。注意,移植是到armv4而...

weixin_39703551的博客 280

Android在TQ2440开发板上的移植(转…

一、目前进展 1.Android已经可以通过NFS在TQ2440开发板上运行 最近自己编译了android的文件系统,并在TQ上运行了,比熊猫版的bin程序多些,基本功能已经实现,大家可以从: http://d.namipan.com/d/b64ce43b2388e5e1f66af18149824b98cd13b926c4921f02 下载文件系统试试,改天整理一下,发个详细的移植过程和注意

shangyaowei的专栏 480

Android学习笔记8&s3c2440学习系列9

今天把andriod系统初步load到了mini2440上面运行,依然还有很多问题需要自己去摸索:我把文件系统中的,#service servicemanager /system/bin/servicemanager因为会出现下面的问题:init: critical process servicemanager exited 4 times in 4 minutes

cybertan的专栏 4709

STM32单片机与ARM7、ARM9、ARM11

本内容详细介绍了 ARM 与 STM32 的关系,STM32 与 ARM7、ARM9、ARM11 的区别,美国芯片巨头英伟达欲收购 ARM 资讯。

让你爱上电路设计 6146

在S3C2440移植Mplayer_Micro2440

小学期实践: 在S3C2440移植Mplayer 硬件平台: Micro2440开发板 主机系统: RedHat Linux AS5 交叉编译器: arm-Linux-gcc-4.3.2 源程序:  libmad-0.15.1b.tar.gz MPlayer-1.0rc2.tar.bz2 步骤: 1、搭建交叉编

CoCo的专栏 1611

paho mqtt移植,交叉编译器库移植

为了让linux开发板运行mqttclient服务,需要移植mqtt库,一拨三折。移植过程记忆深刻,在这里记录下。 库移植移植就是将src源文件编译生成与开发环境适配的动态库,静态库,安装到指定库路径搜索目录下,列如linux下usr/include(头文件),usr/lib(静态库和动态库)下,这样写程序编译时,就能正确的找到库文件。 1下载源文件 源文件下载地址:https://projects.eclipse.org/projects/iot.paho/downloads 源...

如梦人身 1718

ANDROID内核真机移植

1.把真机的内核配制文件导出:adb pull /proc/config.gz,解压便是真机的内核配制文件。 2.把解压出的config 改名为.config,并到Makefile的目录所在层的低下,就是是在同一个目录下 3.修改Makefile, ARCH        ?= arm //制定CPU的架构为ARM CROSS_COMPILE    ?= arm-none-linux-gn

hello_kitty8888的专栏 2301

android模拟器运行arm 移植的 c程序

first : download arm cross compliers next : modify env [dengwei@localhost ~]$ vi ~/.bashrc  export PATH="/home/dengwei/arm-marvell-linux-gnueabi/bin:$PATH"  third: code here #include

HalsonHe的专栏 1201

android移植高版本,android移植(三)-一些问题与解决方法

板子helper2416 芯片是三星的s3c2416 arm平台 本机系统: opensuse==============================================================================命令行让Android播放音乐插tf卡开机之后,运行 gdb shellam start -n com.android.music/com...

weixin_33060757的博客 628

ARM11Mini6410 Android 开发环境搭建 [李园7舍_404]

1 Android 系统移植 首先面临的一个任务就是给ARM11 Mini6410开发板安装操作系统。可在ARM11 Mini6410开发板之上安装WindowsCE系统、Android系统及Linux系统。此次是开发Android应用程序,需要将Android系统移植到ARM11 Mini6410开发板之上,完成这个操作有两种方法: (1)      利用SD卡快速安装系统。 (2) 

记一忘三二 6471
上一篇: 电子新思路:经济危机带来技术融合机遇
下一篇: 将Android移植到FS2410开发板上
Linux先生
博客等级 码龄20年 97粉丝 43原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值