Вопросы, связанные с использованием различного оборудования

Какие видеокарты лучше всего работают на Linux?

Лучше всего «из коробки» работают драйверы интегрированных видеокарт Intel. На втором месте дискретные видеоадаптеры AMD актуальных поколений.

Как правильно установить драйверы для видеокарт NVIDIA?

Существует несколько вариантов проприетарных драйверов NVIDIA:

Как установить стандартный драйвер (десктопы) видеокарт NVIDIA?

Подключим репозитории RPM Fusion.

Загрузим все обновления системы:

sudo dnf upgrade --refresh

Установим стандартные драйверы:

sudo dnf install gcc kernel-headers kernel-devel akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-libs

Если используется 64-битная ОС, но требуется запускать ещё и Steam и 32-битные версии игр, установим также 32-битный драйвер:

sudo dnf install xorg-x11-drv-nvidia-libs.i686

Подождём 3-5 минут и убедимся, что модули были успешно собраны:

sudo akmods --force

Пересоберём образ initrd:

sudo dracut --force

Более подробная информация доступна здесь.

Как установить стандартный драйвер видеокарт NVIDIA для старых видеокарт?

Подключим репозитории RPM Fusion.

Загрузим все обновления системы:

sudo dnf upgrade --refresh

Установим стандартные драйверы из LTS ветки 390.xx для старых видеокарт:

sudo dnf install gcc kernel-headers kernel-devel akmod-nvidia-390xx xorg-x11-drv-nvidia-390xx xorg-x11-drv-nvidia-390xx-libs nvidia-settings-390xx

Если используется 64-битная ОС, но требуется запускать ещё и Steam и 32-битные версии игр, установим также 32-битный драйвер:

sudo dnf install xorg-x11-drv-nvidia-390xx-libs.i686

Подождём 3-5 минут и убедимся, что модули были успешно собраны:

sudo akmods --force

Пересоберём образ initrd:

sudo dracut --force

Более подробная информация доступна здесь.

Как установить стандартный драйвер видеокарт NVIDIA для устаревших видеокарт?

Подключим репозитории RPM Fusion.

Загрузим все обновления системы:

sudo dnf upgrade --refresh

Установим стандартные драйверы из LTS ветки 340.xx для устаревших видеокарт:

sudo dnf install gcc kernel-headers kernel-devel akmod-nvidia-340xx xorg-x11-drv-nvidia-340xx xorg-x11-drv-nvidia-340xx-libs

Если используется 64-битная ОС, но требуется запускать ещё и Steam и 32-битные версии игр, установим также 32-битный драйвер:

sudo dnf install xorg-x11-drv-nvidia-340xx-libs.i686

Подождём 3-5 минут и убедимся, что модули были успешно собраны:

sudo akmods --force

Пересоберём образ initrd:

sudo dracut --force

Более подробная информация доступна здесь.

Как установить драйвер видеокарт NVIDIA для ноутбуков?

Если в ноутбуке установлена видеокарта, отличная от NVIDIA GeForce GTX 1050, то процесс пройдёт в штатном режиме. Старые поколения (ниже серии 700 не поддерживаются).

Загрузим все обновления системы:

sudo dnf upgrade --refresh

Подключим репозиторий с Bumblebee:

sudo dnf --nogpgcheck install https://linux.itecs.ncsu.edu/redhat/public/bumblebee/fedora$(rpm -E %fedora)/noarch/bumblebee-release-1.3-1.noarch.rpm https://linux.itecs.ncsu.edu/redhat/public/bumblebee-nonfree/fedora$(rpm -E %fedora)/noarch/bumblebee-nonfree-release-1.3-1.noarch.rpm

Установим проприетарные драйверы с поддержкой NVIDIA Optimus:

sudo dnf install gcc kernel-headers kernel-devel bumblebee-nvidia bbswitch-dkms primus

Если используется 64-битная ОС, но требуется запускать ещё и Steam и 32-битные версии игр, установим также 32-битный драйвер:

