首先直接记录结果
在u-boot 中修改参数
#define AUTO_UPDATESYS */
直接把这个参数注释掉。
这个参数是原来用来升级nor flash 启动系统设置的一个参数,也就是说, 这个参数的存在是为了升级原来nor flash的系统。
注释掉以后,插入sd卡启动便不会自动在u-boot阶段烧写系统到nor flash上面。
注释完以后,看到下面的参数
1 #define CON \ 2 "console=ttyO0,115200n8\0" \ 3 "optargs=\0" \ 4 "mmcroot=/dev/mmcblk0p2 rw\0" \ 5 "mmcrootfstype=ext3 rootwait\0" \ 6 "nandroot=ubi0:rootfs rw ubi.mtd=7,2048\0" \ 7 "nandrootfstype=ubifs rootwait=1\0"
这段参数的含义是 , 调试信息打印在ttyO0 , ti 的ttyO0 就是第一个uart 口 , 波特率是115200
mmcroot=/dev/mmcblk0p2 rw 这是说明你的文件系统在第二个分区 , 权限为可读可写
mmcrootfstype=ext3 rootwait 这是说明你的分区格式是ext3
所以,现在,给你的sd 卡进行分区
贴上一个以前的分区脚本:
1 #! /bin/sh 2 3 # 获取SD卡设备节点,并擦除分区表 4 DRIVE=$1 5 dd if=/dev/zero of=$DRIVE bs=1024 count=1024 6 7 # 获取SD卡大小,并在terminal中显示字节大小 8 SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'` 9 echo DISK SIZE - $SIZE bytes 10 11 # 计算磁柱数 12 # 每一个柱面的大小为255*63*512=8,225,280 Bytes 13 CYLINDERS=`echo $SIZE/255/63/512 | bc` 14 15 16 # 第一行分区描述,9,0x0C,* 自动分配起始柱面,数量为9,分区ID为0x0C(表示FAT32分区>),为*, 表示可启动分区。 17 # 第二行分区描述10,115,,- 同样自动分配起柱面,数量为115,其它为默认。 18 # 第三行分区描述126,,,- 同样自动分配起柱面,剩下所有的数量,其它为默认。 19 sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE << EOF 20 ,9,0x0C,* 21 10,115,,- 22 126,,,- 23 EOF 24 25 # 格式化各个分区,格式化完卸载对应的分区 26 mkfs.vfat -F 32 -n "boot" ${DRIVE}1 27 umount ${DRIVE}1 28 mkfs.ext3 -L "rootfs" ${DRIVE}2 29 umount ${DRIVE}2 30 mkfs.ext3 -L "START_HERE" ${DRIVE}3
分区完毕,把MLO u-boot.img uImage 拷到第一个boot 分区
把整个文件系统打包然后解压到第二个分区。
启动