SlideShare uma empresa Scribd logo
1 de 15
Fireduck OS
東海道LUG有志によるLinuxディストリビューションプロジェクト
事の始まりは
• 事の始まりは、東海道LUG懇親会での3人の雑談
プライバシー保護のため、名前を伏せてお送りしています。
モバイル向けのLinuxディストロがAndroidだけでは
面白くない。タブレット向けを作りたい!!
某おーぷんこここんメンテナー
某タブレットでLinuxを動かす第一人者
某組み込みLinux/Yoctoマニア
とりあえず基盤づくり
• GitHubに、東海道LUGのorganizationを(勝手に)作成
• 事のはじまりの3人が全員GitHubアカウントを持っていたので、共同開発
の場としてorganizationを作成
• 共有リポジトリは、メンバーならだれでも直接pushできる点が良い
• メンテナーがいちいちプルリクエストを処理しなくていい
• Tokaido LUG関係者の参加を募集中です
• 希望者には招待を飛ばしますので教えてください
• Organizationのページから直接参加リクエストを出せるようにする方法を
知っていたら教えてください。。。
なぜFireduck OSか?
• 東海道LUGといえば○○焼き
• きつね焼き?
• Fire fox ? → どこかで聞いたことがある・・・・
• 鹿焼き?
• Fire deer ? → なんかdeerがビールみたいだ
• アヒル焼き?
• Fire duck ? → これだ!
そういえば
• 自己紹介
• 名前: wata2ki (watatuki)
• 東海道LUG一般参加者です
• 決して逸般ではありません!!
• 元はハードウェアで画像処理をやっていましたが、現在は組み込み屋を
やっています
• たまに背広を着てLinux/組み込み系のイベントに出没することがあります
• Fireduck OSの開発プロジェクトに参加しています
• 今日はその発表です
• GitHub
• https://github.com/watatuki
Fireduck OSで目指したい物
• Fireduck OSはタブレット向けLinuxディストリビューションを目指す
• タブレット向けのUIを採用/開発する
• タブレットの物理サイズ(7~9インチ)に合わせたUI
• ソフトキーボード等ディスクトップLinuxにはない機能の搭載
• Linuxのアプリケーションが動かせる
• ウインドウマネージャはX.orgかwayland?
• ARMタブレットはGPUドライバが入手できない事が多いので、GPUがなく
ても使えるように
• コマンドラインはどうしよう
• いろいろなタブレットに乗せられるようにしたい
• Intelタブレット最大の課題、UEFI32 bootに対応する
• ARMタブレットはbootローダやカーネルがばらばらなので、個体にあった
動作イメージを作ることができるようにする
Fireduck OSの構成管理
• Fireduck OSは、ビルドシステムに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
Fireduck OSのレイヤアーキテクチャ
• Fireduck OSは、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種類を開発
対象としている
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
始まったばかりなので、
まだまだです!
Fireduck OSの悩み事
• Systemd vs Sysvinit
• 機能を考えるとInitはsystemdになるが、jounaldが邪魔(なんでもかんでも
吸い込むから重いよ!!)など、課題も多い
• Enlightenment-mobile
• GNOME/KDEではないものを、ということでEnlightenmentを採用したが、
mobileプロファイルが存在するだけだった(壁紙が表示されるだけのディ
スクトップ)。
• Jack vs Pulseaudio
• Pulseaudoは個人的に苦労したことがあるのでJackを選択。ただ、
Enlightenmentと連動しなさそう&適当なUIがない。。。
• OSMのアプリなんかないかな。。。
• こんなのがあるよ、とかあれば教えてください!
ケーススタディ 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拡張を使用する
ケーススタディ 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
これを使えばできるんじゃね??
ケーススタディ 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を選択
した場合に常にビルド・インストールする設定
ケーススタディ 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/
参加をお待ちしております!

Mais conteúdo relacionado

Mais procurados

