Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Проверка подключено ли устройство  (Прочитано 1525 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн zg_nico

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 2559
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: Проверка подключено ли устройство
« Ответ #15 : 01 Сентябрь 2019, 06:29:05 »
maksd, мы с Вами на одном языке разговариваем?
1) Вот это:
точно не его нужно указвать в этом фрагменте.
предложение повествовательное, вопросительное или какое? В конце стоит точка. То есть Вы уверены, что точно не его нужно указывать. Тогда зачем об этом писать? Если вопрос - то я на него не отвечу, т.к. нет у меня GPMDP. У меня qmmp стоит. И он с вышеприведенной команды прекрасно стартует.
2) Вот к этому:
разве мак адрес может быть в атрибуте name?
Я ж русским по белому ранее по тексту написал откуда я взял значение атрибута NAME: из вывода udevadm info. А не гуглится он потому, что атрибут там можно вклинить по логике вещей любой, какой в голову взбредет. И описывать их все - дело пустое.
3) Вот к этому:
udevadm info -a -n имя_устройства
А я разве говорил что udev так можно пользоваться? Я вроде как писал про синтаксис:
udevadm info -a -p /devices/virtual/input/input37
Никаких name, как видите.
Короче: читайте посты внимательно и выполняйте все как в них описано - тогда заведется и заработает.
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн maksd

  • Автор темы
  • Любитель
  • *
  • Сообщений: 69
    • Просмотр профиля
Re: Проверка подключено ли устройство
« Ответ #16 : 01 Сентябрь 2019, 20:03:00 »
тогда заведется и заработает.
В общем. команда работает и запускает GPMDP. но...если еспользовать ее в правиле udev, то ничего не получается запустить.
сделал udevadm monitor и посмотрел поточнее атрибуты и имя своего устройства при подключении и не понимаю почему не работает ибо все правильно в правиле. я пробовал и просто запилить в RUN+="" команду запуска плеера и пробовал в исполняемый добавить  и в праивило запилить запуск скрипту. Скрипт сам по себе работает хорошо, но в правиле не пашет.
Я правильно понимаю, что правило в rules.d можнт как угодно называться?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26653
    • Просмотр профиля
Re: Проверка подключено ли устройство
« Ответ #17 : 01 Сентябрь 2019, 20:10:48 »
Запустить с правами пользователя =/= запустить в сессии пользователя.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн zg_nico

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 2559
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: Проверка подключено ли устройство
« Ответ #18 : 01 Сентябрь 2019, 20:49:14 »
AnrDaemon, конкретизируйте уже, не томите.
maksd, по поводу правила - в целом, да. Называться может как угодно. Вместе с тем, осмотрите каталог /lib/udev/rules.d/ Это - системный свод правил для udev. Они применяются системой в порядке, в котором идут там. Сортировка, грубо говоря, по алфавиту. Иными словами, созданное Вами правило желательно создавать таким образом, чтобы оно применялось после всего, что идет в вышеупомянутом каталоге. Поэтому для верности имеет смысл применить имя файла вида 99-чего-то-там.rules. Протестируйте правило иначе: "запилите" в RUN команду подачи уведомления:sudo -u umd DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send ALERT Так хоть отсечемся куда именно копать. Если при подключении гарнитуры уведомление показывается строго один раз - значит все нормально с правилом, и следует смотреть в сторону того, как именно запускать плеер. Если же не показывается даже уведомление - то следует пересмотреть само правило, - что-то явно не в порядке.
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн maksd

  • Автор темы
  • Любитель
  • *
  • Сообщений: 69
    • Просмотр профиля
Re: Проверка подключено ли устройство
« Ответ #19 : 01 Сентябрь 2019, 21:16:50 »
Запустить с правами пользователя =/= запустить в сессии пользователя.
Не совсем понятно что вы пытаетесь сказать

Пользователь добавил сообщение 01 Сентябрь 2019, 21:30:32:
. Если при подключении гарнитуры уведомление показывается строго один раз - значит все нормально с правилом, и следует смотреть в сторону того, как именно запускать плеер. Если же не показывается даже уведомление - то следует пересмотреть само правило, - что-то явно не в порядке.
не показывает ни разу.
 Но если в терминал вбить то показывает.
