Ubuntu Weekly Recipe

第362回 Raspberry Pi 2でXubuntu 14.04を動かす

この記事を読むのに必要な時間:およそ 7 分

ルートファイルシステムの作成

次にルートファイルシステムを作成します。前述したとおり,「Snappyではないほうの」Ubuntu Coreを使用します。これはUbuntuの最小構成をアーカイブしたもので,Ubuntuのルートファイルシステムとして起動,ハードウェアの検知,⁠DHCPも含む)ネットワークへの接続,パッケージ管理まではできるようになっています注6)⁠今回はUbuntu 14.04.1を利用します。他のリリースを使いたい場合や,将来的に14.04.2以降がリリースされたら,URLを適宜読み替えてください。

注6)
第360回で紹介されているdebootstrapを実行しいくつかのパッケージをインストールしてアーカイブにしたもの,だと思ってください。
$ wget http://cdimage.ubuntu.com/ubuntu-core/releases/14.04.1/release/ubuntu-core-14.04.1-core-armhf.tar.gz
$ sudo tar xvf ubuntu-core-14.04.1-core-armhf.tar.gz -C /media/ubuntu/root/

さらにRaspberry Pi 2用のカーネルモジュールもルートファイルシステムに展開しましょう。こちらもカーネルイメージと同じく,Snappyのそれをそのまま流用します。⁠ブートパーティションの作成」で使用したpi-snappy.imgを使って,今度は第2パーティションをマウントします。

$ sudo mount -o loop,offset=71303168,sizelimit=1073741824 pi-snappy.img /mnt
$ sudo cp -a /mnt/lib/modules /media/ubuntu/root/lib/
$ sudo umount /mnt

このファイルシステムは最小構成なので,一般ユーザーも存在しない状態です。そこで一般ユーザー「ubuntu」を作成し,sudoグループに追加,さらにネットワーク設定を行い,aptのuniverseとmultiverseを有効にしておきます。

$ sudo apt install qemu-user-static
$ cd /media/ubuntu/root
$ sudo cp /usr/bin/qemu-arm-static usr/bin
$ sudo mount -t proc proc proc
$ sudo mount --rbind /dev dev
$ sudo mount --rbind /sys sys
$ sudo mount -o bind /etc/resolv.conf etc/resolv.conf
$ sudo chroot . /bin/bash

# adduser ubuntu
# addgroup ubuntu sudo
# echo "raspi2" > /etc/hostname
# echo "127.0.1.1       raspi2" > /etc/hosts
# echo "auto eth0" > /etc/network/interfaces.d/eth0
# echo "iface eth0 inet dhcp" >> /etc/network/interfaces.d/eth0
# sed -i "s/^# \(.*trusty.*verse.*\)/\1/g" /etc/apt/sources.list
# apt install openssh-server avahi-daemon
# exit

$ sudo umount etc/resolv.conf
$ sudo umount -l sys
$ sudo umount -l dev
$ sudo umount proc
$ sudo rm usr/bin/qemu-arm-static

途中でopenssh-serverとavahi-daemonをインストールしているのは,起動後にSSH経由で操作したいことと,Raspberry Pi 2のIPアドレスをDHCPで割り当てたときに「raspi2.local」でアクセスできるようにするためです。どちらも必須ではありませんので,各自の都合に合わせて変更してください。

ここまででルートファイルシステムの基本設定は完了です。Xubuntuのインストールなどの残りの作業についてはデバイスを起動後に実行することにします。

ちなみにこの状態で,アーカイブに固めておけば,複数のRaspberry Pi 2に展開するときに設定済みイメージとして流用できます。

Raspberry Pi 2で起動する

microSDHCを用意できたので,これをアンマウントしたうえでRaspberry Pi 2に装着し,LANケーブルなどを接続して,電源を投入してみましょう。HDMIも接続していれば,ディスプレイにカラフルな四角が描画されたあと,木苺が4つ登場し,カーネルの起動ログが流れていくはずです。

最終的にログインプロンプトが表示されたら,Ubuntuの起動はうまくいったということになります。

電源投入直後,赤LEDは点灯するものの,緑LEDが点滅しない場合はmicroSDHCカードを認識できていない可能性があります。特にいろんなケーブルを挿している状態だと,うまく認識できないことがありましたので,適宜ケーブルを挿抜したり,電源を再度投入することも試してみてください。

木苺が表示されるものの,カーネルのログが表示されない場合は,⁠ブートパーティションの作成」で行ったconsoleオプションの設定を間違っている可能性が高いです。

他のRaspberry Pi 2で使用したUbuntuインストール済みのmicroSDHCカードを流用する場合,udevの設定によりネットワークインターフェースの名前が変わってしまいます。⁠ルートファイルシステムの作成」ではeth0で決め打ちで設定しているので,必要であればあらかじめ/etc/udev/rules.d/70-persistent-net.rulesを削除しておくか,どのデバイスでも同じインターフェース名になるよう設定しておくと良いでしょう。

その他,起動しない際のトラブルシューティングはeLinux.orgのWikiにまとまっていますので,状況にマッチする項目を探してみると良いでしょう。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

  • 間違いについて

    コマンドの中の「apt」は全て「apt-get」ではないのでは

    Commented : #1  トンボ (2016/01/23, 15:42)

コメントの記入