再次讀取WP針,我有以下udev規則掛載SD卡到/ mnt/SD卡的第一個分區。SD卡:如何強制內核不刪除SD卡
KERNEL=="mmcblk0p1", SUBSYSTEMS=="mmc", ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="sdcard", RUN+="/usr/bin/mount_sdcard"
KERNEL=="mmcblk0", ACTION=="remove", RUN+="/usr/bin/unmount_sdcard"
我/usr/bin/mount_sdcard
可執行文件是:
#!/bin/sh
# log event
logger -t mount_sdcard -p user.warn "New SD Card detected"
# mount to /mnt/sdcard
mount_result=`mount $DEVNAME /mnt/sdcard 2>&1`
# On errors, send error to log
echo $mount_result | logger -t mount_sdcard -p user.error
if [ "x$mount_result" = "x" ]
then
# print filesystem type
stat -f /mnt/sdcard | grep Type | cut -d: -f4 | logger -t mount_sdcard -p user.warn
# print space left on device
df -h /dev/sdcard | logger -t mount_sdcard -p user.warn
fi
此代碼是否正常工作和分隔安裝讀寫(RW)當SD卡被插入。
但如果SD卡已經出現在開機後,分區掛載只讀(RO)。
在這種情況下,我不能而不移除和重新插入手動SD卡掛載分區讀寫。
我試圖卸載,然後重新安裝。我試圖用裝載選項:mount -o remount,rw /dev/mmcblk0p1
這似乎是工作,但在運行mount
命令時,該分區仍被標記爲RO:
/dev/mmcblk0p1 on /mnt/sdcard type ext4 (ro,relatime,data=ordered)
更新:
的問題是更精確: 這位於定製硬件上,ARM處理器上的WP(寫保護)引腳連接到處理器的輸出。
在引導時,該輸出設置SD卡控制器以只讀模式和初始化後,該輸出反轉,允許寫入SD卡。 的問題是,內核將嘗試讀取這個WP引腳只在啓動時以及在插入存儲卡。
==>在啓動內核SD卡控制器設置卡作爲RO:
kernel: [ 1.723728] mmc0: new high speed SD card at address 59b4
kernel: [ 1.738262] mmcblk0: mmc0:59b4 USD 1.87 GiB (ro)
而WP引腳變化和卡後刪除/重新插上,內核SD卡控制器將設置卡作爲rw:
kernel: [ 527.931457] mmc0: new high speed SD card at address 59b4
kernel: [ 527.943988] mmcblk0: mmc0:59b4 USD 1.87 GiB
我的問題變化:如何強制內核再次讀取WP引腳而不刪除SD卡?
你有沒有試過,mount_result ='$安裝DEVNAME到/ mnt/SD卡-o RW 2>&1' –