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.

MeeGo Seminar Winter Porting 20101209

1,745 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.

  • Be the first to comment

  • Be the first to like this

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!

×