如果你只是用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.
将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 #
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!
# 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