Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

автоматическое монтирование usb flash

189 views
Skip to first unread message

Eugene Grosbein

unread,
Nov 7, 2006, 3:59:21 PM11/7/06
to
Привет!

ftp://www.kuzbass.ru/pub/freebsd/attach-umass-0.1.tgz

shell-cкрипт, автоматически монтирующий USB Flash при втыкании флешки
и отмонтирущий при выдергивании, для FreeBSD. В текущем варианте заточен
под наиболее распространенный случай: на флешке в первом разделе
лежит FAT. В качестве foolproof-меры флешка по дефолту монтируется в r/o.
Поэтому отмонтируется при выдергивании через umount -f (все равно
она уже выдернута). Требует запущенного devd (по дефолту в шестерке),
поэтому в четверке работать не будет, под 5.x не тестировался,
но работать должен если devd там живой. Аналогично на 7.0-CURRENT.
Предполагает использование USB посредством CAM (по дефолту),
то есть когда доступ к umass(4) идет через da(4).

Установка:

tar xvzf attach-umass-0.1.tgz
cd attach-umass
make install

Удаление: make deinstall в том же каталоге.

После распаковки и перед инсталляцией можно заглянуть
в attach-umass, там в начале скрипта есть параметры:

DEV=/dev

BASE=/usb

USERGROUP=owner:group

MODE=0755

DEV определяет, куда смонтирована devfs,
BASE - где создавать mount points для флешей (скрипт создат $BASE,
если не её существует)
USERGROUP и MODE - права доступа для новых mount points,
fstab не используется.

Еще можно посмотреть/поправить по вкусу функции do_mount/do_umount
там же, они вызываются для собственно монтирования/демонтирования,
им первым аргументом передается имя устройства в виде /dev/daN,
вторым полное имя точки монтирования (возможны пробелы в имени!).
И там же функции notify_success и notify_failure, они вызываются
при успешном/неуспешном монтировании/отмонтировании и получают
аргументом строку do_mount/do_umount соответсвенно. По дефолту
выдают один system bell при успехе и два при неуспехе, можно тут
вставить проигрывание мелодии через sox/mpg123/mplayer/whatever.

Точка монтирования это подкаталог в $BASE с именем в формате:
название-daN, при этом "название" - это как устройство само себя называет.
Hапример:

$ ls -l /usb
total 52
drwxr-xr-x 1 eugen all 16384 1 янв 1980 EM732X MP3 Player 1.00-da1
drwxr-xr-x 1 eugen all 4096 1 янв 1980 Generic USB Flash Disk 0.00-da0
drwxr-xr-x 1 eugen all 16384 1 янв 1980 Sony Sony Camcorder 5.00-da2

При выдергивании флешки каталог размонтируется и удаляется.
Еще внутри $BASE при монтировании создаются файлы вида .umassN,
туда для последующего успешного размонтирования пишется соответствующие
имя девайса и точки монтирования (после выдергивания определить соответствие
umass/da будет уже крайне затруднительно без такого файл), они тоже
удаляются после размонтирования.

Приветствуются комментарии, особенно интересно узнать, насколько
корректно работает скрипт на машинах, использующих SCSI HDD,
то есть у которых есть девайсы daN помимо флешей. Теоретически
работать должно и там ;-)

Eugene
--
Прекрасны тонко отшлифованная драгоценность; победитель, раненный в бою;
слон во время течки; река, высыхающая зимой; луна на исходе; юная женщина,
изнуренная наслаждением, и даятель, отдавший все нищим. (Дхарма)

Artem S. Ignatiev

unread,
Nov 7, 2006, 3:20:30 PM11/7/06
to
Вижу вас хорошо --- слышу вас плохо, Eugene!

07 ноя 06 23:59, ты слова All про всяких автоматическое монтирование usb flash:

EG> ftp://www.kuzbass.ru/pub/freebsd/attach-umass-0.1.tgz
EG> shell-cкрипт, автоматически монтирующий USB Flash при втыкании флешки
EG> и отмонтирущий при выдергивании, для FreeBSD.


Hедавно в голову подумал, но за неактуальностью так и не реализовал.
В GEOM нашёлся класс geom_label. В /dev магическим образом появляются
директории ntfs, ufs, msdosfs и т.д. Hадо только какой-нибудь amd напрячь (или
придумать обвязку вокруг kevent/kqueue), и будет система автомонтирования,
подобная той, что в Mac OS X. Особенно если geom при втыкании флешки/сидюка
будет сам это обнаруживать и перечитывать TOC/whatsoever.

А если при этом система научится делать dirty umount (игнорируя все изменения)
-- так вообще супер будет

ZaZooBred [team Бородатые] [ICQ: 67440949]

Vlad Gnatov

unread,
Nov 7, 2006, 4:20:35 PM11/7/06
to
Artem S. Ignatiev пишет:

EG>> ftp://www.kuzbass.ru/pub/freebsd/attach-umass-0.1.tgz
EG>> shell-cкрипт, автоматически монтирующий USB Flash при втыкании флешки
EG>> и отмонтирущий при выдергивании, для FreeBSD.

Свят-свят.

AS> Особенно если geom при втыкании флешки/сидюка
AS> будет сам это обнаруживать и перечитывать TOC/whatsoever.
Не надо ничего монтировать при втыкании. Нужно монтировать по запросу.

AS> А если при этом система научится делать dirty umount (игнорируя все
изменения)
AS> -- так вообще супер будет
Это вредительство.

--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Artem S. Ignatiev

unread,
Nov 7, 2006, 4:56:30 PM11/7/06
to
Вижу вас хорошо --- слышу вас плохо, Vlad!

08 ноя 06 00:20, ты слова я про всяких Re: по мотивам: автоматическое
монтирование usb flash:

AS>> Особенно если geom при втыкании флешки/сидюка
AS>> будет сам это обнаруживать и перечитывать TOC/whatsoever.

VG> Hе надо ничего монтировать при втыкании. Hужно монтировать по запросу.

Про монтировать в вышеотквоченном речи нет. Hикогда не приходилось делать
# true >/dev/da0
для того, чтобы таки в /dev появились da0s* ?

Да и запросы бывают разными. Вот, например, cd /automount/ && ls - может быть
запросом, а может быть и нет. Это уж как настроишь.

AS>> А если при этом система научится делать dirty umount (игнорируя

AS>> все
VG> изменения)


AS>> -- так вообще супер будет

VG> Это вредительство.

А паника/deadlock при выдирании сменного носителя -- это нормально?
Что должна делать система, если у фотоаппарата по моей забывчивости аккумулятор
сел, пока он в комп воткнут? До посинения экрана пытаться sync() на нём делать?

Vlad Gnatov

unread,
Nov 7, 2006, 8:37:11 PM11/7/06
to
Artem S. Ignatiev пишет:

AS>>> Особенно если geom при втыкании флешки/сидюка
AS>>> будет сам это обнаруживать и перечитывать TOC/whatsoever.
VG>> Hе надо ничего монтировать при втыкании. Hужно монтировать по запросу.

AS> Про монтировать в вышеотквоченном речи нет. Hикогда не приходилось делать
AS> # true >/dev/da0
AS> для того, чтобы таки в /dev появились da0s* ?
Это здесь причем? Мы кажется решаем задачу минимизации телодвижений
при работе с флешками.

AS> Да и запросы бывают разными. Вот, например, cd /automount/ && ls - может
быть
AS> запросом, а может быть и нет. Это уж как настроишь.
Запрос есть запрос. А вот реакция на него - "как настроишь".

AS>>> А если при этом система научится делать dirty umount (игнорируя

AS>>> все изменения) -- так вообще супер будет
VG>> Это вредительство.
AS> А паника/deadlock при выдирании сменного носителя -- это нормально?
Если носитель выдернут посреди операции - это все. Никто Вам ничего
отмонтировать не даст. Если машина пережила выдергивание, то umount -f
верный способ получить panic. Подробности можете посмотреть здесь
http://www.freebsd.org/cgi/query-pr.cgi?pr=46176

Повторюсь. Hе надо ничего монтировать при втыкании. Hужно монтировать по
запросу.
Не надо ничего отмонтировать по вытыкании. Нужно отмонтировать после
завершения
операций с носителем плюс время N. Вобщем man amd /-c /-w

Это плохое, но работающее решение. 'Так себе' решением было бы использование
чего-то
вроде mtools для доступа к флешке без монтирования. Хорошим решением была бы
доработка фри до состояния, когда mount бы просто ругался и предлагал вставить

обратно. Но оставим это для RELENG_10 ')

Eugene Grosbein

unread,
Nov 8, 2006, 1:55:38 AM11/8/06
to
08 ноя 2006, среда, в 04:37 KRAST, Vlad Gnatov написал(а):

AS>> А паника/deadlock при выдирании сменного носителя -- это нормально?

VG> Если носитель выдернут посреди операции - это все. Hикто Вам ничего
VG> отмонтировать не даст. Если машина пережила выдергивание, то umount -f
VG> верный способ получить panic. Подробности можете посмотреть здесь
VG> http://www.freebsd.org/cgi/query-pr.cgi?pr=46176

Ты уверен, что с 2002-го оно в таком положении и осталось?
USB очень сильно правили на эту тему, и ugen, и umass,
патчи были массированные. У меня многое полечилось.
В шестерку все это попало.

VG> Повторюсь. Hе надо ничего монтировать при втыкании. Hужно монтировать по
VG> запросу.
VG> Hе надо ничего отмонтировать по вытыкании. Hужно отмонтировать после
VG> завершения
VG> операций с носителем плюс время N.

Какое может быть завершение операций с выдернутым носителем? Максимум abort,
но это можно и по umount делать.

Eugene
--
Знаете ли вы, что...
Иисус имел не менее 4 братьев и 2 сестер (Матф.13:54)

Vlad Gnatov

unread,
Nov 7, 2006, 11:09:11 PM11/7/06
to
Eugene Grosbein пишет:
EG> 08 ноя 2006, среда, в 04:37 KRAST, Vlad Gnatov написал(а):

AS>>> А паника/deadlock при выдирании сменного носителя -- это нормально?
VG>> Если носитель выдернут посреди операции - это все. Hикто Вам ничего
VG>> отмонтировать не даст. Если машина пережила выдергивание, то umount -f
VG>> верный способ получить panic. Подробности можете посмотреть здесь
VG>> http://www.freebsd.org/cgi/query-pr.cgi?pr=46176

EG> Ты уверен, что с 2002-го оно в таком положении и осталось?
EG> USB очень сильно правили на эту тему, и ugen, и umass,
EG> патчи были массированные. У меня многое полечилось.
EG> В шестерку все это попало.
Специально ради Вас только что уронил позавчерашний RELENG_6
Последовательность операций: Воткнуть флешку, смонтировать флешку,
выдернуть флешку, umount -f. Только в этот оно просто подвисло, без паники.
Прогресc. Да, Intel 82801EB (ICH5) USB controller.

VG>> Повторюсь. Hе надо ничего монтировать при втыкании. Hужно монтировать по
VG>> запросу.
VG>> Hе надо ничего отмонтировать по вытыкании. Hужно отмонтировать после
VG>> завершения
VG>> операций с носителем плюс время N.

EG> Какое может быть завершение операций с выдернутым носителем? Максимум
abort,
EG> но это можно и по umount делать.
man amd /-w /-c

Eugene Grosbein

unread,
Nov 8, 2006, 3:30:17 AM11/8/06
to
08 ноя 2006, среда, в 07:09 KRAST, Vlad Gnatov написал(а):

