コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2026年6月2日 >>> 2026年5月20日
link もっと後

2026年6月2日

OpenOCDのビルド2026

目次: OpenOCD

以前(2023年6月28日の日記参照)紹介したときからビルド方法が変わったかも?と思ったらそんなことはなく同じでした。コードはSourceForgeのGitリポジトリが本家ですが、GitHubにも公式ミラー(OpenOCD GitHub公式ミラー)があります。気のせいかもしれませんが、GitHubの方が速い気がします。

今回はUbuntu 24.04のDockerイメージからビルドしてみます。

Docker起動、依存パッケージインストール
$ docker run -it ubuntu:24.04 /bin/bash

# apt-get update
# apt-get install -y git gcc g++ autoconf automake libtool pkg-config make \
    libusb-1.0-0-dev libhidapi-dev libgpiod-dev libftdi1-dev

以下、Docker内で実行する場合はrootユーザーなのでプロンプトの先頭は#ですが、一般ユーザーで実行しても一緒なのでプロンプトの先頭は$で表記します。

リポジトリ取得、初期化、configure
$ git clone https://git.code.sf.net/p/openocd/code openocd-code
$ cd openocd-code
$ git submodule init

Submodule 'jimtcl' (https://github.com/msteveb/jimtcl.git) registered for path 'jimtcl'
Submodule 'src/jtag/drivers/libjaylink' (https://gitlab.zapb.de/libjaylink/libjaylink.git) registered for path 'src/jtag/drivers/libjaylink'

$ git submodule update --recursive

$ bootstrap
$ ./configure --enable-internal-jimtcl --enable-internal-libjaylink

OpenOCD configuration summary
---------------------------------------------------

...

CoreSight Direct Memory                          yes (auto)
Linux GPIO bitbang through sysfs                 yes (auto)
Remote Bitbang driver                            yes (auto)
SEGGER J-Link Programmer                         yes (auto)
Xilinx XVC PCIe and AXI drives                   yes (auto)
Bus Pirate                                       yes (auto)

...

基本的にOpenOCDのconfigureは依存ライブラリを発見すると関連機能を自動的に有効にしますから、特に何も指定する必要がありません。が、今回は下記を指定します。

  • --enable-internal-libjaylink: OpenOCDが内蔵しているlibjaylinkを使用
  • --enable-internal-jimtcl: OpenOCDが内蔵しているjimtclを使用

ディストリビューション提供のlibjaylinkやjimtclを使っても構わないですが、Ubuntu 20.04のような古めのディストリビューションを使っている場合はバージョンが合わないので内蔵のライブラリを使うと良いです。

OpenOCDはconfigureのオプションを打ち間違っても怒らずにそのまま進んでしまうので、configureの最後に表示されるconfiguration summaryのSEGGER J-Link Programmerがyesになっているか確認しましょう。

ビルド、動作確認
$ make -j8

$ ./src/openocd --version

Open On-Chip Debugger 0.12.0+dev-01537-ge6752ecbc (2026-06-02-00:00)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html

うまくいったようです。良かった良かった。

編集者:すずき(2026/06/02 21:25)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2026年5月31日

ZephyrのOut-of-treeアプリケーションその3 - Zephyr SDKのインストール

目次: Zephyr

前回はPythonとwestの準備をしました。今回はZephyrをビルドするツールzephyr-sdkをインストールします。基本的にはZephyr SDKにあるとおりです。westを使える方はwestで良いですが詰みやすい(※)ので、インストーラを使う方法も知っておいて損はないでしょう。

SDKのバージョンは何でも良い訳ではなくZephyr Version Compatibilityにある通り、SDKのバージョンによってサポートしているZephyrのバージョンが違うのでご注意ください。

今回はSDK 1.0系とZephyr 4.4.0を使いましたが、特に理由はないので必要に応じて適切なバージョンを選んでください。

Zephyr-SDKのインストール
$ mkdir work_dir
$ cd work_dir

$ tar xf zephyr-sdk-1.0.1_linux-x86_64_minimal.tar.xz
$ cd zephyr-sdk-1.0.1

Install GNU toolchain [y/n]? y

Install GNU toolchains for all targets [y/n]? y
→ この問いにnと答えると、アーキテクチャごとに要るか/要らないかを聞かれるので、
要るものだけにyと答えると時間節約になります。

Install LLVM toolchain [y/n]? y

Install host tools [y/n]? y

Register Zephyr SDK CMake package [y/n]? y

Create symbolic links for old Zephyr bisectability [y/n]? y
→ 以前はSDK直下にアーキテクチャのディレクトリ(例: x86_64-zephyr-elf)がありましたが、
llvmが導入されてgnu/以下に移動しました。
昔のディレクトリ構造を期待する古いZephyrを使うなら、yと答えてシンボリックリンクを作っておいたほうが良いです。

基本は全部yと答えれば良いはずです。インストール時間を短くしたい人は"Install GNU toolchains for all targets"にnと答えて要るものだけに絞りましょう。

(※)west sdk installでもインストールできますが、westだと何が起きたのか全くわかりません。成功するうちは良いものの、いざ失敗するとどうしようもなくなります。

Zephyr SDKをローカルディレクトリに置く場合

Zephyr SDKを/optや/usr/localなどに置く場合はZephyrのビルドシステムが勝手にSDKを探してくれます。もし別の場所に置きたい場合はもうひと手間必要です。ホームディレクトリに下記の.zephyrrc設定ファイルを作ります。

設定ファイル~/.zephyrrc

export ZEPHYR_TOOLCHAIN_VARIANT=zephyr
export ZEPHYR_SDK_INSTALL_DIR=/home/ubuntu/work_dir/zephyr-sdk-1.0.1

設定を反映させるため、zephyrのディレクトリにあるzephyr-env.shをsourceで取り込みます。

設定の反映
$ cd work_dir/zephyr
$ source zephyr-env.sh

先ほど作った設定ファイルの内容が環境変数に反映されていれば成功です。

設定の確認
$ env | grep -i zephyr

ZEPHYR_BASE=/home/ubuntu/work_dir/zephyr
PWD=/home/ubuntu/work_dir/zephyr
ZEPHYR_TOOLCHAIN_VARIANT=zephyr
ZEPHYR_SDK_INSTALL_DIR=/home/ubuntu/work_dir/zephyr-sdk-1.0.1
PATH=/home/ubuntu/work_dir/zephyr/scripts:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

注意点は、シェルを終了させると環境変数が消えてしまうことです。したがってシェルを立ち上げる度に、

再びビルド環境を使うときの手順
$ cd work_dir
$ source .venv/bin/activate
$ cd zephyr
$ source zephyr-env.sh

を実行する必要がありまして面倒です……。手間なく設定する方法がありそうなので、ご存じの方は教えてくださいませ。以上がうまくいっていたら、ディレクトリはこうなっているはずです。

作業ディレクトリの状態
work_dir
|-- .venv
`-- zephyr-sdk-1.0.1

またセットアップだけで話が終わってしまいました。Zephyrは本題に至るまでが遠いです。次こそアプリを作ります。

編集者:すずき(2026/06/24 01:08)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2026年5月28日

ZephyrのOut-of-treeアプリケーションその2 - westの準備

目次: Zephyr

Zephyrのアプリケーションをビルドするには、Zephyrをビルドできる環境が必要です。最初はPython環境のセットアップを行います。

なんで初手がPythonかというと、ZephyrのツリーをダウンロードしたりビルドするときにwestというPython製のツールを実行するためです。基本的にはGetting Started Guideにあるとおりです。

私の環境はDebian Testingなのでcmake(> 3.20.5), Python(> 3.12), Devicetree compiler(> 1.4.6)のバージョンを満たしています。

Ubuntu 24.04 LTSのツールバージョン
$ cmake --version
cmake version 3.28.3

$ python3 --version
Python 3.12.3

$ dtc --version
Version: DTC 1.7.0

Ubuntu 24.04 LTSも問題ありません。もし古めのディストリビューションを使っている場合は上記の3ツールの最小バージョンを満たしているかチェックしてください。

westのインストール
$ sudo apt install --no-install-recommends git cmake ninja-build gperf \
  ccache dfu-util device-tree-compiler wget python3-dev python3-venv python3-tk \
  xz-utils file make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1

$ mkdir work_dir
$ cd work_dir
$ python3 -m venv .venv
$ source .venv/bin/activate

$ pip install west

Getting Started Guideには続きがありますが、In-treeアプリケーションをビルドするわけではないので今は実行しなくて良いです。以上がうまくいっていたら、ディレクトリはこうなっているはずです。

作業ディレクトリの状態
work_dir
`-- .venv

続きはまた今度。

編集者:すずき(2026/06/23 02:29)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2026年5月24日

JTSA Unlimited大会参加2026

目次: 射的

JTSA Unlimitedの大会に参加しました。

「水」ステージが大失敗、「木」もダメダメでした。他は結構良かったです。結果は72.1秒(前回は75.69秒)でした(総合78位/111人、LM 10位/17人)。60秒台はなかなか遠いです。


JTSA Unlimited練習会+大会の記録

練習会の記録を見ても60秒台がほぼ出ないので75〜70秒くらいが実力ですが、去年よりは70秒台前半が出る回数が多いかなあ……?最近はあまり上達している感がありませんが、今後もゆるゆると続けていきます。

編集者:すずき(2026/05/28 01:34)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2026年5月22日

ZephyrのOut-of-treeアプリケーションその1 - 概要

目次: Zephyr

Zephyr RTOSはツリー内にアプリケーションを持ちます(以降、In-treeアプリケーションと呼びます)。zephyr/sample以下にサンプルアプリがあります。別の場所に自分のアプリケーションを足すこともできます。FreeRTOSもアプリケーションの横にカーネルのソースコードを置く形でした。RTOSだと普通なんでしょうね。

ZephyrのIn-treeアプリケーションのサンプル
zephyr
|-- LICENSES
|-- arch
|-- boards
|-- build
|-- cmake
|-- doc
|-- drivers
|-- dts
|-- include
|-- kernel
|-- lib
|-- misc
|-- modules
|-- samples    ★アプリケーションのサンプルはここにある★
|-- scripts
|-- share
|-- snippets
|-- soc
|-- submanifests
|-- subsys
`-- tests

In-treeアプリケーションは簡単に追加できて便利ですが、LinuxやUnixに慣れた人はアプリケーションとカーネルコードが混ざることに違和感を感じるでしょう。小さめなFreeRTOSならまだしも、でかいZephyrを常にアプリの横に置かれるのは邪魔です。

ご安心ください、Zephyrはアプリとカーネルを別のディレクトリに置くことができます(以降、Out-of-treeアプリケーションと呼びます)。便利ですね。

続きはまた今度。

編集者:すずき(2026/06/23 02:20)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2026年6月2日 >>> 2026年5月20日
link もっと後

管理用メニュー

link 記事を新規作成

<2026>
<<<06>>>
-123456
78910111213
14151617181920
21222324252627
282930----

最近のコメント5件

  • link 26年7月14日
    hdkさん (07/22 08:37)
    「冷却水漏れなんて、修理するまでは補充して...」
  • link 26年1月23日
    すずきさん (01/29 09:48)
    「おおー、そんな昔からなんですね。歴史感じ...」
  • link 26年1月23日
    hdkさん (01/27 19:53)
    「#! はUNIX v8からだったってWi...」
  • link 24年12月9日
    すずきさん (01/18 15:45)
    「Thank you for your i...」
  • link 24年12月9日
    Up2Uさん (01/15 12:57)
    「Hi I also find the p...」

最近の記事20件

  • link 23年5月15日
    すずき (07/22 03:04)
    「[車 - まとめリンク] 目次: 車三菱 FTO GPX '95の話。群馬県へのドライブ1群馬県へのドライブ2将来車を買い替え...」
  • link 26年7月22日
    すずき (07/22 03:04)
    「[ジャガーさんの冷却水漏れの修理見積もり] 目次: 車先週、冷却水がほぼなくなってしまい修理工場にレッカーしたジャガーさんです...」
  • link 26年7月14日
    すずき (07/22 02:37)
    「[ジャガーさんの冷却水漏れ] 目次: 車朝、出勤しようと思ってエンジンをかけたところ冷却水不足と表示されました。わぁ、ついに出...」
  • link 26年7月19日
    すずき (07/20 04:04)
    「[ゲームを買ったら遊びましょう4] 目次: ゲーム前回の振り返り(2025年12月22日の日記参照)から半年経ちました。Swi...」
  • link 21年12月28日
    すずき (07/20 04:03)
    「[ゲーム - まとめリンク] 目次: ゲームNintendo DSを買ったパネルでポンDS最近の朝はパネポンDS聖剣伝説DSチ...」
  • link 26年7月13日
    すずき (07/19 23:33)
    「[Flightradar24のcontributorになる方法] 目次: 自宅サーバーADS-Bを受信できる環境があればFli...」
  • link 23年6月1日
    すずき (07/19 23:31)
    「[自宅サーバー - まとめリンク] 目次: 自宅サーバーこの日記システム、Wikiの話。カウンターをPerlからPHPに移植日...」
  • link 23年9月11日
    すずき (07/15 12:18)
    「[Windows - まとめリンク] 目次: WindowsWindows XPのブリッジ機能colinuxとWindowsの...」
  • link 25年1月31日
    すずき (07/15 12:18)
    「[Windowsの日本語フォントはみな長生き] 目次: WindowsGNOME48からフォントが変わるニュースを見ていて、フ...」
  • link 26年7月11日
    すずき (07/12 01:26)
    「[Timberborn、トロフィーコンプ] 目次: ゲームTimberbornのトロフィーをコンプリートしました。アーリーアク...」
  • link 24年2月7日
    すずき (07/11 13:05)
    「[複数の音声ファイルのラウドネスを統一したい] 目次: PythonPCやデジタル音楽プレーヤーで音楽を聞いていると、曲によっ...」
  • link 26年6月27日
    すずき (07/08 01:45)
    「[ジャガーさんのバンパー修理] 目次: 車以前(2025年11月21日の日記参照)、ジャガーさんの左前をぶつけてバンパーをガリ...」
  • link 26年7月3日
    すずき (07/08 00:42)
    「[ADS-Bを受信して飛行機の位置を見よう] 目次: 自宅サーバー空を飛ぶ飛行機は離陸直後や着陸寸前でもない限り飛んでいる姿は...」
  • link 26年7月1日
    すずき (07/04 02:37)
    「[GPSは世界一正確な時計、その3 - ntpsecとgpsd] 目次: 自宅サーバー以前(2015年5月8日の日記参照)、G...」
  • link 26年6月26日
    すずき (07/03 05:23)
    「[ジャガーさんの不思議なシフト] 目次: 車ジャガーXE(前期型)はシフトがダイヤル型になっていて、P, R, N, D, S...」
  • link 20年2月22日
    すずき (06/26 02:03)
    「[Zephyr - まとめリンク] 目次: Zephyr導入、ブート周りHello! Zephyr OS!!Hello! Ze...」
  • link 26年6月18日
    すずき (06/26 02:02)
    「[ZephyrのOut-of-treeアプリケーションその6 - シリアル出力] 目次: Zephyr前回はシリアルに文字を出...」
  • link 26年6月23日
    すずき (06/26 01:27)
    「[ANA国内線予約サイトが悲惨なことに] 4月くらいにANAの国内線予約サイトが国際線と共通のクラウドシステム(Amadeus...」
  • link 26年6月11日
    すずき (06/26 01:10)
    「[ZephyrのOut-of-treeアプリケーションその5 - OpenOCDとGDBで実行] 目次: Zephyr前回Ze...」
  • link 26年4月29日
    すずき (06/24 01:10)
    「[ぽこあポケモンをクリア] 目次: ゲーム1日だけやって放置していたぽこあポケモンをクリア(=スタッフロールが流れるイベントを...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 2025年
open/close 2026年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 07/22 08:37