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

来源:互联网 发布:python日期加减 编辑:程序博客网 时间:2024/05/21 06:13
第一步:安装编译android系统必要的软件; 


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


第三步:编译uboot
    编译支持nand flash启动的uboot,执行如下指令:
    ./mk nand


第四步:编译内核
    确保内核已支持yaffs文件系统; 


第五步:编译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


修改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
再进入映像生成目录,执行如下指令烧录uboot:
− "fastboot flash bootloader u-boot.bin"


第八步:将启动模式切换回从nand flash启动,即CFG4[6:1]=00001X,再重启开发板,这时uboot从nand flash启动了,再
执行fastboot命令,进入fastboot烧录模式,另外开启一个终端,执行如下指令烧写其他映像文件:
− "fastboot flash kernel zImage"
− "fastboot flash ramdisk ramdisk-uboot.img"
− "fastboot flash system system.img"
到此,映像文件烧录完毕。
注意,在烧写system.img时遇到如下错误:
NAND write: device 0 offset 0xe00000, size 0x64ba7a4
Input block length is not page aligned
Data did not fit into device, due to bad blocks
 105621412 bytes written: ERROR
flashing 'system' failed
很明显这是页没对齐造成的,开发板使用的K9F2G08,即256M的flash,一个page=2048+64=2112Bytes,所以
system.img的大小应为2112的整数倍。如果出现不是2112的整数倍的情况,可以稍微调节一下android系统源码,将
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为mate9网络差怎么办 大王卡信号差怎么办 华为P9Plus忘记密码怎么办 华为手机音质差怎么办 三星c5手机发烫怎么办 华为手机老卡怎么办 小米手机慢卡怎么办 华为指纹识别不灵敏了怎么办 金立手机信号不好怎么办 手机边框坏了怎么办 手机保护膜划了怎么办 车膜贴的有气泡怎么办 手机膜进气泡怎么办 贴的手机膜翘角怎么办 全屏膜出现气泡怎么办 手机膜的气泡怎么办 透明手机壳气泡怎么办 钢化膜边缘有气泡怎么办 贴钢化膜边缘有气泡怎么办 钢化膜边上有泡泡怎么办 贴钢化膜周边有气泡怎么办 钢化膜里面有气泡怎么办 手机保护膜破了怎么办 手机触摸屏没反应怎么办 苹果手机触屏坏了怎么办 手机边缘有气泡怎么办 手机膜有空气怎么办 电脑膜有气泡怎么办 汽车贴膜起泡怎么办 汽车玻璃膜用久了起泡怎么办 车窗玻璃膜起泡怎么办 新车贴膜气泡怎么办 贴手机钢化膜有灰尘怎么办 戒指砖石掉了怎么办 寄手机没有包装怎么办 手机背面有划痕怎么办 oopo手机声音小怎么办 手机屏幕被划了怎么办 oppo手机组装屏卡顿怎么办 金立手机卡顿怎么办 vivo手机有点卡怎么办