リリースされたばかりの『Ubuntu 16.04LTS』のすべて
リリースされたばかりの『Ubuntu 16.04LTS』のすべてリリースされたばかりの『Ubuntu 16.04LTS』のすべて
リリースされたばかりの『Ubuntu 16.04LTS』のすべてHiroshi Chonan
 
イマドキのUbuntu活用法
イマドキのUbuntu活用法イマドキのUbuntu活用法
イマドキのUbuntu活用法Hiroshi Chonan
 
WindowsでGitを使う際のベストプラクティス
WindowsでGitを使う際のベストプラクティスWindowsでGitを使う際のベストプラクティス
WindowsでGitを使う際のベストプラクティスRyo Sumasu
 
Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)Tadahiro Ishisaka
 
AzureでopenSUSE Leap42.1が使えるよ!
AzureでopenSUSE Leap42.1が使えるよ!AzureでopenSUSE Leap42.1が使えるよ!
AzureでopenSUSE Leap42.1が使えるよ!Kento Kawakami
 
Windows環境でのgitまとめ(2016.1)
Windows環境でのgitまとめ(2016.1)Windows環境でのgitまとめ(2016.1)
Windows環境でのgitまとめ(2016.1)Tadahiro Ishisaka
 
秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法Masahiko Hashimoto
 

Mais procurados (7)

リリースされたばかりの『Ubuntu 16.04LTS』のすべて
リリースされたばかりの『Ubuntu 16.04LTS』のすべてリリースされたばかりの『Ubuntu 16.04LTS』のすべて
リリースされたばかりの『Ubuntu 16.04LTS』のすべて
 
イマドキのUbuntu活用法
イマドキのUbuntu活用法イマドキのUbuntu活用法
イマドキのUbuntu活用法
 
WindowsでGitを使う際のベストプラクティス
WindowsでGitを使う際のベストプラクティスWindowsでGitを使う際のベストプラクティス
WindowsでGitを使う際のベストプラクティス
 
Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)
 
AzureでopenSUSE Leap42.1が使えるよ!
AzureでopenSUSE Leap42.1が使えるよ!AzureでopenSUSE Leap42.1が使えるよ!
AzureでopenSUSE Leap42.1が使えるよ!
 
Windows環境でのgitまとめ(2016.1)
Windows環境でのgitまとめ(2016.1)Windows環境でのgitまとめ(2016.1)
Windows環境でのgitまとめ(2016.1)
 
秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法秘伝:クラウドに開発環境をえいっ!と構築する方法
秘伝:クラウドに開発環境をえいっ!と構築する方法
 

Destaque

最近やった事とこれからやりたい事 2016年度年末版
最近やった事とこれからやりたい事 2016年度年末版最近やった事とこれからやりたい事 2016年度年末版
最近やった事とこれからやりたい事 2016年度年末版Netwalker lab kapper
 
ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃monochrojazz
 
Beginner for Power Control on Linux はじめてのLinuxバッテリー省エネ設定
Beginner for Power Control on Linux  はじめてのLinuxバッテリー省エネ設定 Beginner for Power Control on Linux  はじめてのLinuxバッテリー省エネ設定
Beginner for Power Control on Linux はじめてのLinuxバッテリー省エネ設定 Netwalker lab kapper
 
lilo.linux.or.jp の話 (2017年8月)
lilo.linux.or.jp の話 (2017年8月)lilo.linux.or.jp の話 (2017年8月)
lilo.linux.or.jp の話 (2017年8月)Kazuhiro Nishiyama
 
シンガポールFossasia2016に初参加してみた I tried the first time participate in the Singapor...
シンガポールFossasia2016に初参加してみた I tried the first time participate in the Singapor...シンガポールFossasia2016に初参加してみた I tried the first time participate in the Singapor...
シンガポールFossasia2016に初参加してみた I tried the first time participate in the Singapor...Netwalker lab kapper
 
