LINUX.ORG.RU

Обработка события подключения USB флешки к компьютеру linux

 , , ,


0

1

Здравствуйте. Подскажите как отловить и обработать событие подключения/отключения флешки к компьютеру.

Используемая версия QT 4.5

Система linux 2.6.

udev в системе нет и нет возможности его установить это arm устройство с очень ограниченной памятью.

Но при подключении флешки в консоль пишется подробная информация о ней.

Кто-то в любом случае должен создавать файлы блочных устройств. Это может быть какой-нить mdev.

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

Я специально удалял файлы sdc, им никто так и не создал замены.

А остальные файлы sda и sdb просто лежат в большом количестве по 14 штук

kvazar2 ()

Я для этого пользуюсь udisks через D-Bus... И судя по тому что предоставил EXL - оно тоже, если не ошибаюсь, через udev, как и udisks.

Придется тебе малость навелосипедить.

I-Love-Microsoft ★★★★★ ()

Смотря для каких целей тебе это нужно. Я вот родителям программу писал, где в интерфейсе был список разделов, на которые можно копировать данные. QDir::drives() поможет, одно это будет работать только при монтировании... Обычно на всех ОС монтирование происходит автоматом, по-этому я в программе просто таймер вешаю и каждую секунду выдаю запрос QDir::drives() и, если что то появилось или пропало, реагирую а это... Вообще, насколько я знаю, в linux это можно сделать только через модуль ядра, в котором можно определить именно момент подключения (т.е. когда питание пошло на девайс, сначала ловишь сигнал подключения к USB шине, потом определяешь по класскоду, что это за устройство и как с ним работать)

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

Автоматического монтирования не происходит, всё только в ручную

А вот, что выдаёт компьютер, когда в него вставляют флешку

https://yadi.sk/i/lelNuBkcb6Eh8

kvazar2 ()
Ответ на: комментарий от arrecck

файлы устройств могут быть созданы статически

anonymous ()

вангую, что надо повеситься на /sys/bus/usb/devices/usb1/uevent, и когда select/epoll раздупляется - смотреть, что появилось нового в /sys/bus/usb/devices/usb1.

а ядро можно заставить создавать файлы в /dev, включив опцию DEVTMPFS

anonymous ()
Ответ на: комментарий от EXL

Вот же ш, только недавно искал такую хреновину, не нашёл, пришлось костылить свою, а тут ...

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

Выше ссылка на либу на основе netlink, тебе должно хватить.

false ★★★★★ ()

Используемая версия QT 4.5

udev в системе нет и нет возможности его установить это arm устройство с очень ограниченной памятью.

странно: на qt памяти у тебя хватило, а на удав — нет?

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