sudo dnf install VirtualGL.i686 primus.i686

Более подробная информация доступна здесь.

После установки драйверов NVIDIA возникает чёрный экран. Что делать?

Если по окончании установки и перезагрузки вместо окна входа в систему появится чёрный экран, то в загрузчике добавим через пробел следующие параметры ядра:

rd.drivers.blacklist=nouveau nouveau.modeset=0

Также необходимо зайти в модуль настройки UEFI BIOS компьютера или ноутбука и отключить функцию UEFI Secure Boot, т.к. модули ядра проприетарного драйвера не имеют цифровой подписи, поэтому не могут быть загружены в данном режиме и, как следствие, возникнет чёрный экран, а также перевести его из режима Windows Only в Other OS.

Как удалить проприетарные драйверы NVIDIA?

Удалим стандартные драйверы всех типов:

sudo dnf remove \*nvidia\*

Удалим драйверы Optimus:

sudo dnf remove bumblebee\* bbswitch\* primus\* VirtualGL\*

Пересоберём образ initrd, а также конфиг Grub 2.

Как правильно установить драйверы для видеокарт AMD?

Установка драйверов для видеокарт AMD (ATI) не требуется, т.к. и amdgpu (современные видеокарты), и radeon (устаревшие модели) входят в состав ядра Linux.

Как заставить работать OpenCL на видеокартах AMD?

AMD предоставляет поддержку OpenCL на своих видеокартах исключительно на проприетарных драйверах AMDGPU-PRO, которые выпускаются только для Ubuntu LTS и на Fedora работать не будут.

Вместо OpenCL для кодирования и декодирования мультимедиа можно использовать VA-API, который работает «из коробки».

Как установить поддержку CUDA на видеокартах NVIDIA?

Поддержка CUDA доступна исключительно в проприетарных драйверах NVIDIA. Установим необходимые пакеты:

sudo dnf install xorg-x11-drv-nvidia-cuda xorg-x11-drv-nvidia-cuda-libs

На что в первую очередь следует обратить внимание при выборе ноутбука для Linux?

  1. Следует обратить внимание на производителя установленного Wi-Fi модуля.
  2. Не рекомендуется приобретать устройства с гибридной графикой ибо технология NVIDIA Optimus в настоящее время не поддерживается под GNU/Linux официально и работает исключительно посредством Bumblebee от сторонних разработчиков, который часто работает нестабильно.
  3. Ни при каком условии не приобретать ноутбук с видеокартой NVIDIA GeForce GTX 1050.
  4. Перед покупкой рекомендуется исследовать работу свежего Fedora Live USB непосредственно на данном устройстве, а также проверить вывод dmesg на наличие ошибок ACPI.

Как обновить прошивку UEFI BIOS и других устройств непосредственно из Fedora?

Для оперативного обновления микропрограмм (прошивок) существует утилита fwupd:

sudo dnf install fwupd

Внимание! Для работы fwupd система должна быть установлена строго в UEFI режиме.

Обновление базы данных программы:

fwupdmgr refresh

Вывод списка устройств, микропрограмма которых может быть обновлена:

fwupdmgr get-devices

Проверка наличия обновлений с выводом подробной информации о каждом из них:

fwupdmgr get-updates

Установка обнаруженных обновлений микропрограмм:

fwupdmgr update

Некоторые устройства могут быть обновлены лишь при следующей загрузке системы, поэтому выполним перезагрузку:

sudo systemctl reboot

Какие модули Wi-Fi корректно работают в Linux?

Без проблем работают Wi-Fi модули следующих производителей:

  • Qualcomm Atheros (однако ath10k требуют загрузки прошивок из комплекта поставки ядра);
  • Intel Wireless (требуют загрузки индивидуальных прошивок iwl из поставки ядра).

Работают 50/50:

  • Realtek (широко известны проблемы с чипами серий rtl8192cu и rtl8812au);
  • MediaTek (ранее назывался Ralink).

