Phases,
ü Installing tool chain
ü Downloading Linux kernel
ü Installing Android Emulator
ü Extracting root file system
ü Modifying Linux kernel source
ü Configuring Linux kernel
ü Modifying files in root file system
ü Building Linux kernel
ü Installing kernel image
1.0 Installing tool chain
$ wget http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-
gnueabi/arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
$ tar -xjvf arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
2.0 Downloading Linux kernel
Download Linux kernel from the link shown below,
http://code.google.com/p/android/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+Size+DownloadCount
Kernel : linux-2.6.23-android-m5-rc14.tar.gz
Extract the kernel with the command shown below,
$ tar -xf linux-2.6.23-android-m5-rc14.tar.gz ./
3.0 Installing Android Emulator
Download Android emulator from the link shown below,
http://code.google.com/p/android/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+Size+DownloadCount
Emulator : android-emulator-m5-rc14.tar.gz
Install the emulator using following command,
$ tar -xf android-emulator-m5-rc14.tar.gz
4.0 Extracting root file system
1> Download busybox binary from the link shown below.
http://benno.id.au/blog/2007/11/14/android-busybox
2> run the emulator using following steps,
$ cd /tools
$ ./emulator&
Note: Wait for the emulator to come up
$ ./adb push /busybox /data
$ ./adb shell
Note: This will get a android terminal
# /data/busybox tar -czf system.tar.gz /system
# /data/busybox tar -czf data.tar.gz /data
# /data/busybox tar -czf etc.tar.gz /etc
# /data/busybox tar -czf sbin.tar.gz /sbin
# exit
$ ./adb pull /system.tar.gz ./
$./adb pull /data.tar.gz ./
$./adb pull /etc.tar.gz ./
$./adb pull /sbin.tar.gz ./
$./adb pull /init ./
$ mkdir initial_ram_disk
$ cd initial_ram_disk
$ mkdir cache
$ mkdir d
$ mkdir dev
$ mkdir proc
$ mkdir root
$ mkdir sdcard
$ mkdir sys
$ mkdir tmp
$ mkdir var
$ tar -xf /system.tar.gz ./
$ tar -xf /data.tar.gz ./
$ tar -xf /etc.tar.gz ./
$ tar -xf /sbin.tar.gz ./
$ cp /init ./
5.0 Modifying Linux kernel source
Downloaded kernel is not supporting smdk6400 board. One should copy all architecture related smdk6400 files to the kernel. Change Kconfig and Makefile accordingly.
1> Change the /arch/arm/mach-s3c2410/Makefile.boot as shown below,
zreladdr-$(CONFIG_PLAT_S3C24XX) := 0x30008000
params_phys-$(CONFIG_PLAT_S3C24XX) := 0x30000100
zreladdr-$(CONFIG_PLAT_S3C64XX) := 0x50008000
params_phys-$(CONFIG_PLAT_S3C64XX) := 0x50000100
2> Copy the directory/files shown below from any other kernel supporting 6400 board (in the project kernel sent by Nexus chips was used for the purpose).
/arch/arm/mach-s3c6400
/drivers/serial/s3c6400.c
/drivers/input/touchscreen/s3cts.c
/drivers/usb/gadget
3> Copy /drivers/android/ashmem.c from any other android kernel (The Android source code for 2..6.23 does not have this file)
4> Change Kconfig and Makefile accordingly.
具体配置方法请参考下列地址文章
http://www.androidok.com/bbs/dispbbs.asp?boardid=5&Id=68
6.0 Configuring Linux kernel
$ cd
$ make CROSS_COMPILE=/bin/arm-none-linux-gnueabi-gcc ARCH=arm menuconfig
Note: Configure initial ramdisk support and select the path to initial_ram_disk directory.
7.0 Modifying files in root file system
Touchscreen has to calibrated before it can be used. Refer below link to do so.
http://home.androidin.com/space.php?uid=17708&do=blog&id=21
Modify /etc/init.rc in root file system to include below environmental settings,
TSLIB_CONSOLEDEVICE none
TSLIB_FBDEVICE /dev/graphics/fb0
TSLIB_TSDEVICE /dev/input/ts0
TSLIB_CALIBFILE /etc/pointercal
TSLIB_CONFFILE /etc/ts.conf
TSLIB_PLUGINDIR /lib/ts
8.0 Building Linux kernel
$ make CROSS_COMPILE=/bin/arm-none-linux-gnueabi-gcc ARCH=arm zImage
Note: While building, it may deliver errors related to dependency. One has to solve all dependency related issues.
9.0 Installing kernel image
1. Run hyperterminal in Windows box.
Config: COM1 port, 115200, 8N1, no flow control.
2. Connect serial port of smdk6400 to COM1 and power up.
3. Stop boot process at bootloader by pressing any key
4. Connect USB device port of smdk6400 to USB host port of Windows box
5. Execute below command from bootloader,
$ run bootup (For downloading bootloader)
OR
$ run kernelup (For downloading kernel)
OR
$ run rootup (For downloading root file system)
6. From Windows box,
Run dnw.exe (Utility meant for downloading image file to smdk6400)
7. From dnw.exe,
select `USB port -> tranmit`
8. Browse to image file to be downloaded
9. When download completes, reset the board.
Note: Kernel has a root file system inbuilt (Initial ram disk) which does not require any rootfs to mount. Downloading the zImage of the kernel is enough to boot the system. Use the appropriate bootloader, supplied with the release.
10. You will see the applications on desktop and the Android background image.
Double click on any application. It will get invoked.
分享到:
相关推荐
《S3C6410 UBoot 1.1.6移植指南——立宇泰解析》 S3C6410是一款由三星公司推出的高性能、低功耗的ARM Cortex-A8处理器,常用于嵌入式系统设计。UBoot作为嵌入式设备启动时的关键组件,是连接硬件和操作系统之间的...
### S3C6410 移植 Linux Kernel 2.6.36 步骤详解 #### 一、概述 本文档详细介绍了如何在 S3C6410 平台上移植 Linux Kernel 2.6.36 的具体步骤。S3C6410 是一款基于 ARM1176JZF-S 处理器核心的高性能嵌入式微处理器...
【Porting Android】是指将Android操作系统移植到不同的硬件平台或者设备上,使其能够在这些平台上运行。这个过程涉及到多个层面的技术工作,包括驱动程序开发、编译系统调整、内核适配以及用户空间应用的兼容性处理...
Android内核Porting相关背景知识** **1.1 运行平台** Android最初是为ARM926EJ-S处理器设计的,属于ARMv5TE架构。这意味着较旧的ARMv4架构硬件无法直接运行Android的二进制代码。要运行Android,硬件平台至少需要...
Porting Application to Qtopia
综上所述,《嵌入式Android - Porting, Extending and Customizing》这本书不仅深入浅出地讲解了如何将Android系统移植到各种嵌入式设备上,还提供了大量的实践案例和实用技巧,对于希望在这个领域有所作为的专业...
### Android Porting Guide详解 #### 一、概览 本文档是关于如何为特定硬件平台进行Android系统移植的指南。Android作为一个开源项目,其灵活性允许开发者根据不同的硬件需求进行定制和优化。本指南由Rockie Cheng...
标题与描述概述的知识点主要涉及Android系统中Wi-Fi驱动的移植过程,这在移动设备开发领域是一项关键技能,尤其对于那些希望优化或自定义设备Wi-Fi功能的开发者来说至关重要。以下是对这一知识点的深入解析: ### ...
### 嵌入式Android移植、扩展与定制 #### 知识点概览 1. **嵌入式Android概述** 2. **移植Android系统至不同硬件平台** 3. **定制化Android系统的方法** 4. **扩展Android功能的技术** 5. **Android构建系统的深入...
综上所述,"porting-android-x86.rar"文件提供的"happy-porting-x86-application-to-android.ppt"很可能是一个关于如何将Android应用程序移植到x86平台的教程或演讲稿。这个过程涉及到多方面的技术知识和实践,包括...
三星S3C6410处理器是一款基于ARM11架构的高性能微处理器,广泛应用于嵌入式系统设计,如智能手机、平板电脑和工业控制设备。IROM(Internal Read-Only Memory)是处理器内部的一种存储区域,它包含了启动加载器...
- S3C6410处理器是一款高性能的ARM11内核,支持多种操作系统,如Linux、Android等。 2. **获取U-Boot源码** - 首先,你需要从U-Boot的官方Git仓库(如git://git.denx.de/u-boot.git)克隆或下载最新版本的源代码...
标题和描述中提到的《Embedded Android Porting, Extending, and Customizing》是一本与嵌入式Android移植、扩展和定制相关的专业书籍。这本书被视为创建基于Android系统的系统开发者的重要参考资源。由于本书不是由...
这个守护进程通过硬件层的`hardware/libhardware_legacy/wifi/wifi.c`(简称WiFiHW)与Android用户界面交互。具体来说,这些交互是由`android.net.wifi`包(位于`frameworks/base/wifi/java/android/net/wifi/`)...
总的来说,"Android-Porting-on-Embedded-Platform"涵盖了Android在嵌入式平台移植的全貌,包括硬件驱动开发、内核移植、系统编译、UI适配以及测试调试等多个层面的知识。无论是对硬件工程师还是软件开发者,深入...
A Guide to Porting C C++ to Rust.epub Build a Node.js Project from Scratch.epub Build your applications with Webpack.epub Build Your Own Lisp 中文版.epub C 语言进阶.epub Ceph 运维手册.epub Chromium...