LINUX.ORG.RU

Hабота с девайсами ввода без X.org.

 , , , ,


1

2

Есть задача, получать события ввода при запущенном в терминале без рут прав приложении.
Может кто знает, как работают иксы с клавиатурой/мышкой/джойстиком, не хочется копаться в исходниках. Для работы с /dev/input/event* нужны рут права. Есть способ работать без них, но их нужно при установке приложения, что бы создать правила udev.
Может кто знает, есть ещё какие то способы читать события ввода?

Для работы с /dev/input/event* нужны рут права.

да нууу?!

в удеве настрой, чтобы пермишены на /dev/input/event* давались нужные, и наслаждайся.

хинт:

KERNEL=="event*", ATTRS{idVendor}=="047f", ATTRS{idProduct}=="d955", MODE="0660", SYMLINK+="/your/symlink%n"

//каюсь, твою мысль я дочитал не до конца ;)

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 1)

Может кто знает, как работают иксы с клавиатурой/мышкой/джойстиком, не хочется копаться в исходниках. Для работы с /dev/input/event* нужны рут права.

я знаю: иксы работают от рута.

Есть способ работать без них, но их нужно при установке приложения, что бы создать правила udev. Может кто знает, есть ещё какие то способы читать события ввода?

Написать свой удав. Или реанимировать hal. Всегда ваш К.О.

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

Спасибо за быстрый ответ, воспользуюсь подсказкой, видимо ни чего лучше event* не придумать.

rudolfovich
() автор топика
Ответ на: комментарий от drBatty

я знаю: иксы работают от рута.

можно от пользователя выполнить startx и как ни странно ввод с клавиатуры и мышки будет работать.

Написать свой удав. Или реанимировать hal. Всегда ваш К.О.

про удав думал, а вот про hal почитаю, спасибо.

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

можно от пользователя выполнить startx и как ни странно ввод с клавиатуры и мышки будет работать.

$ ls -l /usr/bin/Xorg 
-rws--x--x 1 root root 2129360 Apr 27 23:53 /usr/bin/Xorg
BlackHawk
()
Ответ на: комментарий от rudolfovich

можно от пользователя выполнить startx и как ни странно ввод с клавиатуры и мышки будет работать.

что тут странного? там доступ 4755. Гули SUID bit, если странно. Иксы под рутом работают. Да, дыра. Даже РЕШЕТО. Знаю. Хорошо хоть не в ядре, как в маздае.

про удав думал, а вот про hal почитаю, спасибо.

ПОШУТИЛ Я! Не надо, оно устарело и говно мамонта. Настрой удав, и будет счастье.

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

ПОШУТИЛ Я! Не надо, оно устарело и говно мамонта. Настрой удав, и будет счастье.

Ок, так и поступлю. Я нуб в линуксе, месяца 4-5 использую, ещё почти ни чего не знаю.

rudolfovich
() автор топика
Ответ на: комментарий от invy

на малине (raspbmc) работает без иксов через фрэймбуффер. (насколько я успел разобраться)

Вообще он вроде как работает на OpenGLES, если я конечно не ошибаюсь, но и иксы тоже нужно.

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

udev — это старый костыль, а hal — старая подпорка для того костыля.

Как сделать без костылей тогда? Как иначе без иксов и рут прав работать с инпутами? Если ни как, то наверное это не костыль?

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

Вообще этим раньше занимался consolekit, после его смерти — systemd, емнип, systemd-loginctl конкретно. Преимущество перед udev-костылянием — в том, что он раздаёт доступ локальным пользователям, не давая его ssh-залогиненным. Подробности не скажу, поскольку не тыкал его глубоко. Маны знаешь где.

В weston, скорее всего, реализовано через рута.

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

Ага, weston-launch — с suid; договаривается с systemd, устанавливает права на всё и запускает weston, сбросив привилегии.

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

То есть главное найти способ с системой договориться через udev, systemd или consolekit. В основном это под IPTV приставки нужно, где нет иксов и на каждой своя сборка линукса. Сложно угадать что в них будет. Вот и хотел узнать, может ещё способы какие есть, что бы выбрать из них.
Спасибо всем за ответы.

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