Не работают:

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

В моём ноутбуке установлена видеокарта NVIDIA GeForce GTX 1050 и после запуска система зависает. Что делать?

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

В качестве решения необходимо установить проприетарные драйверы по такому алгоритму:

  1. произвести чистую установку систему со свежего Fedora Live USB (respin);
  2. войти в систему, установить все обновления и, не перезагружаясь, выполнить установку проприетарных драйверов Optimus;
  3. выполнить перезагрузку системы.

Если всё сделано верно, то система начнёт функционировать в штатном режиме. В противном случае следует повторить с самого начала.

Как можно навсегда отключить определённый драйвер устройства?

Чтобы навсегда отключить какой-то драйвер в Linux, необходимо создать файл в каталоге /etc/modprobe.d с любым именем, например disable-nv.conf, и примерно таким содержанием:

install nouveau /bin/false

Здесь вместо nouveau нужно указать реально используемые устройством драйверы.

Полный список загруженных драйверов можно получить так:

lspci -nnk

Теперь необходимо пересобрать inird образ:

sudo dracut --force

Чтобы отменить действие, достаточно удалить созданный файл и снова пересобрать initrd.

Модуль настройки сети не отображает беспроводных устройств. Что делать?

Для начала воспользуемся утилитой rfkill для того, чтобы определить состояние беспроводных модулей:

rfkill

Статус hard blocked означает, что устройство отключено аппаратно и требуется включить его определённой последовательностью Fn + Fx (см. руководство ноутбука).

Статус soft blocked означает, что устройство отключено программно, например режимом В самолёте.

Как программно включить или отключить беспроводной модуль Wi-Fi?

Снимем программную блокировку Wi-Fi и активируем модуль:

rfkill unblock wlan

Установим программную блокировку Wi-Fi и отключим модуль:

rfkill block wlan

Как программно включить или отключить беспроводной модуль Bluetooth?

Снимем программную блокировку Bluetooth и активируем модуль:

rfkill unblock bluetooth

Установим программную блокировку Bluetooth и отключим модуль:

rfkill block bluetooth

Как программно включить или отключить беспроводной модуль LTE (4G)?

Снимем программную блокировку LTE (4G) и активируем модуль:

rfkill unblock wwan

Установим программную блокировку LTE (4G) и отключим модуль:

rfkill block wwan

Как правильно работать с COM портами (RS-232)?

Для работы с COM портами (RS-232) можно применять следующие утилиты:

  • screen;
  • putty;
  • picocom;
  • minicom.

Воспользуемся утилитой screen для подключения к последовательному порту:

screen /dev/ttyS0 115200

Здесь /dev/ttyS0 - путь к первому COM порту в системе, а 115200 - скорость работы в бодах.

Если при подключении вместо текста отображается различный мусор, значит скорость указана не правильно и её следует либо подбирать экспериментально, либо получить из руководства.

Для завершения сессии следует нажать Ctrl + A и k.

Если при попытке подключения появляется сообщение об ошибке access denied, необходимо добавить аккаунт в группу dialout.

При подключении монитора через переходник отображается неправильное разрешение. Как исправить?

Большинство «переходников» из цифры в аналог (DVI-D -> D-SUB, HDMI -> D-SUB и т.д.) не передают данные с монитора о поддерживаемых им разрешениях экрана системе посредством протокола Display Data Channel (DDC), поэтому существует два решения:

Как прописать список поддерживаемых монитором разрешений?

Создадим отдельный файл конфигурации для монитора 10-monitor.conf в каталоге /etc/X11/xorg.conf.d и пропишем доступные разрешения и используемый драйвер.

Сначала посредством запуска утилиты cvt вычислим значение строки Modeline для требуемого разрешения:

cvt 1920 1080 60

Здесь 1920 - разрешение по горизонтали, 1080 - по вертикали, а 60 - частота регенерации.

