More Related Content
PDF
PDF
PDF
PDF
PDF
PDF
PDF
Introduce Yocto Project Japan and What want to make using Yocto Project PDF
コミュニティ主導Linux ディストリビューションと関わっていくには? What's hot
PDF
リリースされたばかりの『Ubuntu 16.04LTS』のすべて PDF
PDF
WindowsでGitを使う際のベストプラクティス PPTX
Windows環境でのgitまとめ(2016.8) PDF
AzureでopenSUSE Leap42.1が使えるよ! PPTX
Windows環境でのgitまとめ(2016.1) PDF
Viewers also liked
PDF
最近やった事とこれからやりたい事 2016年度年末版 PDF
PDF
Beginner for Power Control on Linux はじめてのLinuxバッテリー省エネ設定 PDF
lilo.linux.or.jp の話 (2017年8月) PDF
シンガポールFossasia2016に初参加してみた I tried the first time participate in the Singapor... PDF
Debian Testing on Windows Tablet T100TA PDF
lilo.linux.or.jp を wheezy から jessie にあげた話 PDF
AllwinnerタブレットのOSを作ってみる(中編) PDF
「やりなおし方について」Linuxブート情報の消し方 PDF
色々なコントローラでRaspberryPiを動かそう PDF
PDF
#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket PDF
鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group PDF
OSC沖縄2017と沖縄観光 #osc17ok Opensource Conference Okinawa2017 PDF
音ゲーコントローラとLinux Input Subsystem PDF
PDF
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T... PDF
PDF
PDF
openSUSE42.2 on Windows Tablet T100TA More from wata2ki
PPTX
PPTX
PDF
PDF
PPTX
PPTX
PPTX
PPTX
PPTX
Linux kernelのbspとupstream PPTX
PPTX
YoctoをつかったDistroの作り方とハマり方 Fireduck
- 1.
- 2.
- 3.
- 4.
- 5.
そういえば
• 自己紹介
• 名前:wata2ki (watatuki)
• 東海道LUG一般参加者です
• 決して逸般ではありません!!
• 元はハードウェアで画像処理をやっていましたが、現在は組み込み屋を
やっています
• たまに背広を着てLinux/組み込み系のイベントに出没することがあります
• Fireduck OSの開発プロジェクトに参加しています
• 今日はその発表です
• GitHub
• https://github.com/watatuki
- 6.
Fireduck OSで目指したい物
• FireduckOSはタブレット向けLinuxディストリビューションを目指す
• タブレット向けのUIを採用/開発する
• タブレットの物理サイズ(7~9インチ)に合わせたUI
• ソフトキーボード等ディスクトップLinuxにはない機能の搭載
• Linuxのアプリケーションが動かせる
• ウインドウマネージャはX.orgかwayland?
• ARMタブレットはGPUドライバが入手できない事が多いので、GPUがなく
ても使えるように
• コマンドラインはどうしよう
• いろいろなタブレットに乗せられるようにしたい
• Intelタブレット最大の課題、UEFI32 bootに対応する
• ARMタブレットはbootローダやカーネルがばらばらなので、個体にあった
動作イメージを作ることができるようにする
- 7.
Fireduck OSの構成管理
• FireduckOSは、ビルドシステムにYocto/Openembededを採用
• ベースは2016夏のLILO東海道で発表したrepo/bitbakeの階層管理構成
• https://www.slideshare.net/wata2ki/yoctodistro
• 複数のボード(intel-mobile, jetson-tk1, allwiner)に対応できるよう、セット
アップスクリプトを追加
• ベース(パクりもと)は AGL
• https://gerrit.automotivelinux.org/gerrit/gitweb?p=AGL/meta-
agl.git;a=tree;f=scripts;h=29553138674570a102f7e4c5d3c0a75e549da9a1;hb=HEAD
• ビルドまで4コマンド
• repo init -u https://github.com/TokaidoLUG/fireduckos
• repo sync
• source meta-fireduck/scripts/fireducksetup.sh -m intel-mobile-64
• bitbake fireduck-image
- 8.
Fireduck OSのレイヤアーキテクチャ
• FireduckOSは、Yoctoをベースに汎用レイヤを束ねる構成
• meta-openemmbeded
• 汎用パッケージの集合体
• meta-browser
• web browserのレイヤで、firefoxのビルドに使用
• meta-efl-rebuilding
• メンテナンスが止まっているenlightenment/eflのサポートレイヤmeta-eflを再構築
して最新バージョンに追従するようにしたもの
• BSP-Layer
• meta-intelやmeta-jetson-tk1等ボード依存のカーネルやイメージ作成機能を提供
• meta-fireduck
• Fireduck OSの共通構成や共通設定を担う
• Fireduck-bsplayer
• 各ボード向けのFireduck OS カスタム設定を担う
meta-openemmbeded
meta-efl-rebuilding
meta-browser
BSP-layer
・・・
Fireduck OS
Fireduck OSプロジェクトでは、
Fireduck OS固有レイヤ、必要と
する汎用レイヤの2種類を開発
対象としている
- 9.
Fireduck OSのソフトアーキテクチャ
Fireduck core
Sys.Management
systemd
cgroups
Graphics
X.org
Sound Network
OpenGL/GLX
GLES/EGL
ALSA(back end)
Jack audio Network
Manager
Media
gstreamer
libav
Fireduck Framework
Window Managemer
Enlightenment
UI ToolKit
dfl/rpm
efl
GTK
Web
Gecko Embedded
runtime
ruby
Fireduck Application
mikutter
始まったばかりなので、
まだまだです!
- 10.
Fireduck OSの悩み事
• Systemdvs Sysvinit
• 機能を考えるとInitはsystemdになるが、jounaldが邪魔(なんでもかんでも
吸い込むから重いよ!!)など、課題も多い
• Enlightenment-mobile
• GNOME/KDEではないものを、ということでEnlightenmentを採用したが、
mobileプロファイルが存在するだけだった(壁紙が表示されるだけのディ
スクトップ)。
• Jack vs Pulseaudio
• Pulseaudoは個人的に苦労したことがあるのでJackを選択。ただ、
Enlightenmentと連動しなさそう&適当なUIがない。。。
• OSMのアプリなんかないかな。。。
• こんなのがあるよ、とかあれば教えてください!
- 11.
ケーススタディ UEFI32 -1
•Fireduck OSの開発アイテムで、Yocto/oeでUEFI 32のサポートがある
• UEFI 32サポートのために必要な開発項目
• bootia32.efiのビルド
• grub-efiの32bitビルド
• 課題:ターゲットが64bit(AMD64)の状態で32bit Buildが必要
• Yocto/OEでは、レシピはアーキテクチャ設定を持たず、設定ファイル
(conf)でアーキテクチャを決める
• 無理やりレシピにパッチを当てれば32bitビルドができなくはないが、今
度は64bitのビルドができなくなる
• Multilib拡張を使用する
- 12.
ケーススタディ UEFI32 -2
•multilibとは?
• Linuxの64bit環境で32bitのアプリケーションをビルド・実行するために用
いる、32bitライブラリ
• Yocto/OEのmultilib拡張
• Yocto/OEでmultilib環境をつくるのに使う機能
• つまり、64bit環境で32bitができる環境
• 参考:
• http://www.yoctoproject.org/docs/current/dev-manual/dev-
manual.html#combining-multiple-versions-library-files-into-one-image
これを使えばできるんじゃね??
- 13.
ケーススタディ UEFI32 -3
•multilib設定を置くのに適しているのはMACHNE設定なので、新規にmeta-
intel-mobileを作成
• Intelが作っているmeta-intelを拡張するレイヤとして作成
• 本当はmeta-intlのいろいろなレシピをカスタムして使うつもりだったのですが、
現状MACHINE設定しかないレイヤになってしまっている。。。
• UEFI32をサポートするMACHINE設定はintel-mobile-64.conf
• multilibのための設定
require conf/machine/intel-corei7-64.conf
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
MACHINE_EXTRA_RRECOMMENDS += " lib32-grub-efi lib32-systemd-boot "
EFI_PROVIDER = "grub-efi"
Intel-corei7-64(meta-intel)の設定を継承
multilibの設定をインポート
multilibのプレフィクス(lib32)を指定
multilib(lib32)をビルドする場合に使うアー
キテクチャ設定をx86に設定
grub-efiとsystemd-bootのlib32版をintel-mobile-64を選択
した場合に常にビルド・インストールする設定
- 14.
ケーススタディ UEFI32 -3
•試行結果
• lib32を使うことで、bootia32.efiとgrub-efiの32bitビルドに成功
• 課題
• ターゲットイメージのうち、wicイメージ以外にはbootia32.efiとgrub-efiが
インストールされない
• wicはmeta-intelの追加機能なのでイメージを作る仕組みを解析して、他の形
式でもインストールできる必要がある
• ビルドが遅い
• 32bitビルドをするために、glibcなどのビルドに時間がかかるコンポーネン
トがビルド対象になってしまうため、ビルド時間が長くなってしまう
• 不要なものが極力ビルドされないようにする調査が必要
• 実例と参考
• 今回のレイヤはgithubで公開中
• https://github.com/TokaidoLUG/meta-intel-mobile
• 最近LineoさんがYoctoのコミュニティを作っており、参考になります
• https://yoctobbq.lineo.co.jp/
- 15.