Правило
ACTION=="add", SUBSYSTEM=="input", ATTR{name}=="00:18:09:84:91:DF", ATTR{properties}=="0", RUN+="./.condev"
Скрипт condev
#!/bin/bash
sudo -u umd DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus google-play-music-desktop-player
Да, скрипт скрытый. Точка там не случайно.
вывод udevadm info
KERNEL=="input21"
    SUBSYSTEM=="input"
    DRIVER==""
    ATTR{name}=="00:18:09:84:91:DF"
    ATTR{phys}==""
    ATTR{properties}=="0"
    ATTR{uniq}==""

Посмотрел команду в menulibre для GPMDP и скрипт немного изменился.
#!/bin/bash
sudo -u umd DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/google-play-music-desktop-player_google-play-music-desktop-player.desktop /snap/bin/google-play-music-desktop-player %U
По прежнему не работает в udev а сама команда отпрабатывает и скрипт отрабатывает
« Последнее редактирование: 01 Сентябрь 2019, 23:50:57 от maksd »

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 3205
  • Capture the truth
    • Просмотр профиля
    • Всезнайка
Re: Проверка подключено ли устройство
« Ответ #20 : 01 Сентябрь 2019, 22:53:30 »
эээ, точка понятно, но первую - нельзя.
RUN+="./.condev"

RUN+="/full/path/to/.condev"



Пользователь добавил сообщение 01 Сентябрь 2019, 22:57:07:
Еще в самом скрипте было б нелишним
XDG_RUNTIME_DIR=/run/user/1000
« Последнее редактирование: 01 Сентябрь 2019, 22:57:30 от ALiEN175 »
ASUS M5A78L-M LX3 :: AMD FX-4330 :: 8 GB RAM :: AMD Radeon R7 260X :: ZSH
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA 3150 :: ZSH

Оффлайн maksd

  • Автор темы
  • Любитель
  • *
  • Сообщений: 69
    • Просмотр профиля
Re: Проверка подключено ли устройство
« Ответ #21 : 01 Сентябрь 2019, 23:18:43 »
эээ, точка понятно, но первую - нельзя.
RUN+="./.condev"

Если решили ответить, проитайте пожалуйста все ответы. Я раньше уже писал, что пробовал просто команду из скрипта вбить в udev как и посоветовал сделать другой пользователь. Не сработало. Учту на счет точки, но все равно не работает

Пользователь добавил сообщение 01 Сентябрь 2019, 23:52:48:
KERNEL=="input21"
    SUBSYSTEM=="input"
    DRIVER==""
    ATTR{name}=="00:18:09:84:91:DF"
    ATTR{phys}==""
    ATTR{properties}=="0"
    ATTR{uniq}==""
Здесь KERNEL при каждом подключении другой. Так и должно быть?
« Последнее редактирование: 01 Сентябрь 2019, 23:52:48 от maksd »

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 3205
  • Capture the truth
    • Просмотр профиля
    • Всезнайка
Re: Проверка подключено ли устройство
« Ответ #22 : 02 Сентябрь 2019, 02:17:06 »
Прочитал. Не увидел, как именно "пробовали". В любом случае, к командам нужно указывать полный путь.

Проверим, работает ли вообще:
Правило:
ACTION=="add", ATTR{name}=="00:18:09:84:91:DF",  RUN+="/bin/bash -c 'echo OK >> /tmp/test'"
Терминал:
sudo udevadm control --reload-rules && sudo udevadm trigger
# Тут переподключить устройство
cat /tmp/test
?
ASUS M5A78L-M LX3 :: AMD FX-4330 :: 8 GB RAM :: AMD Radeon R7 260X :: ZSH
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA 3150 :: ZSH

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15575
  • Я не слышу.
    • Просмотр профиля
Re: Проверка подключено ли устройство
« Ответ #23 : 02 Сентябрь 2019, 03:20:28 »
Цитировать
Проверка подключено ли устройство
lsusb - главное.
ls /dev/video* ли камера.
ls -1 /sys/class/net ли сеть.
ls -1 /dev/sd[a-z] ди диск.
ls -1 /dev/sc[0-9] ли CD/DVD.
lspci ли звук.
.....
~.o