AS>>>> А паника/deadlock при выдирании сменного носителя -- это нормально?
VG>>> Если носитель выдернут посреди операции - это все. Hикто Вам ничего
VG>>> отмонтировать не даст. Если машина пережила выдергивание, то umount -f
VG>>> верный способ получить panic. Подробности можете посмотреть здесь
VG>>> http://www.freebsd.org/cgi/query-pr.cgi?pr=46176
EG>> Ты уверен, что с 2002-го оно в таком положении и осталось?
EG>> USB очень сильно правили на эту тему, и ugen, и umass,
EG>> патчи были массированные. У меня многое полечилось.
EG>> В шестерку все это попало.

VG> Специально ради Вас только что уронил позавчерашний RELENG_6
VG> Последовательность операций: Воткнуть флешку, смонтировать флешку,
VG> выдернуть флешку, umount -f. Только в этот оно просто подвисло, без
VG> паники.
VG> Прогресc. Да, Intel 82801EB (ICH5) USB controller.

А флешка точно была смонтирована в r/o? У меня не падает,
нормально отмонтируется. Hеплохо бы написать followup к тому PR,
мол на свежем RELENG_6 трабла осталась. И Cc: ответственному.

VG>>> Повторюсь. Hе надо ничего монтировать при втыкании. Hужно монтировать по
VG>>> запросу.
VG>>> Hе надо ничего отмонтировать по вытыкании. Hужно отмонтировать после
VG>>> завершения
VG>>> операций с носителем плюс время N.
EG>> Какое может быть завершение операций с выдернутым носителем? Максимум

EG>> abort,


EG>> но это можно и по umount делать.

VG> man amd /-w /-c

Читал я man. Ты пожалуйста на вопрос ответь, какое может быть
завершение операций кроме прерывания при выдернутом носителе?

Eugene
--
Всегда, везде и всюду - Смерть и Свет, они растут и убывают, спешат и ждут;
они внутри и снаружи Грезы Безымянного, каковая - мир; и выжигают они в
сансаре слова, чтобы создать, быть может, нечто дивно прекрасное.

Vlad Gnatov

unread,
Nov 8, 2006, 2:24:24 AM11/8/06
to
Eugene Grosbein пишет:
VG>>> http://www.freebsd.org/cgi/query-pr.cgi?pr=46176
Скорей http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/78413
Его правда посчитали дубликатом 46176 и закрыли.

EG>>> Ты уверен, что с 2002-го оно в таком положении и осталось?
EG>>> USB очень сильно правили на эту тему, и ugen, и umass,
EG>>> патчи были массированные. У меня многое полечилось.
EG>>> В шестерку все это попало.
VG>> Специально ради Вас только что уронил позавчерашний RELENG_6
VG>> Последовательность операций: Воткнуть флешку, смонтировать флешку,
VG>> выдернуть флешку, umount -f. Только в этот оно просто подвисло, без
VG>> паники.
VG>> Прогресc. Да, Intel 82801EB (ICH5) USB controller.

EG> А флешка точно была смонтирована в r/o? У меня не падает,
EG> нормально отмонтируется. Hеплохо бы написать followup к тому PR,
EG> мол на свежем RELENG_6 трабла осталась. И Cc: ответственному.
Здесь Вы правы, при ro не паникует. Но ведь это не дело - автомагически
монтировать в ro, чтобы потом в ручную перемонтировать, редактировать
файлы и перемонтировать обратно. Тот же amd предоставляет схожый сервис
без вмешательства человека.

VG>>>> Повторюсь. Hе надо ничего монтировать при втыкании. Hужно монтировать
по
VG>>>> запросу.
VG>>>> Hе надо ничего отмонтировать по вытыкании. Hужно отмонтировать после
VG>>>> завершения
VG>>>> операций с носителем плюс время N.
EG>>> Какое может быть завершение операций с выдернутым носителем? Максимум
EG>>> abort,
EG>>> но это можно и по umount делать.
VG>> man amd /-w /-c

EG> Читал я man. Ты пожалуйста на вопрос ответь, какое может быть
EG> завершение операций кроме прерывания при выдернутом носителе?
Прочитайте еще раз:
Amd is a daemon that automatically mounts file systems whenever a file or
directory within that file system is accessed. File systems are automat-
ically unmounted when they appear to be quiescent.

