CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
Android...
-
Upload
kenji-shimono -
Category
Mobile
-
view
110 -
download
0
Transcript of Android...
1Android Nexus7でLinuxを色々と遊んでみよう
1、自己紹介2、Nexus7とAndroidの紹介、全体像3、Android上でのLinux動作 ・VNC、RDPビュワーで遠隔モニタ代わり ・Debian noroot ・Androidでx86 PCエミュレータ ・Nexus7のroot化 ・Debian kitとComplete Linux、TightVNCserver、Xserver-SDL4、Nexus7でOS載せ替えテスト ・Android独自ビルドとMultiROM、TWRP ・FirefoxOS ・Ubuntu Touch ・Ubuntu13.04とその他Linuxディストリビューション ・その他カスタムROM5、Nexus7の改造 ・ブートローダー ・Linuxディストリビューション ・Linuxカーネル ・PKGSRC on Android6、次回出展
講演:KapperOSC京都 2015/8/8 14:00~ 会場:京都リサーチパーク(KRP) 会議室C
講演資料は電子データと紙面を配布しております。詳しくはブースまで。http://kapper1224.sakura.ne.jp/
2
自己紹介● 名前:Kapper
● Twitterアカウント:@kapper1224
● HP:http://kapper1224.sakura.ne.jp
● 趣味:Linux、モバイル好きなARMマニア
● 好きな言葉:実験より記録重視。
出来た事、ダメだった事は貴重な財産で記録に残そう。
● 最近の実験機:Netwalker(PC-Z1,T1)、Nokia N900、DynabookAZ、RaspberryPi Nexus7(2012、2013)、Hercules eCAFE EX HD、Jetson TK-1、 OpenPandora、ARM Chromebook、ZTE OPEN C(FirefoxOS) Chromecast、台湾Android電子辞書 無敵CD-920、CD-928他
● 最近気になる事:Nexus7とAndroidのテスト再開。
RaspberryPi2もよく使ってます。おもしろいです。
Chromebookを色々と遊んでます。
ARM環境でx86のエミュレーションとWindowsアプリ動作検証やってます
4
皆様にご相談
● 今回、Androidをカスタマイズするにあたり、エリアが広すぎて悩んでいます。皆が興味のある内容を再確認を思っています。
1、ユーザーがAndroid以外のLinuxに何を 求めているか?2、Androidを改造するとしたら何をしたいか?3、どんなOS、使い方が良いか
● 是非教えてください。
6
Nexus7 2012、2013概要● Googleから2012年と2013年に発売された
Androidタブレット。● Unlockとroot化のメーカー規制がなく簡単に出
来るので改造にお勧め。FactoryImageも公開されている
● MultiROMがOfficial対応している数少ない機種● Ubuntuが移植された事でも有名● 実はみんな持っていたりします
7
javaChrome
Android-apk
Linux
Androidの全体像
Android
Linuxディストリ
ビューション
*BSD
U-bootCorebootSeaBIOS(ブートローダ)
WindowsMacOSX(x86のみ)
Zygote
8PC市場の中のAndroid
中華パッド
スマートウォッチ
Android スマート フォン
AndroidWindows
Tablet
WindowsノートPC
iPad
Chromebook
Macbook
RaspberryPi
Android Stick1ボードPC
WindowsPC
Googleグラス
モバイルPCデスクトップPC
iPhone
0インチ 6インチ 10インチ
$200
$100
$500
$1000
MacPC
画面サイズ
ChromeBox
$179~$350
9Android OSの仕組み● Linux Kernelはほぼ同一。Xを使わずにFramebufferを用い
て表示、DalvikVM(Java VM)や各種ライブラリを独自実装。libc(bionic libc)もBSDライセンスの独自。
● Bootloaderもメーカー既製品でなくU-bootなど置き換えればほぼ同一。Xを使っていないので別途使用。
Hardware
Android Firmware(factory,U-boot, Coreboot,SeaBIOS)
Bootloader
Linux Kernel,init
Zygote(Android GUI Xorg)⇔ System Library(bionic libc他)
Application Framework
Web App Web Site
Html5 / Webkit
JavaScrpit Flash
Extention
参考出展: the Android Open Source Project
Home App
AR
M11
Bro
adco
mB
CM
2835
0.7G
Hz
Cor
tex-
A8
0.8G
Hz
Cor
tex-
A7
Bro
adco
mB
CM
2836
0.9G
Hz
Cor
tex-
A9
Tegr
a21.
0GH
z
Cor
tex-
A9
Tegr
a31.
3GH
z
Cor
tex-
A9
Sna
pdra
gon4
pro
1.3G
Hz
Cor
tex-
A15
Exy
nos
5 D
ual
1.7
GH
z
Cor
tex-
A15
Tegr
a K
-12.
3GH
z
Cor
e2D
uo1.
2GH
z
≒C
ore
i7-9
202.
26G
Hz
Cor
e i5
-254
0M2.
60G
Hz
Raspberry Pi
Netwalker Raspberry Pi 2
Dynabook AZ(AC100)
Nexus7(2012)
Nexus7(2013)
ChromeBook
Jetson TK-1
CF-T8 Xeon
E5520CF-S10
0
2,000
4,000
6,000
8,000
10,000
233 80 439 571 711 720 1,193 1,000 8722,197
2,941
934 1,245 1,701 2,051 2,4953,288
4,918
7,313
3,166
7,3648,064floating point MIPS (Whetstone) per CPU
integer MIPS (Dhrystone) per CPU
za6
1.0GHz 1.6GHz 1.9GHz 2.2GHz 2.5GHzCortex-A8 Cortex-A9 Cortex-A15 Cortex-A57 Cortex-A72
0123456789
The same frequency
Relative single thread performance
ARM端末のベンチマークスコア
出展:A Walk Through the Cortex-A Mobile Roadmaphttp://community.arm.com/groups/processors/blog/2013/11/19/a-walk-through-the-cortex-a-mobile-roadmap
ARM Cortex-A ロードマップ
ARM端末 BOINCベンチマーク
x86比較用
出展:Kapperのブログ新館
推定
ARM
11
AndroidをLinux端末として使う際に● Androidとは違う使い方をしたい→何に使うの?
1、Officeやエディタ(キーボード付きミニ端末)2、Windowsとかx86エミュレータ3、Mikutter4、宗教上の理由(以下略5、Androidに飽きた、余った、リサイクルしたい6、FirefoxOSとかUbuntuTouchとかモバイルOS
● 想定される方法
1、Chrootして違うLinuxディストリを起動2、Debian Norootであっさり起動3、qemuなどi386エミュレータ4、ブートローダ書換えOS載替え5、busyboxやgcc使って自分で作っちゃえw
12
VNC、RDP ビュワーで遠隔モニタ代わり● 最初の基本はモニタ代わり、遠隔操作して使う● RaspberryPiやWindowsの端末として● Nexus7に限りませんが端末が余ったら使ってみましょう● TeamviewerやRDPもAndroidに移植されています
BlackberryQ5
中華スマートウォッチ
Nexus7+Bluetoothキーボード
13Debian Norootを使ってみる
● Debian NorootはAndroidのアプリでroot権限を取らずにchrootでインストール出来るDebian
● Bluetoothキーボードを使えば、簡易ノートPC
● 中身はfakechrootを使い通常ユーザー権限でchroot環境を構築し、Xserver-SDLでXorgを表示している
● ストレージが内臓/sdcardを前提にしているので容量に課題あり
● 誰でも導入出来る容易さが人気
● 最近のVerはAndroid4.0以降で対応台湾 無敵シリーズ電子辞書 CD-920
14
MikutterをDebian norootで使う● Debian norootを入れればMikutterも動きます。
root端末から、apt-get install mikutterMikutterは正式にJessieとWheezy Backportから対応しています。
15
LibreofficeをDebian norootで使う● Debian norootを入れてLibreofficeも使えます。
スマホやタブレットがOfficeマシンに早や代わり sudo apt-get install libreoffice
Android上での互換Office比較
△Googleスライド〇MSOffice AppMSやGoogle標準Webオフィス。無料版は表示専用で編集できない。購入必要。完成度は高いがChromeOSに標準搭載されているフォント数が少ないので、他の環境で作ったデータはフォントが変換されてズレる。フォント環境はChromeOSの標準環境で追加できないので課題。
△Doc To Go(Android用互換Office)互換Officeの一例。無償版は広告付いたり制限あり。性能は思ったより高いが表示と操作性にまだ難があり、Office置き換えまでは届かない。
△rollAPP Web LibreOffice3.3 RollAPPが供給しているWeb版OSSアプリ。LibreOfficeも対応しているが、英語版なので文字がズレる。フォントが少ない。動作もかなり重い。今後の多言語化対応に期待。
◎Debian Noroot上 Libreoffice Debian Noroot用LibreOffice。容量と日本語化が手間だが、完成度は高い。フォントの追加修正が簡単なので調整が可能お勧め
● Android上で動作するOffice環境を比較。閲覧は問題ないが無償版では修正に制限がある。現状ではマウスとキーボード必須かな?Debian NorootでインストールしたLinuxディストリの場合LibreOfiiceでフォントを追加できるので調整可能。お勧め。
17
Android用PCエミュレータで代替してみる● 動作は遅く限定的ですが、PCエミュから
Windowsを起動することも可能です。● PC: Bochs,qemu,DOSBox,
MAC:vMacMini● qemuの場合、Windows以外でもNetBSDも
動作しました。NetBSD ておくれLiveイメージ
Windows9x、2000
18エミュレータで補完してみる
Cortex-A15Tegra K-12.1GHz
Core i5-2540M2.60GHz
Cortex-A15Tegra K-12.1GHz
Core i5-2540M2.60GHz
Acer Chromebook13Qemu Win2000HDBench4.6.1
CF-S10Qemu Win2000HDBench4.6.1
Acer Chromebook13BOINC Benchmarck
CF-S10BOINC Benchmarck
0
5,000
10,000
15,000
20,000
25,000
30,000
35,000
40,000
1,3014,062
9142,941
12,119
35,526
6,1188,064
floating point MIPS (Whetstone) per CPU
integer MIPS (Dhrystone) per CPU
QemuWIndows2000
HDBenchBOINC Bench
Windows98、2000
● Ubuntu、Debianを使えばWine、Qemu、Bochs,Steamなどである程度のアプリが動いたりします。(Exagear-DesktopはAndroidで動作せず)
● x86エミュレーションを使えば、WindowsやNetBSDなんかも。TegraK-1でWin98がHDBenchでPentium2 266MHz相当でした。Nexus9でWindowを動かす際も似たようなスペックになるかと。
● ARMでのQemuエミュのベンチマークはx86:ARM=3:1で浮動小数演算能力にほぼ比例そりゃARMがエミュ性能遅い訳ですわ。
ARM x86ARM x86
NetBSD ておくれLiveイメージ
19AndroidのRoot化● Androidをroot化することで、様々なアプリと環境が
使える様になります。root環境でなければ出来ない設定もある。root化するとメーカーサポートは受けられなくなりますので注意。
● Androidのroot化
1、root化アプリを使ってファームウェアを書換える2、bootloaderをUnlockする3、rootアプリを使う
● root化して出来る事
1、OS載せ替え、chroot化、シンボリックリンク2、アクセス権限の変更、内部アクセス、ターミナル3、オーバークロック
Root化,Nexus7でのUnlock例● AndroidのUnlockの一例としてNexus7で試してみます。
Nexus7はメーカーの規制が無い機種です。個別の機種に関しては、難しい機種も沢山あります。今回は割愛します。
● 用意する物Ubuntu12.04以降がインストールされたPC(Windowsでも可)MicroUSB-USBケーブルNexus 7 Tablet本体 (8GB, 16GB, or 32GB)
● Android SDKのコマンド、fastbootのインストール
● Nexus7の電源ボタン長押しで電源をOFFにします。電源が切れましたら右上あたりにあります「電源ボタン」と「volume downボタン」を押しながら再起動します。ドロイド君の起動画面が出てくるはずです。
● Nexus7とUbuntuPCをMicroUSB-USBケーブルで繋ぎます。
● PCからfastbootコマンドを実行sudo fastboot oem unlock
● Unlock Bootloaderの画面で「Yes」を選択し再起動
Nexus Root Toolkit● Windows用ですがGUIでNexus7のUnlock、root化が出
来るアプリ● 専用の環境を作りたくない人にお勧め
1、Nexus Root toolkitアプリのダウンロード2、Google USBドライバのインストール3、USBでNexus7を繋いで認識4、機種を選択しボタンをクリックして Unlock、root化 Nexus Root Toolkit
22Android TerminalとBusybox
● Terminal EmulatorとBusyboxを使うことでLinuxの基本的な機能を使うことが出来ます。
● Busyboxは基本的なCUIツールがセットになっており一通りの事が出来ます(cp,wget,w3m他)
● システムやアクセス権を変更する際にはroot化が必要です。chrootしてLinuxを入れる際にも。
Android Terminal Busybox
23Debian KitとComplete Linux● Android上でchroot環境を構築してapt-getして
パッケージを入れるアプリ。Debian化が出来る。● Androidをシンプルにサーバ化できる。root化が
いるものといらないものと。● Debian KitはAndroidの親プロセスのルート環
境でapt-getが使える仕組みなので、自由度が高い(ハイリスク?)
● Debian Norootが入れられない古い環境向けも
Complete Linux
24Xサーバを起動する● AndroidのZygote環境上ではXアプリは使えませ
んが、Xserverを起動すればXアプリが使えます。● Androidで使えるXサーバ
1、Xserver-SDL2、VNC Server3、Zygoteを落としてXサーバを起動 ⇒タッチパネルが効かないのでマウス必須
25TightVNCserverとVNCviewer
● もっとも容易なXサーバの代替がVNCserver● chroot環境でTightVNCserverを起動すれば
容易にAndroid上でX環境を立ち上げられます。 sudo apt-get install tightvncserver tightvncserver -geometry 1024x600
● もちろん、遠隔操作して使うことも可能です。
Complete LinuxVNC Viewer
26Xserver-SDLを単独で使う
● Xserverの代替としてDebian norootでも使われているXserver-SDLを単独でも使えます。
● 使い方はXserver-SDLを起動させてから、Chroot環境で端末から、env DISPLAY=xxx.xxx.xxx.xxx:0 lxsession &と起動しAndroid上で再度Xserver-SDLを表示
Complete LinuxXserver-SDL
27
Zygoteを落としてXサーバを使う● Kill Android GUI
setprop ctl.stop media & setprop ctl.stop zygote
● Restart Android GUIsetprop ctl.start media & setprop ctl.start zygote
● #mount chroot img;cd into folder and other mountsmount -o loop -t ext4 debian_arm.img debcd debbusybox mount --bind /dev devmount -t devpts devpts dev/ptsmount -t proc proc procmount -t sysfs sysfs syschroot . /bin/bash
● #and link fb0ln -s /dev/graphics/fb0 /dev/fb0startx -- vt1 &
● #find display cd /tmp/.X11-unix && for x in X*; do echo ":${x#X}"; don
● #set displayexport DISPLAY=:1
28Chroot環境を自分で構築してみる
● 初期設定のAndroidにchrootは出来ないので、USB経由かSDCard経由にインストール。
● 端末からchrootコマンドで起動。sudo debootstrap --arch=armhf --variant=minbase --foreign wheezy /media/PHONE\ CARD/debian http://http.debian.net/debian
export SDCARD=/sdcardexport ROOT=$SDCARD/debianexport PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATHexport HOME=/rootmount -o remount,exec,dev,suid $SDCARDfor f in dev dev/pts proc sys ; do mount -o bind /$f $ROOT/$f ; donechroot $ROOT /bin/bash -ldebootstrap/debootstrap --second-stage
29一息いれましょう。Linux何に使うの?● OSC浜名湖、名古屋、東京でご意見が沢山ありましたのでご質問
● 皆様、パソコンを日常何に使っていますか?
1.UbuntuやDebianとか*BSD、Linux使った事がありますか?2.RaspberryPiとか1ボードPCを使った事がありますか?3.電子工作やってますか?興味がありますか?4.IT勉強会カレンダーご存知ですか?5.ここ数年後にOSCやMakerFaireに出展したい?してますか?6.海外のオープンソースカンファレンス、MakerFaireに興味がありますか?
● Linuxって何に使うのですか?メリットは?→何個該当しましたか?
1.WebやSMS、FlashゲームやOfficeなど2.SkypeやLineなど(Android appやWineなどでも流用)3.古いPCやスマホのリサイクル用OS、リモートデスクトップ端末4.サーバとかクラウド環境。NASやルータにも(アクセス数制限がない)5.3D CAD、3D CGソフトやCAE、Mathematicaなど無料で使いたい。6.エミュレーションで他OS環境(ゲーム機、Android、FirefoxOSなど含む)7.開発言語を無料で使いたい。ソフトを作りたい。8.RaspberryPiで電子工作をDIYしたい9.自宅クラスタ作りたい。超省エネマシンを使って節電したい10.Aircrack-ngで無線LANをモバイルクラッキングしたい11.BOINC廃人でクラスタ演算。がん研究や宇宙人の探索に貢献したいw12.北朝鮮OSやMIPS Linuxなどマニアックに使いたい(ぉぃ
~2個 一般人~6個 ヘビーユーザー~8個 マニア、開発者~10個 ギーク~12個 廃人
31
Nexus7にLinuxディストリを入れる● インストール方法は主に下記3つ。
1、Linuxディストリをchrootインストールする2、Nexus7用Ubuntu、Bodhiをインストールする3、ファームウェアを書き換えてブートローダごと 各種OSをインストールする
ここからマニアック路線に進みます
Nvidia Tegraハッキングの重要サイト
・NVIDIA Tegra Public Application NotesNvidia公式の開発情報公開HP。DynabookAZ、Nexus7、Jetson TK-1などのTegraデバイスのSoC情報が載っているサイト。ソースコードが載っているが、SoCでは結局U-Bootを使っている記載がありました。
・Ubuntu Nexus7 Team PPAソースコードを読むならこちらの方が分かりやすい。インストーラーからKernel他まで一式あります。最近はUbuntu Touchへ移行したため、開発停止しています。
・Xda developer Forum Nexus7Androidハッキングの総本山。多数のスマホ、タブレットの情報が多数。Nexus7も例外でなく、一度はしっかり読んでみたいサイト
33
Android対応独自ビルド 状況ディストリ バージョン インストーラー Multirom
対応Root対応
対応機種
Factoryimg ~5.1.0 ◎ ○ △ Nexusシリーズのみ
CynanobenMOD ~5.1.x ◎ ○ ○ 多数
AOKP ◎ ○ ○ 多数
ParanoidAndroid ○ ○ ○ 多数
ClockworkMOD ○ ○ ○ 多数
Bodhi Linux ~3.0 ○ ○ ○ Nexus7 2012サポート終了
KDE Plazma ○ △ ○ Nexus7 2012サポート終了
FirefoxOS ○ ○ △ 独自ビルド
Ubuntu Touch ◎ ○ ○ Nexus7(2013)4、5、10、6
Tizen △ △ △ ?
SalfishOS △ △ △ ?
Kapperのネット独断調査(間違っていたらごめんなさい。修正します)◎:公式サポートあり、◯:公式HPに導入報告あり、△:ユーザー導入報告あり
Nexus7対応の独自ビルドは数十種類と数が多すぎるので抜粋。
CyanobenMod概要● CyanogenMod Inc.が開発しているカスタマイズされたAndroidの数ある独自ビルドの一つで各種デバイスにAndroid4.xを移植
● 公式、非公式なサポートを含めると220デバイスに対応
● ファームウェア(ブートローダー)からOSイメージまで開発。公式サポートされているデバイスであれば、rootを取らずにワンクリックでインストール可能。
● インストールは難しいが謎デバイスにも多数動作報告があり、旧型機種のアフターマーケットに寄与している。
● Nexus7でも正規に対応しているので、簡単に母艦からインストールできます。
CyanobenMod9
CyanobenModインストール主な流れのイメージ
AndroidにCyanobenModをインストールする
Androidのデータをバックアップする
母艦PCにNVflash、fastbootをインストール
AndroidをUnlock(root化含む)
Androidにブートローダ(U-boot他)を上書きする
再起動してCyanobenModのrootfsをSD他からマウント
ブートローダ対応している? ブートローダとドライバ、設定ファイルをコンパイル
Yes
No
rootfs対応している?汎用ARMイメージに
LinuxKernelを入れ直してrootfs作成Yes
No
再起動してCyanobenModが起動
公式サポート対応している?
No
CyanogenMod Installer Appをインストール
Windowsに CyanogenModInstallerを
インストール
USBで母艦PCに繋いでダウンロード、インストール
Yes
公式サポートデバイス途方もなく簡単ルート
非公式サポートデバイス途方もなく難しいルート
MultiROMとTWRP● MultiROMを入れるとブートローダ時点でROMを選択できる様になります。複数のOSを入れる際には必須です。Unlockが必要です。
● カスタムリカバリであるTWRPを入れると純正以外のROMを入れたりバックアップしたりできます。NexusRootToolkitで簡単に入れれます
FirefoxOS● Nexus7でもFirefoxOSをインストールして使うこと
ができます。● ROMの入れ替えしますのでカスタムROM必須
FirefoxOS SimulatorFirefoxOS
Ubuntu Touch● Nexus7 2013であればUbuntu Touch対応。● インストーラーとブートローダーがセット● 機種限定で使えるのはNexusシリーズ。
Ubuntu TouchUbuntu Touch
39
Nexus7にUbuntu13.04● 当初Nexus7 2012にUbuntu13.04をインストールで
きました。デスクトップ版です。● 今はUbuntuTouchに開発がシフトしています。
サポートアウトされました。現在でもNexus7 2012で使っている人がいる様です。
Ubuntu13.04 Nexus7 Ubuntu13.04 Nexus7
41Ubuntuのインストーラーのソースコード● Wgetでイメージをダウンロードしてfastbootで書き込むだけ。
set -eecho "$COUNTER" echo "# Begining Ubuntu Core Nexus7 installation"; sleep 2COUNTER=$((COUNTER+20))echo "$COUNTER" echo "# Erasing boot partition"sudo -Sp '' -- fastboot erase boot <<<"${SPW}"COUNTER=$((COUNTER+20)) echo "$COUNTER"echo "# Flashing boot partition"sudo -Sp '' -- fastboot flash boot ./"${IMAGES[0]}" <<<"${SPW}"COUNTER=$((COUNTER+20))echo "$COUNTER"echo "# Erasing userdata partition"sudo -Sp '' -- fastboot erase userdata <<<"${SPW}"COUNTER=$((COUNTER+20))echo "$COUNTER" echo "# Flashing Ubuntu Core root file system"sudo -Sp '' -- fastboot flash userdata ./"${IMAGES[1]%.*}" <<<"${SPW}"COUNTER=$((COUNTER+20))echo "$COUNTER"echo "# Rebooting device"; sleep 2sudo -Sp '' -- fastboot reboot <<<"${SPW}") |
42Androidのブートローダーって?● 電源ONしたらメーカー製品はHard Code、1ボードPCはカスタマ
イズしたBootloaderが立ち上がる設定になっています。
● メーカー製Androidのブートローダーを書き換えるにはUnlockが必要です。
● x86でWindowsなどを動かす場合は、Corebootを入れてからSeaBIOSを起動させる方法がよく使われます。(ARM非対応)
CPU
実行 必要最小限のCoreboot機能のみ
ROM(Coreboot)
ROMSeaBIOS
(x86のみ)
ROMU-Boot
DiskMacOSX
DiskLinux
DiskWindows
DiskFreeBSD
DiskNetBSD
SeaBIOS対応機種ならひと通りのOS起動
ブートローダー
43
ARMブートローダの仕組みとx86比較
種類 ROM RAM MBR(ディスク)
Kernel init ログイン 特徴
x86~Linux
BIOSとDISKブートローダー構成
ARMAndroid
ブートローダーのUnlockが重要
x86-Chromebook
ブートローダー以降は共通
ARMLinuxディストリChromebook
ブートローダー以降はx86と同じ
BIOSデバイス認識
ブートディスク選択
GRUBLILO他
Kernelドライバ
Daemon他
初期化ドライバ
RAM転送
Kernel転送
Kernelrootfs
読み込み
CUI
Xorg
Kernelドライバ
rootfs起動
デバイスDaemonコンテキストマネージャ
Zygote
初期化ドライバ
RAM転送
ブートローダー(U-boot他)
Kernel転送
Kernelrootfs
読み込み
Kernelドライバ
Daemon他
CUI
Xorg
Dalvik仮想マシン
AndroidGUI
ARMの場合、FlashROMからRAMにブートローダを転送し、Kernelとrootfsを読み込む構成です。ROMに書き込んでるブートローダは「ファームウェア」と呼ぶそうです。Androidの場合、Unlockが必要です。
Android ブートローダー(ROM)MLO
MLO
初期化ドライバ
RAM転送
Kernel転送
Kernelrootfs
読み込み ブートローダー(U-boot、SeaBIOS)CoreBoot
Kernelドライバ
Daemon他
CUI
Xorg
44
ARM関連のブートローダ比較
種類 対応MPU 対応OS 対応ストレージ
対応フォーマット 起動モジュール
ライセンス
GNUGRUB
x86 Linux*BSDMacOSXMSDOS
HDD,floppyUSB,LANTFTP,Serial
全種類 DISK他 GPLv3
LILO x86 Linux*BSDMSDOS
HDD,floppyUSB,LANTFTP,Serial
全種類 DISK他 BSDLicence
eCosRedboot
ARM,x86,68k,MIPS,Altera,PowerPC,SuperH他
Linux*BSDMacOSXMSDOS
HDD,floppyUSB,LANTFTP,Serial
JFFS2、EXT2、EXT3、EXT4、FAT他
ROM、RAM
ModGPLv2+
DasU-boot
ARM,x86,68k,MIPS,Altera,PowerPC,SuperH他
Linux*BSDAndroid他
HDD,floppyUSB,LAN,ZipTFTP,SerialNFS
Cramfs、EXT2、EXT3、EXT4、FAT、FDOS、JFFS2、ReiserFS、UBIFS、YAFFS2
ROM、RAM
GPLv2
SeaBIOS x86 Win,MACBSD他
SecondaryROMDisk他
EXTx、FAT32、NTFS他
ROM、RAMCoreboot
LGPLv3
Multirom ARM AndroidLinux
AndroidSecondaryROMUSB
EXTx、FAT32、NTFS
ROM、RAM
GPLv3
明確な定義は決まってないですが、ROMブートローダとDiskブートローダの2つに分類される事が良くあります。
45ARM AndroidのMainline Kernel
1、 ソースコードをgit-cvs /<vendor>/<name>.git clone https://android.googlesource.com/device/ti/pandacd panda
git log --max-count=1 kernel
2、 Kernelバージョンのチェックdd if=kernel bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' kernel | cut -d ':' -f 1) | zgrep -a 'Linux version'
3、Kernelソースのダウンロード git clone https://android.googlesource.com/kernel/common.git git clone https://android.googlesource.com/kernel/tegra.git
4、gccのPATHを指定$ export PATH=$(pwd)/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATHもしくはAndroidのビルドツールチェーンをダウンロードgit clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
5、ビルドexport ARCH=armexport SUBARCH=armexport CROSS_COMPILE=arm-eabi-cd omapgit checkout <commit_from_first_step>make panda_defconfigmake
ZImageの指定export TARGET_PREBUILT_KERNEL=$your_kernel_path/arch/arm/boot/zImage
47PKGSRC on Android● NetBSDのパッケージャーpkgsrcをUbuntu chromebookでも使ってみる⇒何で?⇒1,最新版のパッケージを使いたい。Mikutterとか随時最新版使いたい 2,UbuntuのPPAでARMバイナリパッケージが殆ど無い。 ソースパッケージから1個1個手動コンパイル必要。非常に面倒。 3,OS、アーキテクチャからpkgsrcが独立しておりUnix、Linux、MacやWinでも使える ほどの高い移植性がARM環境では大変重宝する 4,Debian SidとかDeb開発版をLTSとかと混載させたくない。独立させたい。 5,仮にUbuntu側とかでARM、Kernelサポートアウトされても継続して最新版使いたい。 メーカー公式サポートが終わってからも使える最強パッケージャー。
● 最新版Mikutterが光の早さで移植されて使えます。最近ディストリ間でMikutterがいかに短い時間でリリースされるか競争してません?