Linux Mint 22 - KiCad-5 с GUI и графическим ускорением на карте AMD в Docker-контейтере.
При перезде с Минт-20 на Минт-22 мне захотелось сохранить возможность полноценной работы с проектами выполнеными в KiCad-5, без конвертации их в формат KiCad-9 на который я плавно мигрирую при перезде на Минт-22. Специфика в том, что KiCad-5, в том числе в виде AppImage на Минт-22 запускаться категорически не хочет.
Из возможных вариантов выбрал для себя запуск KiCad-5 в Docker-контейтере, с пробросом графики через X11. За основу взял эту реализацию. Добавил к ней проброс графического ускорения(без него GUI будет подтормаживать) своей карты AMD, русификацию, и Firefox, для плагина InteractiveHtmlBom. В итоге получился вот такой dockerfile:
FROM linuxmintd/mint20-amd64 ENV LANG=ru_RU.UTF-8 RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y nano sudo keyboard-configuration software-properties-common x11-apps xdg-utils \ locales language-pack-ru-base language-pack-ru xed xed-dbg firefox firefox-locale-ru && \ update-locale LANG=ru_RU.UTF-8 RUN add-apt-repository --yes ppa:kicad/kicad-5.1-releases && \ apt-get update && \ apt-get install --no-install-recommends -y kicad kicad-locale-ru kicad-doc-ru # Укажите здесь используемые на вашем хост-компьютере # имя пользователя, идентификатор пользователя и идентификатор группы. ENV USER_NAME=vasily ENV UID=1000 ENV GID=1000 ENV HOME=/home/${USER_NAME} ENV XDG_RUNTIME_DIR=/tmp/runtime-${UID} RUN mkdir -p ${HOME} && \ echo "${USER_NAME}:x:${UID}:${GID}:USER_NAME,,,:${HOME}:/bin/bash" >> /etc/passwd && \ echo "${USER_NAME}:x:${UID}:" >> /etc/group && \ echo "${USER_NAME} ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/${USER_NAME} && \ chmod 0440 /etc/sudoers.d/${USER_NAME} && \ chown ${UID}:${GID} -R ${HOME} USER ${USER_NAME} # Раскомментируйте программу, которую вы хотите запустить в контейнере. #ENTRYPOINT ["eeschema"] ENTRYPOINT ["kicad"]
Обратите внимание, что значения USER_NAME, UID, GID, в строках 17, 18, 19 в dockerfile берутся из вашего аккаунта на хост-машине.
Образ создается как обычно выполненой в открытом в одной директории с dockerfile терминале командой(не забываем пробел и точку в конце команды):
docker build -t kicad5 .
Размер образа получаеться около 800 Мбайт.
Скрипт для старта контейнера на машине с графической картой AMD:
#! /usr/bin/env bash docker run --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /usr/share/kicad5:/usr/share/kicad -v $HOME:$HOME --device=/dev/dri:/dev/dri kicad5
До первого запуска контейнера:
1). Создаете в Минт-22 директорию /usr/share/kicad5 и копируете туда содержимое /usr/share/kicad из Минт-20 с установленным kicad5
2). Копируете содержимое $HOME/.kicad_plugins из Минт-20 с установленным kicad5 в $HOME/.kicad_plugins в Минт-22
3). Копируете содержимое $HOME/.config/kicad/ из Минт-20 с установленным kicad5 в $HOME/.config/kicad в Минт-22
Теперь можете запускать KiCad-5 с GUI и графическим ускорением на карте AMD в Минт-22 и паралельно установить в Минт-22 KiCad-9.
Чтобы заархивировать созданный образ выполняем в терминале:
docker save -o ./my_bac_kicad5_image.tar kicad5
Чтобы развернуть заархивированый образ на другом машине выполняем в терминале, открытом в одной директории с файлом my_bac_kicad5_image.tar, на нее скопированном:
docker load -i ./my_bac_kicad5_image.tar
