Привет, это снова Егор Гаврилов. И сегодня я расскажу историю про то, как мне пришлось повозиться со своим Gigabyte Gaming A16 3VH, чтобы управлять ноутбуком без виндового GiMATE, под своим Arch Linux'ом.

Часть первая - NVIDIA и supergfxctl

Это самая лайтовая часть - однако я впервые юзаю ноутбуки с гибридной графикой, да ещё и с MUX Switch, поэтому пришлось изучать много чего. В частности, настроил PRIME (через switcheroo), а также supergfxctl для отключения/включении дискретки.

Вот что я сделал для настройки всего этого:

yay -S nvidia-open-dkms linux-headers # Использую DKMS-версию драйвера для совместимости с ALHP
yay -S nvidia-prime-rtd3pm # Энергосбережение в режиме "iGPU + dGPU"
yay -S switcheroo-control # Для интеграции PRIME с GNOME
yay -S nvidia-prime # Скрипт для ручного запуска программы в режиме PRIME в CLI
yay -S supergfxctl # Поддержка управления гибридной графикой
# Дальше ребутимся
sudo systemctl enable --now switcheroo-control # Включаем switcheroo
sudo systemctl enable --now supergfxd # Включаем supergfxctl

Пример использования:

# Запускаем Google Chrome в режиме PRIME
prime-run chrome

# Переключаем в режим "only iGPU"
supergfxctl -m "Integrated"

# Переключаем обратно в гибридный режим
supergfxctl -m "Hybrid"

# Проверяем текущий режим
supergfxctl -g

# Проверяем показатели температуры и нагрузки на dGPU
nvidia-smi

Часть вторая - управление EC-контроллером

Вот тут я изрядно помучался - думал, что надо использовать драйвера от Tuxedo, однако, как оказалось, именно эта модель оказалось не Clevo'вской, а исконно гигабайтовской, и поэтому пришлось юзать этот драйвер. Однако в нём есть ограничения по моделям, поэтому пришлось пилить свой форк этого самого драйвера.

А без этого драйвера (а если точнее - модуля ядра) нельзя было управлять системой охлаждения, и ставить ограничения на зарядку ноута.

Настройка выглядит так:

git clone --depth=1 https://github.com/oldzoomer-ru/gigabyte-laptop-wmi-without-locks.git
git apply gimate-fan-fix.patch # фиксим отображение оборотов наших кулеров
tar -czf driver.tar.gz Makefile aorus-laptop.c dkms.conf # упаковываем исходники в тарболл для dkms
sudo dkms ldtarball driver.tar.gz # добавляем исходники в dkms
sudo dkms autoinstall # собираем и устанавливаем
sudo sh -c 'echo "aorus-laptop" > /etc/modules-load.d/aorus-laptop.conf' # загрузка модуля автоматически

Пример использования:

# Ставим лимит зарядки на 80%
echo '1' | sudo tee /sys/devices/platform/aorus_laptop/charge_mode
echo '80' | sudo tee /sys/devices/platform/aorus_laptop/charge_limit

# Отключаем лимит зарядки
echo '0' | sudo tee /sys/devices/platform/aorus_laptop/charge_mode

# Включаем тихий режим кулера
echo '1' | sudo tee /sys/devices/platform/aorus_laptop/fan_mode

# Включаем "игровой" режим кулера
echo '2' | sudo tee /sys/devices/platform/aorus_laptop/fan_mode

# Включаем автоматический режим кулера
echo '4' | sudo tee /sys/devices/platform/aorus_laptop/fan_mode

Часть третья - подсветка клавиатуры

Вот тут надо бы использовать модуль/драйвер OpenGigabyte, но моя клавиатура не поддерживается, к сожалению. Такседовский модуль, разумеется, не работает с моей клавой.

Бонусная часть - клавиша Fn

Чтобы эта клавиша работала с моим ноутом именно как Fn, а не как MicMute, пришлось прописать эти правила в hwdb:

# Some Gigabyte laptops
evdev:input:b0003v0414p8104e0111*
 KEYBOARD_KEY_7006f=fn

Итоги

С этим ноутом реально пришлось помучится. Зато я сейчас (почти) избавил его от зависимости к тяжеловесу под названием GiMATE, которая весит аж 6 гигабайт из за встроенного LLM Llama 3.2, которая типа должна как-то сама оптимизировать работу ноутбука автоматически.

Комментарии (2)