LinuxにおいてSDカードを挿した際に/dev下に出現しない場合の対処法
へべれけです.
これまでArch Linuxをずっと使ってきたわけですが,そこまで悩むことは存在しませんでした.しかし,実は使い始め当初から少し気になっていつつも放置していたのがSDカードを挿した際に/dev下にそれが出現せずマウントできないと言うものでした.
私は今までこれについてPCを再起動することで解決していたのですがこれは作業途中においてはそこそこストレスになるやり方でした.そこで今回はPCを再起動せずにSDカードを/dev下に出現させる方法について記述していきます.
解決への糸口となる情報をくれた友人へ,ありがとう助かった.
参考にしたページ
http://yper.seesaa.net/article/449217218.html
本来であればSDカードをスロットに挿入すると/dev/mmcblk0とその中の/dev/mmcblk0p1その他が出現する.出現しなかったらまず
$ lsmod|grep mmc_block
存在しなかったら参考ページ同様
$ sudo modprobe mmc_block
私の環境下ではそれでも出現しなかったので
$ sudo modprobe -r rtsx_pci_sdmmc
$ sudo modprobe rtsx_pci_sdmmc
としたら/dev/mmcblk0の出現を確認できた.なお,このブログを書いている現在,そもそもの/dev下に出現しない症状を再現できていない.
暇だったのでスクリプトを書いてコマンド化しといた.タイトルの症状が発生した時にこのコマンド打てば何とかなるはず
コマンド化の参考
http://bobbyquine.hatenablog.com/entry/2018/03/24/164602
$ vim ~/Command/sdreload
#!/bin/bash
if df|grep /dev/mmcblk > null ; then
echo "sd card mounted. if you want reload, you have to unmount"
else
if lsmod|grep mmc_block > null ; then
echo "mmc_block is already loaded"
else
echo load mmc_block
modprobe mmc_block
fi
if ls /dev|grep mmcblk > null ; then
echo nothing to do
else
echo reload rtsx_pci_sdmmc
modprobe -r rtsx_pci_sdmmc
modbrobe rtsx_pci_sdmmc
fi
fi
先述のとおり解決策を見つけた後に症状が再現できていないので動作未確認.多分動くんじゃね??責任はとらない.