本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑
安装lunux环境
安装编译工具
下载Linux kernel
安装Android SDK
获得root file system
修改Linux kernel源码
配置Linux kernel
修改root file system
编译Linux kernel
下载kernel Image
1.安装配置 linux环境
系统安装完成后,更新源: sudo vim /etc/apt/sources.list 在开头处加入以下行
执行: sudo apt-get update sudo apt-get upgrade
【2】运行emulator 获取root file system $ cd <目录>/ android-sdk_m5-rc15_linux-x86/tools $ ./emulator& 等待 emulator 启动,看到出现 Android 系统画面,进入菜单 ALL/Dev Tools/Development Settings下, 将 Wait for debugger,Show running processes,Show screen updates这三项打勾,回到命令输入终端。
$ ./adb push /busybox /data $ ./adb shell # /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 ./
通过busybox工具获得了emulator 的文件并打包,下面建立root文件目录 $ 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 ./
包含Android root文件系统的initial_ram_disk做好。
6.修改 Linux kernel 源码 下载的 kernel 文件是不支持 smdk6400 开发板的,必须加入 smdk6400 的配置文件到kernel中,同时修改Kconfig和Makefile文件。 修改如下:
1> 选择 /arch/arm/mach-s3c2410/Makefile.boot 改为下面内容,
zreladdr-$(CONFIG_PLAT_S3C24XX) := 0x30008000 params_phys-$(CONFIG_PLAT_S3C24XX) := 0x30000100 zreladdr-$(CONFIG_PLAT_S3C64XX) := 0x50008000 params_phys-$(CONFIG_PLAT_S3C64XX) := 0x50000100
2> 从成熟的smdk6400平台文件中拷贝下面文件到kernel目录
/arch/arm/mach-s3c6400 /drivers/serial/s3c6400.c /drivers/input/touchscreen/s3c-ts.c /drivers/usb/gadget
3> 拷贝/drivers/android/ashmem.c 文件到相应目录下从另外的 android kernel (The Android source code for 2.6.23 不包含此文件)
4> 修改相应的Kconfig和Makefile文件,使最终能编译到加载的smdk6400文件。
7.配置 Linux kernel 修改kernel后进行配置,用到第2步的编译工具 $ cd $ make CROSS_COMPILE=/bin/arm-none-linux-gnueabi- ARCH=armmenuconfig
这时进入kernel配置画面,注意配置 Initramfs source file选项指定到 initial_ram_disk文件。
9. 编译 Linux kernel $ make CROSS_COMPILE=/bin/arm-none-linux-gnueabi- ARCH=arm zImage 编译成功,在arch/arm/boot下面是生成的zImage文件。
10.下载 kernel image 进入Windows系统,下载过程在Windows系统中完成。
① 打开:程序\附件\通讯\超级终端,配置COM口,115200,8N1 (如图1)
② 连接 smdk6400 开发板和电脑通过串口线,打开开发板电源,可以在超级终端中看到输出信息,bootloader 启动,按空格键进入命令输入状态 (如图2)
③ 板子上连接USB线到电脑,安装USB驱动程序
④ 运行dnw.exe程序,配置Configuration/Options,地址 0x57e00000,确定 (如图3)
⑤ 在超级终端中输入相应命令,开始下载 $ run bootup (下载bootloader) $ run kernelup (下载kernel Image) $ run rootup (下载root file system)
⑥ 这里我们输入 $ run kernelup 等待 dnw 发送文件,dnw 显示[COM1,115200bps][USB:OK][ADDR:0x57e00000]说明连接成功,选择USB Port->Transmit,选取编译成功的zImage文件,开始下载。 下载完成,重启开发板,等待,LCD 上出现一些 Android 字符,一段时间白屏,出现一个左右滚动的红色滚动条,进入主界面,Android移植成功。
|