Размонтирование происходит штатно, после завершения io операций + время N.
Интервал -w по умолчанию правда великоват.
Если хотите вовсе избежать периода с rw - пользуйтесь mtools.

Eugene Grosbein

unread,
Nov 8, 2006, 6:53:50 AM11/8/06
to
08 ноя 2006, среда, в 10:24 KRAST, Vlad Gnatov написал(а):

VG>>>> http://www.freebsd.org/cgi/query-pr.cgi?pr=46176
VG> Скорей http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/78413
VG> Его правда посчитали дубликатом 46176 и закрыли.

Followup к открытому все-таки надо.

VG> Здесь Вы правы, при ro не паникует. Hо ведь это не дело - автомагически
VG> монтировать в ro, чтобы потом в ручную перемонтировать, редактировать
VG> файлы и перемонтировать обратно.

Кстати, тут еще один глюк нашелся. mount -u -o rw тупо не работает
для msdosfs, смонтированной в r/o.

VG> Тот же amd предоставляет схожый сервис
VG> без вмешательства человека.

EG>> Читал я man. Ты пожалуйста на вопрос ответь, какое может быть
EG>> завершение операций кроме прерывания при выдернутом носителе?

VG> Прочитайте еще раз:
VG> Amd is a daemon that automatically mounts file systems whenever a file or
VG> directory within that file system is accessed. File systems are automat-
VG> ically unmounted when they appear to be quiescent.
VG> Размонтирование происходит штатно, после завершения io операций + время N.
VG> Интервал -w по умолчанию правда великоват.
VG> Если хотите вовсе избежать периода с rw - пользуйтесь mtools.

Подход mtools не катит вообще для меня.

Valentin Davydov

unread,
Nov 8, 2006, 4:17:08 AM11/8/06
to
> From: Vlad Gnatov <sta...@rm-rf.kiev.ua>
> Date: Wed, 8 Nov 2006 01:37:11 +0000 (UTC)

>
>Повторюсь. Hе надо ничего монтировать при втыкании. Hужно монтировать по
>запросу. Не надо ничего отмонтировать по вытыкании. Нужно отмонтировать
>после завершения операций с носителем плюс время N.

А теперь обоснуй, почему N должно быть больше миллисекунды, но в то же самое
время меньше года.

Вал. Дав.

Valentin Davydov

unread,
Nov 8, 2006, 4:17:08 AM11/8/06
to
> From: Eugene Grosbein <Eugene....@f1.n5006.z2.fidonet.org>
> Date: Wed, 08 Nov 2006 09:55:38 +0300

>
> AS>> А паника/deadlock при выдирании сменного носителя -- это нормально?
> VG> Если носитель выдернут посреди операции - это все. Hикто Вам ничего
> VG> отмонтировать не даст. Если машина пережила выдергивание, то umount -f
> VG> верный способ получить panic. Подробности можете посмотреть здесь
> VG> http://www.freebsd.org/cgi/query-pr.cgi?pr=46176
>
>Ты уверен, что с 2002-го оно в таком положении и осталось?
>USB очень сильно правили на эту тему, и ugen, и umass,
>патчи были массированные.

USB здесь вряд ли существенно (то есть, в нём, конечно, и свои тараканы есть,
но обсуждаемая проблема, по-моему, относится к дисковому/файловому драйверу
и проистекает ещё со времён паник при выдёргивании неотмонтированного флопика).

Вал. Дав.

Artem S. Ignatiev

unread,
Nov 8, 2006, 4:38:26 AM11/8/06
to
Вижу вас хорошо --- слышу вас плохо, Vlad!

08 ноя 06 04:37, ты слова я про всяких Re: по мотивам: автоматическое
монтирование usb flash:


AS>>>> Особенно если geom при втыкании флешки/сидюка
AS>>>> будет сам это обнаруживать и перечитывать TOC/whatsoever.

VG>>> Hе надо ничего монтировать при втыкании. Hужно монтировать по
VG>>> запросу.


