raspberry piの便利なインストーラーnoobsを活用してみよう!
DESCRIPTION
2014/4/12 Raspberry JAM #5にて発表TRANSCRIPT
Raspberry Piの便利な インストーラー NOOBSを 活用してみよう! JRPiUG あっきぃ(@Akkiesoft) 2014/4/12 Raspberry JAM #5
自己紹介 • あっきぃです – ググったら90年生まれのアイドルが出てきた – ( ՞ਊ ՞)私は88年生まれのEjectアイドルです
• Ejectコマンドユーザー会主宰 • akkiesoft.hatenablog.jp • 各種WebサービスのID: Akkiesoft • 最近はradikoプレミアムで地元のラジオを聞くのが楽しみ
今日のお題 • NOOBSを色々さわるおはなし • 出来合いのOSを入れるだけじゃ勿体ない • 自分だけのカスタムOSを作ってNOOBSに追加しよう
• 自動インストールとかVNCインストールを使い、ディスプレイを使わずにインストールしよう
NOOBSとは • Raspberry Pi用のOSインストーラ • New Out Of the Box Softwareの略 • OSランチャー、設定エディター、オンラインヘルプブラウザーも搭載
• マウスでポチポチするだけでRaspbian、Pidora、RaspBMCとかが入る – ddしなくてもいい
NOOBS
いちおう使い方のおさらい
NOOBSを起動するまで • SDカードをフォーマット • NOOBSのzipをダウンロード – 公式: http://www.raspberrypi.org/download
– JAISTミラー: http://ftp.jaist.ac.jp/pub/raspberrypi/NOOBS/images
• zipを展開 • 展開されたファイルをSDカードにコピー
コピーした後のSDカード
NOOBS起動
もし画面が出ない時は • 数字の1~4のキーを押すと画面モードが変わるのでためしてみよう – 1: HDMI – 2: HDMIセーフモード – 3: コンポジットNTSCモード – 4: コンポジットPALモード
• そもそも画面がない人は自動インストールかVNCモードを試してみよう(あとで)
インストール • 言語とキーボードを選択 • 好みのOSを選択 • インストールボタンを押す
インストールは2種類 • インストールは2種類ある 1. SDカードにあるイメージを展開 2. ネットワークインストール – 公式サイトのダウンロードページのNetwork install Onlyはこれ
• もちろん、SDカードにあるイメージを展開したほうが早い
オンラインヘルプ
日本語のWebも見られる • 日本語入力はできないけれどWebを見るだけならNOOBSだけでなんとかできそう
設定の編集 • OSがインストールされたあとは、起動に関する設定ができる
• そんなに使わないかもですが • config.txt • cmdline.txt
OSセレクター • OSを複数インストールすると、OSセレクターが表示される
• ( ˘ਊ˘).oO(複数入れる機会は少ないかも)
NOOBSイメージを作成しよう
NOOBSイメージ作成の用途 • こんな時に作るといいかんじ
• 常時稼働している環境のバックアップ • 作り込みが済んだ環境のテンプレート化 • 配布イメージの作成
• イメージは簡単に作成可能
私の場合 • KokudaAirconServer – 自宅のエアコンサーバーのバックアップ
• Raspbian for PiTFT – PiTFTを使うための初期設定が済んだRaspbian
• Minibian(MinibianX) – Raspbianから使用しないパッケージを削り軽量化したもの(Xあり/なし)
必要なもの • 作りこみが済んだRasPiのSDカード • パワーがある作業マシン – xz形式で圧縮をするので、CPUパワーと時間が必要
– xzユーティリティ5.1.1alpha以降のマルチスレッド対応を活用するとなおよし
• Raspbianを例に説明
SDカードをマウント • SDカードを作業マシンにマウントする – sdbを仮定
• NOOBSの場合
• ddイメージの場合は多分sdb2・1の順
# mount /dev/sdb6 /mnt # mount /dev/sdb5 /mnt/boot
tarアーカイブを作成 • rootパーティションとbootパーティションをそれぞれアーカイブ作成
• tarファイルのサイズをMB単位で控えておく(後で必要になる)
# cd /mnt # tar cpf /tmp/root.tar ./* –exclude=proc/* -‐-‐exclude=sys/* -‐-‐exclude=dev/pts/* -‐-‐exclude=boot/* # cd boot/ # tar cpf /tmp/boot.tar
tarアーカイブを圧縮する • xz形式で圧縮する
• 圧縮にCPUパワーが必要になるため、スペックが高いマシンでやると吉
• xzバージョン5.1.1以降を用意すると、 マルチスレッドで高速処理も可能
# xz –9 –e /tmp/root.tar # xz –9 –e /tmp/boot.tar
設定ファイルを書く • Raspbianの設定ファイルをコピーする – os/Raspbianディレクトリのtar.xzファイル以外ね
• 以下のファイルを編集 – os.json – partition.json – ※partition_setup.shとflavours.jsonは 未開拓……
os.json • OSの情報を記述するファイル • 難しくないので詳細は割愛 { "name": "MinibianX", "url": "http://www.raspbian.org/", "version": "wheezy", "release_date": "2014-‐01-‐07", "kernel": "3.10", "description": "A community-‐created port of Debian wheezy, optimised for the Raspberry Pi", "username": "pi", "password": "raspberry" }
partition.json • OSのパーティショ ン情報を記述する ファイル
• bootパーティショ ンとrootパーティ ションでそれぞれ 記述
{ "partitions": [ { "label": "boot", "filesystem_type": "FAT", "partition_size_nominal": 60, "want_maximised": false, "mkfs_options": "-‐F 32", "uncompressed_tarball_size": 20 }, { "label": "root", "filesystem_type": "ext4", "partition_size_nominal": 2450, "want_maximised": true, "mkfs_options": "-‐O ^huge_file", "uncompressed_tarball_size": 530 } ] }
partitions.jsonのパラメータ(1)
• label – パーティション名(アーカイブ名)
• filesystem_type – ファイルシステム名
• par00on_size_nominal – 必要なパーティションのサイズ。普通はuncompressed_tarball_sizeよりも大きい値にするべき
partitions.jsonのパラメータ(2)
• want_maximised – SDカードの空きに余裕があった場合、空き容量いっぱいにパーティションを作成する
• mkfs_op0ons – ファイルシステムを作成するときのオプション。基本的にはいじらなくて良い
• uncompressed_tarball_size – xzで圧縮する前のtarアーカイブのファイルサイズ。たぶんMB単位
おこのみで画像ファイル • アイコン – インストールの一覧に表示される画像 – 40x40ピクセルのPNGファイルを用意 – os.jsonで指定したOS名をファイル名にする
• スライド画面用画像 – インストール中に表示される画像 – slides_vgaディレクトリ以下に387x290ピクセルのPNGファイルを大文字アルファベット順で配置する
NOOBSを起動してみよう • 自分の作ったOSがリストに出てインストールができたら成功
配布用に作るときの注意点 • 配布するときは以下の点に気をつけよう – デフォルトパスワード – SSHキーの再生成 – raspi-configなどを呼び出すようにする – 特に下の2点は初回実行後呼び出し用のファイルが消える
• 再配布用の設定は研究中 – うまくできたらsysprepをもじってrasprepとか言ってリリースしたいですね(☝ ՞ਊ ՞)☝
• あとライセンスも一応気をつける
NOOBSのTIPS
自動インストール • KVM操作なしでNOOBSにOSをインストールしてもらうモード
• 手順 – recovery.cmdlineファイルに「autoinstall」オプションを追加
– osディレクトリに一つだけOSを入れる – 起動して放置
• Raspbianの場合フレーバーがあるので自動にならない(要研究)
VNCインストール • ディスプレイがない環境でNOOBSを使う場合のモード – もしくは私のようにスクリーンショットを撮りたいときとかに
• recovery.cmdlineに「vncinstall」を追加して、「quiet」を削除
• Raspberry Piを起動して「<Raspberry PiのIPアドレス>:5900」にアクセス
VNCインストールの注意点 • IPアドレスの特定が難しい? • 私の場合DHCPでIPを固定にしているので特定できるけど、他の場合は難しそう?
• VNCクライアントによってはうまく表示できない – Macの標準クライアントは× (10.9)
– Mac版RealVNCはExpert設定 でFullColorをTrueにすると イケる
NOOBSの日本語化 • 現在のバージョンは初期に翻訳された日本語以外はほとんど英語
• 私が勝手に翻訳を初めて、UGメンバーに手伝い・レビューを頂きながら最新版を翻訳
• githubにPull requestを送りました – https://github.com/raspberrypi/noobs/pull/182
最新の日本語版を使うには • ソースをダウンロードしてコンパイル • ものぐさな人は、私がビルドしたものをこっそり配布中 – http://d250g2.com/raspi/noobs.tar.xz – Pull requestが採用されるまで有効
まとめ • OSイメージを配布することがあったら、ディスクイメージでもいいけれど、NOOBSイメージも作成してみよう
• バックアップとしても活用してみよう