Как отключить кеширование для usb устройства при записи на него?

У меня проблемы с переносом двоичных программ на макетную плату микроконтроллера при использовании ubuntu/kubuntu для монтирования платы через usb. С MacOS и Windows проблем нет. Я обнаружил, что запись из Ubuntu определенно меняет записанный файл. Я подозреваю, что проблема заключается в кэшировании записи. Как я могу отключить его, или в чем еще может быть проблема.

2 ответа

Решение

Сначала прочтите это: http://groups.google.com/group/linux.kernel/msg/8d1591196c0ae15e?pli=1
Я не уверен, правда это или нет.

Вы можете попробовать использовать hdparm, чтобы отключить функцию кэширования записи во время выполнения. (Вам, вероятно, понадобится запускать это после каждой загрузки или каждый раз, когда вы удаляете и повторно устанавливаете устройство)

sudo hdparm -W 0 /dev/devicename

Пожалуйста, убедитесь, что вы знаете правильное имя устройства ( sdb , sdc или так далее).

Вы можете узнать имя устройства, запустив:

sudo fdisk -l

Вы также можете редактировать /etc/fstab и добавьте параметры монтирования sync,dirsync Однако я не очень знаком с тем, как /etc/fstab работает со съемными устройствами. Я думаю, что им нужна постоянная точка монтирования.

Слава @NightwishFan для переключателя hdparm, чтобы установить функцию кэширования записи диска.

Обратите внимание, что sync опция монтирования уменьшает скорость на величину (более 10 раз). flush Опция монтирования обеспечивает эффективную запись без затрат производительности. Также я использую его без проблем в течение нескольких лет на всех устройствах FAT (на основе вращения или флэш-памяти), которые я использовал: На самом деле весь набор параметров монтирования noauto,users,noatime,flush,umask=111,dmask=000установить вручную или в /etc/fstab.

Я заменил "синхронизацию" на "noatime,flush", как указано в ответе @tuk0z.

Это приводит к тому, что USB-флоппи-дисковод ведет себя так же, как синхронизация, но записывает файлы намного быстрее, как вы ожидаете при нормальной скорости работы.

Чтение файлов изображений с дискеты больше не приводит к случайным артефактам. Также чтение DD дискет не приводит к появлению странных символов в именах файлов.

Возможно, немного прискорбно, что официальная документация "mount" помещает использование в контекст.

Престижность!

Другие вопросы по тегам