コグノスケ


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

link もっと前
2026年5月31日 >>> 2026年5月18日
link もっと後

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年5月31日 >>> 2026年5月18日
link もっと後

管理用メニュー

link 記事を新規作成

<2026>
<<<05>>>
-----12
3456789
10111213141516
17181920212223
24252627282930
31------

最近のコメント5件

  • 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...」
  • link 25年12月18日
    すずきさん (12/23 23:51)
    「良く見たらksys_read()でfil...」

最近の記事3件

  • 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 もっとみる

こんてんつ

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

最終更新: 06/26 02:03