Allwinner F1C100S / F1C200Sスタディノート(2)-TF / SDカードのパーティションとシステムの構築と書き込み

TFカードパーティション


    TFカード上にシステムを構築する前に、TFカードを分割してフォーマットする必要があります。

    sudo fdisk -l     		# 首先查看电脑上已插入的TF卡的设备号(一般为 /dev/sdb1,下面以/dev/sdb1为例)
    sudo umount /dev/sdb1 	# 若自动挂载了TF设备,请先卸载(有多个分区则全部卸载)
    sudo fdisk /dev/sdb   	# 进行分区操作
    ##### 操作步骤如下 #####
    # 若已存分区即按 d 删除各个分区
    # 通过 n 新建分区,第一分区暂且申请为16M(f1c100s)、32M(v3s),剩下的空间都给第二分区
    	# 第一分区操作:n p 1 2048 +16M
    		# p 主分区、默认 1 分区、默认2048、+16M
    	# 第二分区操作:n 后面全部回车默认即可
    		# p 主分区、默认 2 分区、默认2048、默认剩下的全部空间
    # w 保存写入并退出
    # p 查询分区表确定是否分区成功
    ########################
    
    sudo mkfs.vfat /dev/sdb1 # 将第一分区格式化成FAT
    sudo mkfs.ext4 /dev/sdb2 # 将第一分区格式化成EXT4
    
    # 格式说明
    	# EXT4:只用于Linux系统的内部磁盘
    	# NTFS:与Windows共用的磁盘
    	# FAT:所有系统和设备共用的侧畔
    

    注:ファイルシステムへの書き込み中にエラーが報告された場合:umount: /dev/sdb2: not mounted、TFカードはフォーマットされていません。
    以前に使用した2GTFカードは、フォーマットにext4フォーマットされて正常に表示されたことがわかりましたが、使用できませんでした。fatフォーマットは使用できます。
    図に示すように、パーティションを開いてエラーを報告します。
    ここに画像の説明を挿入
    他のカードを疑うことはありません。このカードはext4使用できる形式にフォーマットできません。別の32Gカードを変更しましたが、操作は正常でした。

    ここに画像の説明を挿入
    ここに画像の説明を挿入

    スクリプトの実装:

    # 创建脚本
    vim create_partion.sh
    # 给予权限
    chmod u+x create_partion.sh
    # 执行脚本
    ./create_partion.sh
    

    create_partion.sh

    #!/bin/sh
    # PJW
    # 创建TF卡分区表
    # PJW
    
    # 删除分区
    sudo umount "$1"1
    sudo umount "$1"2
    echo $11
    sudo fdisk $1 <<EOF
    d
    1
    d
    2
    d
    3
    d
    4
    w
    p
    q
    EOF
    
    sync
    
    # 新建两个分区
    sudo fdisk $1 <<EOF
    n
    p
    1
    
    +32M
    
    n
    p
    2
    
    
    p
    w
    q
    EOF
    
    # 格式化两个分区
    sleep 2
    sudo partx -u "$1"
    sudo mkfs.vfat "$1"1 &&\
    sudo mkfs.ext4 "$1"2 
    if [ $? -ne 0 ]
    then
        echo  "error in creating partitions"
        >/dev/null 2>&1 && exit
    fi
    



    TFカードコンテンツストレージ


      最初のパーティション

      • boot.scr
      • zImage
      • suniv-f1c100s-licheepi-nano.dtb

      2番目のパーティション

      • ルートファイルシステムの内容

      パーティションと書き込みスクリプト


        特定のパーティション操作については、githubのwrite_all.shスクリプトを参照してください。ここには、すべての書き込みスクリプトのリファレンスがあります。

        Nanoワンクリックで画像パッケージアドレス(さまざまなマテリアル、SDK、画像、書き込みスクリプトなどを含む)をすばやく書き込む

        パーティション操作スクリプト:

        write_all.sh — 为tf卡创建全套内容`使用:write_all.sh /dev/sdX (sdX修改为tf设备号)`
        write_flash.sh — 为spi-flash写入全套内容
        write_dd.sh — 以dd镜像的方式写入全套内容(规定了分区信息)(生成方式见下一节)
        write_boot.sh — 向tf卡dd进Uboot
        write_mkfs.sh — 单纯的为两个分区进行硬盘格式化
        write_p1.sh — 单纯的向第一分区写入设备树内核等
        write_p2.sh — 单纯的向第二分区写入rootfs
        clear_partion.sh — 擦除分区表
        write_partion.sh — 写入分区表
        write_swap.sh — 增加swap
        

        ミラー生成スクリプト:

        # 镜像生成最简单的方法是借助tf卡,手动或使用脚本向tf写入完结构,再dd出来
        # 能够判断镜像大小是否符合启动要求,且借助loop模拟创建设备,快速高效。
        # 生成的镜像在 ./image 目录下
        sh pack_tf_img.sh — 生成TF卡镜像
        sh pack_flash_img.sh — 生成SPI-FLASH镜像
        

        自作のスクリプト[パーティションと書き込み]


          programフォルダの中にubootlinuxbuildroot同じディレクトリ。

          chmod -R 777 program/
          
          ./configs/cp_files.sh				# 拷贝uboot、kernel、dtb、rootfs、boot.scr
          ./create_partion.sh					# 建立分区
          
          ./p-tf/write_uboot.sh /dev/sdb		# 烧录uboot
          ./p-tf/write_partion1.sh /dev/sdb	# 烧录分区一
          ./p-tf/write_partion2.sh /dev/sdb	# 烧录分区二
          

          添付:fdisk動作パラメータ表:


              DOS (MBR)
               a   开关 可启动 标志
               b   编辑嵌套的 BSD 磁盘标签
               c   开关 dos 兼容性标志
            
              常规
               d   删除分区
               F   列出未分区的空闲区
               l   列出已知分区类型
               n   添加新分区
               p   打印分区表
               t   更改分区类型
               v   检查分区表
               i   打印某个分区的相关信息
            
              杂项
               m   打印此菜单
               u   更改 显示/记录 单位
               x   更多功能(仅限专业人员)
            
              脚本
               I   从 sfdisk 脚本文件加载磁盘布局
               O   将磁盘布局转储为 sfdisk 脚本文件
            
              保存并退出
               w   将分区表写入磁盘并退出
               q   退出而不保存更改
            
              新建空磁盘标签
               g   新建一份 GPT 分区表
               G   新建一份空 GPT (IRIX) 分区表
               o   新建一份的空 DOS 分区表
               s   新建一份空 Sun 分区表
            

            おすすめ

            転載: blog.csdn.net/p1279030826/article/details/112937457
            おすすめ