Linux OS 組込/ハードウェア

【Yocto】組み込みLinuxの主流はYocto

イマドキ、組み込みLinuxはYoctoが主流です。Yoctoは自動でアレコレやってくれる反面、ビルド中に何が行われているかイマイチわかりにくい。今回は大まかな流れをまとめ、私がわかってないポイントを探ります。わたしは「ヨクト」って呼んでましたが詳しい人にきいたら「ヤクト」だよって言われました。まぁどっちでもいいですけど。

この記事で解決できること

  • Yoctoの概要を知ることが出来る。

関連記事

【PC】Linuxビルドのノウハウ(ビルドとインストール)

【PC】Linuxビルドのノウハウ(残課題)

【WSL】WindowsでLinuxを動かす

【Yocto】組み込みLinuxの主流はYocto

【Linuxコマンド】便利な小技たち(TIPS)

【ネットワーク】WindowsからUbuntu14.04に接続する方法2つ

【Linuxコマンド】パッチを使いこなしたい

【UNIX時間】2038年問題について整理する

概要

まずは調べてみる。Yoctoの概要(Qiita)を読んでみた。めちゃめちゃわかりやすい…。ビルド手順などが書いてないので最初に読むとイマイチかもだが、一度bitbakeしたことがある人が読むとよさげ。レイヤ、レシピの関係などが図示されていていい感じ。せっかくなので気になったところを抜粋してみる。

・YoctoはReferenceが読みにくくReferenceを参照して学習することが難しい。
YoctoのQuickStart
YoctoのReference
bitbakeのReference
・YoctoはLinuxをビルドするプロジェクトでbitbakeをビルドツールとして使う。
・Yoctoはレイヤとレシピで構成される。レシピはビルド対象のリポジトリのURIとビルド用のパラメータをまとめたもの。

次にLinuxの新定番Yoctoを使ってみよう!を読んでみた。ビルド手順を含めた概要がさらっと書いてあるのが良い。これは連載モノの2番目の記事ですが、1番目から順に読んでみたい。これも気になったところを抜粋した。

・Yocto Projectは、BitBakeというビルドツールとOSSパッケージをビルドするためのレシピを統合し、組み込みLinuxディストリビューションを標準化するために立ち上げられたLinux Foundation傘下のプロジェクトである。
・キャッチフレーズは、"Don't Build a Frankenstein OS"で、デバイス毎に継ぎ接ぎして作るのではなく、OSは共通化していこうという想いが込められている。
・ビルドツールであるBitBake、リファレンスディストリビューションとしてレシピを集約したPoky、基本的なOSSパッケージのレシピを集めたOpenEmbedded Core、高信頼性のための機能等のOSSパッケージのレシピを集めたCollection of OpenEmbedded。
・チップ ベンダーが提供するLinux SDKの多くは、Yoctoをベースにしている。
・Wind RiverやMentor Graphics等の多くの組み込みシステム向けLinuxディストリビューションもYoctoをベースにしている。

まとめ

ここ数年、Yoctoで組み込みLinuxを構築するケースが増えた気がする。ひと昔はNXP(旧Freescake)のLTIBとか、Linaroなどのクロスコンパイラ単体で動作させる、みたいなパターンが見かけられたが、最近はYoctoが多いように思う。

DTB(Device Tree Binary)で機種依存コードが外部参照になったため、カーネルコードが複数CPUで共通に使えるようになったのも、すごい進歩だと思う。私が仕事でLinuxを触らせてもらっていたカーネル2.6のころはarchの中を一生懸命探してドライバをちょこっと直してはビルドしていたのが懐かしい。

私もYoctoを弄り倒したい欲求があるのだが、ここ5年ぐらいプロジェクトマネジメント的な業務に忙殺され、まとまった時間をLinux開発にあてることが出来てない。なので今年2月ぐらいから当ブログで技術的欲求を解消している次第である…。と、これを書くことで技術的なモチベーションが上がる感覚がある。夏バテも落ち着いてきたしまた始めるか。

最初はNXPのi.mxシリーズ、AlteraのCyclone、Raspberry Piなど、複数のYocto環境をビルドして、色々エラーを発生させてみることをお勧めする。理由は各種BSPの共通項に気づいたり、エラーを解消するためにレシピなどを詳細に調査して手直しすることで、Yoctoの中身を知ることが出来るためである(自分がそうだった)。しかしビルドだけ出来ても深まっていかないので、1つの環境をじっくり弄ることも大事だと思う(私はこれが足りていない)。というわけで当面は情報量が多いRaspberry Pi 3をYocto化していこうと思う(と書くと自分にプレッシャーを与えることが出来る)。

関連記事

【PC】Linuxビルドのノウハウ(ビルドとインストール)

【PC】Linuxビルドのノウハウ(残課題)

【VirtualBox】仮想OS環境にUbuntu18 LTS(Linux)をインストールする手順

【WSL】WindowsでLinuxを動かす

【Yocto】組み込みLinuxの主流はYocto

【Linuxコマンド】便利な小技たち(TIPS)

【ネットワーク】WindowsからUbuntu14.04に接続する方法2つ

【Linuxコマンド】パッチを使いこなしたい

【UNIX時間】2038年問題について整理する

  • この記事を書いた人
  • 最新記事

ペイヴメント

ペイヴメントのエンジニア塾(当ブログ)では20年以上の経験から得られたプログラミング系ノウハウについてベテランにも満足して頂けるような内容の濃いコンテンツを初心者にも分かりやすい形で日々発信しています。【経歴】ベンチャーのソフトハウスで4年勤務後、精密機器メーカーのソフト開発部門に勤務し今に至ります。

-Linux, OS, 組込/ハードウェア

Copyright© ペイヴメントのエンジニア塾 , 2020 All Rights Reserved.