Оффлайн zg_nico

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 2559
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: Проверка подключено ли устройство
« Ответ #24 : 02 Сентябрь 2019, 06:33:01 »
не показывает ни разу.
При этом:
ПравилоACTION=="add", SUBSYSTEM=="input", ATTR{name}=="00:18:09:84:91:DF", ATTR{properties}=="0", RUN+="./.condev"
А я писал про
ACTION=="add", SUBSYSTEMS=="input", ATTR{name}=="1C:52:16:04:0A:FE", RUN+="команда1"
Что не одно и то же. Раз уж Вы все-таки показали имя своего устройства, попробуйте такое правило:
ACTION=="add", SUBSYSTEMS=="input", ATTR{name}=="1C:52:16:04:0A:FE", RUN+="sudo -u umd DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send ALERT1"
ACTION=="remove", SUBSYSTEMS=="input", ATTRS{name}=="1C:52:16:04:0A:FE", RUN+="sudo -u umd DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send ALERT2"
После сохранения файла правила в обязательном порядке переподгружаем список правил:sudo udevadm control --reloadДалее подключаем гарнитуру и отключаем гарнитуру. На каждое из этих событий должно выйти уведомление с текстом ALERT с соответствующей цифрой.
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4050
    • Просмотр профиля

Оффлайн maksd

  • Автор темы
  • Любитель
  • *
  • Сообщений: 69
    • Просмотр профиля
Re: Проверка подключено ли устройство
« Ответ #26 : 02 Сентябрь 2019, 21:33:41 »
Далее подключаем гарнитуру и отключаем гарнитуру. На каждое из этих событий должно выйти уведомление с текстом ALERT с соответствующей цифрой.
Все исправил. Не выводит никакого сообщения. Но сама команда работает.
ACTION=="add",SUBSYSTEMS=="input",ATTR{name}=="00:18:09:84:91:DF",RUN+="sudo -u umd DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send ALERT1"
Перезагрузил правила
sudo udevadm control --reload
Даже пробовал перезагрузить ноут. Результата нет. Правило не работает. Может попробовать другой дистр поставить? Например Mint. Там ведь все так же делать нужно? Никаких отличий от ubuntu?

Пользователь добавил сообщение 02 Сентябрь 2019, 22:31:42:
в качестве временного решения использую скрипт который повесил на сочетание клавиш.
один обозвал .con
#!/bin/bash
bluetoothctl << eof
    connect 00:18:09:84:91:DF
eof
sleep 3
if [ -f "/home/<user>/devi" ]; then cat /dev/null > devi && ./.devi > devi
    if grep -e 'Connected: yes' devi; then notify-send "Подключено" && google-play-music-desktop-player && cat /dev/null > devi
   else
        notify-send "Не подключено"
    fi
else
    cat /dev/null > devi && ./.devi > devi
    if grep -e 'Connected: yes' devi; then notify-send "Подключено" && google-play-music-desktop-player && cat /dev/null > devi
   else
        notify-send "Не подключено"
    fi
fi
другой обозвал .devi
#!/bin/bash
bluetoothctl << eof
    info 00:18:09:84:91:DF
eof
Вполне неплохо работает. Но хотелось бы конечно разобраться с udev, чтобы не жать лишний раз клавиши.
А на отключение сделал .dicnct
#!/bin/bash
bluetoothctl << eof
disconnect 00:18:09:84:91:DF
eof
sleep 3
notify-send "Отключено" && killall 'Google Play Music Desktop Player' && cat /dev/null > devi

Пользователь добавил сообщение 03 Сентябрь 2019, 19:20:36:

Проверим, работает ли вообще:
Правило:
Код: [Выделить]
ACTION=="add", ATTR{name}=="00:18:09:84:91:DF",  RUN+="/bin/bash -c 'echo OK >> /tmp/test'"

Терминал:
Код: [Выделить]
sudo udevadm control --reload-rules && sudo udevadm trigger
# Тут переподключить устройство
cat /tmp/test
Это рпааило работает, но команда запуска плеера не работает.
« Последнее редактирование: 03 Сентябрь 2019, 19:20:36 от maksd »

 

Страница сгенерирована за 0.067 секунд. Запросов: 24.