如果你只是用prebuilt版的,那么直接去网站上下载个img,然后刻到SD卡上就好了
img下载地址:http://com.odroid.com/sigong/nf_file_board/nfile_board.php?tag=ODROID-PC
做启动盘的命令:
$sudo dd if=*.odt out=/dev/sdb bs=4096
但是,大多数时候,这个img只能将linux核启动起来,却没有画面,我是说,在HDMI输出到显示器上的画面。
如果你需要有自己的内核或者android,希望掌控所有的事情,就需要你自己下载代码编译了。
去网站上下载对应平台的Android源码,我的是DDroid-PC,因此下载地只是:
http://com.odroid.com/sigong/nf_file_board/nfile_board_view.php?keyword=&tag=ODROID-PC&bid=111
注意这个网站还告诉你了应用这些源码的方法的网站,自己找一下把。
这个包中有你要的Android Source Code、kernel Source Code和Uboot Source Code,
有些平台对应的包中是没有Uboot Source Code的,得另外下载
要好长时间才能下载完成,先干其他事情吧。
源码下载完成之后,我们正是开始源码编译之路。。。
参考网站:http://dev.odroid.com/projects/ics/
这个网站上,有很详细的步骤解释,针对各个平台的都有,这里我只摘选出针对ODroid-PC平台的
步骤一:
编译Uboot,我下载的是uboot-4210
因此,编译命令如下:
# cd uboot
# make distclean --> This is only used to clean up files from the source code
# make smdkv310_config --> common use for ODROID-A, ODROID-PC, ODROID-A4
# make ARCH=arm CROSS_COMPILE=arm-none-eabi-
编译Linux kernel内核
同样,选择和你平台相符的编译命令,我的是ODroid-PC,因此:
# make ARCH=arm odroid_pc_defconfig ====> ODROID-PC
Let's start compile !
# make ARCH=arm CROSS_COMPILE=arm-none-eabi-其中,CROSS_COMPILE是你的交叉编译工具的绝对路径比如我的是:
CROSS_COMPILE=/opt/toolchains/arm-2010q1/bin/arm-none-eabi-
步骤三:
编译Android
参考网站:http://dev.odroid.com/projects/howtobuild4
你需要配置好这个网页中所说的所有的环境,这样会给你将来的编译过程减少不少麻烦,
否则,编译的过程是比较痛苦的。因为我之前移植过pandaboard,因此,环境基本上已经
配置好了(一直pandaboar的经验在移植ODroid过程中是很有用的)。我略过了adb的安装,因为之前已经装过了。
在配置好了所有的环境,获得了所需源码之后,现在,终于可以开始编译了:
== odroid - PC ==
# cd ~/mydroid/android
# mydroid/android$
# chmod u+x ./build_android.sh
# ./build_android.sh odroidpc
编译成功:
ok sucess !!!
步骤四:
制作启动盘:
现在你有了uboot,有了Android,有了Linux Kernel,你需要做的就是将这些东西写进SD卡中,也就是,
做成个启动盘。
1.烧写bootloader
(1)将u-boot镜像烧入SD卡
将SD卡插入host PC
# cd uboot ====>你的uboot文件夹
# cd sd_fuse
# make
# ./c210-fusing.sh /dev/sdc
Note : /dev/sdc is your micro-sd card device node.
(2)在ODrodid上启动u-boot
将SD卡插入到ODroid中
OK
U-Boot 2010.12-svn (Mar 13 2012 - 16:50:29) for EXYNOS4210
CPU: S5PC210 [Samsung SOC on SMP Platform Base on ARM CortexA9]
APLL = 1000MHz, MPLL = 800MHz
EVT1 POP_B
DRAM: 1 GiB
Checking Boot Mode ... SDMMC
MMC Device 0: 7887 MB
MMC Device 1 not found
Net: No ethernet found.
Hit any key to stop autoboot: 0
EXYNOS4 #
这个地方要小心,一定要赶在SD卡auto boot 之前,敲击一下键盘,不然,ODroid会自动启动,但是由于没有OS,因此整个板子就卡住了
2.烧写kernel
(1)将SD卡分区
EXYNOS4 # fdisk -c 0
fdisk is completed
partion # size(MB) block start # block count partition_Id
1 6067 3573060 12426660 0x0C
2 517 142290 1059270 0x83
3 1026 1201560 2102730 0x83
4 131 3304290 268770 0x83
EXYNOS4 #
(2)将分区格式化
EXYNOS4 # fatformat mmc 0:1
Start format MMC&d partition&d ...
Partition1: Start Address(0x368544), Size(0xbd9da4)
size checking ...
Under 8G
write FAT info: 32
Fat size : 0x2f67
Erase FAT region.......................................................................
.....................................
Partition1 format complete.
EXYNOS4 #
(3)进入到fastboot模式
EXYNOS4 # fastboot
[Partition table on MoviNAND]
ptn 0 name='fwbl1' start=0x0 len=N/A (use hard-coded info. (cmd: movi))
ptn 1 name='bl2' start=N/A len=N/A (use hard-coded info. (cmd: movi))
ptn 2 name='bootloader' start=N/A len=N/A (use hard-coded info. (cmd: movi))
ptn 3 name='tzsw' start=N/A len=N/A (use hard-coded info. (cmd: movi))
ptn 4 name='kernel' start=N/A len=N/A (use hard-coded info. (cmd: movi))
ptn 5 name='ramdisk' start=N/A len=0x1000000(~16384KB) (use hard-coded info. (cmd: movi))
ptn 6 name='system' start=0x457A400 len=0x20538C00(~529635KB)
ptn 7 name='userdata' start=0x24AB3000 len=0x402B9400(~1051365KB)
ptn 8 name='cache' start=0x64D6C400 len=0x833C400(~134385KB)
ptn 9 name='fat' start=0x6D0A8800 len=0x7B3B4800(~2019026KB)
OTG cable Connected!
(4)将USB OTG线连接好之后,就可以将内核的二进制文件烧写到ODroid了:
# cd kernel
# fastboot flash kernel arch/arm/boot/zImage
sending 'kernel' (3898 KB)...
OKAY [ 0.609s]
writing 'kernel'...
OKAY [ 1.518s]
finished. total time: 2.127s
#fastboot在哪儿呢?你编译好的android文件夹下有out文件夹,在这个文件夹下找:
android/out/host/linux-x86/bin/fastboot
Ok,找到了fastboot,可以使用了。
如果这个地方出现了<waiting for device>的信息,那么:
(1)确认你现在是root用户,烧写过程中用的都是root用户
(2)如果你是root用户,请尝试
http://stackoverflow.com/questions/7641939/android-fastboot-waiting-for-devices
中的解决方案。
(3)检查一下你的USB线
1)是否能够正常传输
2)USB线不易过长,否则末端电压不够,导致设备无法识别。
完成上述步骤之后,Linux Kernel就成功烧入ODroid了。
3.将Android烧入ODroid
(1)ODroid
进入fastboot模式
EXYNOS4 # fastboot
[Partition table on MoviNAND]
ptn 0 name='fwbl1' start=0x0 len=N/A (use hard-coded info. (cmd: movi))
ptn 1 name='bl2' start=N/A len=N/A (use hard-coded info. (cmd: movi))
ptn 2 name='bootloader' start=N/A len=N/A (use hard-coded info. (cmd: movi))
ptn 3 name='tzsw' start=N/A len=N/A (use hard-coded info. (cmd: movi))
ptn 4 name='kernel' start=N/A len=N/A (use hard-coded info. (cmd: movi))
ptn 5 name='ramdisk' start=N/A len=0x1000000(~16384KB) (use hard-coded info. (cmd: movi))
ptn 6 name='system' start=0x457A400 len=0x20538C00(~529635KB)
ptn 7 name='userdata' start=0x24AB3000 len=0x402B9400(~1051365KB)
ptn 8 name='cache' start=0x64D6C400 len=0x833C400(~134385KB)
ptn 9 name='fat' start=0x6D0A8800 len=0x7B3B4800(~2019026KB)
OTG cable Connected!
(2)userdata & cache partition format (Host PC)
# cd android
# fastboot -w
erasing 'userdata'...
OKAY [ 10.606s]
erasing 'cache'...
OKAY [ 3.370s]
finished. total time: 13.977s
#
# cd android
# fastboot flash ramdisk out/target/product/$(PRODUCT_NAME)/ramdisk-uboot.img
sending 'ramdisk' (322 KB)...
OKAY [ 0.059s]
writing 'ramdisk'...
OKAY [ 0.445s]
finished. total time: 0.504s
#
# fastboot flash system out/target/product/$(PRODUCT_NAME)/system.img
sending 'system' (161724 KB)...
OKAY [ 24.831s]
writing 'system'...
OKAY [ 34.734s]
finished. total time: 59.565s
#
# fastboot reboot
本文介绍了如何将Android系统移植到ODroid设备上,包括下载预编译的img文件直接制作启动盘,以及从源码编译Uboot、Linux内核和Android的详细步骤。在编译过程中,需要配置相应的环境并遵循特定的编译命令,最终通过烧录bootloader、kernel和Android到SD卡来完成移植。
486

被折叠的 条评论
为什么被折叠?



