LINUX.ORG.RU

inotify+usbfs


0

0

Проделал следующие действия:
1.Убедился, что в ядре включена поддержка usbfs: cat /proc/filesystems | grep usbfs
2.Смонтировал её: sudo mount -t usbfs usbfs /proc/bus/usb
3.Скомпилировал пример из википедии (http://ru.wikipedia.org/wiki/Inotify): gcc main.c -o inotify_test. Проверил этот пример на произвольных файлах - работает.
4. Нашёл каталог в котором появляется/исчезает файл устройства при подключении/отключении флешки. У меня это /proc/bus/usb/001
5. Натравил на inotify_test этот каталог: inotify_test /proc/bus/usb/001.

В результате наблюдаю в консоли момент удаления файла при выдёргивании флешки, но не при её втыкании. Т.е. программа не получает от подсистемы inotify сообщение о создании файла, хотя он и создаётся.
Вопрос, что я делаю не так, или это один из сабжевых компонентов глючит?


> Вопрос, что я делаю не так, или это один из сабжевых компонентов глючит?

Херней занимаешься. за усб девайсами следит хал.

тут уже проскакивали скрипты на питоне которые юзают хал и делают автомонтирование с фанфарами +)

MikeDM ★★★★★
()
Ответ на: комментарий от MikeDM

>Херней занимаешься. за усб девайсами следит хал.
Мне это нужно для своей программы на embedded-машине без hal.

gogi
() автор топика
Ответ на: комментарий от isden

Есть там mdev (аналог udev), он прекрасно работает. Но не устаивает, что ядро слишком долго инициализирует флешку, т.е. практически моментально появляется сообщение "scsi11 : SCSI emulation for USB Mass Storage devices", после этого секунд на пять система задумывается (проц не загружен, не понятно что происходит), потом прочухивается так как это обычно бывает и вызывается mdev, он уже создаёт файл устройства.
То, чем я занимаюсь сейчас, нужно чтобы быстрее определить факт подключения флешки. Пикнуть пищалкой, ну или что-нибудь такое.

gogi
() автор топика
Ответ на: комментарий от gotf

>А с sysfs никак нельзя?

Попробовал
./inotify_test /sys/bus/usb/drivers/usb-storage/

- не ловит создание/удаление симлинков в этом каталоге. Т.е. ещё хуже.

gogi
() автор топика

Или йузай udev, или сам читай нетлинк. Постинит 6 сек и никуда не денется.

vasily_pupkin ★★★★★
()

inotify-tools тоже реагируют только на отключение устройства, предполагаю, что проблемы в usbfs.

amaora ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.