====== SD Card から起動する (bootloader 含む) ======
\\
===== Files =====
^ File ^ Stat ^ SHA1SUM ^ Note |
|{{ :max3xx_tips:boot_from_sd:sd_p1.tar.zst |}}|2022/12/15 09:59 8.1 MB|2c5deab7a525a261c08c2e00c6eafba27ad5edf8|SD partition1(試作機用)|
|{{ :max3xx_tips:boot_from_sd:sd_am6412_p1.tar.zst |}}|2023/03/10 13:40 8.2 MB|d03f4e4a49a7264b50509a11aa66dd013b112d47| 〃 (量産機用) |
\\
===== SDCard 作成手順 =====
==== fdisk ====
root@metis:/tmp# fdisk /dev/mmcblk1
Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/mmcblk1: 1.87 GiB, 2002780160 bytes, 3911680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/mmcblk1p1 2048 3911679 3909632 1.9G c W95 FAT32 (LBA)
* 出荷時の FAT32 Partition 削除 (Optional)
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
* No.1 Partition 作成 (FAT32, 256MB)
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-3911679, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-3911679, default 3911679): +256M
Created a new partition 1 of type 'Linux' and of size 256 MiB.
Command (m for help): t
Selected partition 1
Hex code or alias (type L to list all): c
Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.
* No.2 Partition 作成 (Linux, 残り全部)
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (526336-3911679, default 526336):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (526336-3911679, default 3911679):
Created a new partition 2 of type 'Linux' and of size 1.6 GiB.
* 確認、書込して終了
Command (m for help): p
Disk /dev/mmcblk1: 1.87 GiB, 2002780160 bytes, 3911680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/mmcblk1p1 2048 526335 524288 256M c W95 FAT32 (LBA)
/dev/mmcblk1p2 526336 3911679 3385344 1.6G 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
\\
==== make filesystem ====
root@metis:/tmp# mkfs.vfat /dev/mmcblk1p1
mkfs.fat 4.2 (2021-01-31)
root@metis:/tmp# mkfs.ext4 -m 0 /dev/mmcblk1p2
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 423168 4k blocks and 105872 inodes
Filesystem UUID: a20ecf5a-b0ce-4d1f-8464-283bd34fc3e4
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
\\
==== ファイル展開 Partition No.1====
root@metis:/tmp# mount /dev/mmcblk1p1 /mnt/sd/
root@metis:/tmp# cd /mnt/sd/
root@metis:/mnt/sd# tar axf /tmp/sd_p1.tar.zst
root@metis:/mnt/sd# sync
root@metis:/mnt/sd# cd ..
root@metis:/mnt# umount /mnt/sd
\\
==== ファイル展開 Partition No.2 (ファームウェア root filesystem アーカイブの展開) ====
=== SD Card ファイルシステムの mount ===
root@metis:/mnt# mount /dev/mmcblk1p2 /mnt/sd/
ここに USB Memory や SFTP などで持ってきて、mount した場所で展開します。
root@metis:~# cd /mnt/sd/
root@metis:/mnt/sd# tar axf /tmp/MAX3xx_rootfs_jammy_v6_1_1.tar.xz
root@metis:/mnt/sd#
root@metis:/mnt/sd# ls -l
total 76
lrwxrwxrwx 1 root root 7 Dec 15 2021 bin -> usr/bin
drwxr-xr-x 2 root root 4096 Dec 5 08:27 boot
drwxr-xr-x 4 root root 4096 Aug 21 08:40 dev
drwxr-xr-x 78 root root 4096 Dec 2 07:58 etc
drwxr-xr-x 3 root root 4096 Aug 21 08:40 home
lrwxrwxrwx 1 root root 7 Dec 15 2021 lib -> usr/lib
drwx------ 2 root root 16384 Dec 19 16:58 lost+found
drwxr-xr-x 2 root root 4096 Aug 21 08:40 media
drwxr-xr-x 5 root root 4096 Aug 21 08:40 mnt
drwxr-xr-x 3 root root 4096 Aug 21 08:40 opt
drwxr-xr-x 2 root root 4096 Aug 21 08:40 proc
drwx------ 4 root root 4096 Dec 2 07:58 root
drwxr-xr-x 12 root root 4096 Sep 13 10:34 run
lrwxrwxrwx 1 root root 8 Dec 15 2021 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Aug 21 08:40 srv
drwxr-xr-x 2 root root 4096 Aug 21 08:40 sys
drwxrwxrwt 2 root root 4096 Dec 5 08:23 tmp
drwxr-xr-x 11 root root 4096 Aug 21 08:40 usr
drwxr-xr-x 12 root root 4096 Aug 21 08:40 var
root@metis:/mnt/sd#
=== Kernel module のコピー ===
起動している Kernel の Kernel module を SD Card にコピーします。
これをコピーしておかないと、driver が組み込めず LTE など各種デバイスが使用できません。
本体のファームウェアが変更された場合もコピーし直しが必要です。
root@metis:/mnt/sd# cd lib/modules
root@metis:/mnt/sd/lib/modules# cp -af /lib/modules/6.1.46 .
root@metis:/mnt/sd/lib/modules# ls -l
total 4
drwxr-xr-x 3 root root 4096 Dec 2 08:00 6.1.46
root@metis:/mnt/sd/lib/modules#
\\
=== SD Card の umount ===
unmount しておきます。
root@metis:/mnt/sd/lib/modules# cd
root@metis:~# umount /mnt/sd
root@metis:~#
\\
==== boot ====
DIPSW OFF-**ON**-OFF-**ON** (SD boot, SD root filesystem で起動)