LINUX.ORG.RU

ubuntu - свой индикатор unity для управления vgaswitcheroo

 , безумная идея, псих


0

2

В общем, призываю всех прохаванных в ubuntu/python/unity людей.

Хочу запилить индикатор для unity, с помощью которого можно будет рулить видеокартами.

Надо передавать команды вида:

echo ON > /sys/kernel/debug/vgaswitcheroo/switch

Ну там OFF, DIS, DDIS, IGD, DIGD и т.д.

Ну и auto, low, middle, high в /sys/class/drm/card{0,1}/device/power_profile.

Вид меню самого апплета пока крутится в голове, думаю, как бы это дело поудобнее сделать.

Теперь основной вопрос: каким образом реализовать передачу этих команд? Хочется безкостыльный способ, чтоб потом могли этим пользоваться другие, поэтому вариант с колдованием над /etc/sudoers или сменой владельца над этими файлами, как мне кажется, отпадает сразу. Была безумная мысль сделать это посредством демона, запускаемого от рута, и после этого обращение к нему - но я в этом полный ноль, весь опыт программирования ограничивается скриптописательством.

★★★★
Ответ на: комментарий от amorpher

Мм. Ну да, можно глянуть реализацию.

Сейчас доминирует идея создания скрипта в /usr/bin, выдаче ему прав sudo без пароля, и уже от индикатора рулить этим скриптом, которым будет рулить непосредственно необходимым.

ekzotech ★★★★
() автор топика

Может посмотреть апплет indicator-cpufreq на предмет того, как там организован обход sudo при смене частоты процессора?

emissar ★★
()

Что касается прав, так тут вам в помощь PolicyKit. И не надо никаких sudoers... Просто пакет с вашим индикатором будет содержать правило для policykit, позволяющее выполнить нужный код от рута без пароля.

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

Может посмотреть апплет indicator-cpufreq на предмет того, как там организован обход sudo при смене частоты процессора?

Я его поставил, тоже об этом подумал.

На арчевики была статья, по поводу включения команд cpufreq в sudoers, группа wheel (no passwd).

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

Хм. А с этим сложно разбираться?

В принципе, гибернацию через PolicyKit включить несложно, файл с 4 строчками, но тут ситуация вроде посложнее.

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

Ситуация не такая уж и сложная. Вы можете разделить функционал на апплет и скрипт, требующий админских прав. Скрипт вызовете с использованием pkexec, а в policy-файле все теги allow_<any, inactive, active> снабдите значением yes. Это самый простой метод, по сути дела у вас будет два процесса - один с привилегиями ,выполнянющий только те действия, которые без повышенных привилегий не выполнить, и второй - код аплета выполняющийся из-под аккаунта юзера, юзающего Unity. policy-файлы пишутся легко, можно взять любой готовый сайт и просто подправить в нём несколько строк под ваш процесс.

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

Ну как там, сдвиги есть? :)

Честно - сейчас руки не доходят ещё. Возился с багом (ноут не просыпается из саспенда, когда включён powerxpress), сдвигов пока нет.

Сейчас сессия последняя, к учёбе готовиться надо, дипломную готовить. Думаю после НГ буду заниматься этим делом - реально времени не хватает.

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

Наткнулся вот на что. Не совсем апплет юнити правда, но что-то похожее. Чуть позже попробую.

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