Теперь создадим конфиг следующего содержания:

Section "Monitor"
    Identifier "VGA1"
    Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
    Option "PreferredMode" "1920x1080_60.00"
EndSection

Section "Screen"
    Identifier "Screen0"
    Monitor "VGA1"
    DefaultDepth 24
    SubSection "Display"
        Modes "1920x1080_60.00"
    EndSubSection
EndSection

Section "Device"
    Identifier "Device0"
    Driver "intel"
EndSection

Вместо intel укажем реально используемый драйвер видеокарты. Изменения вступят в силу при следующей загрузке системы.

Какой бенчмарк можно использовать для оценки производительности системы?

В качестве CPU бенчмарка рекомендуется использовать sysbench, либо stress-ng:

Установим sysbench:

sudo dnf install sysbench

Установим stress-ng:

sudo dnf install stress-ng

Какой бенчмарк можно использовать для оценки производительности видеокарты?

В настоящее время существует несколько бенчмарков:

Glxgears

Установка:

sudo dnf install glx-utils

Запуск:

glxgears

Выводит информацию о кадровой частоте в терминал каждые 5 секунд.

GL Mark 2

Установка:

sudo dnf install glmark2

Запуск:

glmark2

Выводит информацию о кадровой частоте и финальный результат в терминал.

Unigine Benchmark

Установка:

wget https://assets.unigine.com/d/Unigine_Superposition-1.1.run
chmod +x Unigine_Superposition-1.1.run
./Unigine_Superposition-1.1.run

Запускать бенчмарк следует при помощи созданного ярлыка в меню приложений.

Что такое firmware и для чего она необходима?

Firmware - это бинарный проприетарный блоб, содержащий образ прошивки, который загружается и используется определённым устройством.

В большинстве случаев, соответствующее устройство не будет функционировать без наличия данной прошивки в каталоге прошивок ядра Linux.

Где взять бинарные прошивки для устройств и как их установить?

Бинарные прошивки для большей части устройств уже находятся в пакете linux-firmware, но некоторые (например часть принтеров HP), загружают их самостоятельно, либо поставляют внутри отдельных firmware-пакетов.

Как проверить используются ли в моём устройстве бинарные прошивки?

При загрузке бинарных прошивок ядро обязательно сохраняет информацию об этом в системный журнал, поэтому достаточно лишь отфильтровать его по ключевому слову firmware:

journalctl -b | grep firmware

Можно ли использовать несколько дисплеев с разным разрешением?

Да. Дисплеи с разным разрешением поддерживаются как X11, так и Wayland в полной мере и настраиваются либо в графическом режиме средствами установленной графической среды, либо через xrandr.

Можно ли использовать несколько дисплеев с разным значением DPI?

Дисплеи с разным значением DPI (PPI) не поддерживаются в X11 (но будут в будущем полноценно поддерживаться в Wayland), поэтому для вывода изображения на таких конфигурациях применяется одна из двух конфигураций:

  • upscale (базовым выставляется наиболее низкое значение DPI);
  • downscale (базовым выставляется наиболее высокое значение DPI).

Оба этих метода далеки от совершенства, что сильно портит качество изображения. Таким образом, при выборе нескольких мониторов следует убедиться в том, чтобы их DPI были одинаковыми.

Как настроить сканер?

Установим пакет sane-backends, содержащий драйверы поддерживаемых сканеров:

sudo dnf install sane-backends sane-backends-drivers-scanners

Перезапустим приложения, поддерживающие работу со сканерами, для вступления изменений в силу.

При помощи какого приложения можно осуществлять сканирование документов?

Для работы со сканерами существует приложение XSane. Установим его:

sudo dnf install xsane

Если в нём не отображаются устройства сканирования, необходимо установить драйверы.

Как получить информацию о состоянии HDD или SSD накопителя?

Подробную информацию о состоянии накопителя можно получить из вывода системы самодиагностики S.M.A.R.T. при помощи утилиты smartctl.

