16
opencocon の作り方 SHIMADA Hirofumi, @shimadah

opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

Embed Size (px)

Citation preview

Page 1: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

opencocon の作り方

SHIMADA Hirofumi,@shimadah

Page 2: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

opencoconとは

● 旧型PCをシンクライアントとして活用するためのLinuxディストリ

● 俺アップストリーム● 流行りに左右されない

Matchbox + TUI メニュー

Page 3: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

それでいて色々できる

● シンクライアント:X, VNC, RDP, SPICE● Webブラウザ:midori● VPNクライアント:SSH (Port Forwarding),

SoftEther ほか

● NTPクライアント、音量調節、タッチパッド調整など

Page 4: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

古いPC向けのカスタマイズ

● 最低メモリ:64MB (HDD起動:32MB)● 初代Pentium以降

● 新旧さまざまなPCに(局所的に)対応

– PC/ATは多種多様な機種があるため、フォーカスする機種を定めて対応

Page 5: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

ここんの作り方

● 通常のディストリ作成親ディストリ(Debian, Ubuntu, openSUSE, Fedoraなど)からカスタマイズ(時にはコンパイル) -> 収録

● ここん流ディストリ作成

組み込みLinux用ビルドフレームワーク OpenEmbedded を使い、すべてをコンパイル

Page 6: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

利点欠点

● 利点

既存のディストリに縛られない軽薄短小が実現可能

ほぼフルカスタマイズし、かつ安定的なイメージのリリースが可能

● 欠点

既存のディストリのノウハウが反映されていないことが多く、細かい問題が起きやすい

他のディストリにあるパッケージがないことが多い

コンパイルにすごく時間がかかり、かつ容量を食う

Page 7: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

OpenEmbedded

● 組み込みLinux用のビルドフレームワーク● ディストリ作成・クロスコンパイルの簡略化● 様々なアーキテクチャ、マシン等に適用可能● 最近は Yocto Project と連携し、Linux の世界では

割とスタンダードなビルドフレームワークを目指している

● 開発が活発

Page 8: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

イメージを作るのは簡単

● QEMU で動く最低限のディスクイメージはすぐ作ることができる

http://www.openembedded.org/wiki/OE-Core_Standalone_Setup

Page 9: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

引用すると

● gitツリーからダウンロード

git clone git://git.openembedded.org/openembedded-core oe-core

cd oe-core

git clone git://git.openembedded.org/bitbake bitbake

git checkout dizzy

cd bitbake

git checkout 1.24

cd ..● 環境変数の設定

source ./oe-init-build-env [<build directory>]● ビルド

bitbake core-image-minimal

Page 10: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

その先が大変

● 大きなデスクトップ環境をコンパイルする– Xfce, GNOME, Qtなど

● タブレット系環境をコンパイルする– Android, WebOS, Tizen など...

● 新しい機種を作る● 新しいパッケージを作る● 新しいイメージを作る

Page 11: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

OpenEmbeddedのレイヤー構造

http://www.aosabook.org/en/yocto.html

Page 12: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

基本的には

● すでにあるレイヤーから使えそうなものを拾うlayer indexhttp://layers.openembedded.org/layerindex/branch/master/layers/

● なければ作る

パッケージやイメージ:bitbake で読み込める recipe ファイル (.bb) を作る

Page 13: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

基本的には (cont.)

機種は conf/machineに置く● 新しいマシンを定義すると、それ用にコンパイルオプションや

機種固有ツール(bootloaderやDaemonなど)を設定できる– 僕もまだトライアンドエラー

● すでに作ってあることもある。その場合は割と楽 (raspberrypi 等)

● ここんが作成しているmachine : cocon486, coconppc, ac100

ディストリは conf/distro 以下に設定ファイルを置く

Page 14: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

opencoconの場合

openembedded-core, meta-openembedded

meta-raspberrypi

meta-coconport/cocon486

meta-coconport/raspberrypi

meta-cocon

opencoconでメンテナンス

Page 15: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

詳しく...といいたいところですが

説明が長くなるのでかわりに実演

Page 16: opencoconの作り方 (オープンソースカンファレンス2015 Tokyo/Spring 小江戸らぐセミナー)

まとめ

● OpenEmbedded は慣れが必要だが便利

● opencocon よろしくおねがいします