Top Banner
T T izen porting izen porting とその実例 とその実例 T T izen izen ちゃん(仮) ちゃん(仮) 2012.12.15 (Sat) 2012.12.15 (Sat) Yuya Adachi (@moguriso) Yuya Adachi (@moguriso)
61

超勉強会 2012

Oct 31, 2014

Download

Technology

Yuya Adachi

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 超勉強会 2012

TTizen portingizen porting

入入門門とその実例とその実例

とと TTizenizen ちゃん(仮)ちゃん(仮)

2012.12.15 (Sat)2012.12.15 (Sat)Yuya Adachi (@moguriso)Yuya Adachi (@moguriso)

Page 2: 超勉強会 2012

2/59

自己紹介自己紹介

● Yuya Adachi(@moguriso)Yuya Adachi(@moguriso)● ブログ:ブログ: http://moguriqt.hatenablog.jphttp://moguriqt.hatenablog.jp

● DeviceDriverDeviceDriver 書いたり書いたり– GPU, UART, SPI, I2C...GPU, UART, SPI, I2C...

● AppApp のの AndroidAndroid 移植など移植など

Page 3: 超勉強会 2012

3/59

アジェンダアジェンダ

● 移植までの背景移植までの背景● Tizen Porting ...Tizen Porting ... 起動編起動編● Tizen Porting ...Tizen Porting ... 画面編画面編● 実例実例● まとめ、今後についてまとめ、今後について

Page 4: 超勉強会 2012

4/59

移植の背景移植の背景

Page 5: 超勉強会 2012

5/59

20112011 年度〜年度〜

● 関西で勉強会を開始関西で勉強会を開始– 会社の施設、設備を借り始めた会社の施設、設備を借り始めた

● OSCOSC への参加も開始への参加も開始– 平日でも仕事扱い平日でも仕事扱い– 交通費交通費も貰えるようになったも貰えるようになった

● 東は東京、西は広島まで東は東京、西は広島まで

Page 6: 超勉強会 2012

6/59

20122012 年度〜年度〜

社内会議にて社内会議にて

上司「上司「今年は成果を求めていく今年は成果を求めていく !!. . .. . . 成果が出ないと成果が出ないと

  どうなるって?  どうなるって?」」

Page 7: 超勉強会 2012

7/59

20122012 年度〜年度〜

上司「上司「 (( お前がウロウロするお前がウロウロする ))  交通費とか出なくなるっ  交通費とか出なくなるっ    てことだよ!?てことだよ!?」」

(※)カッコ内は私の妄想 (?)です、たぶん

Page 8: 超勉強会 2012

8/59

20122012 年度〜年度〜

(( ;゜;゜ ДД ゜゚ ))

Page 9: 超勉強会 2012

9/59

20122012 年度〜年度〜

● 機材を調達機材を調達 (( 借用借用 ))– LinuxLinux が動くことは知っていたが動くことは知っていた– 環境に触ったこともあった環境に触ったこともあった– 会社の先輩会社の先輩 を巻き込んだを巻き込んだにも手助けをにも手助けを

お願いしたお願いした– 20122012 年年 77 月後半から開始月後半から開始

Page 10: 超勉強会 2012

10/59

TizenPortingTizenPorting〜起動編〜〜起動編〜

Page 11: 超勉強会 2012

11/59

基本方針基本方針

● 大前提は大前提は TizenTizen が動くことが動くこと– 動くかどうかもわからない動くかどうかもわからない

● TizenTizen が動いてれば後はどうが動いてれば後はどうでもなると思っていたでもなると思っていた– ““ 動くこと”が正義!動くこと”が正義!

Page 12: 超勉強会 2012

12/59

環境面の整理環境面の整理

FileSystem

tftp で uboot, Linux kernel をロードしNFS を利用して rootfs を mount

uboot

Page 13: 超勉強会 2012

13/59

移植作業(1)移植作業(1)

● u-boot (bootloader)u-boot (bootloader)● LinuxKernel (2.6.x )LinuxKernel (2.6.x )

