再次读取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' –