Raspberry Pi 2にUbuntu 14.04をインストールする方法

RaspberryPi2にのUbuntu14.04(Trusty)をインストールしてセットアップまで行ったのでそのメモ。

PIC_20160509_123536

※厳密にはUbuntu Serverをインストールしました。

RaspbianとUbuntuの違い

どちらもDebian系ですが違いがあります。
UbuntuはDebianベースですが、必ずしもDebianとバイナリの互換性があるわけではありません。

目次

Raspbian

  • Debianをカスタマイズしたもの
  • Raspberry Pi用
  • (非商用に限り)Mathematicaが使える
  • raspi-configで初期設定が済む

Ubuntu

  • Debian GNU/LinuxベースのOS(カーネルはUbuntu独自)
  • 利用されているOSの中では比較的シェアが高いのでドキュメントが充実している
  • ROS(Robot Operating System)はUbuntuを推奨している

特に理由がない場合はRaspbianを使うとよいと思います。
Raspberry Pi用に用意されている、というメリットを最大限に享受することができますので。
今回はROSをRaspberry Piで使おうと思ったのでUbuntuをインストールします。
※RaspbianにもROSはインストールできるようになっていますが、Ubuntuでの方が動かしやすい(ソースなし)のでUbuntuを選択します。

用意するもの

  • Raspberry Pi 2 Model B
  • 8GB以上、Class 10以上のmicroSDHC
    (Ubuntuのインストールだけなら4GB、Class 6あれば十分)
  • 5V、2A以上供給できる電源
    (実測値ではほとんどの場合0.5A以下だったので、PCのUSB2.0ポートでもおそらく問題なし)
  • USBキーボード
  • HDMI対応モニタ(とHDMIケーブル)
  • LANケーブル
  • (必要ならば)Wi-Fiドングル

[amazonjs asin=”B00T356SFO” locale=”JP” title=”Raspberry Pi 2 Model B (1)”]
[amazonjs asin=”B015J44QS8″ locale=”JP” title=”【Amazon.co.jp限定】Transcend microSDHCカード 16GB Class10 UHS-I対応 400× (無期限保証) Newニンテンドー3DS 動作確認済み TS16GUSDU1PE (FFP)”]

Wi-Fiドングルについて

よく使われるWLI-UC-GNM2やWLI-UC-GNMEよりもGW-USNANO2Aの方がおすすめです。
BUFFALOのアクセスポイント(WHR-300HP2/N)でWLI-UC-GNM2とRaspberry Pi 2を組み合わせて使用したところ、しょっちゅう切断されるなどの不具合がありました。
ですが、そのときにGW-USNANO2Aに交換したら何事もなかったかのようにほとんどロスなく通信できました。
そのほかのルータでは問題なく接続できていたので設定次第で改善できた可能性もありますが。
また消費電力を比べてみてもWLI-UC-GNM2は最大2.5W、GW-USNANO2Aは最大1.3Wと省エネです。
発熱量はどちらも多いですが、GW-USNANO2Aの方が少ない気がします。

[amazonjs asin=”B005DU4XSM” locale=”JP” title=”BUFFALO 11n対応 11g/b 無線LAN子機 親機-子機デュアルモード対応モデル WLI-UC-GNM2″]
[amazonjs asin=”B00ESA34GA” locale=”JP” title=”PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps MacOS X10.10対応 GW-USNANO2A (FFP)”]

手順

書き込むイメージの準備

ARM/RaspberryPi – Ubuntu Wiki
2015-04-06-ubuntu-trusty.zipを上記サイトからダウンロードします。159.3MBありました。
今回はDownloads直下にそのまま2015-04-06-ubuntu-trusty.imgを展開しました。
※Ubuntu14.04はRaspberry Pi 3には対応していません。
対応させる方法を書きました。RaspberryPi3にUbuntu14.04をインストールする方法 | Memoteki

microSDの準備

今回はMacで実行します。Linuxでも概ね同じようにできるようです。

WindowsではWin32 Disk Imagerなどを使えば簡単です。

microSDを指す前と指す後で2回以下のコマンドを実行します。

diskutil list

/dev/disk2 (external, physical)が増えており、これがmicroSDであることがわかります。
ここで違うdiskを選択すると、最悪の場合OS Xが起動しなくなる場合があります。

diskutil umountDisk /dev/disk2
sudo dd if=~/Downloads/2015-04-06-ubuntu-trusty.img of=/dev/rdisk2 bs=1m

ここで、ofに/dev/disk2ではなく、/dev/rdisk2を指定します。
rdiskはdiskと違い、アンバッファモードなのでバッファモードより書き込みが数倍速いです。
時間がかかりますが、Ctrl+Tできちんと動いている確認できます。
書き込みが終わったら、EjectしてmicroSDの準備完了です。

diskutil eject /dev/disk2

接続

microSD、LANケーブル、HDMIケーブルを所定の位置に接続し、最後にmicroUSBの電源をつなぎます。
このときにHDMIケーブルでモニタとRaspberry Pi 2が接続されていないと途中から接続しても認識されません。
ssh接続テストを行うまでHDMI対応モニタとUSBキーボードを使用します。

