meego seminar winter porting 20101209
DESCRIPTION
MeeGo is one of the great advantage of "multi-platform" to demonstrate, MeeGo This session will introduce a porting MeeGo to Android device.TRANSCRIPT
マルチプラットフォームとマルチデバイスの実証
Mitsutaka AmanoMIRACLE LINUX CORPORATION
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 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. 3
何やってる人?
● コミュニティ活動
● Moblin
– 開発ツールのメンテナ、日本語化作業、各種講演等● MeeGo
– Netbook 日本語版イメージ公開– 各種H/Wへの移植等
● その他(仕事)
● 組込み系Linuxプラットフォームの開発
● tweet on @mitsutaka_amano
概要
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 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. 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
– etc
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 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. 8
概要
● 世の中にある多くの製品でMeeGoが動作する環境にある
● 様々なターゲットデバイスで利用できる
これがMeeGoの特徴
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 9
テーマ
● どうやって移植するのか?● 既に別のOSが動いている製品でも移植
可能なのか?
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 10
テーマ
● Android端末でMeeGoを動かしてみよう
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 11
Agenda
● Android端末の特徴を知る
● 移植方法
● 移植例: NexusOne
● 今後の課題/他のケース
● まとめ
Android端末の特徴を知る
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 13
Android端末の特徴
● MTD(Memory Technology Device)を使ってフラッシュメモリにパーティションを構築
$ cat /proc/mtddev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
例: Nexus One
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 14
Android端末の特徴
● Android独自の用途別に従ってパーティション分けされている
$ cat /proc/mtddev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
起動時のスプラッシュ画面等
Android復元/アップデート時の起動パーティション
通常の起動パーティション
実行ファイル(Androidアプリ)、ライブラリ等の読み込み用途のファイル
ダウンロードファイルのキャッシュ等
ユーザーの設定情報(ブックマーク、メール、電話帳、接続済みAP情報等)
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 15
Android端末の特徴
● recovery, bootそれぞれにカーネルイメージ、カーネルパラメータ、initrdが組み込まれている
$ cat /proc/mtddev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
起動時のスプラッシュ画面等
Android復元/アップデート時の起動パーティション
通常の起動パーティション
実行ファイル(Androidアプリ)、ライブラリ等の読み込み用途のファイル
ダウンロードファイルのキャッシュ等
ユーザーの設定情報(ブックマーク、メール、電話帳、接続済みAP情報等)
zImage + cmdline + initrd
zImage + cmdline + initrd
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 16
Android端末の特徴
● initrdをルートファイルシステムとして利用する
● /proc, /dev, /systemなど各種必要なディレクトリをマウント
zImage + cmdline + initrd
rootfs / rootfs ro ...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 .......
フラッシュメモリ上のsystem, cache, dataをyaffs2でマウント
SDカードのマウント
移植方法
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 18
考え方
● 二つの視点で考える
● カーネルのロード方法
– どこから起動できるのか?– どの起動方法がベストプラクティスか?
● ルートファイルシステムの場所
– どこに置けるか?– どれだけの容量が必要なのか? How?
Where?
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 19
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
カーネルのロード方法:その1
● boot領域を上書きする
● 電源ONでそのまま起動
● 効果
– 端末単体で起動できる– 最も簡単な起動方法
● 懸念点
– Androidが起動できなくなる
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 20
カーネルのロード方法:その2
zImage
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
● PC経由からカーネル転送、ロード
● fastbootコマンドでzImageを転送
● 効果
– フラッシュメモリ上には影響がない– Androidの環境は保持される
● 懸念点
– 起動するたびにPCが必要になる
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 21
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
カーネルのロード方法:その3
● recovery領域を上書きする
● 電源ON→リカバリモードで起動
● 効果
– 端末単体で起動できる– Androidとのデュアルブート化
● 懸念点
– recovery領域からAndroidの復元/アップデートができなくなる
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 22
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
ルートファイルシステムの場所:その1
● system領域
● yaffs2のファイルシステムイメージを作成
● fastbootで上書き
● 効果
– system領域のみでルートファイルシステムを構築できる
● 懸念点
– Androidが起動できなくなる
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 23
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
ルートファイルシステムの場所:その2
● userdata領域
● yaffs2のファイルシステムイメージを作成
● fastbootで上書き
● 効果
– userdata領域のみでルートファイルシステムを構築できる
– system領域よりちょっと大きい● 懸念点
– Android上のユーザーデータが保証できなくなる
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 24
ルートファイルシステムの場所:その3
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
● SDカード
● PC上でルートファイルシステムを書き込む
● ext2, ext3, ext4ファイルシステムで作成
● 効果
– フラッシュメモリ上には影響がない– GB単位で十分なスペースを確保できる
● 懸念点
– SDカードが必要(強いて言えば)
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 25
移植方法:まとめ
system領域 userdata領域 SDカード
bootから起動 Androidとの完全な置き換えディスク領域小
Android起動不可ディスク領域中
Androidとのデュアルブート化ディスク領域大
recoveryから起動 Android起動不可ディスク領域小
Android起動不可ディスク領域中
Androidとのデュアルブート化ディスク領域大
PCから起動 Android起動不可ディスク領域小
Android起動不可ディスク領域中
フラッシュメモリを一切使わない最も安全な方法ディスク領域大
移植例:NexusOne
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 27
移植例: NexusOne
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
● MeeGo 1.1, Android 2.2.1デュアルブート
● 以下の組み合わせで移植
● カーネルのロード方法 その3(boot領域からの起動)
● ルートファイルシステムの場所 その3(SDカード)
● 更にrecovery領域をAndroidのboot領域に置き換え
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 28
準備: ハードウェア
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
● NexusOne本体
● PC(Ubuntu 10.04)
● USB-microUSBケーブル
● SDカード
● mmcblk0p1 ... vfat(Androidのメディア保存用)
● mmcblk0p2 ... ext3(MeeGoルートファイルシステム)
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 29
準備: ソフトウェア
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
● Androidビルド済みソースツリー
● fastboot
● Android端末の制御ツール
● <Androidのソースツリー>/out/host/linux-x86/bin/fastboot
● mic2
● MeeGoのイメージ作成ツール
● /etc/apt/sources.listに以下を記述– deb http://repo.meego.com/tools/repos/ubuntu/10.04/ /
● $ sudo apt-get update; apt-get install mic2
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 30
手順1: MeeGoルートファイルシステムの構築
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
● 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
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 31
手順1: MeeGoルートファイルシステムの構築
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
● パーティション作成
● mmcblk0p1 ... vfat(Androidのメディア保存用)
● mmcblk0p2 ... ext3(MeeGoルートファイルシステム)
● microSDへコピー● tar xvf meego-handset-armv7l-nexusone-1.1-<タイムスタンプ>-rootfs.tar.gz
-C <microSDのマウントホイント>
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 32
手順2: カーネルの作成
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
boot.img
zImage + cmdline + initrd
● MSM(Qualcomm Mobile Station Modem)向けAndroidカーネルを使用する
● git://android.git.kernel.org/kernel/msm.git
● 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
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 33
手順2: カーネルの作成
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
boot.img
zImage + cmdline + initrd
● kernel configuration
● テンプレートとしてmahimahi_defconfigを使用– $ cp arch/arm/configs/mahimahi_defconfig .config
● initrdを使わないので以下を無効にする– # CONFIG_BLK_DEV_INITRD is not set
● X.Orgを使うので、Virtual Terminal(仮想端末)を有効にする– CONFIG_VT=y
– CONFIG_CONSOLE_TRANSLATIONS=y
– CONFIG_VT_CONSOLE=y
– CONFIG_VT_HW_CONSOLE_BINDING=y
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 34
手順2: カーネルの作成
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
boot.img
zImage + cmdline + initrd
● コンパイル
● Androidのprebuiltにあるクロスコンパイラを使用– git://android.git.kernel.org/platform/prebuilt.git
● パスを通す– $ export PATH=$PATH:<Androidのソースツリー>/prebuilt/linux-
x86/toolchain/arm-eabi-4.4.0/bin
● make– $ make oldconfig ARCH=arm CROSS_COMPILE=arm-eabi-
– $ make zImage modules ARCH=arm CROSS_COMPILE=arm-eabi-
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 35
手順3: MeeGo用boot.imgの作成
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
boot.img
zImage + cmdline + initrd
● boot.imgとは
● boot領域、recovery領域で使えるイメージファイル
● kernel(zImage) + cmdline + initrdの結合
● mkbootimgコマンドで作成する– git://android.git.kernel.org/platform/system/core.git
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 36
手順3: MeeGo用boot.imgの作成
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
boot.img
zImage + cmdline + initrd
● boot.imgの材料を揃える
● kernel(zImage)
– 手順2で作ったzImage● cmdline
– init=/sbin/init rootwait root=/dev/mmcblk0p2 rootfstype=ext3 rw noinitrd
● root= ... ルートファイルシステムの場所● noinitrd ... initrdを使わない
● initrd
– 空のinitrdを作成する– $ echo -n | sudo cpio -o -H newc | sudo gzip > boot.img-ramdisk-
meego.cpio.gz
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 37
手順3: MeeGo用boot.imgの作成
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
boot.img
zImage + cmdline + initrd
● boot.imgを作成する
● $ 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ファイルを追加– --ramdisk ... 前述で作成した空のinitrdファイル– --base ... NexusOneのベースアドレス– -o ... 出力先ファイル名
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 38
手順4: 起動準備
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
● NexusOneをfastbootが使えるようにする
● 電源+ボリュームダウンで起動
● FASTBOOTを選択
● PCとNexusOneを接続(udevの設定が必要)● SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4",
SYMLINK+="android_fastboot", MODE="0666"
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 39
手順5: Flashへ上書き
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
● 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
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 40
手順6: 起動
dev: size erasesize namemtd0: 000e0000 00020000 "misc"mtd1: 00500000 00020000 "recovery"mtd2: 00280000 00020000 "boot"mtd3: 09100000 00020000 "system"mtd4: 05f00000 00020000 "cache"mtd5: 0c440000 00020000 "userdata"
● MeeGoの起動方法
● 電源ボタンで起動
– boot領域(MeeGo) -> microSDのMeeGo● Androidの起動方法
● 電源+ボリュームダウンで起動
● RECOVERYを選択
– recovery領域(Android) -> 通常起動
今後の課題/別のケース
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 42
今後の課題
● ハードウェアレンダリングを有効にする
● libEGL, libGLESv2の互換性の問題で難しい、、
● 周辺装置の対応
● ボタン、トラックボール、センサ、カメラ等
● 電話機能の対応
● ATコマンドの調査が必要
● ofono(Open Source Telephony)の拡張
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 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. 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. 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. 47
まとめ
● Android端末でもMeeGo(==Linux)は動かせる● 動かし方は機器によって様々● 最適化にはクローズドドライバ、ライブラリと整合すること
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 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.html
2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 49
Q&A
Thank you!