Debian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TADebian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TANetwalker lab kapper
 
lilo.linux.or.jp を wheezy から jessie にあげた話
lilo.linux.or.jp を wheezy から jessie にあげた話lilo.linux.or.jp を wheezy から jessie にあげた話
lilo.linux.or.jp を wheezy から jessie にあげた話Kazuhiro Nishiyama
 
AllwinnerタブレットのOSを作ってみる(中編)
AllwinnerタブレットのOSを作ってみる(中編)AllwinnerタブレットのOSを作ってみる(中編)
AllwinnerタブレットのOSを作ってみる(中編)shimadah
 
「やりなおし方について」Linuxブート情報の消し方
「やりなおし方について」Linuxブート情報の消し方「やりなおし方について」Linuxブート情報の消し方
「やりなおし方について」Linuxブート情報の消し方Masataka Kondo
 
色々なコントローラでRaspberryPiを動かそう
色々なコントローラでRaspberryPiを動かそう色々なコントローラでRaspberryPiを動かそう
色々なコントローラでRaspberryPiを動かそうmonochrojazz
 
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るXRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るmonochrojazz
 
#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket
#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket
#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-PocketNetwalker lab kapper
 
鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group
鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group
鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users GroupNetwalker lab kapper
 
OSC沖縄2017と沖縄観光 #osc17ok Opensource Conference Okinawa2017
OSC沖縄2017と沖縄観光 #osc17ok Opensource Conference Okinawa2017 OSC沖縄2017と沖縄観光 #osc17ok Opensource Conference Okinawa2017
OSC沖縄2017と沖縄観光 #osc17ok Opensource Conference Okinawa2017 Netwalker lab kapper
 
音ゲーコントローラとLinux Input Subsystem
音ゲーコントローラとLinux Input Subsystem音ゲーコントローラとLinux Input Subsystem
音ゲーコントローラとLinux Input Subsystemmonochrojazz
 
MSYS2使いはじめました
MSYS2使いはじめましたMSYS2使いはじめました
MSYS2使いはじめましたHiro H.
 
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...Netwalker lab kapper
 
あひるに焼かれた話と今後のおーぷん万葉について
あひるに焼かれた話と今後のおーぷん万葉についてあひるに焼かれた話と今後のおーぷん万葉について
あひるに焼かれた話と今後のおーぷん万葉についてMasahiko Hashimoto
 
海外イベントの可能性を探ろう
海外イベントの可能性を探ろう海外イベントの可能性を探ろう
海外イベントの可能性を探ろうMasataka Kondo
 
openSUSE42.2 on Windows Tablet T100TA
openSUSE42.2 on Windows Tablet T100TAopenSUSE42.2 on Windows Tablet T100TA
openSUSE42.2 on Windows Tablet T100TANetwalker lab kapper
 

Destaque (20)

最近やった事とこれからやりたい事 2016年度年末版
最近やった事とこれからやりたい事 2016年度年末版最近やった事とこれからやりたい事 2016年度年末版
最近やった事とこれからやりたい事 2016年度年末版
 
ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃
 
Beginner for Power Control on Linux はじめてのLinuxバッテリー省エネ設定
Beginner for Power Control on Linux  はじめてのLinuxバッテリー省エネ設定 Beginner for Power Control on Linux  はじめてのLinuxバッテリー省エネ設定
Beginner for Power Control on Linux はじめてのLinuxバッテリー省エネ設定
 
lilo.linux.or.jp の話 (2017年8月)
lilo.linux.or.jp の話 (2017年8月)lilo.linux.or.jp の話 (2017年8月)
lilo.linux.or.jp の話 (2017年8月)
 
シンガポールFossasia2016に初参加してみた I tried the first time participate in the Singapor...
シンガポールFossasia2016に初参加してみた I tried the first time participate in the Singapor...シンガポールFossasia2016に初参加してみた I tried the first time participate in the Singapor...
シンガポールFossasia2016に初参加してみた I tried the first time participate in the Singapor...
 
