MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
コンテナ - KiCADのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
コンテナ - KiCAD
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == KiCADは、オープンソースのプリント基板設計ツールである。<br> <br> Docker / Podmanコンテナとして実行することにより、開発環境で簡単に導入できる。<br> 回路設計、PCB設計、ガーバー出力等の様々な用途に適している。<br> <br> KiCADコンテナの主な機能を以下に示す。<br> * KiCAD *: 回路エディタ、PCBエディタを含む統合環境 * kicad-cli *: コマンドラインインターフェース * 回路図のエクスポート *: PDF、SVG、ネットリスト形式に対応 * PCBのエクスポート *: ガーバー、PDF、SVG、STEP形式に対応 * DRC (デザインルールチェック) * 日本語環境対応 *: 日本語フォントとロケール設定済み <br><br> == 利用可能なバージョン == 2026年1月現在、KiCADコンテナイメージで利用可能なバージョンを下表に示す。<br> <br> <center> {| class="wikitable" ! タグ !! 説明 |- | 9.0 || 最新の9.0安定版(推奨) |- | 9.0.x || 特定の9.0.xリリース |- | 8.0 || 最新の8.0安定版 |- | 8.0.x || 特定の8.0.xリリース |- | nightly || 最新のmaster開発版 |- | nightly-full || 最新のmaster開発版(3Dシンボル含む) |} </center> <br><br> == Dockerfile / Containerfile == KiCADを使用したDockerfile / Containerfileを作成する。<br> <br> <syntaxhighlight lang="dockerfile"> # KiCAD Containerfile ## KiCAD 9.0を使用 ARG KICAD_VERSION=9.0 FROM docker.io/kicad/kicad:${KICAD_VERSION} ## rootユーザとして実行することを明示 USER root ## 必要なディレクトリを作成して、パーミッションを設定 RUN mkdir -p /var/lib/apt/lists/partial && \ chmod -R 755 /var/lib/apt/lists ## 日本語環境のセットアップ RUN apt update && \ apt install -y --no-install-recommends \ locales \ fonts-noto-cjk \ fonts-noto-cjk-extra \ && rm -rf /var/lib/apt/lists/* ## 日本語ロケールの設定 RUN sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen && \ locale-gen ENV LANG=ja_JP.UTF-8 \ LANGUAGE=ja_JP:ja \ LC_ALL=ja_JP.UTF-8 ## 作業ディレクトリの設定 WORKDIR /workspace ## デフォルトコマンド (GUIの場合) CMD ["kicad"] </syntaxhighlight> <br> コンテナイメージをビルドする。<br> podman build -t kicad:9.0 -f Containerfile . <br> 他のバージョンを使用する場合は、ビルド時にバージョンを指定する。<br> # KiCAD 8.0を使用する場合 podman build --build-arg KICAD_VERSION=8.0 -t kicad:8.0 -f Containerfile . # 最新のnightly版 (3Dシンボル含む) podman build --build-arg KICAD_VERSION=nightly-full -t kicad:nightly -f Containerfile . <br><br> == KiCADの実行 == ==== X11環境 ==== X11環境においてカレントディレクトリをマウントして実行する。<br> <br> podman run -it --rm \ -e DISPLAY=${DISPLAY} \ -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ -v $(pwd):/workspace \ kicad:9.0 <br> コマンドオプションの説明を以下に示す。<br> * -it *: インタラクティブモード、TTY有効 * --rm *: コンテナ終了時に自動削除 * -e DISPLAY=${DISPLAY} *: X11ディスプレイ環境変数を渡す * -v /tmp/.X11-unix:/tmp/.X11-unix:ro *: X11ソケットをマウント (画面描画に必要、読み取り専用) * -v $(pwd):/workspace *: カレントディレクトリをコンテナ内の/workspaceにマウント <br> X11転送を許可する必要がある場合は、以下に示すコマンドを実行する。<br> xhost +local: <br> ==== Wayland環境 ==== Wayland環境においてカレントディレクトリをマウントして実行する。<br> <br> podman run -it --rm \ -e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \ -e XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} \ -e QT_QPA_PLATFORM=wayland \ -v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:ro \ -v $(pwd):/workspace \ kicad:9.0 <br> Wayland環境向けのコマンドオプションの説明を以下に示す。<br> * -e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} *: Waylandディスプレイ環境変数を渡す (通常は wayland-0) * -e XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} *: XDGランタイムディレクトリを渡す (通常は /run/user/1000) * -e QT_QPA_PLATFORM=wayland *: QtアプリケーションをWaylandネイティブモードで実行 * -v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:ro *: Waylandソケットをマウント (読み取り専用) <br> Waylandソケットのパーミッションエラーが発生する場合は、以下に示すオプションを追加する。<br> --security-opt label=disable <br> ==== X11/Wayland自動検出 ==== X11とWaylandを自動検出して実行する例を以下に示す。<br> <br> # セッションタイプを確認 echo $XDG_SESSION_TYPE # X11の場合 if [ "$XDG_SESSION_TYPE" = "x11" ]; then podman run -it --rm \ -e DISPLAY=${DISPLAY} \ -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ -v $(pwd):/workspace \ kicad:9.0 # Waylandの場合 elif [ "$XDG_SESSION_TYPE" = "wayland" ]; then podman run -it --rm \ -e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \ -e XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} \ -e QT_QPA_PLATFORM=wayland \ -v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:ro \ -v $(pwd):/workspace \ kicad:9.0 fi <br> ==== SELinux環境での実行 ==== RHEL、SUSE 16等のSELinuxが有効な環境においては、以下に示すオプションを追加する。<br> <br> * X11環境の場合 *: <syntaxhighlight lang="text"> podman run -it --rm \ -e DISPLAY=${DISPLAY} \ -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ -v $(pwd):/workspace:Z \ --security-opt label=type:container_runtime_t \ kicad:9.0 </syntaxhighlight> <br> * Wayland環境の場合 *: <syntaxhighlight lang="text"> podman run -it --rm \ -e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \ -e XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} \ -e QT_QPA_PLATFORM=wayland \ -v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:ro \ -v $(pwd):/workspace:Z \ --security-opt label=type:container_runtime_t \ kicad:9.0 </syntaxhighlight> <br> SELinux環境向けの追加オプションを以下に示す。<br> * :Z *: SELinuxコンテキストを自動設定 (プライベートアンラベル) * --security-opt label=type:container_runtime_t *: SELinuxタイプをコンテナランタイムに設定 <br> ==== 特定のディレクトリをマウント ==== プロジェクトディレクトリを指定してマウントする例を以下に示す。<br> <br> * X11環境の場合 *: <syntaxhighlight lang="text"> podman run -it --rm \ -e DISPLAY=${DISPLAY} \ -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ -v /home/<ユーザ名>/projects:/workspace \ kicad:9.0 </syntaxhighlight> <br> * Wayland環境の場合 *: <syntaxhighlight lang="text"> podman run -it --rm \ -e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \ -e XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} \ -e QT_QPA_PLATFORM=wayland \ -v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:ro \ -v /home/<ユーザ名>/projects:/workspace \ kicad:9.0 </syntaxhighlight> <br> ==== 複数のディレクトリをマウント ==== 複数のディレクトリを同時にマウントする例を以下に示す。<br> <br> * X11環境の場合 *: <syntaxhighlight lang="text"> podman run -it --rm \ -e DISPLAY=${DISPLAY} \ -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ -v $(pwd):/workspace \ -v /home/<ユーザ名>/projects:/projects \ kicad:9.0 </syntaxhighlight> <br> * Wayland環境の場合 *: <syntaxhighlight lang="text"> podman run -it --rm \ -e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \ -e XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} \ -e QT_QPA_PLATFORM=wayland \ -v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:ro \ -v $(pwd):/workspace \ -v /home/<ユーザ名>/projects:/projects \ kicad:9.0 </syntaxhighlight> <br> 上記コマンドのコマンドにおいて、コンテナ内からは以下に示すパスでアクセスすることができる。<br> * /workspace *: カレントディレクトリ * /projects *: /home/<ユーザ>/projectsディレクトリ <br> ==== 設定ファイルの永続化 ==== KiCADの設定ファイルを永続化する場合は、以下に示すようにマウントする。<br> <br> * X11環境の場合 *: <syntaxhighlight lang="text"> podman run -it --rm \ -e DISPLAY=${DISPLAY} \ -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ -v $(pwd):/workspace \ -v $HOME/.config/kicad:/root/.config/kicad \ kicad:9.0 </syntaxhighlight> <br> * Wayland環境の場合 *: <syntaxhighlight lang="text"> podman run -it --rm \ -e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \ -e XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} \ -e QT_QPA_PLATFORM=wayland \ -v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:ro \ -v $(pwd):/workspace \ -v $HOME/.config/kicad:/root/.config/kicad \ kicad:9.0 </syntaxhighlight> <br><br> == 起動スクリプト == ==== X11 / Wayland自動検出 (推奨) ==== <syntaxhighlight lang="sh"> #!/usr/bin/env sh # KiCAD起動スクリプト set -e # 設定 IMAGE_NAME="${KICAD_IMAGE:-kicad:9.0}" WORKSPACE_DIR="${KICAD_WORKSPACE:-$(pwd)}" echo "KiCAD起動スクリプト" echo "===========================" echo "イメージ: ${IMAGE_NAME}" echo "ワークスペース: ${WORKSPACE_DIR}" echo "" # セッションタイプの検出 SESSION_TYPE="${XDG_SESSION_TYPE:-x11}" echo "セッションタイプ: ${SESSION_TYPE}" # SELinux環境の検出 SELINUX_OPTS="" VOLUME_OPTS="" if [ -f /sys/fs/selinux/enforce ] && [ "$(cat /sys/fs/selinux/enforce)" = "1" ]; then echo "SELinux: 有効" SELINUX_OPTS="--security-opt label=type:container_runtime_t" VOLUME_OPTS=":Z" else echo "SELinux: 無効または未検出" fi # X11またはWaylandに応じて起動 if [ "${SESSION_TYPE}" = "wayland" ]; then echo "Waylandモードで起動します" echo "" podman run -it --rm \ -e WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}" \ -e XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR}" \ -e QT_QPA_PLATFORM=wayland \ -v "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}:${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}:ro" \ -v "${WORKSPACE_DIR}:/workspace${VOLUME_OPTS}" \ ${SELINUX_OPTS} \ "${IMAGE_NAME}" "$@" else echo "X11モードで起動します" echo "" # X11転送の許可 (X11を使用している場合) xhost +local: 2>/dev/null || true podman run -it --rm \ -e DISPLAY="${DISPLAY}" \ -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ -v "${WORKSPACE_DIR}:/workspace${VOLUME_OPTS}" \ ${SELINUX_OPTS} \ "${IMAGE_NAME}" "$@" fi </syntaxhighlight> <br> ==== X11向け ==== <syntaxhighlight lang="sh"> #!/usr/bin/env sh # KiCAD起動スクリプト set -e # 設定 IMAGE_NAME="${KICAD_IMAGE:-kicad:9.0}" WORKSPACE_DIR="${KICAD_WORKSPACE:-$(pwd)}" echo "KiCAD起動スクリプト (X11)" echo "===========================" echo "イメージ: ${IMAGE_NAME}" echo "ワークスペース: ${WORKSPACE_DIR}" echo "" # SELinux環境の検出 SELINUX_OPTS="" VOLUME_OPTS="" if [ -f /sys/fs/selinux/enforce ] && [ "$(cat /sys/fs/selinux/enforce)" = "1" ]; then echo "SELinux: 有効" SELINUX_OPTS="--security-opt label=type:container_runtime_t" VOLUME_OPTS=":Z" else echo "SELinux: 無効または未検出" fi # X11転送の許可 (X11を使用している場合) xhost +local: 2>/dev/null || true # KiCADを起動 podman run -it --rm \ -e DISPLAY="${DISPLAY}" \ -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ -v "${WORKSPACE_DIR}:/workspace${VOLUME_OPTS}" \ ${SELINUX_OPTS} \ "${IMAGE_NAME}" "$@" </syntaxhighlight> <br> ==== Wayland向け ==== <syntaxhighlight lang="sh"> #!/usr/bin/env sh # KiCAD起動スクリプト (Wayland専用) set -e # 設定 IMAGE_NAME="${KICAD_IMAGE:-kicad:9.0}" WORKSPACE_DIR="${KICAD_WORKSPACE:-$(pwd)}" echo "KiCAD起動スクリプト (Wayland)" echo "===========================" echo "イメージ: ${IMAGE_NAME}" echo "ワークスペース: ${WORKSPACE_DIR}" echo "" # SELinux環境の検出 SELINUX_OPTS="" VOLUME_OPTS="" if [ -f /sys/fs/selinux/enforce ] && [ "$(cat /sys/fs/selinux/enforce)" = "1" ]; then echo "SELinux: 有効" SELINUX_OPTS="--security-opt label=type:container_runtime_t" VOLUME_OPTS=":Z" else echo "SELinux: 無効または未検出" fi # KiCADを起動 podman run -it --rm \ -e WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}" \ -e XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR}" \ -e QT_QPA_PLATFORM=wayland \ -v "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}:${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}:ro" \ -v "${WORKSPACE_DIR}:/workspace${VOLUME_OPTS}" \ ${SELINUX_OPTS} \ "${IMAGE_NAME}" "$@" </syntaxhighlight> <br> ==== 複数ディレクトリをマウントする場合 ==== <syntaxhighlight lang="sh"> #!/usr/bin/env sh # KiCAD起動スクリプト (複数ディレクトリマウント / X11/Wayland自動検出) set -e # 設定 IMAGE_NAME="${KICAD_IMAGE:-kicad:9.0}" CURRENT_DIR="$(pwd)" PROJECT_DIR="${KICAD_PROJECT_DIR:-/home/user/projects}" echo "KiCAD起動スクリプト" echo "===========================" echo "イメージ: ${IMAGE_NAME}" echo "カレントディレクトリ: ${CURRENT_DIR} -> /workspace" echo "プロジェクトディレクトリ: ${PROJECT_DIR} -> /projects" echo "" # セッションタイプの検出 SESSION_TYPE="${XDG_SESSION_TYPE:-x11}" echo "セッションタイプ: ${SESSION_TYPE}" # SELinux環境の検出 SELINUX_OPTS="" VOLUME_OPTS="" if [ -f /sys/fs/selinux/enforce ] && [ "$(cat /sys/fs/selinux/enforce)" = "1" ]; then echo "SELinux: 有効" SELINUX_OPTS="--security-opt label=type:container_runtime_t" VOLUME_OPTS=":Z" fi # X11 または Waylandに応じて起動 if [ "${SESSION_TYPE}" = "wayland" ]; then echo "Waylandモードで起動します" echo "" podman run -it --rm \ -e WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}" \ -e XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR}" \ -e QT_QPA_PLATFORM=wayland \ -v "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}:${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY:-wayland-0}:ro" \ -v "${CURRENT_DIR}:/workspace${VOLUME_OPTS}" \ -v "${PROJECT_DIR}:/projects${VOLUME_OPTS}" \ ${SELINUX_OPTS} \ "${IMAGE_NAME}" "$@" else echo "X11モードで起動します" echo "" # X11転送の許可 (X11を使用している場合) xhost +local: 2>/dev/null || true podman run -it --rm \ -e DISPLAY="${DISPLAY}" \ -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ -v "${CURRENT_DIR}:/workspace${VOLUME_OPTS}" \ -v "${PROJECT_DIR}:/projects${VOLUME_OPTS}" \ ${SELINUX_OPTS} \ "${IMAGE_NAME}" "$@" fi </syntaxhighlight> <br> スクリプトに実行権限を付与する。<br> chmod u+x run-kicad-gui.sh <br> スクリプトを実行してKiCADを起動する。<br> ./run-kicad-gui.sh <br> 環境変数でイメージやディレクトリを指定することもできる。<br> # イメージを指定 KICAD_IMAGE=kicad:8.0 ./run-kicad-gui.sh # ワークスペースを指定 KICAD_WORKSPACE=/path/to/project ./run-kicad-gui.sh # 両方を指定 KICAD_IMAGE=kicad:nightly KICAD_WORKSPACE=/path/to/project ./run-kicad-gui.sh <br><br> == CLI版の実行 == kicad-cliを使用してコマンドラインから操作する。<br> <br> ==== 基本 ==== ヘルプを表示する。<br> <br> podman run --rm kicad:9.0 kicad-cli --help <br> バージョンを確認する。<br> podman run --rm kicad:9.0 kicad-cli --version <br> ==== 回路図のエクスポート ==== 回路図をPDFへ変換する。<br> <br> podman run --rm \ -v $(pwd):/workspace \ kicad:9.0 \ kicad-cli sch export pdf -o <出力するPDFファイル名>.pdf <入力するプロジェクトファイル名>.kicad_sch <br> 回路図をSVGに変換する例を以下に示す。<br> podman run --rm \ -v $(pwd):/workspace \ kicad:9.0 \ kicad-cli sch export svg -o <出力するPDFファイル名>.svg <入力するプロジェクトファイル名>.kicad_sch <br> ネットリストを出力する。<br> podman run --rm \ -v $(pwd):/workspace \ kicad:9.0 \ kicad-cli sch export netlist -o <出力するネットリスト名>.net <入力するプロジェクトファイル名>.kicad_sch <br> ==== PCBのエクスポート ==== PCBをガーバーファイルへ出力する。<br> <br> podman run --rm \ -v $(pwd):/workspace \ kicad:9.0 \ kicad-cli pcb export gerbers -o ./gerbers/ <入力するプロジェクトファイル名>.kicad_pcb <br> PCBをPDFへ変換する。<br> podman run --rm \ -v $(pwd):/workspace \ kicad:9.0 \ kicad-cli pcb export pdf -o <出力するPDFファイル名>.pdf <入力するプロジェクトファイル名>.kicad_pcb <br> PCBをSVGへ変換する。<br> podman run --rm \ -v $(pwd):/workspace \ kicad:9.0 \ kicad-cli pcb export svg -o <出力するSVGファイル名>.svg <入力するプロジェクトファイル名>.kicad_pcb <br> PCBを3DモデルSTEP形式でエクスポートする。<br> podman run --rm \ -v $(pwd):/workspace \ kicad:9.0 \ kicad-cli pcb export step -o <出力する3Dモデルファイル名>.step <入力するプロジェクトファイル名>.kicad_pcb <br> ==== DRC (デザインルールチェック) ==== PCBのデザインルールチェックを実行する。<br> <br> podman run --rm \ -v $(pwd):/workspace \ kicad:9.0 \ kicad-cli pcb drc -o <出力するDRCファイル名>.txt <入力するプロジェクトファイル名>.kicad_pcb <br><br> == CLI実行スクリプト == kicad-cliを簡単に実行するためのスクリプトを作成する。<br> <br> <syntaxhighlight lang="sh"> #!/usr/bin/env sh # KiCAD CLI実行スクリプト set -e # 設定 IMAGE_NAME="${KICAD_IMAGE:-kicad:9.0}" WORKSPACE_DIR="${KICAD_WORKSPACE:-$(pwd)}" # 引数が指定されていない場合はヘルプを表示 if [ $# -eq 0 ]; then echo "KiCAD CLI実行スクリプト" echo "=======================" echo "" echo "使用方法:" echo " $0 <kicad-cliコマンド>" echo "" echo "例:" echo " # ヘルプ表示" echo " $0 --help" echo "" echo " # 回路図をPDFに変換" echo " $0 sch export pdf -o output.pdf input.kicad_sch" echo "" echo " # PCBをGerberに出力" echo " $0 pcb export gerbers -o ./gerbers/ input.kicad_pcb" echo "" echo "環境変数:" echo " KICAD_IMAGE : 使用するイメージ(デフォルト: kicad:9.0)" echo " KICAD_WORKSPACE : ワークスペースディレクトリ(デフォルト: カレントディレクトリ)" echo "" exit 1 fi # SELinux環境の検出 VOLUME_OPTS="" if [ -f /sys/fs/selinux/enforce ] && [ "$(cat /sys/fs/selinux/enforce)" = "1" ]; then VOLUME_OPTS=":Z" fi # KiCAD CLIを実行 podman run --rm \ -v "${WORKSPACE_DIR}:/workspace${VOLUME_OPTS}" \ "${IMAGE_NAME}" \ kicad-cli "$@" </syntaxhighlight> <br> スクリプトに実行権限を付加する。<br> chmod u+x run-kicad-cli.sh <br> スクリプトを実行する。<br> # ヘルプ表示 ./run-kicad-cli.sh --help # 回路図をPDFに変換 ./run-kicad-cli.sh sch export pdf -o <出力するPDFファイル名>.pdf <入力するプロジェクトファイル名>.kicad_sch # PCBをガーバーへ出力 ./run-kicad-cli.sh pcb export gerbers -o ./gerbers/ <入力するプロジェクトファイル名>.kicad_pcb <br><br> == CI/CD環境での使用 == ==== GitLab CI ==== <syntaxhighlight lang="yaml"> stages: - build - export generate_gerbers: stage: export image: docker.io/kicad/kicad:9.0 script: - kicad-cli pcb export gerbers -o ./gerbers/ project.kicad_pcb artifacts: paths: - gerbers/ expire_in: 1 week generate_pdf: stage: export image: docker.io/kicad/kicad:9.0 script: - kicad-cli sch export pdf -o schematic.pdf project.kicad_sch - kicad-cli pcb export pdf -o pcb.pdf project.kicad_pcb artifacts: paths: - schematic.pdf - pcb.pdf expire_in: 1 week run_drc: stage: build image: docker.io/kicad/kicad:9.0 script: - kicad-cli pcb drc -o drc-report.txt project.kicad_pcb - cat drc-report.txt artifacts: paths: - drc-report.txt expire_in: 1 week </syntaxhighlight> <br> ==== GitHub Actions ==== <syntaxhighlight lang="yaml"> name: KiCAD Export on: push: branches: [ main ] pull_request: branches: [ main ] jobs: export: runs-on: ubuntu-latest container: image: docker.io/kicad/kicad:9.0 steps: - name: Checkout uses: actions/checkout@v3 - name: Generate Gerbers run: | kicad-cli pcb export gerbers -o ./gerbers/ project.kicad_pcb - name: Generate PDFs run: | kicad-cli sch export pdf -o schematic.pdf project.kicad_sch kicad-cli pcb export pdf -o pcb.pdf project.kicad_pcb - name: Run DRC run: | kicad-cli pcb drc -o drc-report.txt project.kicad_pcb - name: Upload Artifacts uses: actions/upload-artifact@v3 with: name: kicad-outputs path: | gerbers/ *.pdf drc-report.txt </syntaxhighlight> <br><br> == トラブルシューティング == ==== GUIが起動しない (X11) ==== X11転送を許可する。<br> <br> xhost +local: <br> DISPLAYが正しく設定されているか確認する。<br> echo $DISPLAY <br> XAuthの問題の場合は、以下に示すオプションを追加する。<br> -v ${HOME}/.Xauthority:/root/.Xauthority:ro <br> ==== GUIが起動しない (Wayland) ==== Waylandソケットが存在するか確認する。<br> <br> ls -la ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY} <br> 環境変数が正しく設定されているか確認する。<br> echo $WAYLAND_DISPLAY echo $XDG_RUNTIME_DIR echo $XDG_SESSION_TYPE <br> Waylandソケットのパーミッションエラーの場合は、以下に示すオプションを追加する。<br> --security-opt label=disable <br> Qtアプリケーションが正しくWaylandを使用しているか確認する。<br> # コンテナ内で確認 podman run --rm \ -e WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \ -e XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} \ -e QT_QPA_PLATFORM=wayland \ -v ${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}:ro \ kicad:9.0 \ sh -c 'echo $QT_QPA_PLATFORM' <br> ==== X11とWaylandの切り替え ==== セッションタイプを確認する。<br> <br> echo $XDG_SESSION_TYPE <br> 強制的にX11モードで起動する場合は、XDG_SESSION_TYPE環境変数を設定する。<br> XDG_SESSION_TYPE=x11 ./run-kicad-gui.sh <br> 強制的にWaylandモードで起動する場合は、XDG_SESSION_TYPE環境変数を設定する。<br> XDG_SESSION_TYPE=wayland ./run-kicad-gui.sh <br> ==== パーミッションエラー ==== SELinux環境では、ボリュームマウントに:Zオプションを付与する。<br> <br> -v $(pwd):/workspace:Z <br> ホスト側のディレクトリのパーミッションを確認する。<br> ls -la $(pwd) <br> ==== 日本語が表示されない ==== イメージを再ビルドする。<br> <br> # Docker docker build -t kicad:9.0 -f Containerfile . --no-cache # Podman podman build -t kicad:9.0 -f Containerfile . --no-cache <br> 日本語フォントがインストールされているか確認する。<br> # Docker docker run --rm kicad:9.0 fc-list | grep -i noto # Podman podman run --rm kicad:9.0 fc-list | grep -i noto <br> ==== ファイルが見つからない ==== ボリュームマウントのパスを確認する。<br> <br> # コンテナ内でファイルを確認 (Docker) docker run --rm -v $(pwd):/workspace kicad:9.0 ls -la /workspace # コンテナ内でファイルを確認 (Podman) podman run --rm -v $(pwd):/workspace kicad:9.0 ls -la /workspace <br> 作業ディレクトリを確認する。<br> # Docker docker run --rm -v $(pwd):/workspace kicad:9.0 pwd # Podman podman run --rm -v $(pwd):/workspace kicad:9.0 pwd <br> ==== コマンドが見つからない ==== kicad-cliが正しくインストールされているか確認する。<br> <br> # Docker docker run --rm kicad:9.0 which kicad-cli docker run --rm kicad:9.0 kicad-cli --version # Podman podman run --rm kicad:9.0 which kicad-cli podman run --rm kicad:9.0 kicad-cli --version <br><br> == 参考情報 == KiCADに関する詳細な情報を知りたい場合は、以下に示すWebサイトを参照すること。<br> <br> * KiCAD公式サイト *: https://www.kicad.org/ * KiCAD Dockerイメージ *: https://hub.docker.com/r/kicad/kicad * KiCAD CLIドキュメント *: https://docs.kicad.org/master/en/cli/cli.html * KiCADドキュメント *: https://docs.kicad.org/ * KiCAD GitLab *: https://gitlab.com/kicad/code/kicad <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:コンテナ]]
コンテナ - KiCAD
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse