Android内核移植到2440A

原创 2011年01月10日 20:55:00

今天把android内核交叉编译后移植到我的2440开发板,下面是一些心得。

1、从http://code.google.com/p/android/downloads/list上下载linux-2.6.25-android-1.0_r1.tar.gz
2、解压到任意目录下,解压命令为tar tar –zxvf linux-2.6.25-android-1.0_r1.tar.gz。
3、解压2440板的交叉编译工具arm-linux-gcc-3.4.1.tar.bz2命令为tar xjvf arm-linux-  3.4.1.tar.bz2,将文件解压到用户目录,如/usr/local/arm/下。
4、添加当前路径进入环境变量,命令export PATH=/usr/local/arm/3.4.1/bin:$PATH
5、进入内核文件夹,如cd ~/kernel.git/
6、修改Makefile文件,gedit Makefile,如下
   CROSS_COMPILE        ?= arm-linux-
7、运行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
device drivers->Graphics support->Console display driver support->[]VGA text console
  (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内核必须选项
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
8、使用命令make zImage生成映像。

出现的一些问题
问题一:
  CC      arch/arm/kernel/asm-offsets.s
  cc1: error: invalid option `abi=aapcs-linux'
  make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1
  make: *** [prepare0] Error 2
解决方法:
    关闭kernel features -->Use EABI。

问题二:
  drivers/video/console/vgacon.c:494: error: `PCIMEM_BASE' undeclared (first use in this function)
  drivers/video/console/vgacon.c:494: error: (Each undeclared identifier is reported only once
解决方法:
  device drivers->
   Graphics support->
      Console display driver support->
         [ ]VGA text console(取消)

 

以上步骤中,省略了内核移植中的nandflash、lcd及yaffs2文件系统的支持,有机会补上去。

     下载到开发板上就可以了,能够启动起来,遗憾的是,这个内核没能启动我的yaffs2根文件系统。我有点纳闷了,不知道错在哪里,明明已经让内核支持了yaffs2文件系统了,但是下载内核及根文件系统后,重新启动Linux系统,到内核启动完成,要加载根文件系统的地方就中断了,具体错误如下:


待解决。

Linux内核移植和根文件系统制作(详细步骤精讲)

第一章移植内核 1.1 Linux内核基础知识 1.1.1 Linux版本 1.1.2 什么是标准内核 1.1.3 Linux操作系统的分类 1.1.4 linux内核的...
  • lp542718520
  • lp542718520
  • 2014年12月17日 17:12
  • 4458

LINUX移植——内核移植(一)

这两天在友善的tiny210的实验板上移植了linux内核,正好和大家分享,同时也算是做个记录吧!首先介绍一下开发环境吧,这个在做移植的时候还是挺重要的。 主机linux:Fedora9   安装在V...
  • xie0812
  • xie0812
  • 2013年09月01日 11:35
  • 6564

深入浅出 - Android系统移植与平台开发(五)- 编译Android源码

2.3编译Android源码 Android源码体积非常庞大,由Dalvik虚拟机、Linux内核、编译系统、框架代码、Android定制C库、测试套件、系统应用程序等部分组成,在编译Android...
  • mr_raptor
  • mr_raptor
  • 2014年03月10日 17:09
  • 21855

Linux开发七_linux内核移植

Linux是一套免费使用和自由传播的操作系统,吸收了来自全世界无数程序员的精华,不断完善壮大。Linux内核高度可移植,其可以运行在各种硬件设备中,如路由器、游戏机、智能手表、手机、台式计算机、超级计...
  • huang20083200056
  • huang20083200056
  • 2016年09月28日 09:54
  • 703

Linux内核移植与启动

Linux内核移植与启动 交叉编译器:buildroot-2012.08          Bootloader:U-boot-2010.09 Target borad:FL2440 1. Lin...
  • L_x_b
  • L_x_b
  • 2016年07月21日 20:42
  • 2099

linux-3.0内核移植

开发板:FL2440      内核:linux-3.0       交叉编译器:buildroot-2012.08
  • Xiongzhizhu
  • Xiongzhizhu
  • 2016年08月02日 14:12
  • 1775

Linux 4.4内核移植以及Android系统编译

Android M预移植到tiny4412
  • u013779722
  • u013779722
  • 2017年03月30日 21:46
  • 2325

linux内核的裁剪与移植

(2015-09-08 14:38:45) 转载▼ 1.  进到linux内核源代码目录下cd /home/linux-2.6....
  • chuhongcai
  • chuhongcai
  • 2016年05月26日 16:31
  • 774

Exynos4412 内核移植(一)—— 内核配置过程分析

一、前言 1、linux内核五大功能: 进程管理(cpu)   内存管理(内存) 设备管理(驱动) 网络管理(网络协议tcp/ip) 文件系统(vfs) 2、linux版本号: linux 2.6...
  • zqixiao_09
  • zqixiao_09
  • 2016年03月07日 16:59
  • 3754

Linux 内核链表移植

Linux 内核链表移植我参考网上的文章修改了移植后的Linux内核的双向链表和HASH链表, 使之适用于Linux和Windows平台. 可以在用户态下使用. 任何后果, 本人概不负责!下面是全部代...
  • cheungmine
  • cheungmine
  • 2013年04月23日 14:49
  • 3456
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android内核移植到2440A
举报原因:
原因补充:

(最多只允许输入30个字)