Nie można zapisać do pliku / sys / class / backlight / acpi_video0 / jasność (ubuntu)

16

Próbuję zmienić jasność, zastępując wartość tego pliku:

sudo echo 5 > /sys/class/backlight/acpi_video0/brightness
-bash: /sys/class/backlight/acpi_video0/brightness: Permission denied

Nie działa nawet podczas korzystania z sudo. Jeśli jednak przełączę się na superużytkownika z su, to działa. Dlaczego?


źródło
Ta akcja jest ograniczona tylko do użytkowników sudo. W tym komentarzu znalazłem odpowiedź :The reason that this is set at su permissions is that a virus could conceivably make your screen dim and go bright at incredible speed ultimately damaging your hardware display. In the 90's I encountered a virus that would adjust the screen refresh Hertz so rapidly that your monitor would fry.
Aleksiej Wołodko,

Odpowiedzi:

17

Błąd występuje, ponieważ sudo podnosi uprawnienia do polecenia ( sudo echo 5), ale nie przekierowanie do zapisu pliku ( > /sys/class/backlight/acpi_video0/brightness). Rzeczywista powłoka bash wymaga pozwolenia na pisanie, dlatego nie działa z sudo, ale działa jako root.

Możesz obejść ten problem, uruchamiając teekomendę jako root, aby zapisać do pliku:

echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness

Zauważ, że będzie to również odbijało się echem na twoim terminalu. Jest to normalny efekt uboczny teepolecenia.

mguymon
źródło
Podziękowania dla @duskwuff za sprytne teerozwiązanie
mguymon
5
Nie mogę uwierzyć, że to wymyśliłem - to trochę folkloru UNIX, który wybrałem od kto-gdzie-gdzie.
duskwuff -inactive-
1
nie działa dla mnie z / sys / class / drm / card0 / device / pp_sclk_od nie może zmienić wartości
Alexela 15.09.17
5

Jak napisano w Arch wiki ( link ), domyślnie rootmożna jedynie zmienić jasność tą metodą. Aby umożliwić użytkownikom w videogrupie zmianę jasności, audev reguły takie jak poniżej może być używany (Wymień <vendor>z identyfikatorem dostawcy Np. acpi_video0, intel_backlight):

% cat /etc/udev/rules.d/backlight.rules
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<vendor>", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<vendor>", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"

Następnie musisz dodać użytkownika do videogrupy.

usermod -aG video <user>

Po tym powinno to działać:

echo 5 > /sys/class/backlight/<vendor>/brightness
Manuel Schmitzberger
źródło
1
Ta metoda działa dla mnie po zastąpieniu acpi_video0przez intel_backlight.
Mehdi
1
Dziękujemy za opinię. Zaktualizowałem odpowiedź.
Manuel Schmitzberger
2

Jeśli nie chcesz echa 5, działa to również:

sudo sh -c 'echo 5 > /sys/class/backlight/acpi_video0/brightness'
Rafael
źródło
0

Od dłuższego czasu zmagam się z tym problemem na mojej VAIO VPCEG. Po zrobieniu wszystkiego wymienionego na każdym forum znalazłem coś interesującego:

Po zmianie parametru rozruchu acpi_osi=Linux acpi_backlight=vendori próbie ręcznej zmiany /sys/class/backlight/[vendor - in my case intel_backlight]/brightness, zdałem sobie sprawę, że zmiana uprawnień do tego pliku z root na mojego użytkownika i ponowne uruchomienie usługi acpid, pozwoli mi to bezbłędnie korzystać z klawiszy jasności.

użytkownik273880
źródło
-1

poniższe rozwiązania działają dobrze dla mnie ..

wysyłam jako odpowiedź, aby inni mogli uzyskać pomoc:

zmień uprawnienia:

sudo chmod a+rw /sys/class/backlight/intel_backlight/brightness

teraz zmień jasność:

echo 400 > /sys/class/backlight/intel_backlight/brightness

w twoim przypadku byłoby to: /sys/class/backlight/acpi_video0/brightness

noobdeveloper99
źródło
1
Witamy w Super User! Nie dodawaj „dziękuję” jako odpowiedzi. Zainwestuj trochę czasu na stronie, a zyskasz wystarczające uprawnienia do głosowania na odpowiedzi, które Ci się podobają, co jest sposobem Super Użytkownik na podziękowanie.
DavidPostill
Poza tym tak naprawdę nie odpowiedziałeś na pytanie: „Dlaczego?”
DavidPostill
wielkie dzięki .. za informacje i naprawdę przepraszam .. tylko przeze mnie .. zmarnowałeś swój ważny czas na prowadzenie mnie .. upewnię się, że to się więcej nie powtórzy
noobdeveloper99
Nie jest dobrą praktyką zezwalanie wszystkim na odczytywanie i zapisywanie takiego pliku konfiguracji systemu.
2015
Mam kilka scenariuszy, w których ekran zaczyna działać, ale wartość podświetlenia nadal wynosi 0,
ransh