Powered by SmartDoc

2.3 イメージを作る

  1. u-boot関係ファイルの作成
    1. sysutils/u-boot-pinebookproをビルド
      # cd $PORTSDIR/sysutils/u-boot-pinebookpro
      # make build
      
    2. idbloader.imgとu-boot.itbはそのままコピー
      # mkdir work
      # cd work
      # cp \
          $WRKDIRPREFIX/usr/ports/sysutils/u-boot-pinebookpro/work/u-boot-2020.10/idbloader.img \
          .
      # cp \
          $WRKDIRPREFIX/usr/ports/sysutils/u-boot-pinebookpro/work/u-boot-2020.10/u-boot.itb \
          .
      
    3. u-boot.dtb⇒rk3399-pinebook-pro.dtbでコピー(3)
  2. ブートイメージを作る
    1. イメージファイルを作りu-boot*をコピー
      # dd if=/dev/zero \
          of=FreeBSD-13.0-CURRENT-arm64-aarch64-PINEBOOKPRO-20201224-3cc0c0d66a0-255241-memstick.img \
          bs=512 seek=$((1000000000 / 512)) count=0
      # mdconfig -a -t vnode -f \
          FreeBSD-13.0-CURRENT-arm64-aarch64-PINEBOOKPRO-20201224-3cc0c0d66a0-255241-memstick.img \
          -x 63 -y 255
      md0
      # dd if=/usr/local/share/u-boot/u-boot-pinebookpro/idbloader.img \
          of=/dev/md0 seek=64 bs=512 conv=sync
      # dd if=/usr/local/share/u-boot/u-boot-pinebookpro/u-boot.itb \
          of=/md0 seek=16384 bs=512 conv=sync
      
    2. パーティションの作成
      # gpart create -s mbr md0
      md0 created
      # gpart add -a 63 -b 32768 -t fat32lba -s 64m md0
      md0s1 added
      # gpart set -a active -i 1 md0
      active set on md0s1
      # newfs_msdos -F 16 md0s1
      /dev/md0s1: 130872 sectors in 16359 FAT16 clusters (4096 \
          bytes/cluster)
      BytesPerSec=512 SecPerClust=8 ResSectors=1 FATs=2 RootDirEnts=512 \
          Media=0xf0 FATsecs=64 SecPerTrack=63 Heads=255 HiddenSecs=0 \
          HugeSectors=131040
      # gpart add -t freebsd -a 512k md0
      md0s2 added
      # gpart create -s bsd md0s2
      md0s2 created
      # gpart add -t freebsd-ufs -a 64k md0s2
      md0s2a added
      # newfs /dev/md0s2a
      /dev/md0s2a: 873.0MB (1787904 sectors) block size 32768, fragment \
          size 4096
      using 4 cylinder groups of 218.28MB, 6985 blks, 28032 inodes.
      super-block backups (for fsck_ffs -b #) at:
       192, 447232, 894272, 1341312
      # tunefs -n enable /dev/md0s2a
      tunefs: soft updates set
      # tunefs -j enable -S 4194304 /dev/md0s2a
      Using inode 4 in cg 0 for 4194304 byte journal
      tunefs: soft updates journaling set
      # tunefs -N enable /dev/md0s2a
      tunefs: NFSv4 ACLs set
      
    3. 必要なファイルのコピー
      # mdconfig -a -t vnode -f \
          FreeBSD-13.0-CURRENT-arm64-aarch64-20201224-3cc0c0d66a0-255241-memstick.img \
      md1
      # mount_msdosfs /dev/md1p1 /mnt
      # mount_msdosfs /dev/md0s1 /mnt1
      # mkdir -p /mnt1/EFI/BOOT /mnt1/dtb/rockchip
      # cp /mnt/EFI/BOOT/bootaa64.efi /mnt1/EFI/BOOT
      # cp rk3399-pinebook-pro.dtb /mnt1/dtb/rockchip
      # umount /mnt
      # umount /mnt1
      # mount /dev/md1p2 /mnt
      # mount /dev/md0s2a /mnt1
      # tar -cf - -C /mnt . | tar -vxpf - -C /mnt1
      # umount /mnt
      # mdconfig -d -u md0
      # umount /mnt1
      # mdconfig -d -u md1
      
  3. ブートイメージをmicroSDに書き込む
    # dd \
        if=FreeBSD-13.0-CURRENT-arm64-aarch64-PINEBOOKPRO-20201224-3cc0c0d66a0-255241-memstick.img \
        of=/dev/da0 bs=10240 conv=sync
    
  4. Pinebook ProをmicroSDから起動
  1. u-bootリポジトリで定義されている名前https://gitlab.denx.de/u-boot/u-boot/-/tree/master/arch/arm/dts