AS>> Про монтировать в вышеотквоченном речи нет. Hикогда не приходилось

AS>> делать # true >/dev/da0 для того, чтобы таки в /dev появились
AS>> da0s* ?
VG> Это здесь причем? Мы кажется решаем задачу минимизации телодвижений
VG> при работе с флешками.

Решать-то решаем, и почему бы тогда не исключить из списка движений
# true > /dev/da0? Или пока юзер не захочет -- система и partition
# true > table/whatsoever читать ни-ни?

AS>> Да и запросы бывают разными. Вот, например, cd /automount/ && ls -

AS>> может быть запросом, а может быть и нет. Это уж как настроишь.
VG> Запрос есть запрос. А вот реакция на него - "как настроишь".

Мне кажется, что это два разных способа сказать примерно одно и то же.

AS>>>> А если при этом система научится делать dirty umount (игнорируя
AS>>>> все изменения) -- так вообще супер будет
VG>>> Это вредительство.

AS>> А паника/deadlock при выдирании сменного носителя -- это

AS>> нормально?


VG> Если носитель выдернут посреди операции - это все. Hикто Вам ничего
VG> отмонтировать не даст. Если машина пережила выдергивание, то umount -f
VG> верный способ получить panic. Подробности можете посмотреть здесь
VG> http://www.freebsd.org/cgi/query-pr.cgi?pr=46176

Вот я и хочу, не получать этот panic. Hи винда, ни мак ось не паникуют при
некорректном выдирании usb-девайса, только в пользователя ругаются.

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

VG> Повторюсь. Hе надо ничего монтировать при втыкании. Hужно монтировать
VG> по запросу. Hе надо ничего отмонтировать по вытыкании. Hужно
VG> отмонтировать после завершения операций с носителем плюс время N.
VG> Вобщем man amd /-c /-w

Hапример.

VG> Это плохое, но работающее решение. 'Так себе' решением было бы
VG> использование чего-то вроде mtools для доступа к флешке без
VG> монтирования. Хорошим решением была бы доработка фри до состояния,
VG> когда mount бы просто ругался и предлагал вставить
^ имелся в виду umount?
VG> обратно. Hо оставим это для RELENG_10 ')

Vlad Gnatov

unread,
Nov 8, 2006, 10:32:22 AM11/8/06
to
Valentin Davydov пишет:

VG>>Повторюсь. Hе надо ничего монтировать при втыкании. Hужно монтировать по
VG>>запросу. Не надо ничего отмонтировать по вытыкании. Нужно отмонтировать
VG>>после завершения операций с носителем плюс время N.
VD> А теперь обоснуй, почему N должно быть больше миллисекунды, но в то же
VD> самое время меньше года.
Любое решение является копромиссом между несколькими факторами. В данной
ситуации - эффективностью, надежностью и удобством.

Для эффективности лучше async, закешировать все поуши и откладывать запись
до последнего. Для надежности - отмонтировать через миллисекунду.
Для удобства - сделать так, чтобы флешку можно было вытыкать в
произвольный момент времени без последствий.

VD>USB здесь вряд ли существенно (то есть, в нём, конечно, и свои тараканы
VD>есть, но обсуждаемая проблема, по-моему, относится к дисковому/файловому
VD>драйверу и проистекает ещё со времён паник при выдёргивании
VD>неотмонтированного флопика).
Судя по содержанию паник и тому что подобное поведение воспроизводится
на разных usb чипсетах, таки да, это старый добрый io layer.

Vlad Gnatov

unread,
Nov 8, 2006, 11:23:50 AM11/8/06
to
Eugene Grosbein пишет:

VG>> Скорей http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/78413
VG>> Его правда посчитали дубликатом 46176 и закрыли.
EG> Followup к открытому все-таки надо.
Там еще пару аналогичных закрытых. Если это io layer, то жаловаться
бесполезно.

VG>> Здесь Вы правы, при ro не паникует. Hо ведь это не дело - автомагически
VG>> монтировать в ro, чтобы потом в ручную перемонтировать, редактировать
VG>> файлы и перемонтировать обратно.

