Другое приложение: Blender обрабатывает ведущий //
как ссылку на каталог проекта (каталог в который сохраняется в файле .blend
). Вот соответствующая страница руководства .
Это верно и для операционных систем, отличных от Unix (например, Windows).
Одним из способов перехвата всего трафика через USB является использование wirehark после вставки модуля ядра usbmon, как подробно описано в:
Это примерно как можно раньше. Но я предполагаю, что вы намерены использовать какой-то программный триггер, например событие, чтобы сделать что-то интересное, поэтому, учитывая, что запуск 'lsusb -t' дает вам статический список вставленных USB-устройств вместе с соответствующими драйверами. (если они существуют), вы можете создать задание cron для запуска lsusb и сравнить его с предыдущей версией, чтобы убедиться, что было вставлено новое устройство, даже если с ним не связан драйвер.
Обратной стороной этого простого решения является большая задержка, которую cron дает между вставкой и обнаружением.
Я не верю, что вы можете добиться этого с тупыми устройствами, как указано в комментарии @meuh здесь. . С устройствами, которые действительно обмениваются данными, udevadm monitor
работает нормально. Вот пример подключения и отключения телефона Android (включенного):
$ udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[115749.498687] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6 (usb)
KERNEL[115749.499591] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0 (usb)
UDEV [115749.511659] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6 (usb)
UDEV [115749.516846] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0 (usb)
KERNEL[115767.515839] remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0 (usb)
KERNEL[115767.516143] remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6 (usb)
UDEV [115767.517088] remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0 (usb)
UDEV [115767.522116] remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6 (usb)
Флэш-накопитель дает аналогичные, но гораздо более подробные результаты. Если вы хотите использовать эту информацию для запуска какого-либо действия, вы можете перенаправить вывод в файл и использовать tail
для отслеживания файла на предмет новой активности.
Тесты с телефоном Android (выключенным, но заряжающимся) не показали никаких изменений в выводе lsusb -v |grep Power
, что, ИМХО, подтверждает, что тупые устройства, которые просто потребляют или подают питание, не могут быть обнаружены. .
Еще один простой способ обнаружить устройства, которые не являются бесшумными, — это сохранить исходную информацию и сравнить с ней текущую информацию. Есть множество способов сделать это. Одна простая альтернатива udevadm
, упомянутая выше, которая сразу же приходит на ум, заключается в простом сборе исходных данных для системы без подключения обнаруживаемого устройства.Например:
Соберите базовые данные: lsusb > baseline.txt
Проверьте текущие данные и сравните:
пока верно; сделать lsusb > compare.txt ; diff compare.txt baseline.txt; спать 1; done
Раз в секунду текущие USB-подключения будут сравниваться с базовыми.
Если ваш скрипт обновляет базовые данные при обнаружении, вы также сможете обнаружить удаление устройства с помощью этого метода.