Как стать автором
Поиск
Написать публикацию
Обновить

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
Теги:
0
Комментарии0

Публикации

Ближайшие события