Автор Тема: Использование powerupp в altlinux  (Прочитано 334 раз)

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 627
Здравствуйте. Есть некий софт для владельцев видеокарточек AMD (в radeon profile не нашел возможности понизить напряжение) - PowerUPP. Собрал, поставил. Запускаю, настраиваю, подтверждаю вводом пароля суперпользователя. Чтобы не делать это каждый раз при загрузке ПК, программа создает рулез:
$ cat /etc/udev/rules.d/80-powerupp0.rules
KERNEL=="card0", SUBSYSTEM=="drm", DRIVERS=="amdgpu", ATTRS{device}=="0x731f", RUN+="/bin/bash /usr/bin/powerupp_startup_script_card0.sh"
(тут, кстати, уже есть "80-net-setup-link.rules -> /dev/null", я переименовал новый рулез до 90),
ну и сам скрипт:$ cat /usr/bin/powerupp_startup_script_card0.sh
#!/bin/bash
chmod 666 /sys/class/drm/card0/device/pp_table
sudo -i -u hasculdr /home/hasculdr/.pyenv/shims/upp --pp-file /sys/class/drm/card0/device/pp_table set --write smc_pptable/MaxVoltageGfx=4040 smc_pptable/SocketPowerLimitAc/0=200 smc_pptable/FreqTableGfx/1=1900 smc_pptable/MemMvddVoltage/3=5400 smc_pptable/MemVddciVoltage/3=3400 smc_pptable/FreqTableUclk/3=875 smc_pptable/MaxVoltageSoc=4200 smc_pptable/FreqTableSocclk/1=1267 smc_pptable/qStaticVoltageOffset/0/c=0.000000 smc_pptable/MemMvddVoltage/0=5000 smc_pptable/MemVddciVoltage/0=2700 smc_pptable/FreqTableUclk/0=100 smc_pptable/MemMvddVoltage/1=5400 smc_pptable/MemVddciVoltage/1=3400 smc_pptable/FreqTableUclk/1=500 smc_pptable/MemMvddVoltage/2=5400 smc_pptable/MemVddciVoltage/2=3400 smc_pptable/FreqTableUclk/2=625 smc_pptable/MinVoltageGfx=3000 smc_pptable/MinVoltageSoc=3000
chmod 644 /sys/class/drm/card0/device/pp_table
echo 200000000 | tee /sys/class/hwmon/$(ls -1 /sys/class/drm/card0/device/hwmon)/power1_cap
Вопрос - как отредактировать sudoers, чтобы это работало? Моя последняя попытка:# cat /etc/sudoers.d/undervolt
hasculdr ALL = (ALL) NOPASSWD: /bin/chmod 666 /sys/class/drm/card0/device/pp_table
hasculdr ALL = (ALL) NOPASSWD: /home/hasculdr/.pyenv/shims/upp --pp-file /sys/class/drm/card0/device/pp_table set --write smc_pptable/MaxVoltageGfx=4040 smc_pptable/SocketPowerLimitAc/0=200 smc_pptable/FreqTableGfx/1=1900 smc_pptable/MemMvddVoltage/3=5400 smc_pptable/MemVddciVoltage/3=3400 smc_pptable/FreqTableUclk/3=875 smc_pptable/MaxVoltageSoc=4200 smc_pptable/FreqTableSocclk/1=1267 smc_pptable/qStaticVoltageOffset/0/c=0.000000 smc_pptable/MemMvddVoltage/0=5000 smc_pptable/MemVddciVoltage/0=2700 smc_pptable/FreqTableUclk/0=100 smc_pptable/MemMvddVoltage/1=5400 smc_pptable/MemVddciVoltage/1=3400 smc_pptable/FreqTableUclk/1=500 smc_pptable/MemMvddVoltage/2=5400 smc_pptable/MemVddciVoltage/2=3400 smc_pptable/FreqTableUclk/2=625 smc_pptable/MinVoltageGfx=3000 smc_pptable/MinVoltageSoc=3000
hasculdr ALL = (ALL) NOPASSWD: /bin/chmod 644 /sys/class/drm/card0/device/pp_table
hasculdr ALL = (ALL) NOPASSWD: /bin/echo 200000000 | tee /sys/class/hwmon/$(ls -1 /sys/class/drm/card0/device/hwmon)/power1_cap
И ошибка - авг 02 20:54:41 host-41 sudo[2278]:     root : user NOT in sudoers ; HOST=host-41 ; PWD=/home/hasculdr ; USER=hasculdr ; COMMAND=/bin/bash -c \/home\/hasculdr\/\.pyenv\/shims\/upp --pp-file \/sys\/class\/drm\/card0\/device\/pp_table set --write smc_pptable\/MaxVoltageGfx\=4040 smc_pptable\/SocketPowerLimitAc\/0\=200 smc_pptable\/FreqTableGfx\/1\=1900 smc_pptable\/MemMvddVoltage\/3\=5400 smc_pptable\/MemVddciVoltage\/3\=3400 smc_pptable\/FreqTableUclk\/3\=875 smc_pptable\/MaxVoltageSoc\=4200 smc_pptable\/FreqTableSocclk\/1\=1267 smc_pptable\/qStaticVoltageOffset\/0\/c\=0\.000000 smc_pptable\/MemMvddVoltage\/0\=5000 smc_pptable\/MemVddciVoltage\/0\=2700 smc_pptable\/FreqTableUclk\/0\=100 smc_pptable\/MemMvddVoltage\/1\=5400 smc_pptable\/MemVddciVoltage\/1\=3400 smc_pptable\/FreqTableUclk\/1\=500 smc_pptable\/MemMvddVoltage\/2\=5400 smc_pptable\/MemVddciVoltage\/2\=3400 smc_pptable\/FreqTableUclk\/2\=625 smc_pptable\/MinVoltageGfx\=3000 smc_pptable\/MinVoltageSoc\=3000

Оффлайн Nicom

  • Давно тут
  • **
  • Сообщений: 159
    • Email
Re: Использование powerupp в altlinux
« Ответ #1 : 02.08.2022 22:02:35 »
(тут, кстати, уже есть "80-net-setup-link.rules -> /dev/null", я переименовал новый рулез до 90)
Нет смысла переименовывать. Правила запускаются в порядке первых цифр имён файлов.
Переименование нужно тогда, когда текущее правило требует чтобы предыдущие были уже применены.
Моя последняя попытка:
Должно быть достаточо одой строки в /etc/sudoers
ALL ALL=NOPASSWD: /usr/bin/powerupp_startup_script_card0.sh
« Последнее редактирование: 02.08.2022 22:04:41 от Nicom »

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 627
Re: Использование powerupp в altlinux
« Ответ #2 : 03.08.2022 11:52:11 »
Должно быть достаточо одой строки в /etc/sudoers
ALL ALL=NOPASSWD: /usr/bin/powerupp_startup_script_card0.sh
Не помогло. Та же самая ошибка.


upd. удалил "sudo -i -u <пользователь>" из скрипта, теперь рулез полностью выполняется рутом. И так сойдет (с).
« Последнее редактирование: 03.08.2022 19:50:11 от hasculdr »