ARM Chromebookで Linuxを 色 々と 遊 んでみよう 1 1 自 己 紹 介 2 Chromebookの 紹 介 全 体 像 3 ChromebookでOS 載 せ 替 えテスト Crouton Chrubuntu Linuxディストリビューション FreeBSD Windows( 参 考 x86のみ:acer C720の 報 告 事 例 抜 粋 ) MacOSX( 参 考 x86のみ:acer C720の 報 告 事 例 抜 粋 ) 4 次 回 出 展 /VM Night! 2015/2/14 20:45~ 会 場 : 東 京 PMO 神 田 講 演 資 料 は 電 子 データと 紙 面 を 配 布 しております 詳 しくはHPまで 講 演 :Kapper Netwalker 実 験 所
2 ARMデバイスに 関 しては 超 マニアです 大 好 きです よろしく!
Chromebookの 全 体 像 3 Chrome Extention Android-apk Linux ChromeOS Linux ディストリ ビューション U-boot Coreboot SeaBIOS (フ ートロータ ) *BSD Windows MacOSX (x86のみ)
PC 市 場 の 中 のChromebook 4 Mac PC Windows PC ChromeBox Android Stick 1ボードPC RaspberryPi $1000 $500 $200 $100 Google グラス スマート ウォッチ iphone Android スマート フォン 中 華 パッド ipad Android Windows Tablet Mac book Windows ノートPC Chromebook $179~$350 デスクトップPC モバイルPC 0インチ 6インチ 10インチ 画 面 サイズ
ChromeOSの 仕 組 み 5 ファームウェアから4つのフ ートロータ があり 切 り 替 えて を 起 動 する XからSingle x-clientとして Chromeを 使 う 構 成 Web App JavaScrpit Web Site Extention Flash Window Manager X + GraphicLibrary Html5 / Webkit Chrome System Library Linux Recovery Firmware Verified boot Fast boot Path Bootloader Customized Firmware(U-boot, Coreboot,SeaBIOS) Hardware 参 考 出 展 :Introduction to chrome os
Linuxインストール 主 な 流 れのイメージ 6 ChromebookにLinuxディストリをインストールする DeveloperModeで 再 起 動 リカバリディスクをUSBに 作 成 ChrUbuntu DeveloperModeで 起 動 しCUIでブート 設 定 変 更 ChrUbuntuスクリプトを 実 行 してUSB SD にUbuntuをインストール 再 起 動 してUSB SDから ChrUbuntuを 起 動 chromebookのデータをバックアップする No Crouton,chrUbuntu 使 う? Yes No Crouton 使 う? Yes croutonスクリプトをダウンロード 端 末 からcroutonを 実 行 してインストール ctl+alt+shift+ でスクリーン 切 替 Linuxディストリが 起 動 Linuxディストリ FreeBSD ブートローダとドライバ 設 定 ファイルをコンパイル インストールするUSB,SD のパーティション 作 成 chroot 環 境 か 汎 用 ARM イメージとを 入 れ 直 してUSB,SD 作 成 DeveloperModeで 起 動 しCUIでブート 設 定 変 更 起 動 時 スクリプトで U-Bootの 起 動 設 定 変 更
Developer Modeで 起 動 7 ChromeOSのDeveloperModeはセキュリティ 機 能 をアンロックし 内 部 アクセスする 機 能 ChromeOSを 色 々 遊 ぶ 為 にはDeveloperModeに 切 替 が 必 須 DeveloperModeは 電 源 を 切 って Esc + リフレッシュ(F4) + 電 源 ボタン を 押 します これはChromebookで 言 ういわゆる 強 制 リセットというそうです リカバリモードに 入 りますので Ctrl + D Enter を 押 して10 秒 くらいするとビープ 音 がしてデベロッパーモードに 以 降 します DeveloperModeで 起 動 すると 内 部 のデータはリセットされるのでリカバリディスク 作 成 と データのバックアップが 必 要 リカバリディスクの 作 成 はChromebrowserのアドレスバーから chrome://imageburner と 入 力 してUSBかSDにインストール 参 考 出 展 :The Chromium Projects Developer Mode Chrome 上 リカバリディスク 作 成 DeveloperMode 起 動
Releases marked with * are unsupported, but may work with some effort. Crouton ChRomium Os Universal chroot environmentの 略 作 者 はGoogleの 開 発 者 David Schneider 氏 8 UbuntuとDebianに 対 応 したchroot 自 動 化 ツール https://goo.gl/fd3zc ctl+alt+t でターミナルを 表 示 させ shell を 起 動 させ 端 末 から 使 用 sudo sh ~/Downloads/crouton -t xfce githubからメインスクリプトを 落 としてchroot 環 境 をダウンロードする 仕 組 み /mnt/stateful_partition/crouton/(ディストリバージョン)にchroot 作 成 Chromeブラウザ 上 ターミナル Crouton Window Extention Recognized debian releases: potato* woody* sarge* etch* lenny* squeeze* wheezy jessie sid Recognized kali releases: kali 対 応 Ubuntu Debianバージョン Recognized ubuntu releases: warty* hoary* breezy* dapper* edgy* feisty* gutsy* hardy* intrepid* jaunty* karmic* lucid* maverick* natty* oneiric* precise quantal* raring* saucy* trusty utopic*
ChrUbuntu 9 Ubuntuに 対 応 したデュアルブート&SD USB 自 動 化 インストールツール 作 者 はGoogleの 開 発 者 Jay Lee 氏 ChromeOSのLinux とドライバモジュールをそのまま 使 用 する 方 式 x86 対 応 でARMでは 正 式 対 応 していない 動 作 しない 機 種 もあるので 注 意 ctrl+alt+ キー を 押 すと Developer ConsoleというCUIの 画 面 に 切 替 え Ubuntuをインストールする 仕 組 み curl -L -O http://goo.gl/9sgchs; sudo bash 9sgchs(34v87 /dev/mmcblk1) パーティションを 切 り 分 けて curl -L -O http://goo.gl/9sgchs; sudo bash 9sgchs ブートする 際 にOSをChromeOSとUbuntuを ctl+l で 切 り 替 えて 使 用 githubからメインスクリプトを 落 としてchroot 環 境 をダウンロードする 仕 組 み 通 常 にUbuntuが 起 動 するが 起 動 が 手 動 切 替 えで 若 干 時 間 がかかる 方 式 参 考 出 展 :Chromebooks and Chrome OS
ARMブートローダの 仕 組 みとx86 比 較 10 種 類 ROM RAM MBR (ディスク) x86~ Linux ARMの 場 合 FlashROMからRAMにブートローダを 転 送 し と rootfsを 読 み 込 む 構 成 です ROMに 書 き 込 んでるブートローダは ファームウェア と 呼 ぶそうです Androidの 場 合 Unlockが 必 要 です ARM Android x86- Chrome book ARMLinux ディストリ Chrome book BIOS デバイス 認 識 ブートディスク 選 択 初 期 化 ドライバ RAM 転 送 MLO 初 期 化 ドライバ RAM 転 送 CoreBoot 初 期 化 ドライバ RAM 転 送 MLO 転 送 GRUB LILO 他 rootfs 読 み 込 み Android ブートローダー(ROM) 転 送 rootfs 読 み 込 み rootfs 転 送 読 み 込 み ブートローダー(U-boot 他 ) init ログイン 特 徴 ドライバ ドライバ rootfs 起 動 ドライバ ブートローダー(U-boot SeaBIOS) ドライバ Daemon 他 デバイス Daemon コンテキスト マネージャ Zygote Daemon 他 Daemon 他 CUI Xorg Dalvik 仮 想 マシン Android GUI CUI Xorg CUI Xorg BIOSと DISKブー トロー ダー 構 成 ブート ローダー のUnlock が 重 要 ブート ローダー 以 降 は 共 通 ブート ローダー 以 降 はx86 と 同 じ
Linuxディストリ FreeBSD 入 替 え 11 FreeBSD を 移 植 したソースコードをコンパイル インストールするUSB SDのパーティション 作 成 U-Bootのパーティション 設 定 と Rootパーティションの 設 定 ChromebookをDeveloperModeで 起 動 ログイン 前 にCUIに 移 動 USB SDブート 出 来 る 様 に 設 定 変 更 localhost ~ # crossystem dev_boot_usb=1 cgptでusb SDのパーティションテーブル 設 定 再 起 動 してU Bootの 設 定 OSを 起 動 させる OpenSuse もうひとつの 方 法 ではChrUbuntuの 仕 組 みで 同 様 にインストールします ChromebookをDeveloperModeで 起 動 ログイン 前 にCUIに 移 動 USB SDブート 出 来 る 様 に 設 定 変 更 localhost ~ # crossystem dev_boot_usb=1 Crouton 型 とChrUbuntu 型 の 両 方 インストール 可 能 参 考 出 展 :FreeBSD on Samsung Chromebook "SNOW" model XE303C12 HCL:ARMChromebook
ARM ChromebookのMainline 1 U-bootをコンパイルしてインストール パーティションを 作 る 1st partition: kernel partition with nv u-boot. 2nd partition: boot partition (must be formatted as FAT32 or Ext2). 3rd partition: root partition. U-bootをコンパイル wget -O - http://commondatastorage.googleapis.com/chromeoslocalmirror/distfiles/nv_uboot-snow.kpart.bz2 bunzip2 > nv_uboot.kpart / dd if=nv_uboot.kpart of=/dev/mmcblk1p1 cgpt add -i 1 -S 1 -T 5 -P 10 /dev/mmcblk1 2 Mainline をコンパイルしてインストール /git clone --depth 1 https://github.com/linux-exynos/linux.git -b dtsconfig linux cd linux make exynos_defconfig make menuconfig mount /dev/mmcblk1p2 /mnt/externcp arch/arm/boot/ {uimage,dts/exynos5250-snow.dtb} /mnt/extern umount /mnt/extern mount /dev/mmcblk1p3 /mnt/extern INSTALL_MOD_PATH=/mnt/extern make modules_install umount /mnt/extern 参 考 出 展 :ARM Chromebook/Mainline Linux kernel 12
KVMもChromebookで 出 来 るそうな 13 まだ 試 していませんが 一 応 KVMもChromebookで 動 作 します 仮 想 化 OS 環 境 もインストールできる 様 です 参 考 出 展 :KVM virtualization on ARM Chromebook laptop
Windows MacOSX(x86のみ) 14 試 していませんが C720でUSBインストールしてWindowsとMacOSXが 動 いた と 動 作 報 告 あり ドライバが 動 作 しないそうなので 実 用 性 はないです あくまで 実 験 用 とコメントされていました WindowsやMacOSXのインストールはブートローダーでSeaBIOS 対 応 機 種 のみです Windows 1 Windows8.1のブータブルUSBを 作 成 2 C720のDeveloperModeにし Legacybootで 起 動 する 3 Ctl+L キーでUSBから 起 動 してWindows8.1をインストール 4 インストール 中 は 全 てのドライバーをインストールしない 動 作 しなくなる 5 インストール 終 了 後 Windows8.1を 起 動 ( 勿 論 各 種 ドライバは 動 作 しない) MacOSX OSx86の 手 法 を 用 いてインストールするそうです こちらもWindows8.1 同 様 にドライバが 動 作 しないそうです でもドライバ 足 りないから 使 い 物 にならね?
Acerの 掲 示 板 にWindows8の ドライバよこせと 苦 情 多 数 (ヒト イ) 15 動 かんぞー
16 OSC 名 古 屋 京 都 香 港 OSC 台 湾 OSDC OSC 東 京 名 古 屋 京 都 香 港 OSC 台 湾 OSDCに 出 展 予 定 内 容 :OSC 東 京 Spring ChromebookでLinux 45 分 バージョン OSC 名 古 屋 京 都 未 定 海 外 ARMモバイル 機 色 々 OSC 東 京 Spring 2 月 28 日 ( 土 ) 10:00~ 明 星 大 学 Place1 OSC 名 古 屋 5 月 23 日 ( 土 ) 予 定 OSC 京 都 8 月? 予 定 台 湾 OSDC 4 月? 日 予 定 香 港 OSC 6 月 28 日 ( 土 ) 時 間 調 整 中 台 湾 COSCUP 8 月? 予 定 質 問 ご 要 望 はブースまで 是 非 気 軽 にお 聞 き 願 います まだ 分 からない 事 沢 山 あります ゴメンナサイ 技 術 的 な 話 題 や 議 論 雑 談 を 含 め 何 でも 講 演 資 料 は 会 場 でも 配 布 しております 楽 しみにお 待 ちしております
過 去 の 参 考 文 献 17
今 回 の 重 要 な 参 考 文 献 18
19 ARM Linuxの 分 類 Bootloader Android FirefoxOS 組 み 込 み Linux Linux ディストリ ビューション ChromeOS
Das U-Boot 解 説 20 ARM 他 で 良 く 使 われている 高 性 能 ROMブートローダ 2010 年 頃 からRedbootの 代 替 としてメジャーに 起 動 ディスクとして 多 数 のフォーマット ストレージに 対 応 している 強 みあり C 言 語 で 作 成 CPUとメモリマップを 直 接 指 定 理 解 が 必 要 Linuxの 場 合 は mkimageコマンドでをuimage 等 に 変 換 圧 縮 してフラッシュROM 焼 きしてROMから 起 動 メモリに 展 開 第 一 パーティションにMLOと/boot/を 置 く rootfsをext3などに 置 く から 起 動 CPU 実 行 ROM MLO bootloader rootfilesystem メモ リ 転 送 リセット クロック 指 定 ROMからメモリ 転 送 可 能 リセット RAM (メモリ) rootfilesystem bootloader デバイス 認 識 (ドライバ) ディスク 再 転 送 可 能 MBR (ディスク) Grub rootfilesystem OS 起 動 リセット 参 考 U-Boot ユーザーズマニュアル