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

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、解压YLP2440板的交叉编译工具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(取消)


上面一些东西是参考如下的文章
Android在TQ2440开发板上的移植
whizer发表于 2009-5-21 14:22 | 只看该作者
http://www.arm9.org.ru/viewthread.php?tid=6&extra=page%3D1

更多相关文章

  1. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写
  2. 在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)
  3. Android数据传递相关内容概述
  4. AndroidManifest.xml中的内容详解
  5. android中的dumpsys命令
  6. Android执行命令行命令(获取系统Logcat)
  7. android adb 命令发送 keyevent
  8. Linux 命令行更新指定版本 android sdk
  9. android 读取raw文件下文件内容

随机推荐

  1. Android数据存储总结 之二
  2. Android之数据统计
  3. Android面试题集
  4. 聊聊android界面适配
  5. 开发商为什么仍然忽视Android系统?
  6. Android(安卓)判断应用前后台运行状态并
  7. android listview长按,单击各种事件捕捉
  8. Android(安卓)逐帧动画
  9. android studio调用JNI
  10. 【Android每日一讲】2012.10.30 自制计算