– BSPBSP でで patchpatch 提供提供

らくらく出来た!

...そもそも、 patchを当てて buildしただけ ...

Page 14: 超勉強会 2012

14/59

移植作業(移植作業( 1.11.1 ))

2012/082012/08 前半前半

先輩「先輩「動いたでー動いたでー」」

Page 15: 超勉強会 2012

15/59

移植作業(移植作業( 1.21.2 ))

速っ速っ !(!( ;゜;゜ ДД ゜゚ ))

Page 16: 超勉強会 2012

16/59

移植作業(移植作業( 1.31.3 ))

mer#

Page 17: 超勉強会 2012

17/59

移植作業(移植作業( 1.41.4 ))

私 「それ私 「それ TizenTizen ちゃうちゃう MerMer や!や!   しかも、   しかも、なんでなんで CUICUI ?」?」

先輩「だって先輩「だって KernelKernel にパッチがにパッチが      当たってる当たってるみたいでみたいで画面が画面が   でーへん!   でーへん!」」

(※)実際にMerは Kernelに patchが  当たっている (?)みたいです

Page 18: 超勉強会 2012

18/59

移植作業(移植作業( 1.51.5 ))

● MerMer は諦めては諦めて TizenTizen に環境をに環境を移行してもらう移行してもらう

「折角環境作って、「折角環境作って、 KernelKernelブートする所まブートする所まで行ったのにまた1からやり直しや」で行ったのにまた1からやり直しや」

とかブツブツ言われたるも、なんとかお願いして Tizenに気分を代えてもらった。

Page 19: 超勉強会 2012

19/59

移植作業(移植作業( 1.61.6 ))

2012/082012/08 半ば半ば

先輩「先輩「起動するように起動するように   なったで   なったで」」

Page 20: 超勉強会 2012

20/59

移植作業(移植作業( 1.71.7 ))

************************************************************●* SAMSUNG LINUX PLATFORM *●************************************************************●

●xx.xx.xx.xx login: root●-sh-4.1#

Page 21: 超勉強会 2012

21/59

移植作業(移植作業( 1.81.8 ))

やっぱりやっぱり CUICUI かか !!(( ;゜;゜ ДД ゜゚ ))

Scratch Build System(SBS)で生成された rootfsをそのまま NFSでmountさせていました。それまでは全く動いていなかったので” Sumsung”と出ただけでかなり感動しました

Page 22: 超勉強会 2012

22/59

移植作業(移植作業( 22 ))

● rootroot ファイルシステムの構築ファイルシステムの構築– micmic コマンドを利用コマンドを利用 (fs(fs 指定指定 ))– NFSNFS でで mountmount

#mic create fs lb-tizen_20120617.2.ks -o .

動くようになってきて、面白くなってきたので、このあたりから自分でも手を動かすようになりました

Page 23: 超勉強会 2012

23/59

移植作業(移植作業( 2.12.1 ))

rootfsを差し替えただけで、スプラッシュが出るようになった。これはモチベーションがとても上がった

Page 24: 超勉強会 2012

24/59

移植作業(移植作業( 2.22.2 ))

この時点ではエラーが出ていて、 Tizenのメニュー画面は出ていなかった。マウスカーソルも出ていなかった。ともあれ、先輩のいない所で動かして画面が出たので、先輩にすごく自慢した

Page 25: 超勉強会 2012

25/59

移植作業(移植作業( 2.32.3 ))

2012/082012/08 後半後半

先輩「先輩「メニュー出たで。メニュー出たで。   あと、マウスカーソルも   あと、マウスカーソルも   出るようにしたったで〜   出るようにしたったで〜」」

実際にはフレームバッファを制御するドライバにも手を入れています

Page 26: 超勉強会 2012

26/59

移植作業(移植作業( 2.42.4 ))

● フルパスでコマンド指定するとフルパスでコマンド指定するとアプリが起動することが判明アプリが起動することが判明

#/opt/apps/org.tizen.menu/bin/menu

