怎样将Android移植到FS2410开发板上

发布者:Harmonious222最新更新时间:2010-06-22 关键字:Android  FS2410  移植 手机看文章 扫描二维码
随时随地手机看文章

一、目前进展

1.Android已经可以通过NFS在FS2410开发板上运行

二、目前缺陷

1.触摸屏没有校准
2.Android中时钟停止,结束zygote进程,系统重启,时钟更新,但再次停止不动
3.串口无法与GPRS模块通讯

三、移植步骤

一、移植Android内核到FS2410开发板上
1、下载linux-2.6.25-android-1.0_r1.tar.gz

2、将内核解压到用户目录,如/home/wangan/kernel.git

3、进入kernel.git文件夹,如cd ~/kernel.git/

4、修改arch/arm/plat-s3c24xx/common-smdk.c文件中的nand flash分区设置,如gedit arch/arm/plat-s3c24xx/common-smdk.c
修改static struct mtd_partition smdk_default_nand_part[]结构体为:
static struct mtd_partition smdk_default_nand_part[] = {
       [0] = {
              .name      = "Boot Agent",
              .size = SZ_256K,
              .offset     = 0,
       },
       [1] = {
              .name      = "Linux Kernel",
              .offset = SZ_256K,
              .size = SZ_2M - SZ_256K,
       },
       [2] = {
              .name      = "File System",
              .offset = SZ_2M,
              .size = SZ_32M - SZ_2M,
       },
       [3] = {
              .name      = "Other",
              .offset     = SZ_32M,
              .size = SZ_32M,
       }
};

5、在网站上下载IA32 GNU/Linux TAR。

6、将文件解压到用户目录,如/home/wangan/arm-2008q3

7、进入arm-2008q3/bin文件夹,如cd ~/arm-2008q3/bin/

8、添加当前路径进入环境变量,如export PATH=$PWD:$PATH,或修改~/.bashrc文件并重新登录

9、进入内核文件夹,如cd ~/kernel.git/

10、修改Makefile文件,如gedit Makefile
更改ARCH和CROSS_COMPILE
#ARCH          ?= $(SUBARCH)
ARCH            ?= arm
#CROSS_COMPILE      ?= arm-eabi-
CROSS_COMPILE       ?= arm-none-eabi-

11、从华清远见Linux-2.6.8.1内核压缩包中提取.config文件(注意:config前面有个“.”)放入kernel.git文件夹

12、运行make menuconfig
(1) 确保System Type  ---> ARM system type ()中的内容为Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443
(2) 确保System Type  ---> S3C2410 Machines  ---> [*] SMDK2410/A9M2410被勾选
(3) 取消选择与Goldfish相关的内容
Device Drivers  ---> Character devices  ---> < > Goldfish TTY Driver
Device Drivers  ---> Power supply class support  ---> < >   Goldfish battery driver (NEW)
Device Drivers  ---> Real Time Clock  ---> < >   GOLDFISH (NEW)
Device Drivers  ---> Graphics support  ---> Support for frame buffer devices  ---> < >   Goldfish Framebuffer
(4) 选择S3C2410 LCD相关的内容
Device Drivers  ---> Graphics support  ---> Support for frame buffer devices  ---> <*>   S3C2410 LCD framebuffer support
Device Drivers  ---> Graphics support  ---> [*] Bootup logo  ---> [*]   Standard black and white Linux logo
Device Drivers  ---> Graphics support  ---> [*] Bootup logo  ---> [*]   Standard 16-color Linux logo
Device Drivers  ---> Graphics support  ---> [*] Bootup logo  ---> [*]   Standard 224-color Linux logo
(5) 选中Android内核必须选项
Kernel Features  ---> [*] Use the ARM EABI to compile the kernel
General setup  ---> [*] Use full shmem filesystem
General setup  ---> [*] Enable Android's Shared Memory Subsystem
System Type  ---> [*] Support Thumb user binaries
Device Drivers  ---> Android  ---> [*] Android log driver
Device Drivers  ---> Android  ---> <*> Binder IPC Driver
(6) 尽量选中Android内核可选选项
Device Drivers  ---> Android  ---> [*] RAM buffer console
Device Drivers  ---> Android  ---> [*] Android timed gpio driver
Device Drivers  ---> Android  ---> [*] Only allow certain groups to create sockets
(7) 其余CONFIG选项,如系统支持请一并选择

CONFIG_ANDROID_POWER =y
CONFIG_ANDROID_POWER_STAT =y
CONFIG_ANDROID_POWER_ALARM =y
(可以在Kconfig文件中查找ANDROID_POWER等字段进行选择,或者直接修改.config文件)

13、退出并保存.config 

二、移植LCD驱动到Linux-2.6.25内核

1、 进入kernel.git文件夹,如cd ~/kernel.git/