Debian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TADebian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TA
 
lilo.linux.or.jp を wheezy から jessie にあげた話
lilo.linux.or.jp を wheezy から jessie にあげた話lilo.linux.or.jp を wheezy から jessie にあげた話
lilo.linux.or.jp を wheezy から jessie にあげた話
 
AllwinnerタブレットのOSを作ってみる(中編)
AllwinnerタブレットのOSを作ってみる(中編)AllwinnerタブレットのOSを作ってみる(中編)
AllwinnerタブレットのOSを作ってみる(中編)
 
「やりなおし方について」Linuxブート情報の消し方
「やりなおし方について」Linuxブート情報の消し方「やりなおし方について」Linuxブート情報の消し方
「やりなおし方について」Linuxブート情報の消し方
 
色々なコントローラでRaspberryPiを動かそう
色々なコントローラでRaspberryPiを動かそう色々なコントローラでRaspberryPiを動かそう
色々なコントローラでRaspberryPiを動かそう
 
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るXRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
 
#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket
#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket
#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket
 
鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group
鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group
鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group
 
OSC沖縄2017と沖縄観光 #osc17ok Opensource Conference Okinawa2017
OSC沖縄2017と沖縄観光 #osc17ok Opensource Conference Okinawa2017 OSC沖縄2017と沖縄観光 #osc17ok Opensource Conference Okinawa2017
OSC沖縄2017と沖縄観光 #osc17ok Opensource Conference Okinawa2017
 
音ゲーコントローラとLinux Input Subsystem
音ゲーコントローラとLinux Input Subsystem音ゲーコントローラとLinux Input Subsystem
音ゲーコントローラとLinux Input Subsystem
 
MSYS2使いはじめました
MSYS2使いはじめましたMSYS2使いはじめました
MSYS2使いはじめました
 
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
 
あひるに焼かれた話と今後のおーぷん万葉について
あひるに焼かれた話と今後のおーぷん万葉についてあひるに焼かれた話と今後のおーぷん万葉について
あひるに焼かれた話と今後のおーぷん万葉について
 
海外イベントの可能性を探ろう
海外イベントの可能性を探ろう海外イベントの可能性を探ろう
海外イベントの可能性を探ろう
 
openSUSE42.2 on Windows Tablet T100TA
openSUSE42.2 on Windows Tablet T100TAopenSUSE42.2 on Windows Tablet T100TA
openSUSE42.2 on Windows Tablet T100TA
 

Semelhante a Fireduck

Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編NAKAOKU Takahiro
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 
一年ツイッター
一年ツイッター一年ツイッター
一年ツイッターXMLProJ2014
 
2014年の制作物報告
2014年の制作物報告2014年の制作物報告
2014年の制作物報告uu ymd
 
ニコニコアプリ開発
ニコニコアプリ開発ニコニコアプリ開発
ニコニコアプリ開発jz5 MATSUE
 
Yapf2013
Yapf2013Yapf2013
Yapf2013l_b__
 
Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Takahiro Fujiwara
 
Linuxすらはじめての初学者がROSをやるにあたり突っ掛かったところ
 Linuxすらはじめての初学者がROSをやるにあたり突っ掛かったところ Linuxすらはじめての初学者がROSをやるにあたり突っ掛かったところ
Linuxすらはじめての初学者がROSをやるにあたり突っ掛かったところNatsukiMatsunaga
 
TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)Kiyoshi Ogawa
 
YoctoLTSについて調べてみた
YoctoLTSについて調べてみたYoctoLTSについて調べてみた
YoctoLTSについて調べてみたwata2ki
 
GitHub ActionsでiOSのCIを実現しよう
GitHub ActionsでiOSのCIを実現しようGitHub ActionsでiOSのCIを実現しよう
GitHub ActionsでiOSのCIを実現しようShinya Nakajima
 