無謀にもこの辺りから展示会に出すことを画策し始めました。改めて考えると、怖いもの知らずでした。。。

Page 27: 超勉強会 2012

27/59

移植作業(移植作業( -- ))

2012/092012/09 前半前半 私 「問題はありますが 私 「問題はありますが動い動い

    てます    てます。。         TizenTizen が動いたが動いたというという    売りで行きましょう!」    売りで行きましょう!」 営業「あ、そう」 営業「あ、そう」

Page 28: 超勉強会 2012

28/59

移植作業(移植作業( -- ))

2012/092012/09 前半前半某社様「某社様「 GPUGPU アクセラレーションアクセラレーション

    が効いてないと出展して    が効いてないと出展して    も意味無いですね    も意味無いですね」」営業「そうですか。営業「そうですか。     (( 私に向かって)私に向かって)で、で、いつできる?いつできる?」」

Page 29: 超勉強会 2012

29/59

移植作業(移植作業( -- ))

軽っ軽っ !(!( ;゜;゜ ДД ゜゚ ))(※)フィクションです。「できるだけ頑張れ」的なことは言われましたが ...

Page 30: 超勉強会 2012

30/59

TizenPortingTizenPorting〜画面編〜〜画面編〜

Page 31: 超勉強会 2012

31/59

移植作業(移植作業( 33 ))

● H/WH/W アクセラレーション対応アクセラレーション対応– Tizen MobileTizen Mobile 1.0の1.0の rootfsrootfs ははソフトウェアレンダリングで動いていたソフトウェアレンダリングで動いていた

– X11X11 対応の対応の GPUGPU ドライバとか必要なものドライバとか必要なもの多数多数

# /opt/apps/org.tizen.browser/bin/browser ●CRI<2459>:elementary elm_w in.c:1869 elm_w in_add() OpenGL engine creation failed.

Page 32: 超勉強会 2012

32/59

移植作業(移植作業( 3.13.1 ))

Page 33: 超勉強会 2012

33/59

移植作業(移植作業( 3.23.2 ))

● EVAS/ECORE/EINA/EET/EVAS/ECORE/EINA/EET/ELEMENTARY...ELEMENTARY...EFLEFL 周りのモジュールを大半周りのモジュールを大半OpenGL(ES)OpenGL(ES) 対応にリビルド対応にリビルド