2、 修改arch/arm/mach-s3c2410/mach-smdk2410.c文件,如gedit arch/arm/mach-s3c2410/mach-smdk2410.c

(1) 增加头文件#include
(2) 增加两给结构体
static struct s3c2410fb_display smdk2410_lcd_cfg __initdata = {
.lcdcon5 = S3C2410_LCDCON5_FRM565 |
S3C2410_LCDCON5_INVVLINE |
S3C2410_LCDCON5_INVVFRAME |
S3C2410_LCDCON5_PWREN |
S3C2410_LCDCON5_HWSWP,
.type = S3C2410_LCDCON1_TFT,
.width = 320,
.height = 240,
.pixclock = 174757,
.xres = 320,
.yres = 240,
.bpp = 16,
.left_margin = 16,
.right_margin = 59,
.hsync_len = 9,
.upper_margin = 2,
.lower_margin = 6,
.vsync_len = 16,
};

static struct s3c2410fb_mach_info smdk2410_fb_info __initdata = {
.displays = &smdk2410_lcd_cfg,
.num_displays = 1,
.default_display = 0,
.gpccon = 0xaa955699,
.gpccon_mask = 0xffc003cc,
.gpcup = 0x0000ffff,
.gpcup_mask = 0xffffffff,
.gpdcon = 0xaa95aaa1,
.gpdcon_mask = 0xffc0fff0,
.gpdup = 0x0000faff,
.gpdup_mask = 0xffffffff,
.lpcsel = 0xf82,
};

(3) 在smdk2410_init()函数中增加s3c24xx_fb_set_platdata(&smdk2410_fb_info); 

三、移植触摸屏驱动到Linux-2.6.25内核(参见《基于linux-2.26.5内核的FS2410开发板触摸屏驱动移植》)并制作zImage文件,如make

       这里提一下,确保已经勾选Device Drivers  ---> Input device support  ---> <*>   Event interface,本人曾经在这里徘徊,感谢游老师悉心教诲! 

四、制作支持ARMv4的Android根文件系统

1、从下载Android的ARMv4版本根文件

2、在/dev下增加null和console两个设备节点
mknod -m 660 null c 1 3
mknod -m 660 console c 5 1

3、在U-boot中修改启动参数init为/init,完整的命令行如:root=nfs nfsroot=169.254.7.118:/source/rootfs ip=169.254.7.119 console=ttySAC0,115200 init=/init

4、修改/init.rc文件,去除除mount tmpfs tmpfs /sqlite_stmt_journals size=4m之外的所有mount命令

    系统制作完成,现在应该可以看到漂亮的大表了。首次启动需要创建文件,大约17分钟。然后每次启动只需要2分钟。

关键字:Android  FS2410  移植 引用地址:怎样将Android移植到FS2410开发板上

上一篇:Linux内核同步机制的自旋锁原理
下一篇:Wind River Simics支持尚未上市的飞思卡尔处理器

推荐阅读最新更新时间:2024-05-02 21:04

Android 12对话小部件隐藏彩蛋 可以根据消息改变背景
  谷歌为 Pixel 用户推送了 Android 12 Beta 2 更新,带来了全新的对话小部件应用,在桌面上可以显示不同应用的通知以及数量。   据外媒 XDA 报道,该对话小部件还有一个有趣的小彩蛋,可以根据收到的消息自动改变小部件的背景。   据报道,当收到的消息中包含 2 个或 2 个以上感叹号(!)时,对话小部件就会在背景中出现感叹号;如果有 2 个或 2 个以上问号(?)时,背景就会出现问号。   此外,当收到的消息中包含多个 emoji 表情时,背景也会显示有色彩的 emoji 表情。   该功能的实现方式是在 PeopleTileViewHelper 类里的正则表达式匹配方法,该方法可检查特定的字符
[手机便携]
MSP430FG439上实现IO模拟UART以及移植要点解析
最近要做MSP430上的开发,一上手就要做IO模拟UART这种难度的玩意,幸好网上已经有很多现成的MSP430的软串口实现例子,本文代码大部分参考 http://www.microcontrol.cn/430base.htm 上的《 MSP430的Timer_A实现模拟串口功能例程 》,并且成功移植到MSP430FG439之上,不过移植的过程有点匪夷所思。。。。由于才学430没几天,所以花了一周才调试出IO模拟UART。。。。 接下来就贴上100%能在MSP430FG439上使用的代码(即使是同一Family的不同型号,也会有区别): //利用定时器A 作串行口波特率发生器用,利用捕捉比较功能实现异步串行通信。 //芯片型
[单片机]
Android中国粉丝“伤”机
    苹果以iPhone、iPad引爆了智能手机、平板电脑市场,尾随而来的中国厂商纷纷选择了开源的Android争食之。     自Google在2007年底发布手机操作系统Android以来,凭借免费和开源,Android携众手机厂商一路攻城略地。不到三年时间,Android势头早已超越微软、塞班、RIM,甚至压过苹果的风头。     在中国市场,Android也成为国产手机商们最爱的智能机系统。因其免除授权费并容许OEM厂商进行差异化的改进,国产智能手机几乎都将Android作为系统首选。同时,还催生了不少基于Android二次开发的系统,如中移动的OPhone等。     如今,Android专利“地雷”曝光,其中国“粉丝”
