九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 9428|回复: 2
打印 上一主题 下一主题

在ubuntu下烧写映像文件到SD卡--基于三星210开发板

[复制链接]
跳转到指定楼层
楼主
发表于 2011-11-29 15:02:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一步:安装编译android系统必要的软件;



第二步:安装交叉编译工具链;



第三步:编译uboot



    uboot的配置文件为smdkv210single.h,复制两份,一份命名为smdkv210_nand.h,一份命名为smdkv210_sd.h,

smdkv210_nand.h中做如下修改:

//#define CFG_FASTBOOT_ONENANDBSP

#define CFG_FASTBOOT_NANDBSP

//#define CFG_FASTBOOT_SDMMCBSP

#define CONFIG_EVT1 1



smdkv210_sd.h中做如下修改:

//#define CFG_FASTBOOT_ONENANDBSP

//#define CFG_FASTBOOT_NANDBSP

#define CFG_FASTBOOT_SDMMCBSP

#define CONFIG_EVT1 1



    makefile中做如下修改:

CROSS_COMPILE = /opt/arm-2009q3/bin/arm-none-linux-gnueabi-



smdkv210single_config :
unconfig

@$(MKCONFIG) $(@:_config=) arm s5pc11x smdkc110 samsung s5pc110

@echo "TEXT_BASE = 0xc3e00000" > $(obj)board/samsung/smdkc110/config.mk


smdkv210_nand_config :
unconfig

@$(MKCONFIG) $(@:_config=) arm s5pc11x smdkc110 samsung s5pc110

@echo "TEXT_BASE = 0xc3e00000" > $(obj)board/samsung/smdkc110/config.mk


smdkv210_sd_config :
unconfig

@$(MKCONFIG) $(@:_config=) arm s5pc11x smdkc110 samsung s5pc110

@echo "TEXT_BASE = 0xc3e00000" > $(obj)board/samsung/smdkc110/config.mk



    注意,smdkv210_nand_config和smdkv210_sd_config为新增的语句,用于配置nand和SD卡;



    再制作uboot编译脚本,命名为mk,内容如下:

#!/bin/sh

# create by liuqiming

# date: 2011-11-24



MODE=$1



CPU_NUM=$(cat /proc/cpuinfo |grep processor|wc -l)

CPU_NUM=$((CPU_NUM+1))



mkdir -p /home/lqm/share/tftpboot



# 如果没有传入参数,则提示错误

if [ -z $MODE ]; then

echo "\nERROR: Must set the compile mode"

echo "Example: $0 nand or $0 sd\n"

exit

fi



# 如果传入参数大于1,则提示错误

