全志系列芯片linux下格式化SD卡脚本工具

 #!/bin/bash

function pt_error()
{
    echo -e "\033[1;31mERROR: $*\033[0m"
}

function pt_warn()
{
    echo -e "\033[1;31mWARN: $*\033[0m"
}

function pt_info()
{
    echo -e "\033[1;32mINFO: $*\033[0m"
}

function install_package()
{
    PACKAGE=${1}
    if dpkg -s ${PACKAGE} 2>&1 | grep "not installed" > /dev/null; then    
        apt-get install ${PACKAGE} --force-yes -y
    fi
}

if [ $UID -ne 0 ]
    then
    pt_error "Please run as root."
    exit
fi

if [ $# -ne 1 ]; then
    pt_error "Usage:./format_sd.sh device"
    exit 1
fi

case $1 in
/dev/sd[a-z] | /dev/loop[0-9] | /dev/mmcblk1)
    if [ ! -e $1 ]; then
        pt_error "$1 does not exist."
        exit 1
    fi
    DEV_NAME=`basename $1`
    BLOCK_CNT=`cat /sys/block/${DEV_NAME}/size` ;;&
/dev/sd[a-z])
    DEV_PART_NAME=${DEV_NAME}1
    REMOVABLE=`cat /sys/block/${DEV_NAME}/removable` ;;
/dev/mmcblk1 | /dev/loop[0-9])
    DEV_PART_NAME=${DEV_NAME}p1
    REMOVABLE=1 ;;
*)
    pt_error "Unsupported SD reader"
    exit 0
esac

if [ $? -ne 0 ]; then
    pt_error "Error: Can't find device ${DEV_NAME}"
    exit 1
fi

if [ ${BLOCK_CNT} -le 0 ]; then
    pt_error "Error: NO media found in card reader."
    exit 1
fi

if [ ${BLOCK_CNT} -gt 64000000 ]; then
    pt_error "Error: Block device size (${BLOCK_CNT}) is too large"
    exit 1
fi

install_package dosfstools
umount /dev/${DEV_NAME}* >/dev/null 2>&1
pt_info "formatting ${DEV_NAME}, please wait..."
dd if=/dev/zero of=/dev/${DEV_NAME} bs=16M count=4
sync

fdisk /dev/$DEV_NAME <<EOF
o
n
p



w
EOF
mkfs.vfat /dev/${DEV_PART_NAME} -n SD
sync
pt_info "format success."

phoenixCard格式化失败,可用该脚本先格式化SD卡。使用方法:

sudo ./format_sd.sh 你的盘符

eg:

mod@archlinux sdcard $ sudo ./format_sd.sh /dev/sdb
INFO: formatting sdb, please wait...
记录了4+0 的读入
记录了4+0 的写出
67108864字节(67 MB,64 MiB)已复制,15.2602 s,4.4 MB/s

欢迎使用 fdisk (util-linux 2.36.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x00c807cc 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):创建了一个磁盘标识符为 0x476e6317 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):分区类型
   p   主分区 (0 primary, 0 extended, 4 free)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):分区号 (1-4, 默认  1): 第一个扇区 (2048-60751871, 默认 2048): 最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-60751871, 默认 60751871): 
创建了一个新分区 1,类型为“Linux”,大小为 29 GiB。

命令(输入 m 获取帮助):分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。

mkfs.fat 4.2 (2021-01-31)
INFO: format success.

原贴链接:https://bbs.aw-ol.com/topic/103/
全志在线开发者交流企鹅群(客服机器人24小时在线解答):498263967
资源获取、问题讨论可以到全志在线开发者社区进行:https://www.aw-ol.com/
全志及开发者最新动态可以关注全志在线微信公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全志芯片工具PhoenixCard是一种用于烧录全志科技公司推出的ARM处理器芯片工具全志芯片是一种在智能设备中广泛使用的高性能处理器芯片,如平板电脑、智能电视和手机等。 PhoenixCard是一种简单易用的工具,可以帮助用户将固件烧录到全志芯片上。它提供了一个图形界面,使用户能够轻松地选择固件文件并将其烧录到芯片上。此外,PhoenixCard还可以对SD卡进行格式化和分区,以准备好用于烧录固件的存储空间。 使用PhoenixCard进行烧录需要按照以下步骤进行操作: 1. 首先,将SD卡插入电脑的读器。确保SD卡已经备份,因为烧录过程会擦除SD卡上的所有数据。 2. 启动PhoenixCard工具,并选择要烧录的固件文件。这个固件文件通常是一个IMG格式的文件,它包含了整个操作系统和其他必要的软件。 3. 在PhoenixCard界面上选择SD卡的驱动器号码,并选择烧录模式。通常选择“烧录系统&rdquo;模式。 4. 点击“确定&rdquo;按钮开始烧录过程。烧录过程可能需要几分钟的时间,具体时间取决于固件的大小和计算机的性能。 5. 烧录完成后,可以将SD卡插入全志芯片设备中,并重新启动设备。设备将加载新烧录的固件,并开始运行。 总之,全志芯片工具PhoenixCard是一种方便用户烧录全志芯片固件的工具。它使用户能够通过简单的步骤,轻松地将固件烧录到SD卡上,然后将SD卡插入全志芯片设备中,实现固件更新和升级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值