EG> Кстати, тут еще один глюк нашелся. mount -u -o rw тупо не работает
EG> для msdosfs, смонтированной в r/o.
О. Сколько нового можно узнать, монтирую флешку в ro ')

VG>> Тот же amd предоставляет схожый сервис
VG>> без вмешательства человека.

VG>> Если хотите вовсе избежать периода с rw - пользуйтесь mtools.
EG> Подход mtools не катит вообще для меня.
Да, все эти mdeltree неудобны. Но что поделаешь?

Eugene Grosbein

unread,
Nov 8, 2006, 3:29:16 PM11/8/06
to
08 ноя 2006, среда, в 18:32 KRAST, Vlad Gnatov написал(а):

VG> Для эффективности лучше async, закешировать все поуши и откладывать запись
VG> до последнего. Для надежности - отмонтировать через миллисекунду.
VG> Для удобства - сделать так, чтобы флешку можно было вытыкать в
VG> произвольный момент времени без последствий.

Если у меня когда-нибудь дойдут руки проапгрейдить system hot keys
до RELENG_6, то отмонтировать флешку(и) можно по нажатию, скажем, F12
на клавиатуре и получив писк в колонки/спикер в ответ, смело вынимать.

ftp://www.kuzbass.ru/pub/freebsd/patches/hotkeys-4.tar.gz
http://groups.google.ru/group/fido7.ru.unix.bsd/browse_thread/thread/98884734ac5e260a/0129831829e19526?hl=ru&

Hе предосудительно и кому-нибудь другому нарисовать hotkeys-6 :-)

Vlad Gnatov

unread,
Nov 8, 2006, 12:58:04 PM11/8/06
to
Eugene Grosbein пишет:

VG>> Для эффективности лучше async, закешировать все поуши и откладывать

VG>> запись до последнего. Для надежности - отмонтировать через миллисекунду.


VG>> Для удобства - сделать так, чтобы флешку можно было вытыкать в
VG>> произвольный момент времени без последствий.

EG> Если у меня когда-нибудь дойдут руки проапгрейдить system hot keys
EG> до RELENG_6, то отмонтировать флешку(и) можно по нажатию, скажем, F12
EG> на клавиатуре и получив писк в колонки/спикер в ответ, смело вынимать.
А я думал мы тут о автомагических операциях разговариваем ')
Отмонтировать флешку может и amd. Бибикнуть (лично я предпочитаю visual bell)
при umount тоже не проблема.

EG> ftp://www.kuzbass.ru/pub/freebsd/patches/hotkeys-4.tar.gz
EG> http://groups.google.ru/group/fido7.ru.unix.bsd/
EG>browse_thread/thread/98884734ac5e260a/0129831829e19526?hl=ru&
И зачем оно? Много проще воткнуть нужный keycode в .Xmodmap
Консоль - это нештатная ситуация и там обычно не до изысков.

EG> Hе предосудительно и кому-нибудь другому нарисовать hotkeys-6 :-)
EG> Eugene

Eugene Grosbein

unread,
Nov 8, 2006, 5:24:03 PM11/8/06
to
08 ноя 2006, среда, в 20:58 KRAST, Vlad Gnatov написал(а):

EG>> ftp://www.kuzbass.ru/pub/freebsd/patches/hotkeys-4.tar.gz
EG>> http://groups.google.ru/group/fido7.ru.unix.bsd/
EG>>browse_thread/thread/98884734ac5e260a/0129831829e19526?hl=ru&

VG> И зачем оно? Много проще воткнуть нужный keycode в .Xmodmap

Очевидно, для тех кто работает в консоли.

Eugene
--
Choose no friends

Anton Yuzhaninov

unread,
Nov 19, 2006, 9:27:17 AM11/19/06
to
Hello, Eugene!
You wrote to All on Tue, 07 Nov 2006 23:59:21 +0300:

EG> ftp://www.kuzbass.ru/pub/freebsd/attach-umass-0.1.tgz

