ユーザ用ツール

サイト用ツール


mas1xx_tips:use_emmc_data_partition:start

eMMC 後半領域の利用 (MA-S1xx/MA-X3xx 共通)


MA-S1xx シリーズ

MA-S1xx シリーズには、機種によりますが 2GB もしくは 5GB の eMMC を搭載しており、前半のファームウェア領域 600MiB を除いた部分がデータ領域として使用可能です。

root@gemini:~# cat /proc/partitions |grep mmcblk0
 179        0    1884160 mmcblk0
 179        1     614400 mmcblk0p1 <--- ファームウェア領域
 179        2    1268736 mmcblk0p2 <--- データなど用


MA-X3xx シリーズ

MA-X3xx シリーズには 10GB の eMMC を搭載しており、前半のファームウェア領域 800MiB を除いた部分がデータ領域として使用可能です。

user1@metis:~$ cat /proc/partitions |grep mmcblk0
 179       32   10067968 mmcblk0
 179       33     819200 mmcblk0p1 <--- ファームウェア領域
 179       34    9247744 mmcblk0p2 <--- データなど用
 179       64      32256 mmcblk0boot0
 179       96      32256 mmcblk0boot1


この部分をシステム起動時に任意のディレクトリに mount する方法を紹介します。


設定

mount 先ディレクトリの準備

overlaycfg コマンドで保存できるディレクトリ1)の場合、実機でディレクトリを作成しておきます。
/etc や /home 以外など、自動保存されない PATH の場合、“other” で保存しておきます。

/opt/data に mount する場合の例

root@gemini:~# mkdir /opt/data
root@gemini:~# overlaycfg -u -s other
* remounting overlay partition as RW...
* remounting overlay partition as RO...
root@gemini:~# tar tavf /ro/.host/overlay/overlays_other.tar.zst |grep /opt
drwxr-xr-x root/root         0 2023-04-24 11:25 ./opt/
drwxr-xr-x root/root         0 2023-04-24 11:25 ./opt/data/ <--- overlay "other" に保存されていることを確認

※ overlaycfg で保存されない PATH の場合、ソフトウェア開発 (MA-S1xx シリーズ) の手順でカスタマイズしたファームウェアを作成する必要があります。
  例として、Azure IoT Edge 対応 のファームウェアでは Docker を利用するので、/var/lib/docker をファームウェアで追加しています。(参照: Azure IoT Edge 対応 - コンテナーエンジン用 eMMC mount 設定)


eMMC データ領域のファイルシステム作成 (Optional)

別の用途で eMMC データ領域を使用していた場合などや、ファイルシステムを変更したい場合、mkfs コマンドでファイルシステムを作成します。

root@gemini:~# mkfs.ext4 -m 0 /dev/mmcblk0p2 
mke2fs 1.45.5 (07-Jan-2020)
/dev/mmcblk0p2 contains a ext4 file system
	last mounted on Wed Apr 12 13:11:20 2023 <---- 以前 mount したことがありますよ、との通知
Proceed anyway? (y,N) y
Discarding device blocks: done                            
Creating filesystem with 317184 4k blocks and 79360 inodes
Filesystem UUID: b010f7aa-0224-474e-aec4-16d64e06a806
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 

root@gemini:~# 


.mount ユニットファイルの作成

systemd の .mount ユニットファイルを作成します。
ファイル名は、mount 先の PATH を -(ハイフン) で繋いだ形式にする必要があります。

※ 今回の例では PATH が /opt/data なので、opt-data.mount というファイル名にします。

root@gemini:~# nano -w /etc/systemd/system/opt-data.mount
opt-data.mount
[Unit]
Description=opt data
 
[Mount]
What=/dev/mmcblk0p2
Where=/opt/data
Type=ext4
Options=noatime
 
[Install]
WantedBy=multi-user.target


自動 mount の有効化

作成した .mount ユニットを有効化します。

root@gemini:~# systemctl enable opt-data.mount
Created symlink /etc/systemd/system/multi-user.target.wants/opt-data.mount → /etc/systemd/system/opt-data.mount.
root@gemini:~#


動作確認

設定が完了したので、再起動して自動で mount されているか確認してみます。

root@gemini:~# reboot
root@gemini:~# 
Session terminated, killing shell...logout
 ...killed.
Terminated


再起動後、login して mount コマンドで mount 状況を確認します。

user1@gemini:~$ mount|grep mmcblk
/dev/mmcblk0p1 on /ro/.host type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=932,iocharset=utf8,shortname=mixed,utf8,errors=remount-ro)
/dev/mmcblk0p2 on /opt/data type ext4 (rw,noatime) <---- mount されている

きちんと /opt/data に eMMC 2番目のパーティションが mount されていることが確認できました。

mas1xx_tips/use_emmc_data_partition/start.txt · 最終更新: 2023/06/15 07:22 by admin