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
--
Прекрасны тонко отшлифованная драгоценность; победитель, раненный в бою;
слон во время течки; река, высыхающая зимой; луна на исходе; юная женщина,
изнуренная наслаждением, и даятель, отдавший все нищим. (Дхарма)
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]
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
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() на нём делать?
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 ')
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)
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
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
--
Всегда, везде и всюду - Смерть и Свет, они растут и убывают, спешат и ждут;
они внутри и снаружи Грезы Безымянного, каковая - мир; и выжигают они в
сансаре слова, чтобы создать, быть может, нечто дивно прекрасное.
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.
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 не катит вообще для меня.
А теперь обоснуй, почему N должно быть больше миллисекунды, но в то же самое
время меньше года.
Вал. Дав.
USB здесь вряд ли существенно (то есть, в нём, конечно, и свои тараканы есть,
но обсуждаемая проблема, по-моему, относится к дисковому/файловому драйверу
и проистекает ещё со времён паник при выдёргивании неотмонтированного флопика).
Вал. Дав.
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 ')
VG>>Повторюсь. Hе надо ничего монтировать при втыкании. Hужно монтировать по
VG>>запросу. Не надо ничего отмонтировать по вытыкании. Нужно отмонтировать
VG>>после завершения операций с носителем плюс время N.
VD> А теперь обоснуй, почему N должно быть больше миллисекунды, но в то же
VD> самое время меньше года.
Любое решение является копромиссом между несколькими факторами. В данной
ситуации - эффективностью, надежностью и удобством.
Для эффективности лучше async, закешировать все поуши и откладывать запись
до последнего. Для надежности - отмонтировать через миллисекунду.
Для удобства - сделать так, чтобы флешку можно было вытыкать в
произвольный момент времени без последствий.
VD>USB здесь вряд ли существенно (то есть, в нём, конечно, и свои тараканы
VD>есть, но обсуждаемая проблема, по-моему, относится к дисковому/файловому
VD>драйверу и проистекает ещё со времён паник при выдёргивании
VD>неотмонтированного флопика).
Судя по содержанию паник и тому что подобное поведение воспроизводится
на разных usb чипсетах, таки да, это старый добрый 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 неудобны. Но что поделаешь?
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 :-)
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
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
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
Это потому ,что у меня ядро собрано без
device pass
с флешкой и без него можно нормально работать.
В общем в awk скрипте нужен менее жесткий regexp. чтоб работал при разном
виде вывода camcontrol
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
--
Смотри, но не смей трогать
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]+.*\)$/