続きはWeb(http://moguriqt.hatenablog.jp)で

Page 34: 超勉強会 2012

34/59

移植作業(移植作業( 3.x3.x ))

● EFL(evas)EFL(evas) には既にには既に SGXSGX をを利用するパスがあった利用するパスがあった

● 基本的にビルドオプションを変基本的にビルドオプションを変更してリビルドしただけ更してリビルドしただけ

Page 35: 超勉強会 2012

35/59

移植作業(移植作業( 3.33.3 ))

● 劇的ビフォーアフター劇的ビフォーアフター– Before : 0fpsBefore : 0fps

● 11 フレームにフレームに 55 〜〜 66 秒秒 (0.25fps)(0.25fps)

– After : 7fpsAfter : 7fps● 3030 倍以上の高速化!倍以上の高速化!

Page 36: 超勉強会 2012

36/59

移植作業(移植作業( 3.43.4 ))

((  ̄∇ ̄ ̄∇ ̄ )v)v ドヤッドヤッ !!

Page 37: 超勉強会 2012

37/59

移植作業(移植作業( 3.53.5 ))

2012/092012/09 半ば半ば   AA 社様「社様「 7fps...7fps... 遅いですね!遅いですね!」」   BB 社様「社様「遅いですね!遅いですね!」」 上司「ええ、 上司「ええ、遅いですね!遅いですね!」」 営業「はい、 営業「はい、遅いですね!遅いですね!」」

(※)フィクションです。

Page 38: 超勉強会 2012

38/59

移植作業(移植作業( 3.43.4 ))

((  ̄□ ̄; ̄□ ̄; ) )

Page 39: 超勉強会 2012

39/59

移植作業(移植作業( 3.53.5 ))

2012/092012/09 半ば半ば   AA 社様「ハイエンドモデルを社様「ハイエンドモデルを     貸与します     貸与します」」   BB 社様「社様「1ヶ月あれば出来ま1ヶ月あれば出来ま     す?     す?」」 上司「はい!」 上司「はい!」 営業「はい!」 営業「はい!」 (※)フィクションです。

Page 40: 超勉強会 2012

40/59

TargetBoard SpecTargetBoard Spec

MIDDLEMIDDLERANGERANGEBOARDBOARD

CPU Cortex-A9 800MHz (Dual Core)

メモリ 1GBGPU PowerVR SGX 540

Page 41: 超勉強会 2012

41/59

DevPhone SpecDevPhone Spec

CPU Cortex-A9 1.2GHz (Dual Core)

メモリ 1GBGPU Mali-400MP

Page 42: 超勉強会 2012

42/59

DevPhoneDevPhone で動かすとで動かすと

19fps!19fps!

Page 43: 超勉強会 2012

43/59

TargetBoard SpecTargetBoard Spec

HIGHHIGHENDEND

BOARDBOARD

CPU Cortex-A9 1.0GHz (Quad Core)

メモリ 1GBGPU PowerVR SGX 543MP2

Page 44: 超勉強会 2012

44/59

H ighEndBoardH ighEndBoard

18fps!18fps!

Page 45: 超勉強会 2012

45/59

移植作業(移植作業( 3.x3.x ))

● 劇的ビフォーアフター劇的ビフォーアフター (2)(2)– Before : 7fpsBefore : 7fps– After : 18fpsAfter : 18fps

● 実に実に 2.572.57 倍の高速化!倍の高速化!

Page 46: 超勉強会 2012

46/59

移植作業(移植作業( 3.x3.x ))

この後も、紆余曲折がありこの後も、紆余曲折があり多くの方に多々ご迷惑を多くの方に多々ご迷惑を

お掛け致しましたお掛け致しました m(_ _)mm(_ _)m

Page 47: 超勉強会 2012

47/59

実例実例

Page 48: 超勉強会 2012

48/59

Page 49: 超勉強会 2012

49/59

まとめまとめ

Page 50: 超勉強会 2012

50/59

まとめまとめ

● ”” 動く”レベルであれば比較的容動く”レベルであれば比較的容易に移植可能だった易に移植可能だった– ホボ素のホボ素の LinuxLinux そのままそのまま

● ハードウェア機能を有効化するにハードウェア機能を有効化するにはドライバやソースの入手でハードはドライバやソースの入手でハードルは高かったルは高かった(( 全体で全体で 2w × 22w × 2 人位)人位)

Page 51: 超勉強会 2012

51/59

今後について今後について

Page 52: 超勉強会 2012

52/59

今後について今後について

● 3D3D 描画に未だ問題がある描画に未だ問題がある– 2.0a2.0a だと色々変わってるだと色々変わってる– 直す直す

● 車載向け機能の追加車載向け機能の追加– Tizen IV I , QtTizen IV I , Qt– GENIVI OSSGENIVI OSS

Page 53: 超勉強会 2012

54/59

TizenTizen ちゃんちゃん(仮)(仮)

Page 54: 超勉強会 2012

55/59

発案は西のきつねこと発案は西のきつねこと@fox_twitting@fox_twitting さんさん

Page 55: 超勉強会 2012

56/59

絵師は絵師は@tiaritiari@tiaritiari さんさん

Page 56: 超勉強会 2012

57/59

名前募集中です!

Page 57: 超勉強会 2012

58/59

打倒クラウディアたん!

Page 58: 超勉強会 2012

59/59

フォクすけくんにも負けません!!

Page 59: 超勉強会 2012

60/59

名前募集中です!大事な事だから2回言いました!

Page 60: 超勉強会 2012

61/59

Q & AQ & A

Page 61: 超勉強会 2012

62/59

ご清聴ご清聴ありがとうございましたありがとうございました