Неможливо записати у файл / sys / class / backlight / acpi_video0 / яскравість (ubuntu)


16

Я намагаюся змінити яскравість, перезаписавши значення в цьому файлі:

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

Він не працює навіть при використанні sudo. Однак якщо я перейду до суперкористувача з su, це працює. Чому так?


Ця дія обмежена лише для користувачів sudo. Я знайшов відповідь у цьому коментарі :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.
Олексій

Відповіді:


17

Помилка трапляється через те, що sudo підвищує дозволи для команди ( sudo echo 5), але не перенаправлення для запису файлу ( > /sys/class/backlight/acpi_video0/brightness). Фактична оболонка bash потребує дозволу на написання, саме тому вона не працює з sudo, але працює як root.

Ви можете обійти це, виконавши teeкоманду як root для запису у файл:

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

Зауважте, що це також відлучить "5" до вашого терміналу. Це нормальний побічний ефект teeкоманди.


Кредит належить @duskwuff за розумне teeрішення
mguymon

5
Я не можу взяти на себе кредит за те, що я придумав це - це трохи фольклору UNIX, який я зібрав із "хто-що-куди".
сутінки -надія-

1
не працює для мене з / sys / class / drm / card0 / device / pp_sclk_od не може змінити значення
alexela

5

Як написано у Вікі-арці ( посилання ), за замовчуванням лише rootза допомогою цього методу можна змінити яскравість. Щоб дозволити користувачам у videoгрупі змінити яскравість, можна застосувати таке udevправило, як наведено нижче (замініть <vendor>ідентифікатор постачальника. Наприклад 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"

Потім потрібно додати свого користувача до videoгрупи.

usermod -aG video <user>

Після цього це має працювати:

echo 5 > /sys/class/backlight/<vendor>/brightness

1
Цей метод працює для мене після заміни acpi_video0на intel_backlight.
Мехді

1
Thx для вашого відгуку. Я оновив відповідь.
Мануель Шмітцбергер

2

Якщо ви не хочете, щоб 5 повторилися, це також працює:

sudo sh -c 'echo 5 > /sys/class/backlight/acpi_video0/brightness'

0

Я боровся з цією проблемою на своєму VAIO VPCEG досить довгий час. Зробивши все, що згадувалося на кожному форумі, я знайшов щось цікаве:

Після зміни параметру завантаження acpi_osi=Linux acpi_backlight=vendorта спроби змінити його вручну /sys/class/backlight/[vendor - in my case intel_backlight]/brightnessя зрозумів, що змінивши дозвіл на цей файл з root на мого користувача та перезапустивши службу швидкого доступу, це дозволить мені бездоганно використовувати клавіші яскравості.


-1

наведені нижче рішення добре працюють для мене ..

Я публікую це як відповідь, щоб інші могли отримати допомогу:

змінити дозвіл:

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

тепер змінити яскравість:

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

у вашому випадку це було б: /sys/class/backlight/acpi_video0/brightness


1
Ласкаво просимо до Супер Користувача! Будь ласка, не додайте "дякую" як відповіді. Вкладіть деякий час на сайт, і ви отримаєте достатньо привілеїв, щоб отримати відповіді, які вам подобаються, а це спосіб Super User сказати спасибі.
DavidPostill

Крім того, ви насправді не відповіли на питання, яке було "Чому це?"
DavidPostill

велике спасибі .. за інформацію і дуже вибачте .. просто через мене .. ви витратили свій важливий час для керівництва мною .. я переконайтеся, що це не повториться
noobdeveloper99

Недобра практика дозволяти всім читати та записувати такий системний конфігураційний файл.
lindhe

У мене є деякі сценарії, коли екран починає функціонувати, але значення підсвічування все ще дорівнює 0,
ransh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.