Как изменить интенсивность / яркость подсветки внешнего дисплея ASUS Screenpad
У меня есть новый zenbook 15 с дополнительным дисплеем на тачпаде. Ubuntu прекрасно это распознает, если я использую Xorg и Intel gpu. Однако проблема в том, что яркость на нем не установлена на максимум. Поскольку ASUS предоставляет драйверы для Windows, я могу регулировать подсветку через приложение. В Linux все не так.
Вот как это выглядит в Ubuntu:
https://i.imgur.com/MykCqOw.jpg
И в Windows:
https://i.imgur.com/ewxknAM.jpg
Это что
xrandr показывает на дисплее как:
HDMI-1 connected 2160x1080+0+1080 right (normal left inverted right x axis y axis) 66mm x 134mm
1080x2160 50.03*+
504x1000 50.03
Пытаюсь выставить яркость через
xrandr --output HDMI-1 --brightness 1.5(т.е. выше 1), но это только делает экран более насыщенным. Вроде не управляет собственно подсветкой.
Какие-нибудь подсказки? Я попытался возиться с ddcutil, используя sudo ddcutil detect, чтобы получить (обратите внимание, что i2c-3 - это экранная панель):
Invalid display
I2C bus: /dev/i2c-3
EDID synopsis:
Mfg id: TSB
Model: ScreenXpert-
Serial number: Unspecified
Manufacture year: 2011
EDID version: 1.3
DDC communication failed
Invalid display
I2C bus: /dev/i2c-8
EDID synopsis:
Mfg id: BOE
Model: Unspecified
Serial number: Unspecified
Manufacture year: 2018
EDID version: 1.4
DDC communication failed
Я не был уверен, как установить подсветку, поэтому я загрузил графический интерфейс для ddccontrol (gddccontrol), и когда я попытался изменить настройки i2c-3, я увидел следующее:
3 ответа
sudo add-apt-repository ppa:apandada1/brightness-controller
sudo apt update
sudo apt install brightness-controller
Чтобы установить, то свои 2 переключателя, по одному на каждый экран при запуске программы. Должен появиться, если вы его ищете.
Я разработчик ddcutil
Встроенные дисплеи ноутбуков имеют элементарную реализацию I2C. Можно прочитать EDID по адресу подчиненного устройства x50, но протокол DDC/CI не реализован на адресе подчиненного устройства x37. Таким образом, ddcutil видит дисплеи (он может читать EDID), но связь DDC/CI не работает.
Обычно управление такими дисплеями осуществляется с помощью ACPI.
Проверьте это исправление для модуля ядра asus-wmi от Plippo (хорошо документировано, легко устанавливается). Это текущие инструкции, но, пожалуйста, проверьте, были ли они обновлены
Чтобы установить и использовать этот модуль с помощью dkms:
Убедитесь, что вы запускаете ядро, для которого хотите установить модуль. Поэтому, если вы обновляли ядро, сначала перезагрузитесь, чтобы при установке использовалась правильная версия ядра.
Установите DKMS методом вашего дистрибутива. Debian/Ubuntu/ и т. Д.:
sudo apt install dkmsВ дополнение к этому вам необходимо установить заголовки для ваших текущих ядер. Большинство дистрибутивов предоставляют для этого пакет. Например, Ubuntu:
sudo apt install linux-headers-$(uname -r)Создайте каталог для модуля и загрузите исходный код
sudo mkdir /usr/src/asus-wmi-1.0 cd /usr/src/asus-wmi-1.0 sudo wget 'https://github.com/Plippo/asus-wmi-screenpad/archive/master.zip' sudo unzip master.zip sudo mv asus-wmi-screenpad-master/* . sudo rmdir asus-wmi-screenpad-master sudo rm master.zipТеперь исходный код должен быть в
/usr/src/asus-wmi-1.0. Важно, чтобы папка называлась именно так, потому что DKMS этого ожидает. В качестве альтернативы вы, конечно, также можете клонировать этот репозиторий git в эту папку.Если не используется ядро 5.4: вызовите следующий сценарий, чтобы загрузить и исправить файлы, соответствующие вашей версии ядра.
sudo sh prepare-for-current-kernel.shЗарегистрируйте модуль в DKMS
sudo dkms add -m asus-wmi -v 1.0Соберите и установите модуль в текущее ядро
sudo dkms build -m asus-wmi -v 1.0 sudo dkms install -m asus-wmi -v 1.0С этого момента DKMS будет автоматически перестраивать модуль при каждом обновлении ядра.
После перезагрузки вы должны найти новое устройство в
/sys/class/leds/asus::screenpad. Чтобы установить яркость экрана, просто позвонитеecho XXX | sudo tee '/sys/class/leds/asus::screenpad/brightness'где
XXX- значение от 0 до 255 (0 полностью выключает экран, 255 устанавливает максимальную яркость). Чтобы позволить каждому пользователю устанавливать яркость без использованияsudo, вызовsudo chmod a+w '/sys/class/leds/asus::screenpad/brightness'Теперь вы можете установить яркость, просто выполнив
echo XXX > '/sys/class/leds/asus::screenpad/brightness'
chmodдолжен выполняться снова после каждой перезагрузки, поэтому рекомендуется добавить вызов в сценарий загрузки, например/etc/rc.local.Теперь вы также можете использовать функциональные возможности среды рабочего стола для сопоставления функциональных клавиш на клавиатуре с действиями по вашему выбору. Например, вы можете создать сценарий, который переключает состояние экранной панели и сопоставляет его с клавишей "Toggle ScreenPad".
Удаление или переустановка
Если вы хотите повторно загрузить и переустановить модуль ядра (возможно, из-за изменений в коде), вам необходимо сначала удалить старый, вызвав
sudo dkms remove -m asus-wmi -v 1.0 --all sudo rm -r /usr/src/asus-wmi-1.0Затем повторите шаги, указанные выше, начиная с шага 2.
В этом выпуске GitHub обсуждаются и другие обходные пути.