Общие рекомендации по использованию дистрибутива Arch Linux

Отсутствие разделяемых библиотек

При замене системных пакетов на пользовательские варианты из репозитория AUR может произойти проблема загрузки разделяемых библиотек другими приложениями.

Один из примеров:

/usr/lib/chromium/chromium: error while loading shared libraries: libSvtAv1Enc.so.0: cannot open shared object file: No such file or directory

В данном примере потребовалось обновление стороннего пакета ffmpeg-obs для восстановления работы браузера. Чтобы узнать какой из пакетов требует обновления следует проверить дерево зависимостей. Для начала выясним к какому пакету относится данная библиотека:

[rea@sanka ~]$ pacman -Qo /usr/lib/libSvtAv1Enc.so
/usr/lib/libSvtAv1Enc.so принадлежит svt-av1 1.1.0-1

И запросим информацию о самом пакете:

[rea@sanka ~]$ pacman -Qi svt-av1
Название             : svt-av1
Версия               : 1.1.0-1
Описание             : Scalable Video Technology AV1 encoder and decoder
Архитектура          : x86_64
URL                  : https://gitlab.com/AOMediaCodec/SVT-AV1
Лицензии             : BSD  custom: Alliance for Open Media Patent License 1.0
Группы               : Нет
Предоставляет        : Нет
Зависит от           : glibc
Доп. зависимости     : Нет
Требуется            : ffmpeg-obs  ffmpeg4.4  libavif
Опционально для      : Нет
Конфликтует с        : Нет
Заменяет             : Нет
Установленный размер : 7,10 MiB
Сборщик              : Antonio Rojas <arojas@archlinux.org>
Дата сборки          : Вс 12 июн 2022 11:42:56
Дата установки       : Вт 14 июн 2022 21:51:49
Причина установки    : Установлен как зависимость другого пакета
Установочный скрипт  : No
Проверен             : Подпись

В данном случае пакет svt-av1 является зависимостью для ffmpeg-obs.

Звуковая подсистема

Отсутствие источников ввода и вывода звука на системе с процессором Intel 11-го поколения (Tiger Lake) или новее

Если в приложении pavucontrol или в других мультимедийных утилитах отображается единственное звуковое устройство под названием Dummy Output, то требуется установить пакет с прошивками sof-firmware.

После перезагрузки системы появятся новые источники ввода и вывода. К примеру, это будет Tiger Lake-LP Smart Sound Technology Audio Controller Speaker + Headphones.

Установка стека AMD ROCm™

git clone https://github.com/rocm-arch/rocm-arch.git

По некоторым причинам для сборки стека требуется настройка выделенного chroot окружения.

mkdir -p ~/Work/Builds/chroot

CHROOT=$HOME/Work/Builds/chroot

Устанавливаем группу пакетов base-devel в chroot окружение.

mkarchroot $CHROOT/root base-devel

Для обновления окружения можно воспользоваться следующей командой:

arch-nspawn $CHROOT/root pacman -Syu

После этого можно производить сборку пакетов стека. Для этого нужно зайти в каждую директорию стека, где присутствует скрипт сборки в формате PKGBUILD и запустить команду:

makechrootpkg -c -r $CHROOT

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

makechrootpkg -c -r $CHROOT -I ../rocm-llvm/rocm-llvm-5.3.2-2-x86_64.pkg.tar.zst -I ../rocm-cmake/rocm-cmake-5.3.2-1-x86_64.pkg.tar.zst -I ../rocm-device-libs/rocm-device-libs-5.3.2-1-x86_64.pkg.tar.zst -I ../comgr/comgr-5.3.0-2-x86_64.pkg.tar.zst -I ../hsakmt-roct/hsakmt-roct-5.3.0-1-x86_64.pkg.tar.zst -I ../hsa-rocr/hsa-rocr-5.3.0-2-x86_64.pkg.tar.zst -I ../rocminfo/rocminfo-5.3.0-1-x86_64.pkg.tar.zst

Порядок сборки минимального стека AMD ROCm™ для работы с бэкендом HIP рендер движка Cycles X в Blender:

rocm-llvm
rocm-cmake
rocm-device-libs
comgr
hsakmt-roct
hsa-rocr
rocminfo
hip-runtime-amd