web-dev-qa-db-ja.com

LinuxでSDカードの「一時的な書き込み保護」ビットを設定する

SDカードのTMP_WRITE_PROTECT(一時的な書き込み保護)ビットを/dev/mmcblk0に設定したい。これは、/sys/block/mmcblk0/device/csdでCSD(カード固有のデータ)を書き換えることで実行できると思いますが、ビットバンギングをすべて実行してCRCを再計算するLinuxツールはすでに存在しますか?

mmc-utils を見つけましたが、互換性のないインターフェイスを使用しているようです:

# mmc extcsd read /dev/mmcblk0
ioctl: Connection timed out
Could not read EXT_CSD from /dev/mmcblk0
# mmc writeprotect get /dev/mmcblk0 
ioctl: Connection timed out
Could not read EXT_CSD from /dev/mmcblk0

そして、スタックオーバーフローコメント sdtoolと呼ばれるコマンドラインツールについて言及 、しかしURLを提供しません...

3
mikador

あなたが見つけることができないその神秘的なsdtoolはホストされています ここ そしてあなたは確かにそれを使ってあなたのカードの一時的な書き込み保護を有効にすることができます:

Sudo umount /dev/mmcblk0p*
Sudo sdtool /dev/mmcblk0 lock
Sudo sdtool /dev/mmcblk0 reset

同様に、unlockは書き込み保護を削除します。

警告の言葉:私のシステムはフラグが設定されていることを認識できないので、ファイルシステムを読み取り専用として再マウントするのは私次第です。書き込み保護されたカードをrwとしてマウントすると、実際には実行されない書き込みがサイレントに許可され、奇妙なファイルシステムエラーが発生します(幸い、SDカードには影響しませんが、コンピューター上のプログラムを渡すことができます)。 。

3