做服装的一般去什么网站找图片,邢台柏乡县建设局网站,广告联盟,打开百度搜索引擎ftp服务器地址#xff0c;即CCS Uniflash的地址
SERVER_IP192.168.2.1 MLO u-boot.img uImage压缩文件的名称#xff0c;即ftp服务器下载目录里的文件名
BOOT_PARTITIONboot_partition.tar.gz 文件系统的名称#xff0c;即ftp服务器下载目录里的…ftp服务器地址即CCS Uniflash的地址
SERVER_IP192.168.2.1 MLO u-boot.img uImage压缩文件的名称即ftp服务器下载目录里的文件名
BOOT_PARTITIONboot_partition.tar.gz 文件系统的名称即ftp服务器下载目录里的文件名
ROOTFS_PARTITIONrootfs_partition.tar.gz 要烧写的emmc的设备名称
DRIVE/dev/mmcblk0 通过tftp下载上面两个文件这里其实可以不用从ftp上下载直接拷贝到sd卡也行
time tftp -b 4096 -g -r ${BOOT_PARTITION} ${SERVER_IP} boot_pid$! time tftp -b 4096 -g -r ${ROOTFS_PARTITION} ${SERVER_IP} rootfs_pid$! 清除分区
dd if/dev/zero of$DRIVE bs4k count1 sync sync 获得emmc的大小以字节为单位
SIZEfdisk -l $DRIVE | grep Disk | awk {print $5} 计算柱面数一般来说linux系统都是将磁盘空间的计算以这样的公式
磁头数*每磁道的扇区数*每扇区的字节数*柱面数 磁盘总大小
而且一般计算的时候磁头数255每磁道的扇区数63每扇区的字节数512然后用总大小来计算出“柱面数”
然后分区的时候就以柱面的数量来划分区
因此下面就是来计算柱面数
CYLINDERSecho $SIZE/255/63/512 | bc 这个函数的作用就是卸载已挂载的分区并用dd命令来清除分区
check_mounted(){ 从proc文件系统中得到已经挂载的分区列表 is_mounted$(grep ${DRIVE}p /proc/mounts | awk {print $2}) if grep -q ${DRIVE}p /proc/mounts; then echo Found mounted partition(s) on ${DRIVE}: $is_mounted 如果有分区存在则需要umount所有分区 umount $is_mounted counter1 for i in $is_mounted; do \ echo 4k erase on ${DRIVE}p${counter}; 然后依次用dd命令来清除分区 dd if/dev/zero of${DRIVE}p${counter} bs4k count1; counter$((counter1)); done else echo No partition found. Continuing. fi } check_mounted; 用上面得到的柱面数来分区
echo Partitioning the eMMC...
用sfdisk指定emmc磁头数255每磁道的扇区数63柱面数上面计算的结果 sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE EOF
这里分了两个区每个区4个参数第一个参数是起始柱面号第二个参数是柱面数因此下面的参数实际
就是第一个区的柱面数0-9第二个区的柱面数10-MAX ,9,0x0C,* 10,,,- EOF 格式化刚刚分的两个区
mkfs.vfat -F 32 -n boot ${DRIVE}p1
mkfs.ext3 -L rootfs ${DRIVE}p2 挂载刚刚分的两个区
mkdir tmp_boot mkdir tmp_rootfs mount -t vfat ${DRIVE}p1 tmp_boot mount -t ext3 ${DRIVE}p2 tmp_rootfs 分别解压用ftp下载的两个文件到那两个分区即可
time tar -xf ${BOOT_PARTITION} -C tmp_boot sync sync umount ${DRIVE}p1
time tar -xf ${ROOTFS_PARTITION} -C tmp_rootfs sync sync umount ${DRIVE}p2 总结
通过分析这个烧写脚本可以看到bbb的烧写就是对以下几步
1. 首先要先启动一个linux同过ftp或sd卡
2. 通过ftp或sd卡得到需要烧写的文件
3. 对emmc分区
4. mount emmc分区并解压烧些文件到emmc的分区即可