Dockerで.NET Core 3.0 GUIアプリを動かす話
Dockerで.NET Core 3.0 GUIアプリを動かす話Dockerで.NET Core 3.0 GUIアプリを動かす話
Dockerで.NET Core 3.0 GUIアプリを動かす話You&I
 
Osc Kobe Slide20100313
Osc Kobe Slide20100313Osc Kobe Slide20100313
Osc Kobe Slide20100313hyogontech
 
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2Netwalker lab kapper
 
Nutanixログほいほい作ってみた.pdf
Nutanixログほいほい作ってみた.pdfNutanixログほいほい作ってみた.pdf
Nutanixログほいほい作ってみた.pdfsatorukondou
 
Git hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうかGit hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうかKakigi Katuyuki
 
Rubyでオリジナルプログラムをつくろう
RubyでオリジナルプログラムをつくろうRubyでオリジナルプログラムをつくろう
RubyでオリジナルプログラムをつくろうK K
 

Semelhante a Fireduck (20)

Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
Web IDE Gitpodを使ってTOPPES OSを体験してみようWeb IDE Gitpodを使ってTOPPES OSを体験してみよう
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
 
一年ツイッター
一年ツイッター一年ツイッター
一年ツイッター
 
2014年の制作物報告
2014年の制作物報告2014年の制作物報告
2014年の制作物報告
 
ニコニコアプリ開発
ニコニコアプリ開発ニコニコアプリ開発
ニコニコアプリ開発
 
Yapf2013
Yapf2013Yapf2013
Yapf2013
 
Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方
 
Linuxすらはじめての初学者がROSをやるにあたり突っ掛かったところ
 Linuxすらはじめての初学者がROSをやるにあたり突っ掛かったところ Linuxすらはじめての初学者がROSをやるにあたり突っ掛かったところ
Linuxすらはじめての初学者がROSをやるにあたり突っ掛かったところ
 
TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)TOPPERS as an IoT OS(kernel)
TOPPERS as an IoT OS(kernel)
 
YoctoLTSについて調べてみた
YoctoLTSについて調べてみたYoctoLTSについて調べてみた
YoctoLTSについて調べてみた
 
GitHub ActionsでiOSのCIを実現しよう
GitHub ActionsでiOSのCIを実現しようGitHub ActionsでiOSのCIを実現しよう
GitHub ActionsでiOSのCIを実現しよう
 
Dockerで.NET Core 3.0 GUIアプリを動かす話
Dockerで.NET Core 3.0 GUIアプリを動かす話Dockerで.NET Core 3.0 GUIアプリを動かす話
Dockerで.NET Core 3.0 GUIアプリを動かす話
 
Osc Kobe Slide20100313
Osc Kobe Slide20100313Osc Kobe Slide20100313
Osc Kobe Slide20100313
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
 
Nutanixログほいほい作ってみた.pdf
Nutanixログほいほい作ってみた.pdfNutanixログほいほい作ってみた.pdf
Nutanixログほいほい作ってみた.pdf
 
Git hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうかGit hubで雑誌記事を執筆するのは間違っているだろうか
Git hubで雑誌記事を執筆するのは間違っているだろうか
 
Rubyでオリジナルプログラムをつくろう
RubyでオリジナルプログラムをつくろうRubyでオリジナルプログラムをつくろう
Rubyでオリジナルプログラムをつくろう
 

Mais de wata2ki

鹿児島らぐハイブリッド開催への道
鹿児島らぐハイブリッド開催への道鹿児島らぐハイブリッド開催への道
鹿児島らぐハイブリッド開催への道wata2ki
 
Linuxの2038年問題を調べてみた
Linuxの2038年問題を調べてみたLinuxの2038年問題を調べてみた
Linuxの2038年問題を調べてみたwata2ki
 
