`
isiqi
  • 浏览: 16484523 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Porting Android to S3C6410

阅读更多

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.

分享到:
评论

相关推荐

    s3c-u-boot-1.1.6.rar_S3c6410porting_guide_s3c_s3c6410 立宇泰_u-boo

    《S3C6410 UBoot 1.1.6移植指南——立宇泰解析》 S3C6410是一款由三星公司推出的高性能、低功耗的ARM Cortex-A8处理器,常用于嵌入式系统设计。UBoot作为嵌入式设备启动时的关键组件,是连接硬件和操作系统之间的...

    S3C6410移植linux kernel 2.6.36步骤

    ### S3C6410 移植 Linux Kernel 2.6.36 步骤详解 #### 一、概述 本文档详细介绍了如何在 S3C6410 平台上移植 Linux Kernel 2.6.36 的具体步骤。S3C6410 是一款基于 ARM1176JZF-S 处理器核心的高性能嵌入式微处理器...

    porting android

    【Porting Android】是指将Android操作系统移植到不同的硬件平台或者设备上,使其能够在这些平台上运行。这个过程涉及到多个层面的技术工作,包括驱动程序开发、编译系统调整、内核适配以及用户空间应用的兼容性处理...

    Simple Guide for Porting Android Kernel

    Android内核Porting相关背景知识** **1.1 运行平台** Android最初是为ARM926EJ-S处理器设计的,属于ARMv5TE架构。这意味着较旧的ARMv4架构硬件无法直接运行Android的二进制代码。要运行Android,硬件平台至少需要...

    Porting Application to Qtopia

    Porting Application to Qtopia

    Embedded Android - Porting, Extending and Customizing

    综上所述,《嵌入式Android - Porting, Extending and Customizing》这本书不仅深入浅出地讲解了如何将Android系统移植到各种嵌入式设备上,还提供了大量的实践案例和实用技巧,对于希望在这个领域有所作为的专业...

    Android Porting Guide

    ### Android Porting Guide详解 #### 一、概览 本文档是关于如何为特定硬件平台进行Android系统移植的指南。Android作为一个开源项目,其灵活性允许开发者根据不同的硬件需求进行定制和优化。本指南由Rockie Cheng...

    Android Wifi Driver Porting

    标题与描述概述的知识点主要涉及Android系统中Wi-Fi驱动的移植过程,这在移动设备开发领域是一项关键技能,尤其对于那些希望优化或自定义设备Wi-Fi功能的开发者来说至关重要。以下是对这一知识点的深入解析: ### ...

    Embedded Android Porting, Extending, and Customizing 2013最新版

    ### 嵌入式Android移植、扩展与定制 #### 知识点概览 1. **嵌入式Android概述** 2. **移植Android系统至不同硬件平台** 3. **定制化Android系统的方法** 4. **扩展Android功能的技术** 5. **Android构建系统的深入...

    porting-android-x86.rar_android_android x86_android 移植

    综上所述,"porting-android-x86.rar"文件提供的"happy-porting-x86-application-to-android.ppt"很可能是一个关于如何将Android应用程序移植到x86平台的教程或演讲稿。这个过程涉及到多方面的技术知识和实践,包括...

    samsung6410 IROM boot 资料

    三星S3C6410处理器是一款基于ARM11架构的高性能微处理器,广泛应用于嵌入式系统设计,如智能手机、平板电脑和工业控制设备。IROM(Internal Read-Only Memory)是处理器内部的一种存储区域,它包含了启动加载器...

    uboot_porting

    - S3C6410处理器是一款高性能的ARM11内核,支持多种操作系统,如Linux、Android等。 2. **获取U-Boot源码** - 首先,你需要从U-Boot的官方Git仓库(如git://git.denx.de/u-boot.git)克隆或下载最新版本的源代码...

    Embedded Android Porting,Extending, and Customizing

    标题和描述中提到的《Embedded Android Porting, Extending, and Customizing》是一本与嵌入式Android移植、扩展和定制相关的专业书籍。这本书被视为创建基于Android系统的系统开发者的重要参考资源。由于本书不是由...

    android_wifi_porting_eng.doc

    这个守护进程通过硬件层的`hardware/libhardware_legacy/wifi/wifi.c`(简称WiFiHW)与Android用户界面交互。具体来说,这些交互是由`android.net.wifi`包(位于`frameworks/base/wifi/java/android/net/wifi/`)...

    Android-Porting-on-Embedded-Platform.rar_android_android porting

    总的来说,"Android-Porting-on-Embedded-Platform"涵盖了Android在嵌入式平台移植的全貌,包括硬件驱动开发、内核移植、系统编译、UI适配以及测试调试等多个层面的知识。无论是对硬件工程师还是软件开发者,深入...

    A Guide to Porting C C++ to Rust 等53本

    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...

Global site tag (gtag.js) - Google Analytics