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

Материал из The Magic of Number 8 Wiki

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

При замене системных пакетов на пользовательские варианты из репозитория 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

Google Chrome игнорирует выбор файлового менеджера по умолчанию

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

mkdir -p .local/share/dbus-1/services
cp /usr/share/dbus-1/services/org.freedesktop.FileManager1.service ~/.local/share/dbus-1/services/

Теперь откройте скопированный файл и заменить команду запуска nautilus на желаемый файловый менеджер, к примеру на pcmanfm-qt:

[D-BUS Service]
Name=org.freedesktop.FileManager1
Exec=/usr/bin/pcmanfm-qt -d