YoctoでLTSディストリを作るには
YoctoでLTSディストリを作るにはYoctoでLTSディストリを作るには
YoctoでLTSディストリを作るにはwata2ki
 
しょしんしゃのためのhello world
しょしんしゃのためのhello worldしょしんしゃのためのhello world
しょしんしゃのためのhello worldwata2ki
 
Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る wata2ki
 
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくいARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくいwata2ki
 
パッチを投稿してみた話
パッチを投稿してみた話パッチを投稿してみた話
パッチを投稿してみた話wata2ki
 
Linux kernelのbspとupstream
Linux kernelのbspとupstreamLinux kernelのbspとupstream
Linux kernelのbspとupstreamwata2ki
 
Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみたwata2ki
 
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方wata2ki
 

Mais de wata2ki (10)

鹿児島らぐハイブリッド開催への道
鹿児島らぐハイブリッド開催への道鹿児島らぐハイブリッド開催への道
鹿児島らぐハイブリッド開催への道
 
Linuxの2038年問題を調べてみた
Linuxの2038年問題を調べてみたLinuxの2038年問題を調べてみた
Linuxの2038年問題を調べてみた
 
YoctoでLTSディストリを作るには
YoctoでLTSディストリを作るにはYoctoでLTSディストリを作るには
YoctoでLTSディストリを作るには
 
しょしんしゃのための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はわかりにくい
 
パッチを投稿してみた話
パッチを投稿してみた話パッチを投稿してみた話
パッチを投稿してみた話
 
Linux kernelのbspとupstream
Linux kernelのbspとupstreamLinux kernelのbspとupstream
Linux kernelのbspとupstream
 
Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみた
 
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
 

Fireduck

  • 3. とりあえず基盤づくり • GitHubに、東海道LUGのorganizationを(勝手に)作成 • 事のはじまりの3人が全員GitHubアカウントを持っていたので、共同開発 の場としてorganizationを作成 • 共有リポジトリは、メンバーならだれでも直接pushできる点が良い • メンテナーがいちいちプルリクエストを処理しなくていい • Tokaido LUG関係者の参加を募集中です • 希望者には招待を飛ばしますので教えてください • Organizationのページから直接参加リクエストを出せるようにする方法を 知っていたら教えてください。。。
  • 4. なぜFireduck OSか? • 東海道LUGといえば○○焼き • きつね焼き? • Fire fox ? → どこかで聞いたことがある・・・・ • 鹿焼き? • Fire deer ? → なんかdeerがビールみたいだ • アヒル焼き? • Fire duck ? → これだ!
  • 5. そういえば • 自己紹介 • 名前: wata2ki (watatuki) • 東海道LUG一般参加者です • 決して逸般ではありません!! • 元はハードウェアで画像処理をやっていましたが、現在は組み込み屋を やっています • たまに背広を着てLinux/組み込み系のイベントに出没することがあります • Fireduck OSの開発プロジェクトに参加しています • 今日はその発表です • GitHub • https://github.com/watatuki
  • 6. Fireduck OSで目指したい物 • Fireduck OSはタブレット向けLinuxディストリビューションを目指す • タブレット向けのUIを採用/開発する • タブレットの物理サイズ(7~9インチ)に合わせたUI • ソフトキーボード等ディスクトップLinuxにはない機能の搭載 • Linuxのアプリケーションが動かせる • ウインドウマネージャはX.orgかwayland? • ARMタブレットはGPUドライバが入手できない事が多いので、GPUがなく ても使えるように • コマンドラインはどうしよう • いろいろなタブレットに乗せられるようにしたい • Intelタブレット最大の課題、UEFI32 bootに対応する • ARMタブレットはbootローダやカーネルがばらばらなので、個体にあった 動作イメージを作ることができるようにする
  • 7. Fireduck OSの構成管理 • Fireduck OSは、ビルドシステムに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のレイヤアーキテクチャ • Fireduck OSは、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の悩み事 • Systemd vs 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/