C ++, BBB, Debian: как узнать, когда USB-диск смонтирован / вставлен - PullRequest
0 голосов
/ 22 февраля 2019

Описание:

Я разрабатываю приложение "киоск" на черном 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».Мой недостаток в том, что «событие удаления» никогда не происходило, и поэтому папка все еще там.

Что мне делать?

...