キーボード、タイムゾーンの設定

デフォルトのログインユーザは”ubuntu”、パスワードも”ubuntu”です。

sudo dpkg-reconfigure keyboard-configuration
sudo dpkg-reconfigure tzdata

パッケージリスト・パッケージの更新

sudo apt-get update && sudo apt-get upgrade

mDNSとOpenSSHサーバのインストール

マルチキャストDNS(mDNS)はMacやWindowsではBonjourと呼ばれているサービスです。
IPアドレスを直接入力しなくても同じネットワーク内で”HOSTNAME.local”が名前解決できるようになります、
Windowsで使うにはBonjour for Windowsが必要になります。
単体でもインストールできますが、iTunesのインストール時にインストールされます。
LinuxではAvahiを使います。

sudo apt-get install avahi-daemon openssh-server

お気に入りのエディタをインストール

VimでもEmacsでもnanoでも。

sudo apt-get install vim

hostnameの変更

mDNSを入れたのでhostnameを変更します。
ほかのhostnameと同じにならないように設定する必要があります。
今回は”raspberrypi001″に変更しています。

sudo vim /etc/hostname
sudo vim /etc/hosts

/etc/hostnameの中身はこんな感じ。

raspberrypi001

/etc/hostsの中身はこんな感じ。127.0.0.1のところだけ書き換えればよいでしょう。

#127.0.0.1    ubuntu
127.0.0.1    raspberrypi001

ここで一度再起動

sudo reboot

ssh接続テスト

ここからはsshで接続できるはずです。
同じネットワーク内で”HOSTNAME.local”(今回は”raspberrypi001.local”)で接続できるようになっています。
MacやLinxからならターミナルを起動して以下のコマンドで接続できるはずです。

ssh [email protected]

Windowsの場合はTeraTermで接続できます。

Wi-Fi接続に必要なパッケージのインストール

Wi-Fi接続に必要なドライバなど各種パッケージをインストールします。

sudo apt-get install linux-firmware wireless-tools wpasupplicant

Wi-Fi設定ファイルの編集

sudo vim /etc/network/interfaces
sudo vim /etc/wpa_supplicant/wpa_supplicant.conf


ちなみに、以下のコマンドを実行することでWi-Fiのアクセスポイントをスキャンすることができ、プロトコル等を調べることができます。

sudo iwlist wlan0 scan

wlan0がないよ!と言う旨のエラーが出たらifupしてあげればwlan0が起動します。

sudo ifup wlan0

Wi-Fi設定の確認

Wi-Fiの設定ができたら、以下のコマンドでcompletedと言われるか確認します。

sudo wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf

最終行がこんな感じになります。

CTRL-EVENT-CONNECTED - Connection to xx:xx:xx:xx:xx:xx completed

オプションに-Bをつければバックグラウンドでの起動に切り替わります。

ファイルシステムの拡張

raspi-configならexpand_rootfsで済む部分ですが、Ubuntuでは手作業が必要です。
以下のコマンドで/dev/rootのsizeが1.7GBぐらいだと思います。

df -h
sudo fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.22.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p # pを入力

Disk /dev/mmcblk0: 15.8 GB, 15798894592 bytes, 30857216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004f23a

Device Boot Start End Blocks Id System
/dev/mmcblk0p1 * 2048 186367 92160 c W95 FAT32 (LBA)
/dev/mmcblk0p2 186368 3667967 1740800 83 Linux

Command (m for help): d # dを入力
Partition number (1-4): 2 # 2を削除する

Command (m for help): n # nを入力
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p # pを入力
Partition number (1-4, default 2): 2 # 2を新規パーティションに
First sector (186368-30857215, default 186368): # Enter
Last sector, +sectors or +size{K,M,G} (186368-30857215, default 30857215): # ENter
Using default value 30857215

Command (m for help): w # wを入力

RaspberryPiでSDカード容量を最大まで使うようにする – hello-world.jp.net

開始と終了のセクターアドレスはデフォルトで正しく指定されることが多いです。

一度再起動

sudo reboot

パーティション拡張

sudo resize2fs /dev/mmcblk0p2

これでセットアップは終了です。
あとは通常のUbuntuと同様に使用することができます。

そのほか

単体で使う場合はケースつけると便利です。
ヒートシンク付きのケースが特におすすめです。

[amazonjs asin=”B00VEERTRI” locale=”JP” title=”Raspberry Pi 2 Model B アクリル ケース ブラック ヒートシンク”]
[amazonjs asin=”B00TBKFAI2″ locale=”JP” title=”Raspberry Pi2 Model B ボード&ケースセット (Standard, Clear)-Physical Computing Lab”]

参考サイト

この記事が気に入ったら
フォローしてね!

よかったらシェアしていただけると励みになります!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Memotekiの管理人です。このブログには学んだことや共有しておきたいことをマイペースにメモしていきます。2020年からは日記も書き始めました。

コメント

コメント一覧 (1件)

コメントする


The reCAPTCHA verification period has expired. Please reload the page.

目次