EG> shell-cкрипт, автоматически монтирующий USB Flash при втыкании флешки
EG> и отмонтирущий при выдергивании, для FreeBSD.

Почему то не хочет работать umass2da:

hius:~#camcontrol devlist -v
scbus0 on umass-sim0 bus 0:
<Generic USB Flash Disk 2.00> at scbus0 target 0 lun 0 (da0)
scbus-1 on xpt0 bus 0:
< > at scbus-1 target -1 lun -1 (xpt0)

hius:~#/usr/local/libexec/umass/umass2da umass0
hius:~#

--
Anton Yuzhaninov, OSPF-RIPE, mail: citrin (at) citrin.ru


Anton Yuzhaninov

unread,
Nov 19, 2006, 9:48:50 AM11/19/06
to
AY> hius:~#camcontrol devlist -v
AY> scbus0 on umass-sim0 bus 0:
AY> <Generic USB Flash Disk 2.00> at scbus0 target 0 lun 0 (da0)
AY> scbus-1 on xpt0 bus 0:
AY> < > at scbus-1 target -1 lun -1 (xpt0)

Это потому ,что у меня ядро собрано без
device pass
с флешкой и без него можно нормально работать.
В общем в awk скрипте нужен менее жесткий regexp. чтоб работал при разном
виде вывода camcontrol

Eugene Grosbein

unread,
Nov 19, 2006, 2:01:55 PM11/19/06
to
19 ноя 2006, воскресенье, в 17:27 KRAST, Anton Yuzhaninov написал(а):

EG>> ftp://www.kuzbass.ru/pub/freebsd/attach-umass-0.1.tgz
EG>> shell-cкрипт, автоматически монтирующий USB Flash при втыкании флешки
EG>> и отмонтирущий при выдергивании, для FreeBSD.

AY> Почему то не хочет работать umass2da:


AY> hius:~#camcontrol devlist -v
AY> scbus0 on umass-sim0 bus 0:
AY> <Generic USB Flash Disk 2.00> at scbus0 target 0 lun 0 (da0)
AY> scbus-1 on xpt0 bus 0:
AY> at scbus-1 target -1 lun -1 (xpt0)

AY> hius:~#/usr/local/libexec/umass/umass2da umass0
AY> hius:~#

Угу, косяк. Все потому, что у тебя нету device pass в ядре ;-)

Попробуй патч для umass2da:

- --- umass2da.orig Sun Nov 19 21:57:49 2006
+++ umass2da Sun Nov 19 22:00:46 2006
@@ -5,7 +5,7 @@
camcontrol devlist -v | awk -v u=$1 '\
BEGIN { s=""; e=1; }
$3 ~ /umass-sim[0-9]+/ { s=$3; sub("-sim","",s); }
-/\((da[0-9]+),pass[0-9]+\)$/ {
+/\((da[0-9]+),?.*\)$/ {
if(s == u) {
d=$NF;
sub(/^\(/,"",d); sub(/,.*/,"",d);


Eugene
--
Смотри, но не смей трогать

Anton Yuzhaninov

unread,
Nov 19, 2006, 1:57:10 PM11/19/06
to
Hello, Eugene!
You wrote to Anton Yuzhaninov on Sun, 19 Nov 2006 22:01:55 +0300:

EG> - --- umass2da.orig Sun Nov 19 21:57:49 2006
EG> +++ umass2da Sun Nov 19 22:00:46 2006
EG> @@ -5,7 +5,7 @@
EG> camcontrol devlist -v | awk -v u=$1 '\
EG> BEGIN { s=""; e=1; }
EG> $3 ~ /umass-sim[0-9]+/ { s=$3; sub("-sim","",s); }
EG> -/\((da[0-9]+),pass[0-9]+\)$/ {
EG> +/\((da[0-9]+),?.*\)$/ {

device=da0) name="Generic USB Flash Disk 2.00"
Вторую скобку тоже нужно убрать...

И еще насколько я понимаю это regexp можно немного сократить:
/\(da[0-9]+.*\)$/

0 new messages