[手机便携]
消息称Google视频租赁服务将登陆Android手机
      北京时间7月6日消息,据国外媒体报道,Google计划向Android手机提供旗下的视频租赁服务。   两个月前,Google通过Youtube推出了视频租赁服务。由于与索尼、环球、华纳兄弟等影视巨头达成了新的合作协议,Google得以为用户提供丰富多样的影片。据传,Google准备在此基础上更进一步,将该服务延伸到Android手机上。   此举并非第一次。就在youtube.com/rentals推出后不久,Google就曾向Android用户推出过该服务。然而不幸的是,由于版权问题,该服务被迫终止。当然,这只影响到了Xoom平板电脑用户,因为当时YouTube视频租赁服务只兼容Honeycomb 3.1。用户可以选
[手机便携]
摩托Edge 30现身Geekbench,搭骁龙778G、安卓12系统
  有外媒发现,摩托罗拉 Edge 30 现已出现在 Geekbench 基准测试平台上,从而揭示了一些关键规格,例如操作系统版本、RAM、GPU 和芯片组等等。   此外,这款手机之前也已经出现在了 TRDA、EEC 和 Wi-Fi Alliance 等多个认证网站上,可能会在近期发布。   摩托罗拉 Edge 30 型号为 XT2203-1,预装 Android 12 操作系统,搭载八核的高通骁龙 778G 芯片,并配备 8GB 内存,但应该还会提供其他版本。   Geekbench 数据库表明摩托罗拉 Edge 30 单核获得了 821 分,多核获得了 2353 分,而且将配备 Adreno 642L GPU,所以这款芯片
[手机便携]
摩托Edge 30现身Geekbench,搭骁龙778G、<font color='red'>安卓</font>12系统
雷军:小米为什么愿意推动安卓平板生态
   7月1日消息,今日雷军在其微博上发表文章《总要有人先种树》。他表示,小米之所以创业四年后才开始做平板电脑,是因为平板是非常难做的产品。从硬件角度看,Android平板并不是很难做,但没有优秀、足量的应用和游戏生态链支持,造成了恶性循环。小米做平板的核心在于建立生态链。只有充分重视了生态链的建立,才有机会把它做好。 雷军称,三星、华硕们做了平板,但没有出大力气去推动平板生态。因为大伙儿都不太乐意自己先埋头傻出力栽树,但让后来人一起乘凉。毕竟,跟着别人沾光才是最合算的事。但小米愿意带个头,推动新行业生态链的建设,在视频、阅读游戏等领域实现突破。 雷军在最后放下豪言: “Cook说Android平板都是垃圾,小米不服气,那我们就
[手机便携]
基于TQ2440的u-boot-1.1.6移植(基本步骤)
参考资料: 《移植u-boot-1.1.6到TQ2440文档》 天嵌移植好的源码 移植环境 系统:华清远见虚拟机搭建的Ubuntu12.04 开发板:TQ2440 交叉编译器:crosstools_3.4.5_softfloat CPU:S3C2440 SDRAM:64M NOR Flash:2M NAND Flsah:256M NET:DM9000 移植过程 1、源代码下载 ftp://ftp.denx.de/pub/u-boot/ 下载u-boot-1.1.6.tar.bz2并解压到Ubuntu中 2、文件删减 board/下除 smdk2410 以外的所有其它目标板文件夹删除 cpu/下除 arm920t 以外的
[单片机]
基于TQ2440的u-boot-1.1.6<font color='red'>移植</font>(基本步骤)
8.9寸Android 三星新Galaxy Tab将亮相
  凭借着全球众多厂商的支持,Android系统平板电脑无疑已成为了智能移动设备领域中的明星,其中,三星Galaxy Tab与三星Galaxy Tab 10.1两款产品则更被消费者所关注。不过就在近日,三星公司于其官方网站中透露,又一款全新版本的三星Galaxy Tab即将登场。 8.9英寸版三星Galaxy Tab即将亮相   在这个主题为“What's your Tab life?”的官方网站页面中,“7、8、9、10”四个数字非常的显眼。而根据三星Galaxy Tab采用了7英寸屏幕,以及三星Galaxy Tab 10.1拥有一块10.1英寸屏幕推测,三星公司这款全新版本的平板电脑将会采用8.9英寸屏幕。同时也可以推
[手机便携]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved