Описание:
Я разрабатываю приложение "киоск" на черном BeagleBone (с использованием wxWidgets, но этот вопрос / ответ может или не может быть связан с wxWidgets), и мне нужно знать, когда USBдиск вставлен (и смонтирован?).
Больше всего мне хочется перехватить «системное событие», которое сообщает моему приложению о наличии диска (или флэш-накопителя), чтобы я мог выполнить некоторую автоматизацию наэто, но я бы хорошо также проверить диск в определенный момент (когда пользователь входит в соответствующую страницу пользовательского интерфейса).
BBB определяет, когда USB подключен, но не сделалсмонтируйте его (если я не открою FileManager, тогда я смогу увидеть папку диска в / media / debian / drivename ), поэтому я не могу просто проверить этот путь из своего приложения.
IЯ прочитал много вопросов об этом здесь, но ни один из них не кажется мне правильным (или, возможно, я слишком неопытен);Например, нет файла / dev / ttyUSB , или я не знаю, как использовать ссылки в / dev / disk / by-id .
Мой вопрос:
как я могу узнать, когда USB-диск подключен к BBB?И когда у меня есть эта информация, как мне ее смонтировать (при необходимости?)
Некоторые примечания:
- У меня нет проблем с тем, чтобы использовать BBBодин порт USB, если универсальное решение более сложное
- Я приму либо универсальное решение, либо решение для wxWidgets
Спасибо
РЕДАКТИРОВАТЬ:
после комментария @ markus-nm и этой ссылки, я закончил с этим рабочим правилом:
ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/usr/bin/pmount --sync --umask 000 --noatime %k"
ACTION=="remove", KERNEL=="sd[a-z]*", RUN+="/usr/bin/pumount %k"
Это работает (у меня есть папка "sda1" в / media /), но оно не идеально:если система отключена, когда USB-накопитель включен, затем извлекается, затем включается питание, остается папка «sda1».Мой недостаток в том, что «событие удаления» никогда не происходило, и поэтому папка все еще там.
Что мне делать?