powertop permanente muda com systemctl

0

Eu tenho um script .sh, tentando fazer com que as mudanças de energia permaneçam permanentes.

'auto' > '/sys/bus/pci/devices/0000:00:02.1/power/control';

os comandos neste script .sh são todos desse tipo.

Eu tenho um systemd-service em / etc / systemd / system com este conteúdo:

[Unit]
Description=My Script
After=network.target

[Service]
Type=forking
ExecStart=/home/my_username/.autostart_sudo.sh

[Install]
WantedBy=multi-user.target

O script ".autostart_sudo.sh" é chamado corretamente após a inicialização (por exemplo, "bluetooth off" - comando neste arquivo é chamado perfeclty) mas os comandos echo- > -não são chamados com sucesso.

Eu notei que digitar

  sudo 'auto' > '/sys/bus/pci/devices/0000:00:02.1/power/control';

em um terminal dá um erro de restrição, mas

  sudo su
 'auto' > '/sys/bus/pci/devices/0000:00:02.1/power/control';

funciona.

como eu tenho que mudar meu systemd + bash-script para obter as mudanças de powertop funcionando na inicialização?

Obrigado antecipadamente!

Editar:

Ok, tento descrever o fluxo novamente: Eu tenho o serviço systemd postado no topo deste post. Este serviço chama o ".autostart_sudo.sh" em meu / home / user /.

Existem muitos comandos neste arquivo .autostart_sudo.sh com esta aparência:

echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:04:00.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:03:00.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:1a.0/power/control';
echo 'auto' > '/sys/bus/pci/devices/0000:00:03.3/power/control';
(...)
thinkfan start

O "thinkfan start" também precisa de privilégios de root para iniciar corretamente, este funciona, mas os comandos "echo" não.

Eu também tentei

bash -c 'echo auto > /sys/bus/pci/devices/0000:00:1d.0/power/control;'
bash -c 'echo auto > /sys/bus/pci/devices/0000:00:1a.7/power/control;'
bash -c 'echo auto > /sys/bus/pci/devices/0000:00:1a.2/power/control;'
bash -c 'echo auto > /sys/bus/pci/devices/0000:00:02.0/power/control;'
bash -c 'echo auto > /sys/bus/pci/devices/0000:00:02.1/power/control;'  

não funciona: /

As coisas do sudo-test que mencionei acima eram apenas testes em um Terminal .

algum conselho?

    
por breytex 22.04.2013 / 16:09

3 respostas

0

Tem a certeza de que o X-bit está definido para /home/my_username/.autostart_sudo.sh Tenha em mente que o proprietário uid / gid deste script deve ser root para evitar a injeção de código de shell por malware. E

sudo echo 'auto' > '/sys/bus/pci/devices/0000:00:02.1/power/control';

não funciona porque ">" executado não pela raiz. Experimente

sudo bash -c 'echo auto > /sys/bus/pci/devices/0000:00:02.1/power/control';
    
por 23.04.2013 / 08:31
0

Sim, meu mal. Eu chamei tlp start após os ajustes de Powertop. Dint sabe que tlp iria estragar as configurações tão ruins assim. Então, se você tiver o mesmo problema: chame tlp start

    
por 24.04.2013 / 00:42
0

Tão triste, finalmente tenho que intervir e responder a essa pergunta ...

Antes, não consegui responder, pois não tinha a reputação de responder a perguntas, comentários, upvote. Então, se você quiser mais respostas, então faça o upvote dessa resposta

Você precisa fazer duas coisas:

1) Automate giving password to every command requiring sudo privileges.

echo "PASSWORD" | sudo -S COMMAND

2) Give permissions to everyone to change content of each configuration file

chmod 666 File_Path

aqui está o código que funciona para mim:

Altere "PASSWORD" com a senha do sudo da sua conta atual

#For File Permission Change

echo "PASSWORD" | sudo -S chmod 666 '/sys/class/scsi_host/host0/link_power_management_policy'
echo "PASSWORD" | sudo -S chmod 666 '/sys/class/scsi_host/host1/link_power_management_policy'
echo "PASSWORD" | sudo -S chmod 666 '/sys/module/snd_hda_intel/parameters/power_save'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/i2c/devices/i2c-5/device/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/usb/devices/3-1.6/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:1b.0/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:16.0/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:1f.0/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:1c.0/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:1f.2/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:1c.2/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:14.0/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:1d.0/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:06:00.0/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:03.0/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:00.0/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:1c.3/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:07:00.0/power/control'
echo "PASSWORD" | sudo -S chmod 666 '/sys/bus/pci/devices/0000:00:1c.4/power/control'

#For Actual Modification

echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy'
echo 'min_power' > '/sys/class/scsi_host/host1/link_power_management_policy'
echo '1' > '/sys/module/snd_hda_intel/parameters/power_save'
echo 'auto' > '/sys/bus/i2c/devices/i2c-5/device/power/control'
echo 'auto' > '/sys/bus/usb/devices/3-1.6/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1b.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:16.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1f.2/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.2/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:14.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1d.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:06:00.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:03.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:00.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.3/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:07:00.0/power/control'
echo 'auto' > '/sys/bus/pci/devices/0000:00:1c.4/power

Nota: você pode ter que mudar todos os comandos conforme seu sistema:)

    
por 11.12.2017 / 19:24