SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
YoctoでLTS
wata2ki
自己紹介
• 名前: wata2ki (watatuki)
• 元はハードウェアで画像処理をやっていましたが、現在は組み込み屋をやっています
• 最近はエンベデッドでコンテナを使う方法を模索しています
• コロナの影響で海外渡航ができなくなり、ブラックリモートカンファレンス化して困っています
• 日本・ヨーロッパ・アメリカ合衆国から参加するリモートカンファレンスとか無茶ですって。。。
• LFの某カンファレンスでスピーカーだったのですが、事前に録画したものを再生する方式だったので、発表者が一番暇
という、おかしなことになりました
• GitHub
• https://github.com/watatuki
はじめに
• これまでに何回か、自分でLinuxのディストリビューションを作ることができるYoctoについて
紹介してきました
• 今年になって、Yocto ProjectからLTS (Long Term Stable)版を定期的にリリースする
というアナウンスがありました
• 5月にこのYoctoのLTS版について発表しましたが、まだまだ課題も多いです
• 今回は、その続報です。
Yoctoとは?
• L.F.(Linux Foundation)のプロジェクトで、正式名称はYocto Project
• https://www.yoctoproject.org/
• Linuxのディストリビューションを作るのに必要なツール・データを提供
• pokyという名前のリファレンスディストロとセットで提供される
• OpenEmbedded(http://www.openembedded.org/)コミュニティ由来のプロジェクトで、ツールも
共同開発している
• GentooLinuxがクロスビルドになったようなもの
• BSP(Board Support Package)とセットでSBC(Single Board Computer)向けの
Linux環境としてメーカーから提供
要約すると
• 2年に1回LTS版をリリースする
• Yoctoは6か月ごとにリリースされるため4回のリリースにつき1回LTSをリリースする
• LTS版のメンテナンス期間は2年間
• LTSのサポート期間は重複せず、現行のLTSのメンテナンス終了のタイミングで、次のLTSがリリースされる
• これまでのYoctoは、メンテナンス期間終了後にコミュニティサポート期間があり、たまにパッチが当たることも
あったが、今後どうなるかは不明
• ツール(bitbakeなど)と標準セット(poky部分)が対象
• Yoctoリポジトリにある、これ以外のもの(meta-raspberrypi, meta-intelなど)はLTS対象外
• メンテナンスしているコミュニティが、LTSの期間メンテナンスを継続してくれるかもしれない
• Yoctoリリースに付属するリファレンスカーネル(linux-yocto)もメンテナンス対象
Yocto LTSの課題
• Yoctoはあくまでツールセットで、外部のOSSを参照してビルドしている
• Yocto Projetで参照しているOSSに対しては、参照先が消えてしまった場合の対策で、ミラーを持ってい
る程度
• Yoctoで参照しているOSSはYoctoのLTSのメンテナンス対象には含まれない
• CentOSやDebianなどのディストリビューションのように、LTS期間コードの独自メンテをするわけではない
• メンテナによっては、Yoctoのビルドの仕組みでパッチをあてることができるので、それを用いてパッチのバックポートをして
くれる場合もある
• 例外的に、Yocto ProjectでフォークしてメンテナンスしているOSSはコードもメンテナンスされる
• Linux-yoctoがメンテナンスされるのは、このパターンに当たっているため
コードのダウンストリームメンテナンス
• Yoctoの課題は、コードのダウンストリームメンテナンスを行わないこと
• ホビー用途であれば新バージョンに乗り換えてしまえばよいが、そうでない場合は。。。
• 既存のLinuxディストリビューションは、コードのダウンストリームメンテナンスを行っている
• LTSのあるディストリビューション
• Debian
• Ubuntu
• CentOS
• OpenSUSE
• Leapになってから短くなってしまいました
• 既存ディストリビューションのコード再利用ができないか?
Linux Distribution Lifecycle
• Debian:
• Stable support provide 3 years
• Distribution may minor version upgrade during this term to take in new functions and
hardware support.
• OSS version may update during this term.
• LTS support provide 2 years
• Distribution may not take in new functions and hardware support during this term.
• Will take to critical and important security fix.
Debian stable
about 3 years
Debian LTS
about 2 years
Linux Distribution Lifecycle
• Ubuntu:
• General support provide 5 years
• Distribution may minor version upgrade during this term to take in new functions and
hardware support.
• OSS version may update during this term.
• Extended Security Maintenance provide 5 years
• Will take to critical and important security fix.
Linux Distribution Lifecycle
• Red Hat Enterprise Linux/Cent OS:
• Full support provide 5 years
• Distribution may minor version upgrade during this term to take in new functions and
hardware support.
• OSS version may update during this term.
• Maintenance support provide 5 years
• Distribution may not take in new functions and hardware support during this term.
• Will take to critical and important security fix.
Yoctoでのコード参照
• Yoctoから既存ディストリビューションのコードを参照するソリューション
• Debian
• meta-debian
• Ubuntu
• なし
• CentOS
• なし
meta-debian
• TOSHIBAの小林さんが始めたプロジェクト
• Yoctoのビルドシステムと、debianのStabilityとLTSの良いとこどりをしようというプロジェクト
• 現在は、Linux FoundationのCIP(Civil Infrastructure Platform)プロジェクトの中
で開発が行われている
• 現在の最新バージョンは、debian 10のコードとYocto2.7(warrior)を組み合わせて構築されている
• ELC(Embedded Linux Confluence)でも毎年セッションが開催されるくらい、活発に活動している
• 参考
• https://github.com/meta-debian
• https://static.sched.com/hosted_files/osseu19/57/debian-yocto_elce2019_r1.1.pdf
• https://elinux.org/images/7/74/LinuxCon2015_meta-debian_r7.pdf
meta-debianの仕組み
xxx.dsc
xxx.org.tar.xz
xxx.debian.tar.xz
Debian repository
Debian code
Yocto build system
xxx.deb
xxx-dev.deb
xxx-dbg.deb
dscファイルの記載内容をもとに、オリジナルのソースにdebianのパッチ
を当ててコードを生成する
生成したソースをYoctoビルドシステムを使っ
てビルド・パッケージングする
meta-debianの課題
xxx.dsc
xxx.org.tar.xz
xxx.debian.tar.xz
Debian repository
Debian code
Yocto build system
xxx.deb
xxx-dev.deb
xxx-dbg.deb
dscファイルの記載内容をもとに、オリジナルのソースにdebianのパッチ
を当ててコードを生成する
生成したソースをYoctoビルドシステムを使っ
てビルド・パッケージングする
debianのリポジトリには、最新(とひとつ前?)のパッケージしか置かれ
ていないため、Yoctoの特徴であるスナップショットの復元ができない
一度ビルドしたものであればローカルにキャッシュされているため再
ビルドできなくはない
debianのリポジトリ運用は、ディストリビューションの運用として間
違っていないため、難しい問題
たとえば
• CentOSの場合、rpmのspecファイルがgitで管理されているため、この情報からレシピを
ジェネレートするようにできれば、この課題も解決できるのでは?
まとめ
• YoctoのLTSの課題である、コードのLTSにフォーカスしてみた
• 既存ディストリビューションのLTSの比較と、Yoctoでの利用可否について調査をおこなった
• Debian/meta-debianは、唯一現有するソリューションであるが、課題も見えてきた
• CentOSについては、機会があればまた話したいと思います

Contenu connexe

Tendances

僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
Takuya ASADA
 

Tendances (20)

Yoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作るYoctoで綺麗なkernel configを作る
Yoctoで綺麗なkernel configを作る
 
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
 
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
PHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyieldPHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyield
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
 
Play with UEFI
Play with UEFIPlay with UEFI
Play with UEFI
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
 
Dockerだけではないコンテナのはなし
DockerだけではないコンテナのはなしDockerだけではないコンテナのはなし
Dockerだけではないコンテナのはなし
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 

Similaire à YoctoでLTSディストリを作るには

Similaire à YoctoでLTSディストリを作るには (20)

YoctoLTSについて調べてみた
YoctoLTSについて調べてみたYoctoLTSについて調べてみた
YoctoLTSについて調べてみた
 
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for WindowsThe Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
 
Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
Python languageupdate (2004)
Python languageupdate (2004)Python languageupdate (2004)
Python languageupdate (2004)
 
Tizen & Crosswalk
Tizen & CrosswalkTizen & Crosswalk
Tizen & Crosswalk
 
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
今から始めるUbuntu入門_202307.pdf
今から始めるUbuntu入門_202307.pdf今から始めるUbuntu入門_202307.pdf
今から始めるUbuntu入門_202307.pdf
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
 
解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
 
Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)
 
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側
 
