У меня есть следующие правила udev для монтирования первого раздела SD-карты на/mnt/sdcard.SD-карта: как заставить ядро читать WP-контакт снова без удаления 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
команду:
/dev/mmcblk0p1 on /mnt/sdcard type ext4 (ro,relatime,data=ordered)
Update:
Проблема является более точным: Это на специализированном оборудовании, где пин WP (write protect) на процессоре ARM подключается к выходу процессора.
При загрузке этот выход устанавливает контроллер sdcard в режиме только для чтения, и после инициализации этот выход инвертируется, чтобы разрешить запись на SD-карту. Проблема в том, что ядро попытается прочитать этот WP-контакт только при загрузке и при вставленной карте.
==> при загрузке контроллер ядра с.о. набор карт карты как Ro:
kernel: [ 1.723728] mmc0: new high speed SD card at address 59b4
kernel: [ 1.738262] mmcblk0: mmc0:59b4 USD 1.87 GiB (ro)
И после того, как изменения РГ штифта и карты удаляется/клеммным блоком, контроллер ядра SD-карта будет установить карту в рв:
kernel: [ 527.931457] mmc0: new high speed SD card at address 59b4
kernel: [ 527.943988] mmcblk0: mmc0:59b4 USD 1.87 GiB
Мои изменения вопрос: как заставить ядро читать WP булавку снова, не снимая сд карты?
вы пробовали, mount_result = 'Монтирование $ имя_устройства/шоссе/SDCard -o RW 2> & 1 ' –