Yocto6.5.0でexFat形式のSDカードを自動マウントする方法

現在の開発環境では、FAT32のSDカードは指定した場所にマウントされますが、
exFatのSDカードは/media/mmcblk1p1にマウントされています。
exFat形式も指定した場所にマウントしたいのですが、どのようにすればよいでしょうか。
ご回答いただくにあたって不足している情報があるかと思いますので、ご質問いただければ幸いです。

exFat形式に対応するために、主に下記2点を実施しています。
開発環境について、/oe-core/build/conf/local.conf にはexFatに対応するために
IMAGE_INSTALL:append = " fuse-exfat exfat-utils"
を追加しました。
また、自動マウントのためにmnt-sd.mountを追加しています。
mnt-sd.mountの中身
[Unit]
Description=MicroSDCard
[Mount]
What=/dev/mmcblk1p1
Where=/mnt/sd
Type=auto
Options=noatime
[Install]
WantedBy=multi-user.target

tdx-infoの出力内容は下記の通りです。

Software summary
Bootloader: U-Boot
Kernel version: 5.15.129-6.5.0-devel+git.6f8fd49366db #1 SMP PREEMPT Fri Dec 22 11:15:52 UTC 2023
Kernel command line: root=PARTUUID=2f46dbd6-02 ro rootwait console=tty1 console=ttymxc2,115200 consoleblank=0 earlycon
Distro name: NAME=“TDX Wayland with XWayland”
Distro version: VERSION_ID=6.5.0-devel-20240327230744-build.0
Distro variant: -
Hostname: verdin-imx8mp-15230394

Hardware info
HW model: Toradex Verdin iMX8M Plus on Verdin Development Board
Toradex version: 0063 V1.1B
Serial number: 15230394
Processor arch: aarch64

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


exFATファイルシステムのマウント問題について

お使いのVerdin iMX8M PlusでexFATのSDカードが/media/mmcblk1p1にマウントされる代わりに、指定した場所にマウントしたい件についてお答えします。

現在の状況分析

お客様の環境では、SD/MMCカードがLinuxのMMCサブシステムによって/dev/mmcblk{id}として認識され、パーティションは/dev/mmcblk{id}p{x}として表示されています(1)

推奨解決策

1. systemdマウントユニットの修正

現在のmnt-sd.mountファイルでType=autoを使用していますが、exFATファイルシステムを明示的に指定することをお勧めします:

[Unit]
Description=MicroSDCard

[Mount]
What=/dev/mmcblk1p1
Where=/mnt/sd
Type=exfat
Options=noatime,uid=1000,gid=1000

[Install]
WantedBy=multi-user.target

2. 自動マウントの無効化

デフォルトの自動マウント機能が競合している可能性があります。以下を確認してください:

  • udisks2サービスの設定
  • udevルールによる自動マウント

3. 追加の確認事項

お客様の環境についていくつか確認したい点があります:

  1. 現在のマウント状況mount | grep mmcコマンドの出力結果
  2. systemdユニット状態systemctl status mnt-sd.mountの結果
  3. デバイス認識lsblkコマンドでのデバイス一覧
  4. exFATサポート確認modprobe exfatが正常に実行されるか

Windows CE環境での参考情報

なお、Windows CE環境では外部ストレージデバイスをTFATでフォーマットする機能が提供されています(2)が、Linux環境では上記の方法でexFATマウントを制御することが推奨されます。

これらの情報で問題解決に向けた方向性が見えましたでしょうか。追加の詳細情報をお教えいただければ、より具体的なサポートを提供できます。

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

systemdユニット状態systemctl status mnt-sd.mount
マウント先のディレクトリが既に存在していたためエラーが出ていました。
過去にいろいろ試した時にマウント先のディレクトリが作成されていたようです。
削除してから改めで試すとうまくマウントされました。

1 Like