if [ $# -gt 1 ]; then

echo -e "\033[40;32m"

echo "Usage: ./mk [mode]"

echo "       mode:    nand, sd"

echo "compile: ./mk nand or ./mk sd"

echo -e "\033[40;37m"

fi



if [ $MODE = "nand" ]; then

make distclean

make smdkv210_nand_config

make -j${CPU_NUM}

mv u-boot.bin uboot_nand.bin

cp uboot_nand.bin /home/lqm/share/tftpboot/uboot.bin

echo "^_^ uboot_nand.bin is finished successful!"

exit

elif [ $MODE = "sd" ]; then

make distclean

make smdkv210_sd_config

make -j${CPU_NUM}

mv u-boot.bin uboot_sd.bin

cp uboot_sd.bin /home/lqm/share/tftpboot/uboot.bin

echo "^_^ uboot_sd.bin is finished successful!"

exit

else

echo -e "\033[40;32m"

echo "Usage: ./mk [mode]"

echo "       mode:    nand, sd"

echo "compile: ./mk nand or ./mk sd"

echo -e "\033[40;37m"

exit

fi



    再执行mk脚本编译SD卡启动的uboot:

./mk sd



第四步:编译内核

make smdkv210_android_defconfig

make menuconfig

配置文件系统以支持SD卡文件系统:

Check Ext4 filesystem on menuconfig.

File systems

Set <*> The Extended 4 (ext4) filesystem

Set
Use ext4 for ext2/ext3 file systems

Save & Exit



修改makefile文件:

ARCH
?= arm

CROSS_COMPILE
?= /opt/arm-2009q3/bin/arm-none-linux-gnueabi-



再make,在arch/arm/boot目录将生成内核映像文件zImage。



第五步:编译android文件系统

将android编译脚本build_android.sh重命名为mk,并做如下修改:

KERNEL_DIR=../kernel

SEC_PRODUCT='smdkv210'

注意,由于我将uboot,kernel,android目录全放在一个目录下,如下:

lqm@lqm:~/s5pv210$ ls

android  kernel  uboot  uboot_20111124.tgz

lqm@lqm:~/s5pv210$

android编译脚本mk在android目录,故内核目录为../kernel。

修改device/samsung/smdkv210/BoardConfig.mk文件:

# BOARD_SDMMC_BSP := false

# modified for sdcard image.

BOARD_SDMMC_BSP := true



# BOARD_USERDATAIMAGE_PARTITION_SIZE := 1073741824

# modified for sdcard image.

BOARD_USERDATAIMAGE_PARTITION_SIZE := 370147328



修改system/extras/ext4_utils/mkuserimg.sh文件:

# make_ext4fs -s -l $SIZE -a $MOUNT_POINT $OUTPUT_FILE $SRC_DIR

# modified for sdcard image.

make_ext4fs -l $SIZE -a $MOUNT_POINT $OUTPUT_FILE $SRC



执行mk脚本编译:

./mk



编译完成后,在android/out/target/product/smdkv210目录将会生成ramdisk-uboot.img,

system.img,zImage,userdata.img等映像文件。



第六步:烧写uboot映像文件到SD卡

将SD卡放到读卡器上,再将读卡器插到运行linux系统的PC机上,初次使用SD卡时,需将SD卡的分区全部

删掉,执行如下指令:

sudo fdisk /dev/sdb

注意,多数情况下SD卡的盘符为sdb,少数情况下会出现sdc,sde等盘符,具体需使用cat /proc/partition

指令查询。

再输入d,回车,如果存在多个盘符,按照提示逐个删掉,删完后按w保存,再重插读卡器,使用ls /dev/sd*

指令查询,这时sdb应该只存在一个,没有多余的分区了。

进入sd_fusing目录并执行脚本烧录SD卡映像:

cd uboot/sd_fusing/

sudo bash ./sd_fusing.sh /dev/sdb

这时,uboot就烧到SD卡中了。

注意,脚本文件sd_fusing.sh做了如下修改:

echo "BL1 fusing"

./mkbl1 ../uboot_sd.bin SD-bl1-8k.bin 8192
#分离出SD-bl1-8k.bin

dd iflag=dsync oflag=dsync if=SD-bl1-8k.bin of=$1 seek=$bl1_position
#将SD-bl1-8k.bin写入SD卡

rm SD-bl1-8k.bin
#删除SD-bl1-8k.bin



####################################

#<u-boot fusing>

echo "u-boot fusing"

dd iflag=dsync oflag=dsync if=../uboot_sd.bin of=$1 seek=$uboot_position
#将uboot.bin写入SD卡

只是将原来的u-boot.bin修改为了uboot_sd.bin了,因为uboot编译脚本mk中也做了相应的修改。



第七步:使用fastboot烧写映像文件到SD卡

linux下的fastboot为android源码包编译出来,具体路径为android/out/host/linux-x86/bin目录。因此,首先

需修改ubuntu环境变量脚本:

vim /etc/bash.bashrc

加入如下语句:

export PATH=/opt/arm-2009q3/bin:$PATH

export PATH=/home/lqm/s5pv210/android/out/host/linux-x86/bin:$PATH

第一行为交叉编译工具的声明,第二行为fastboot命令的声明。

再调节拨码开关CFG4[6:1]=00110X,将SD卡插到开发板的slot0,启动开发板,bootloader就启动了。

在三秒倒计时内按下空格键,进入命令行控制栏,输入fastboot,回车,这时液晶屏上会有蓝色显示,提示已进入fastboot状态,打印

信息如下:

checking mode for fastboot ...

Hit any key to stop autoboot:  0

SMDKV210 # fastboot

[Partition table on MoviNAND]

ptn 0 name='bootloader' start=0x0 len=N/A (use hard-coded info. (cmd: movi))

ptn 1 name='kernel' start=N/A len=N/A (use hard-coded info. (cmd: movi))

ptn 2 name='ramdisk' start=N/A len=0x300000(~3072KB) (use hard-coded info. (cmd: movi))

ptn 3 name='system' start=0xB14800 len=0x79E1800(~124806KB)

ptn 4 name='userdata' start=0x84F6000 len=0x15EDE800(~359290KB)

ptn 5 name='cache' start=0x1E3D4800 len=0x676A000(~105896KB)

ptn 6 name='fat' start=0x24B3E800 len=0xC6BFB800(~3256302KB)

另外开启一个调试终端,输入如下指令:

fastboot devices

如在普通用户下执行,则提示如下信息:

no permissions
fastboot

如执行fastboot flash kernel zImage指令,则提示< waiting for device >,

如执行sudo fastboot devices则提示sudo: fastboot: command not found,必须执行如下指令:

sudo su

进入root用户模式,再执行fastboot devices,则提示如下信息:

root@lqm:/home/lqm/s5pv210/android/out/target/product/smdkv210# fastboot devices

SMDKC110-01
fastboot

再进入映像生成目录,依次执行如下指令烧录映像:

− "fastboot flash bootloader u-boot.bin"

− "fastboot flash kernel zImage"

− "fastboot flash ramdisk ramdisk-uboot.img"

− "fastboot flash system system.img"

烧录完毕,重启开发板,则进入了android文件系统。

回复

使用道具 举报

沙发
发表于 2012-3-24 22:46:41 | 只看该作者
300050300050
回复 支持 反对

使用道具 举报

板凳
发表于 2013-5-23 22:54:30 | 只看该作者
好东西,顶一下~~~~~~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-11-26 00:59 , Processed in 0.022106 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表