GitLabを16万8千光年ワープさせた話(改)
GitLabを16万8千光年ワープさせた話(改)GitLabを16万8千光年ワープさせた話(改)
GitLabを16万8千光年ワープさせた話(改)
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
 
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
 
Play ja 3_update
Play ja 3_updatePlay ja 3_update
Play ja 3_update
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
 
今すぐ始める!Ubuntu入門
今すぐ始める!Ubuntu入門今すぐ始める!Ubuntu入門
今すぐ始める!Ubuntu入門
 

Plus de wata2ki (8)

鹿児島らぐハイブリッド開催への道
鹿児島らぐハイブリッド開催への道鹿児島らぐハイブリッド開催への道
鹿児島らぐハイブリッド開催への道
 
Linuxの2038年問題を調べてみた
Linuxの2038年問題を調べてみたLinuxの2038年問題を調べてみた
Linuxの2038年問題を調べてみた
 
しょしんしゃのためのhello world
しょしんしゃのためのhello worldしょしんしゃのためのhello world
しょしんしゃのためのhello world
 
Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る 
 
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくいARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくい
 
Fireduck
FireduckFireduck
Fireduck
 
パッチを投稿してみた話
パッチを投稿してみた話パッチを投稿してみた話
パッチを投稿してみた話
 
Linux kernelのbspとupstream
Linux kernelのbspとupstreamLinux kernelのbspとupstream
Linux kernelのbspとupstream
 

YoctoでLTSディストリを作るには