Оговорюсь сначала, что это китайская читалка (ebook) и доступа даже по SSH у меня нет. Только редактировать прошивку могу (загрузочные скрипты и т.д.). Хочу сделать так, чтобы можно было свободно менять шрифты просто подключив к USB. Шрифты лежат на ro cramfs разделе. Вот как организовано подключение по USB в читалке: На ней есть mtd раздел (один из многих). Отформатирован он в fat32. В системе монтируется как
mount -t vfat -o codepage=936,iocharset=utf8 /dev/mtdblock7 /mnt/dos
Далее, при подключении к читалке USB и положительном ответе на вопрос «Подключать ли съемный диск к ПК?», из приложения читалки вызываются последовательно
umount /mnt/dos
echo 1 > /sys/devices/lm0/driver/dwc_otg_conn_en
insmod /g_file_storage.ko file=/dev/mtdblock7, stall=0 removable=1 luns=1
echo 0 > /sys/devices/lm0/driver/dwc_otg_conn_en
rmmod g_file_storage.ko
mount -t vfat -o codepage=936,iocharset=utf8 /dev/mtdblock7 /mnt/dos
Если mount не возвращает ничего, то выдается ошибка, мол перезагрузите читалку и вызывается
umount /dev/mtdblock7
Так вот. Всё хорошо, если на этот раздел (/mnt/dos) нет символьных ссылок (и файлы не используются, а шрифты как раз используются приложением читалки, покрайней мере 2 точно). Если есть - umount при отключении раздела не срабатывает и соответственно mount при дальнейшем подключении тоже. Читалку можно обмануть, выводя вместе с mount что-то вроде echo 1, тогда приложение это проглатывает, но появляется другая проблема - в читалке изменения, сделанные на ПК при подключении по USB, становятся видны только после перезагрузки. Конечно с этим можно и смириться, но хотелось бы всё сделать по уму.
Поэтому прошу совета, как правильно монтировать-размонтировать и какой true way для подобной ситуации?
P.S. Есть еще блочный раздел кеша в ext3 подмонтированного как rw, но там свои проблемы. Во-первых с раздела фат надо каждый раз копировать шрифты в кеш, во-вторых нужно проверять каждый раз, а не различаются ли они (чтобы лишний раз не копировать). И всё это немерено увеличивает время загрузки и размонтирования. В-третьих при подмене шрифта, используемого приложением читалки в UI - она может капитально зависнуть, либо вместо шрифта появится пустота...