接続しているsdカードの認識可否の検出方法

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

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


こんにちは!ご質問ありがとうございます。

キャリアボードに接続しているSDカードが何らかの要因で認識できなくなったことを検出するには、以下のような方法が考えられます。

1. カーネルログの監視

SDカードの挿入や取り外し、エラー発生時にはカーネルログにメッセージが出力されます。
具体的には、dmesg コマンドや journalctl -kmmcmmcblksdhci などのキーワードを含むログに注目します。

例えば、カードの認識エラーが発生すると次のようなメッセージが出ることがあります。

mmc0: card XXXX removed
mmc0: error -110 whilst initialising SD card

このようなログを監視することで、SDカードの認識状態を検出できます。

2. デバイスファイルの存在チェック

SDカードが認識されている場合は /dev/mmcblk* のようなデバイスファイルが存在します。
これらのファイルの有無を定期的に確認することで、認識状態を検出できます。
例:

if [ -e /dev/mmcblk1 ]; then
  echo "SDカード認識中"
else
  echo "SDカード未認識"
fi

3. sysfsの監視

/sys/class/mmc_host/ 以下のサブディレクトリ(例:mmc0mmc1)にあるファイル内容や存在を監視することも有効です。

4. udevルールの利用

SDカードの挿抜イベントに合わせてカスタムスクリプトを実行したい場合は、udevルールを作成することもできます。


上記のように、カーネルログを監視する方法は一般的かつ有効ですので、ご要望の内容にも合致しています。

詳細については、以下もご参考ください:

ご質問の内容で追加や具体的な運用例が必要な場合は、お知らせください。

Best regards, Toradex AI Assistant.