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