MeeGo Seminar Winter Porting 20101209

1,679 views

Published on

MeeGo is one of the great advantage of "multi-platform" to demonstrate, MeeGo This session will introduce a porting MeeGo to Android device.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,679
On SlideShare
0
From Embeds
0
Number of Embeds
47
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MeeGo Seminar Winter Porting 20101209

  1. 1. マルチプラットフォームとマルチデバイスの実証 Mitsutaka Amano MIRACLE LINUX CORPORATION
  2. 2. 何やってる人? ● 執筆活動 ● 日経Linux ライター ● 情報処理学会 会誌「情報処理」10月号「Google Chrome OSの構成から見るセキュリティ対策」 ● 講演活動 ● Open Source Conference ● LinuxCon Japan 2010 ● Japan Linux Conference 2010 ● MeeGo関連各種等2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 2
  3. 3. 何やってる人? ● コミュニティ活動 ● Moblin – 開発ツールのメンテナ、日本語化作業、各種講演等 ● MeeGo – Netbook 日本語版イメージ公開 – 各種H/Wへの移植等 ● その他(仕事) ● 組込み系Linuxプラットフォームの開発 ● tweet on @mitsutaka_amano2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 3
  4. 4. 概要
  5. 5. 概要 ● MeeGoの特徴はいろいろあります ● アプリケーション開発APIの標準としてQt ● MTF(MeeGo Touch Framework) ● x86, ARMプラットフォームサホート ● Netbook, Handset, IVI, Tablet etc... ● OSSはメインラインの最新版を追従 ● Patch(特にKernel)はメインライン優先 ● など2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 5
  6. 6. 概要 ● マルチプラットフォームサホートの意味 ● x86 ... SSSE3命令セットサホート以上のIA – -m32 -march=core2 -mssse3 -mtune=atom -mfpmath=sse -fasynchronous-unwind-tables -fno-omit-frame-pointer – Atom, Core 2等 ● ARMv7(SoCs) – -fmessage-length=0 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=vfpv3 -mfloat-abi=softfp -D__SOFTFP__ – Freescale i.MX51 – TI OMAP3 – Marvell Dove/Armada – Qualcomm Snapdragon – NVIDIA Tegra – etc2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 6
  7. 7. 概要 ● 製品 ● Atom, Core 2 – ネットブック(Windows, Ubuntu, moblin)、ラップトップ(Windows)、IA 組み込みボード ● Freescale i.MX51 – SHARP Netwalker(Ubuntu) ● TI OMAP3 – Nokia N900(Maemo5) ● Marvell Dove/Armada – Quanta EBOX ● Quallcomm Snapdragon – NexusOne, HTC Desire..(Android) ● NVIDIA Tegra – LuvPad, Dynabook AZ..(Android)2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 7
  8. 8. 概要 ● 世の中にある多くの製品でMeeGoが動作する環境にある ● 様々なターゲットデバイスで利用できる これがMeeGoの特徴2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 8
  9. 9. テーマ ● どうやって移植するのか? ● 既に別のOSが動いている製品でも移植 可能なのか?2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 9
  10. 10. テーマ ● Android端末でMeeGoを動かしてみよう2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 10
  11. 11. Agenda ● Android端末の特徴を知る ● 移植方法 ● 移植例: NexusOne ● 今後の課題/他のケース ● まとめ2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 11
  12. 12. Android端末の特徴を知る
  13. 13. Android端末の特徴 ● MTD(Memory Technology Device)を使ってフラッシュメモリに パーティションを構築 例: Nexus One $ cat /proc/mtd dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 13
  14. 14. Android端末の特徴 ● Android独自の用途別に従ってパーティション分けされている 起動時のスプラッシュ画面等td Android復元/アップデート時の起動パー erasesize name ティション0 00020000 "misc" 通常の起動パーティション0 00020000 "recovery"0 00020000 "boot" 実行ファイル(Androidアプリ)、ライブラリ等 の読み込み用途のファイル0 00020000 "system"0 00020000 "cache" ダウンロードファイルのキャッシュ等0 00020000 "userdata" ユーザーの設定情報(ブックマーク、メール 、電話帳、接続済みAP情報等) 2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 14
  15. 15. Android端末の特徴 ● recovery, bootそれぞれにカーネルイメージ、カーネルパラ メータ、initrdが組み込まれている 起動時のスプラッシュ画面等 Android復元/アップデート時の起動パー ティション zImage + cmdline + initrd 通常の起動パーティション zImage + cmdline + initrd 実行ファイル(Androidアプリ)、ライブラリ等 の読み込み用途のファイル ダウンロードファイルのキャッシュ等 ユーザーの設定情報(ブックマーク、メール 、電話帳、接続済みAP情報等)2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 15
  16. 16. Android端末の特徴 ● initrdをルートファイルシステムとして利用する ● /proc, /dev, /systemなど各種必要なディレクトリをマウント zImage + cmdline + initrd フラッシュメモリ上のsystem, rootfs / rootfs ro ... cache, dataをyaffs2でマウント tmpfs /dev tmpfs rw ... devpts /dev/pts devpts rw ... proc /proc proc rw ... sysfs /sys sysfs rw ... /dev/block/mtdblock3 /system yaffs2 ro ... /dev/block/mtdblock4 /cache yaffs2 rw ... /dev/block/mtdblock5 /data yaffs2 rw ... /dev/block/mmcblk0p1 /mnt/sdcard vfat rw .... ... SDカードのマウント2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 16
  17. 17. 移植方法
  18. 18. 考え方 ● 二つの視点で考える ● カーネルのロード方法 – どこから起動できるのか? – どの起動方法がベストプラクティスか? ● ルートファイルシステムの場所 – どこに置けるか? How? – どれだけの容量が必要なのか? Where?2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 18
  19. 19. カーネルのロード方法:その1 ● boot領域を上書きする ● 電源ONでそのまま起動 ● 効果 – 端末単体で起動できる – 最も簡単な起動方法 ● 懸念点 – Androidが起動できなくなる dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 19
  20. 20. カーネルのロード方法:その2 ● PC経由からカーネル転送、ロード ● fastbootコマンドでzImageを転送 zImage ● 効果 – フラッシュメモリ上には影響がない – Androidの環境は保持される ● 懸念点 – 起動するたびにPCが必要になる dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 20
  21. 21. カーネルのロード方法:その3 ● recovery領域を上書きする ● 電源ON→リカバリモードで起動 ● 効果 – 端末単体で起動できる – Androidとのデュアルブート化 ● 懸念点 – recovery領域からAndroidの復元/アップデートができ なくなる dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 21
  22. 22. ルートファイルシステムの場所:その1 ● system領域 ● yaffs2のファイルシステムイメージを作成 ● fastbootで上書き ● 効果 – system領域のみでルートファイルシステムを構築でき る ● 懸念点 – Androidが起動できなくなる dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 22
  23. 23. ルートファイルシステムの場所:その2 ● userdata領域 ● yaffs2のファイルシステムイメージを作成 ● fastbootで上書き ● 効果 – userdata領域のみでルートファイルシステムを構築で きる – system領域よりちょっと大きい ● 懸念点 dev: size erasesize name mtd0: 000e0000 00020000 "misc" – Android上のユーザーデータが保証できなくなる "recovery" mtd1: 00500000 00020000 mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 23
  24. 24. ルートファイルシステムの場所:その3 ● SDカード ● PC上でルートファイルシステムを書き込む ● ext2, ext3, ext4ファイルシステムで作成 ● 効果 – フラッシュメモリ上には影響がない – GB単位で十分なスペースを確保できる ● 懸念点 dev: size erasesize name – SDカードが必要(強いて言えば) 000e0000 mtd0: 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 24
  25. 25. 移植方法:まとめ system領域 userdata領域 SDカード bootから起動 Androidとの完全な Android起動不可 Androidとのデュア 置き換え ディスク領域中 ルブート化 ディスク領域小 ディスク領域大 recoveryから起動 Android起動不可 Android起動不可 Androidとのデュア ディスク領域小 ディスク領域中 ルブート化 ディスク領域大 PCから起動 Android起動不可 Android起動不可 フラッシュメモリを ディスク領域小 ディスク領域中 一切使わない最も 安全な方法 ディスク領域大2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 25
  26. 26. 移植例:NexusOne
  27. 27. 移植例: NexusOne ● MeeGo 1.1, Android 2.2.1デュアルブート ● 以下の組み合わせで移植 ● カーネルのロード方法 その3(boot領域からの起動) ● ルートファイルシステムの場所 その3(SDカード) ● 更にrecovery領域をAndroidのboot領域に置き換え dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 27
  28. 28. 準備: ハードウェア ● NexusOne本体 ● PC(Ubuntu 10.04) ● USB-microUSBケーブル ● SDカード ● mmcblk0p1 ... vfat(Androidのメディア保存用) ● mmcblk0p2 ... ext3(MeeGoルートファイルシステム) dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 28
  29. 29. 準備: ソフトウェア ● Androidビルド済みソースツリー ● fastboot ● Android端末の制御ツール ● <Androidのソースツリー>/out/host/linux- x86/bin/fastboot ● mic2 ● MeeGoのイメージ作成ツール dev: size erasesize name ● /etc/apt/sources.listに以下を記述 mtd0: 000e0000 00020000 "misc" mtd1: 00500000 – deb http://repo.meego.com/tools/repos/ubuntu/10.04/ / 00020000 "recovery" mtd2: 00280000 00020000 "boot" ● $ sudo apt-get update; apt-get install mtd3: 09100000 mic2 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 29
  30. 30. 手順1: MeeGoルートファイルシステムの構築 ● kickstartファイルの入手 ● http://wiki.meego.com/images/Meego-handset-armv7l- nexusone-1.1.ks ● mic2実行 ● $ sudo LANG=C mic-image-creator -c meego-handset-armv7l-nexusone- 1.1.ks -f loop --run-mode=0 --arch=armv7l dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 30
  31. 31. 手順1: MeeGoルートファイルシステムの構築 ● パーティション作成 ● mmcblk0p1 ... vfat(Androidのメディア保存用) ● mmcblk0p2 ... ext3(MeeGoルートファイルシステム) ● microSDへコピー ● tar xvf meego-handset-armv7l-nexusone-1.1-<タイムスタンプ>-rootfs.tar.gz -C <microSDのマウントホイント> dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 31
  32. 32. 手順2: カーネルの作成 ● MSM(Qualcomm Mobile Station Modem)向けAndroidカーネル を使用する boot.img ● git://android.git.kernel.org/kernel/msm.git zImage + cmdline + initrd ● android-msm-2.6.32ブランチを使用する ● NexusOne Android 2.2と同等のカーネル ● $ git clone git://android.git.kernel.org/kernel/msm.git -b android-msm-2.6.32 android-msm-2.6.32 dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 32
  33. 33. 手順2: カーネルの作成 ● kernel configuration ● テンプレートとしてmahimahi_defconfigを使用 boot.img – $ cp arch/arm/configs/mahimahi_defconfig .config zImage + cmdline + initrd ● initrdを使わないので以下を無効にする – # CONFIG_BLK_DEV_INITRD is not set ● X.Orgを使うので、Virtual Terminal(仮想端末)を有効にす る – CONFIG_VT=y dev: size erasesize name – CONFIG_CONSOLE_TRANSLATIONS=ymtd0: 000e0000 00020000 "misc" – CONFIG_VT_CONSOLE=y mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" – CONFIG_VT_HW_CONSOLE_BINDING=y mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 33
  34. 34. 手順2: カーネルの作成 ● コンパイル ● Androidのprebuiltにあるクロスコンパイラを使用 boot.img – git://android.git.kernel.org/platform/prebuilt.git zImage + cmdline + initrd ● パスを通す – $ export PATH=$PATH:<Androidのソースツリー>/prebuilt/linux- x86/toolchain/arm-eabi-4.4.0/bin ● make – $ make oldconfig ARCH=arm CROSS_COMPILE=arm-eabi- – dev: size erasesize $ make zImage modules ARCH=arm CROSS_COMPILE=arm-eabi- name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 34
  35. 35. 手順3: MeeGo用boot.imgの作成 ● boot.imgとは ● boot領域、recovery領域で使えるイメージファイル boot.img ● kernel(zImage) + cmdline + initrdの結合 zImage + cmdline + initrd ● mkbootimgコマンドで作成する – git://android.git.kernel.org/platform/system/core.git dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 35
  36. 36. 手順3: MeeGo用boot.imgの作成 ● boot.imgの材料を揃える ● kernel(zImage) boot.img – 手順2で作ったzImage zImage + cmdline + initrd ● cmdline – init=/sbin/init rootwait root=/dev/mmcblk0p2 rootfstype=ext3 rw noinitrd ● root= ... ルートファイルシステムの場所 ● noinitrd ... initrdを使わない dev: size erasesize name ● initrd mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" – 空のinitrdを作成する mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" – $ echo -n | sudo cpio -o -H newc | sudo gzip > boot.img-ramdisk- mtd4: 05f00000 00020000 "cache" meego.cpio.gz mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 36
  37. 37. 手順3: MeeGo用boot.imgの作成 ● boot.imgを作成する boot.img zImage + cmdline + initrd ● $ mkbootimg --cmdline init=/sbin/init rootwait root=/dev/mmcblk0p2 rootfstype=ext3 rw noinitrd --kernel zImage --ramdisk boot.img-ramdisk- meego.cpio.gz --base 0x20000000 -o boot.img-meego – --cmdline ... 前述のcmdlineを記述 – --kernel ... 前述のzImageファイルを追加 erasesize name dev: size – --ramdisk ... 前述で作成した空のinitrdファイル "misc" mtd0: 000e0000 00020000 mtd1: 00500000 00020000 "recovery" – --base ... NexusOneのベースアドレス 00020000 "boot" mtd2: 00280000 mtd3: 09100000 00020000 "system" – -o ... 出力先ファイル名 mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 37
  38. 38. 手順4: 起動準備 ● NexusOneをfastbootが使えるようにする ● 電源+ボリュームダウンで起動 ● FASTBOOTを選択 ● PCとNexusOneを接続(udevの設定が必要) ● SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", SYMLINK+="android_fastboot", MODE="0666" dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 38
  39. 39. 手順5: Flashへ上書き ● fastbootでboot領域をMeeGo用boot.imgに上書き ● $ fastboot flash boot boot.img-meego ● fastbootでrecovery領域をAndroid用boot.imgに上書き ● $ fastboot flash recovery boot.img boot.img ● イメージバックアップから入手 recovery.img dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 39
  40. 40. 手順6: 起動 ● MeeGoの起動方法 ● 電源ボタンで起動 – boot領域(MeeGo) -> microSDのMeeGo ● Androidの起動方法 ● 電源+ボリュームダウンで起動 ● RECOVERYを選択 – recovery領域(Android) -> 通常起動 dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata"2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 40
  41. 41. 今後の課題/別のケース
  42. 42. 今後の課題 ● ハードウェアレンダリングを有効にする ● libEGL, libGLESv2の互換性の問題で難しい、、 ● 周辺装置の対応 ●ボタン、トラックボール、センサ、カメラ等 ● 電話機能の対応 ● ATコマンドの調査が必要 ● ofono(Open Source Telephony)の拡張2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 42
  43. 43. 注意事項 ● バックアップを忘れずに!(nandroid etc) ● YOUR OWN RISK! ● カスタマイズしたイメージの書き換え ● BootloaderのUnlockが必要 ● メーカーの保証対象外になる ● Lock状態に戻せない機種がある ● イメージの書き換え方法 ● fastbootで上書きできるとは限らない ● recovery領域のinitrdからイメージの書き込みを行う ● 必要に応じてroot化も必要2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 43
  44. 44. 別のケース ● TOSHIBA AC100(Dynabook AZ) ● NVIDIA Tegra2 ●L4T(Linux For Tegra)を使ってイメージ書き換え ● 以下の組み合わせで移植 ● カーネルのロード方法 その3(recovery領域からの起動) ● ルートファイルシステムの場所 その3(SDカード) ● Ubuntuの動作実績あり ● http://tosh-ac100.wetpaint.com/page/Ubuntu ● armv7lバイナリでは、ほとんどが 「Illigal Instruction Error」 ● 再ビルドが必要2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 44
  45. 45. よくある質問 ● 製品ではなく開発ボードの場合は? ● フラッシュメモリの構成をユーザーが変更可能 ● 製品よりも自由度が高い(移植が簡単) ● Androidカーネルのコンフィグレーションが有効化されても MeeGoは動く? ● 動く。むしろ活用できる ● CONFIG_USB_ANDROID_ADB=y – Android Debug Bridge(USB経由でファイル転送、シェ ル操作)が使える ● MeeGo UXを動かす上で最低限必要なのは? ● ハードウェアアクセラレーション2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 45
  46. 46. まとめ
  47. 47. まとめ ● Android端末でもMeeGo(==Linux)は動かせる ● 動かし方は機器によって様々 ● 最適化にはクローズドドライバ、ライブラリと整 合すること2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 47
  48. 48. 各種URL ● MeeGo公式サイト ● http://meego.com ● MeeGo技術ドキュメント ● http://wiki.meego.com ● Android端末系移植ドキュメント ●http://wiki.meego.com/ARM/MSMQSD ● 今回の移植手順 ● http://blog.mitsutaka.org/2010/11/meego-11-for- nexusone-status-and-how-to.html ● http://blog.mitsutaka.org/2010/11/meego-11-for- nexusone-status-part2-and.html2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 48
  49. 49. Q&A2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 49
  50. 50. Thank you!

×