Настроить гибридную графику и снизить температуру в Arch Linux
Этот пост содержит инструкции по правильной настройке гибридной графики Intel / ATI или INTEL / Nvidia, а также по снижению температуры компьютеров с процессором Core iX в Arch Linux.
Инструкции
Поддерживаемые драйверы:
xf86-video-nouveau
xf86-video-ati
xf86-video-intel
Получите список поставщиков графики:
$ xrandr —listproviders
Если вывод похож на следующий, мы выполняем шаг 2:
Providers: number : 2
Provider 0: id: 0x7d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 1 name:Intel
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 1 associated providers: 1 name:radeon
Скачиваем скрипт для включения дискретной видеокарты:
$ wget https://www.dropbox.com/s/p2kbq7mrg30cimy/ATI_Enable.sh
Редактируем Скрипт:
$ nano ATI_Enable.sh
Оригинал:
#!/bin/bash
xrandr —setprovideroffloadsink ID_ATI ID_INTEL
sleep 1
echo «Habilitando. »
glxinfo | grep «OpenGL renderer»
DRI_PRIME=1 glxinfo | grep «OpenGL renderer»
Отредактировано:
#!/bin/bash
xrandr —setprovideroffloadsink 0x55 0x7c
echo «Habilitando. »
sleep 1
echo «Proveedor Grafico: »
glxinfo | grep «OpenGL renderer»
echo «Proveedor Grafico Discreto: »
DRI_PRIME=1 glxinfo | grep «OpenGL renderer»
Даем разрешения на исполнение и выполняем:
$ sudo chmod +x ATI_Enable.sh && ./ATI_Enable
** ВАЖНО: добавить скрипт в информацию о запуске системы: Узнай, как это сделать
Скачать скрипты для включения и выключения дискретной карты:
$ sudo su
# cd /usr/bin
# wget https://www.dropbox.com/s/rcvbvl081gt059x/ATI_Off
# wget https://www.dropbox.com/s/9l44p2l75nertr9/ATI_On
# chmod +x ATI_Off
# chmod +x ATI_On
По умолчанию обе карты включаются при загрузке ядра, и с этого момента, чтобы выключить дискретную карту, достаточно открыть терминал и ввести $ sudo ATI_Off при необходимости мы можем включить его с помощью $ sudo ATI_On
** Я рекомендую отключать дискретную карту, если она не будет использоваться для улучшения рабочих температур в оборудовании (уменьшите примерно на 10 ~ 20 ºC).
Температуру можно проверить Установленным пакетом lm_sensors (ДА на все, что спрашивает)
$ sudo pacman -S lm_sensors && sudo sensors-detect
Теперь осталось только выполнить «датчики» для получения информации о температуре:
$ sensors
Дополнительный шаг
Запускаем частотный монитор (останавливаем Ctrl + C):
$ watch grep «cpu MHz» /proc/cpuinfo
Информация о процессоре и масштабирование частоты:
$ cpupower frequency-info
Если у вас проблема с контроллером intel_pstate или вы замечаете, что частота вашего процессора высока, несмотря на то, что не выполняет задачи, требующие этого:
Мы собираемся отключить Intel_pstate ядра и загрузить acpi-cpufreq который используется в ядрах до 3.9.
Ищем строку похожую на:
GRUB_CMDLINE_LINUX_DEFAULT=»quiet «
И мы добавляем intel_pstate=disable
GRUB_CMDLINE_LINUX_DEFAULT=»quiet intel_pstate=disable»
Сохраняем (Ctrl + O)
Перенастраиваем Grub:
grub-mkconfig -o /boot/grub/grub.cfg
** Это будет действовать до следующей перезагрузки, помните, что дискретная карта включается автоматически.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Из Linux » Учебники / Руководства / Советы » Настроить гибридную графику и снизить температуру в Arch Linux
Hybrid graphics (Русский)
Состояние перевода: На этой странице представлен перевод статьи Hybrid graphics. Дата последней синхронизации: 6 июля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Гибридная графика — это концепция, предполагающая использование двух графических карт на одном компьютере. Производители ноутбуков разработали технологии, предусматривающие использование двух графических карт с разными возможностями и энергопотреблением на одном компьютере. Гибридная графика была разработана для поддержки как высокой производительности, так и энергосбережения за счет неактивности выделенного/дискретного графического процессора, если не требуется производительность 3D-рендеринга по сравнению с интегрированным графическим процессором.
Существует множество технологий, и каждый производитель разработал свое собственное решение этой проблемы. Эта технология хорошо поддерживается в Windows, но в дистрибутивах Linux она еще не получила должной поддержки. В этой статье мы попытаемся немного рассказать о каждом подходе и описать некоторые решения сообщества, связанные с отсутствием поддержки GNU/Linux систем производителями.
Примечание: Если ваша установка не относится к периоду до 2010 года, она, скорее всего, использует модель динамического переключения. Предыдущие гибридные графические решения включали либо перезагрузку для самых грубых, либо полный перезапуск графического стека, который требовал повторного входа в систему для вступления в силу.
Динамическое переключение
Большинство новых технологий гибридной графики предполагают использование двух графических карт: выделенная и интегрированная карты подключаются к фреймбуферу, при этом аппаратный мультиплексор отсутствует. Интегрированная карта всегда включена, а выделенная карта включается/выключается, когда есть необходимость в энергосбережении или рендеринге производительности. В большинстве случаев нет возможности использовать только выделенную карту, и все переключения и рендеринг контролируются программно. При запуске ядро Linux начинает использовать видеорежим и устанавливать низкоуровневые графические драйверы, которые будут использоваться приложениями. Большинство дистрибутивов Linux затем используют X.org для создания графической среды. Наконец, запускается несколько других программ, сначала менеджер входа в систему, затем оконный менеджер и так далее. Эта иерархическая система была разработана для использования в большинстве случаев на одной графической карте.
Примечание: Прочитайте статьи NVIDIA Optimus (Русский) и Bumblebee (Русский) для подробностей об использовании NVidia гибридной графики с проприетарным драйвером NVidia. Читайте PRIME, чтобы узнать обо всем остальном (например, о графических процессорах AMD Radeon и NVidia с драйвером Nouveau).
Полное отключение питания дискретного GPU
Вы можете отключить высокопроизводительный графический процессор для экономии заряда батареи.
Использование BIOS/UEFI
Некоторые производители ноутбуков предоставляют переключатель в BIOS или UEFI для полной деактивации выделенной карты.
Использование правил udev
Убедитесь, что все настройки экранного менеджера, связанные с NVIDIA, удалены.
Внесите драйверы nouveau в черный список, создав
/etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau options nouveau modeset=0
/etc/udev/rules.d/00-remove-nvidia.rules
# Remove NVIDIA USB xHCI Host Controller devices, if present ACTION=="add", SUBSYSTEM=="pci", ATTR=="0x10de", ATTR=="0x0c0330", ATTR="auto", ATTR="1" # Remove NVIDIA USB Type-C UCSI devices, if present ACTION=="add", SUBSYSTEM=="pci", ATTR=="0x10de", ATTR=="0x0c8000", ATTR="auto", ATTR="1" # Remove NVIDIA Audio devices, if present ACTION=="add", SUBSYSTEM=="pci", ATTR=="0x10de", ATTR=="0x040300", ATTR="auto", ATTR="1" # Remove NVIDIA VGA/3D controller devices ACTION=="add", SUBSYSTEM=="pci", ATTR=="0x10de", ATTR=="0x039*", ATTR="auto", ATTR="1"
Перезагрузитесь и запустите lspci , чтобы проверить, есть ли ваш графический процессор NVIDIA в списке.
Использование bbswitch
С графическим процессором NVidia это можно сделать более безопасно, используя bbswitch, который состоит из пакета ядра, автоматически выдающего правильные вызовы ACPI для отключения дискретного GPU, когда он не нужен, или автоматически при загрузке.
Примечание: bbswitch не работает с методом управления питанием портов PCI-E, начиная с версии ядра 4.8. Подробности смотрите в Bumblebee#Broken power management with kernel 4.8.
Использование acpi_call
В противном случае, а также для GPU, не поддерживаемых bbswitch, это можно сделать вручную, установив пакет acpi_call .
Tip: Для ядер, отсутствующих в официальных репозиториях, альтернативой является acpi_call-dkms . Смотрите также DKMS.
После установки загрузите модуль ядра:
Загрузив модуль ядра, выполните скрипт по адресу /usr/share/acpi_call/examples/turn_off_gpu.sh .
Скрипт пройдет по всем известным шинам данных и попытается их отключить. Вы получите результат, подобный следующему:
# /usr/share/acpi_call/examples/turn_off_gpu.sh
Trying \_SB.PCI0.P0P1.VGA._OFF: failed Trying \_SB.PCI0.P0P2.VGA._OFF: failed Trying \_SB_.PCI0.OVGA.ATPX: failed Trying \_SB_.PCI0.OVGA.XTPX: failed Trying \_SB.PCI0.P0P3.PEGP._OFF: failed Trying \_SB.PCI0.P0P2.PEGP._OFF: failed Trying \_SB.PCI0.P0P1.PEGP._OFF: failed Trying \_SB.PCI0.MXR0.MXM0._OFF: failed Trying \_SB.PCI0.PEG1.GFX0._OFF: failed Trying \_SB.PCI0.PEG0.GFX0.DOFF: failed Trying \_SB.PCI0.PEG1.GFX0.DOFF: failed Trying \_SB.PCI0.PEG0.PEGP._OFF: works! Trying \_SB.PCI0.XVR0.Z01I.DGOF: failed Trying \_SB.PCI0.PEGR.GFX0._OFF: failed Trying \_SB.PCI0.PEG.VID._OFF: failed Trying \_SB.PCI0.PEG0.VID._OFF: failed Trying \_SB.PCI0.P0P2.DGPU._OFF: failed Trying \_SB.PCI0.P0P4.DGPU.DOFF: failed Trying \_SB.PCI0.IXVE.IGPU.DGOF: failed Trying \_SB.PCI0.RP00.VGA._PS3: failed Trying \_SB.PCI0.RP00.VGA.P3MO: failed Trying \_SB.PCI0.GFX0.DSM._T_0: failed Trying \_SB.PCI0.LPC.EC.PUBS._OFF: failed Trying \_SB.PCI0.P0P2.NVID._OFF: failed Trying \_SB.PCI0.P0P2.VGA.PX02: failed Trying \_SB_.PCI0.PEGP.DGFX._OFF: failed Trying \_SB_.PCI0.VGA.PX02: failed
Видите «works»? Это означает, что скрипт нашел шину, на которой находится ваш GPU, и теперь отключил чип. Чтобы подтвердить это, оставшееся время работы батареи должно увеличиться.
Совет: Если у вас возникли проблемы с переходом в спящий режим или приостановкой системы после отключения GPU, попробуйте включить его снова, отправив соответствующий вызов acpi_call. Смотрите также Приостановка/возобновление файлов service.
Автоматическое выключение графического процессора
В настоящее время чип включается при следующей перезагрузке. Чтобы обойти это, добавьте модуль ядра в массив модулей, загружаемых при загрузке:
/etc/modules-load.d/acpi_call.conf
#Load 'acpi_call.ko' at boot. acpi_call
При загрузке
Для отключения GPU при загрузке можно использовать systemd-tmpfiles.
/etc/tmpfiles.d/acpi_call.conf
w /proc/acpi/call - - - - \\_SB.PCI0.PEG0.PEGP._OFF
Приведенная выше конфигурация будет загружена при загрузке systemd. Что она делает, так это записывает определенный сигнал OFF в файл /proc/acpi/call . Очевидно, замените \_SB.PCI0.PEG0.PEGP._OFF на тот, который работает в вашей системе (обратите внимание, что нужно экранировать обратную косую черту).
После инициализации X-сервера
В некоторых системах отключение дискретного GPU до инициализации X-сервера может привести к зависанию системы. В таких случаях лучше отключить GPU после инициализации X-сервера, что возможно с некоторыми экранными менеджерами. В LightDM, например, параметр конфигурации места display-setup-script можно использовать для выполнения скрипта от имени root, который отключает GPU.
System76
Некоторые ноутбуки System76 (например, Oryx Pro) имеют собственную уникальную опцию гибридной графики. Чтобы воспользоваться ею, установите system76-power AUR , включите system76-power.service и запустите system76-power graphics hybrid .