【网学网提醒】:网学会员为广大网友收集整理了,Android 内核移植,希望对大家有所帮助!
Ubuntu8.04.2环境S3C6410移植Android内核主要过程:.安装Linux环境.安装编译工具.
下载Linuxkernel.安装AndroidSDK.获得rootfilesystem.修改Linuxkernel源码.配置Linuxkernel
.修改rootfilesystem.编译Linuxkernel.下载kernelImage1.安装linux环境安装UbuntuLinux系统,从网站上下载操作系统安装光盘映像,点击这里进入官方下载地址。
下载ubuntu-8.04.2-desktop-i386.iso,(编者LinuxIDC注:现在已经是ubuntu-8.04.3版本了)刻录成光盘安装,安装可以在windows系统下进行,选取有15G空间的硬盘安装,输入用户密码开始安装
这一步结束退出光盘重启进入Ubuntu系统,完成余下系统安装。Linux安装完成,进入Ubuntu系统,确保电脑连接Internet,安装一些必要软件。打开终端输入命令框,进行下面的操作:$sudoapt-getinstallssh$sudoapt-getinstallflexbisongperflibsdl-devlibesd0-devlibwxgtk2.6-de
vbuild-essentialzipcurl
$sudoapt-getinstallvalgrind$sudoapt-getinstallsun-java6-jdk$sudoapt-getinstalllibncurses5-dev所有软件系统会自动从网络下载安装,完成后可以开始Android的移植。2.安装编译工具
下载:$wgetcodesourcery/public/gnu_toolchain/arm-none-linux-gnuea
bi/arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2安装:$tar-xjvfarm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz23.下载Linuxkernel从下面地址获得:code.google/p/Android/downloads/list?can=1&;q=&;colspec=Filename+Summary+Uploaded+Size+DownloadCountKernel:linux-2.6.23-Android-m5-rc14.tar.gz解压文件$tar-xflinux-2.6.23-Android-m5-rc14.tar.gz4.安装AndroidSDK从网上下载linux版本的AndroidSDK,如下dl.google/Android/android-sdk_m5-rc15_linux-x86.zip下载后解压,获得Android-sdk_m5-rc15_linux-x86文件5.获得rootfilesystem⑴下载busybox工具从下面地址benno.id.au/blog/2007/11/14/Android-busybox(linux环境中
下载)⑵运行emulator获取rootfilesystem$cd<目录>/Android-sdk_m5-rc15_linux-x86/tools$./emulator&;等待emulator启动,看到出现Android系统画面,进入菜单ALL/DevTools/DevelopmentSettings下,将Waitfordebugger,Showrunningprocesses,Showscreenupdates这三项打勾,回到命令输入终端。$./adbpush
/busybox/data$./adbshell#/data/busyboxtar-czfsystem.tar.gz/system#/data/busyboxtar-czfdata.tar.gz/data#/data/busyboxtar-czfetc.tar.gz/etc#/data/busyboxtar-czfsbin.tar.gz/sbin#exit$./adbpull/system.tar.gz./$./adbpull/data.tar.gz./$./adbpull/etc.tar.gz./$./adbpull/sbin.tar.gz./$./adbpull/init./通过busybox工具获得了emulator的文件并打包,下面建立root文件目录$mkdirinitial_ram_disk$cdiniti
al_ram_disk$mkdircache$mkdird
$mkdirdev$mkdirproc$mkdirroot$mkdirsdcard$mkdirsys$mkdirtmp$mkdirvar$tar-xf/system.tar.gz./$tar-xf/data.tar.gz./$tar-xf/etc.tar.gz./$tar-xf/sbin.tar.gz./$cp/init./包含Androidroot文件系统的initial_ram_disk做好。6.修改Linuxkernel源码下载的kernel文件是不支持smdk6400开发板的,必须加入smdk6400的配置文件到kernel中,同时修改Kconfig和Makefile文件。修改如下:1>选择/arch/arm/mach-s3c2410/Makefile.boot改为下面内容,zreladdr-$(CONFIG_PLAT_S3C24XX):=0x30008000params_phys-$(CONFIG_PLAT_S3C24XX):=0x30000100zreladdr-$(CONFIG_PLAT_S3C64XX):=0x50008000params_phys-$(CONFIG_PLAT_S3C64XX):=0x500001002>从成熟的smdk6400平台文件中拷贝下面文件到kernel目录/arch/arm/mach-s3c6400/drivers/serial/s3c6400.c/drivers/input/touchscreen/s3c-ts.c/drivers/usb/gadget3>拷贝/drivers/Android/ashmem.c文件到相应目录下从另外的androidkernel(TheAndroidsourcecodefor2.6.23不包含此文件)4>修改相应的Kconfig和Makefile文件,使最终能编译到加载的smdk6400文件。7.配置Linuxkernel修改kernel后进行配置,用到第2步的编译工具$cd$makeCROSS_COMPILE=/bin/arm-none-linux-gnueabiARCH=armmenuconfig这时进入kernel配置画面,注意配置Initramfssourcefile选项指定到
initial_ram_disk文件。8.修改rootfilesystem配置Touchscreen使之能正常工作,initial_ram_disk文件下修改/etc/init.rc,加入下面内容TSLIB_CONSOLEDEVICEnoneTSLIB_FBDEVICE/dev/graphics/fb0TSLIB_TSDEVICE/dev/input/ts0TSLIB_CALIBFILE/etc/pointercalTSLIB_CONFFILE/etc/ts.confTSLIB_PLUGINDIR/lib/ts9.编译Linuxkernel$makeCROSS_COMPILE=/bin/arm-none-linux-gnueabiARCH=armzImage编译成功,在arch/arm/boot下面是生成的zImage文件。10.下载kernelimage进入Windows系统,下载过程在Windows系统中完成。①打开:程序附件通讯超级终端,配置COM口,115200,8N1
②连接smdk6400开发板和电脑通过串口线,打开开发板电源,可以在超级终端中看到输出信息,bootloader启动,按空格键进入命令输入状态
③板子上连接USB线到电脑,安装USB驱动程序④运行dnw.exe程序,配置Configuration/Options,地址0x57e00000,确定
⑤在超级终端中输入相应命令,开始下载$runbootup(下载bootloader)$runkernelup(下载kernelImage)$runrootup(下载rootfilesystem)⑥这里我们输入$runkernelup等待dnw发送文件,dnw显示[COM1,115200bps][USB:OK][ADDR:0x57e00000]说明连接成功,选择USBPort->Transmit,选取编译成功的zImage文件,开始下载。下载完成,重启开发板,
等待,LCD上出现一些Android字符,一段时间白屏,出现一个左右滚动的红色滚动条,进入主界面,Android移植成功。