Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2

Share

Download to read offline

Fireduck

Download to read offline

Fireduck OS project

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Fireduck

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

    Sep. 4, 2017
  • kapper1224

    Aug. 27, 2017

Fireduck OS project

Views

Total views

2,942

On Slideshare

0

From embeds

0

Number of embeds

1,445

Actions

Downloads

4

Shares

0

Comments

0

Likes

2

×