Установим её:

sudo dnf install smartmontools

Запустим утилиту:

sudo smartctl -a /dev/sda

Здесь вместо /dev/sda следует указать устройство, информацию по состоянию которого требуется вывести.

Как улучшить цветопередачу монитора, либо дисплея ноутбука?

Для улучшения цветопередачи рекомендуется загрузить и установить соответствующий данной ЖК матрице цветовой профиль (ICC profile).

Где найти ICC профиль для установленного в моём мониторе или ноутбуке дисплея?

ICC профиль можно получить либо на сайте производителя устройства, либо извлечь из набора драйверов дисплея для Windows, либо найти готовый, созданный на специальном оборудовании.

Большое количество готовых цветовых профилей для ноутбуков, созданных на специальном калибровочном оборудовании, можно найти на сайте Notebook Check.

Я нашёл цветовой профиль для дисплея. Как мне его установить в систему?

Пользователям KDE необходимо открыть Параметры системы - Оборудование - Цветовая коррекция, перейти на вкладку Профили, нажать кнопку Добавить профиль, указать ICC-файл на диске, после чего подвердить установку. Теперь на вкладке Устройства можно заменить стандартный цветовой профиль на только что установленный. Также его можно назначить по умолчанию для всех пользователей системы (потребуется доступ к sudo).

Пользователи Gnome должны установить утилиту Gnome Color Manager, после чего импортировать и применить загруженный ICC-файл.

Изменения вступают в силу немедленно.

Нужно ли использовать TLP для оптимизации работы батареи?

На современных поколениях ноутбуков использовать TLP не следует, т.к. контроллеры аккумуляторных батарей способны самостоятельно контролировать уровень заряда и балансировать износ ячеек.

Если всё же требуется установить предел заряда например от 70% до 90%, вместо TLP лучше один раз воспользоваться фирменной утилитой производителя устройства, задать необходимые настройки и сохранить изменения в NVRAM материнской платы. В таком случае они будут работать в любой ОС.

Как определить какой движок используется для вывода трёхмерной графики?

Воспользуемся утилитой glxinfo для вывода информации об используемом OpenGL движке:

glxinfo | grep -E 'OpenGL version|OpenGL renderer'

Как определить версию установленного микрокода процессора?

Получим версию микрокода из вывода /proc/cpuinfo:

cat /proc/cpuinfo | grep microcode | uniq

Как отключить вертикальную синхронизацию для одного приложения?

На видеокартах NVIDIA с установленным проприетарным драйвером отключить вертикальную синхронизацию для одного приложения можно посредством установки переменной окружения __GL_SYNC_TO_VBLANK значения 0:

__GL_SYNC_TO_VBLANK=0 /usr/bin/foo-bar

Как сбросить настройки экрана в KDE?

Настройки экрана хранятся внутри JSON файлов в каталоге ~/.local/share/kscreen, поэтому для того, чтобы их сбросить, достаточно очистить его:

rm -f ~/.local/share/kscreen/*

Изменения вступят в силу при следующем входе в систему.

Как сбросить настройки звука?

В Fedora настройками звука управляет PulseAudio, поэтому для того, чтобы сбросить его настройки, удалим всё содержимое каталога ~/.config/pulse:

rm -f ~/.config/pulse/*

Для вступления изменений в силу перезапустим PulseAudio:

pulseaudio -k
pulseaudio -D

Сразу после этого все настройки звука будут сброшены на установленные по умолчанию.

Как ускорить кодирование видео с использованием видеокарт NVIDIA?

Для этого нужно установить ffmpeg, а также проприетарные драйверы NVIDIA из репозиториев RPM Fusion.

Использование NVENC:

ffmpeg -i input.mp4 -acodec aac -ac 2 -ab 128k -vcodec h264_nvenc -profile high444p -pixel_format yuv444p -preset default output.mp4

Использование CUDA/CUVID:

ffmpeg -c:v h264_cuvid -i input.mp4 -c:v h264_nvenc -preset slow output.mkv

Здесь input.mp4 — имя оригинального файла, который требуется перекодировать, а в output.mp4 будет сохранён результат.

Больше информации можно найти здесь.

Как запустить игру из Steam на дискретной видеокарте с поддержкой Optimus?

Актуальные версии клиента Steam поддерживают технологию NVIDIA Optimus «из коробки» если установлен проприетарный драйвер Bumblebee.

Чтобы запустить игру на дискретной видеокарте, нажмём правой кнопкой мыши по нужной игре в Библиотеке, выберем пункт контекстного меню Свойства, нажмём кнопку Установить параметры запуска и в открывшемся окне введём следующее:

primusrun %command%

Сохраним изменения, нажав OK и Закрыть.

Теперь данная игра будет всегда запускаться на дискретном видеоадаптере ноутбука.

Корректно ли работает Wayland на видеокартах NVIDIA?

Из-за того, что NVIDIA отказывается поддержать существующие технологии вывода в Wayland, на видеокартах этого производителя он не поддерживается в настоящее время.

Таким образом, пользователям Fedora с проприетарными драйверами NVIDIA следует убедиться, что в файле /etc/gdm/custom.conf убран символ комментария (#) около строки WaylandEnable=false.

Как правильно установить драйверы Wi-Fi модулей Broadcom?

Сначала нужно подключить RPM Fusion, затем выполнить:

sudo dnf upgrade --refresh
sudo dnf install gcc kernel-devel kernel-headers akmod-wl

Как включить автоматическое подключение Bluetooth устройств при загрузке?

Включим автоматический запуск systemd-юнита:

sudo systemctl enable --now bluetooth.service

Отредактируем файл конфигурации /etc/bluetooth/main.conf:

sudoedit /etc/bluetooth/main.conf

Активируем автоматическое подключение доверенных устройств при запуске:

[Policy]
AutoEnable=true

Любым способом определим HW-адрес устройства (отображается как при поиске, так и в списке подключённых), затем войдём в консоль настройки Blueooth сервера:

bluetoothctl

Получим список сопряжённых устройств:

paired-devices

Если нужное нам оборудование c HW AA:BB:CC:DD:EE:FF уже числится в списке, удалим его:

remove AA:BB:CC:DD:EE:FF

Запустим процесс поиска новых устройств, убедимся, что девайс обнаруживается, затем отключим его:

scan on
scan off

Назначим доверенным:

trust AA:BB:CC:DD:EE:FF

Произведём сопряжение и осуществим подключение:

pair AA:BB:CC:DD:EE:FF
connect AA:BB:CC:DD:EE:FF

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

Как принудительно остановить жёсткий диск?

Для принудительной остановки накопителя на жёстких магнитных дисках воспользуемся утилитой hdparam:

sudo hdparam -y /dev/sda

Здесь /dev/sda - устройство диска, который требуется остановить. Перед выполнением команды необходимо размонтировать все разделы, расположенные на нём.

Внимание! Внезапная остановка HDD может привести к выходу его из строя. Следует использовать её на свой страх и риск.

Как установить таймаут остановки жёсткого диска?

Воспользуемся утилитой hdparam для установки таймаута бездействия, по истечении которого накопитель будет автоматически остановлен:

sudo hdparam -S 300 /dev/sda

Здесь 300 - интервал неактивности в секундах, а /dev/sda - устройство диска, который будет остановлен.

На мониторе отображаются артефакты уже закрытых окон. Как исправить?

Остаточное отображение элементов уже закрытых окон является вполне нормальным явлением для большинства IPS матриц. Этот эффект называется «послесвечением» или «ghosting».

Некоторые матрицы могут программно подавлять его за счёт постоянной внутренней перерисовки, но большинство не предпринимают ничего.

Послесвечение не является гарантийным случаем, поэтому перед покупкой рекомендуется проверять матрицу монитора на наличие этого эффекта.