2012 年に Rapberry Pi を購入していたのですが、多忙で放置状態でした。

最近になって Ruby を勉強し始めたこともあって、そろそろ使ってみようかと思い再設定をしてみました。

用意したもの

  • Raspberry Pi Type B
  • SD カード
  • Mac
  • HDMI ケーブルとディスプレイ
  • キーボード
  • USB 無線 LAN アダプタ (WLI-UC-GNM2)

Raspbian のインストール

NOOBS をダウンロードします。Web サイトから直接 zip ファイルをダウンロードしたら呆れるぐらい遅かったので、 Torrent を使ってダウンロードしました。

Downloads | Raspberry Pi

ダウンロードした zip ファイルを解凍して、できたファイルを SD カードにコピーします。 (SD カードはディスクユーティリティで FAT でフォーマットしておきます。)

コピーが終わったら、SD カードを Raspberry Pi に刺して電源を入れます。

インストール画面で Raspbian を選択してインストールを開始します。少し時間がかかります。インストールが終わると Raspbian のセットアップ画面が開きます。

Raspbian の初期設定 (Raspberry Pi Software Configuration Tool)

1 Expand Filesystem

NOOB の場合は設定する必要がないようです。

4 Internationalisation Options

I1 Change Locale

ja__JP.UTF-8 を追加しましたが、デフォルトは英語のままにしました。コンソールのメッセージを日本語にする場合は、デフォルトの言語を ja__JP.UTF-8 にする必要があります。

I2 Change Timezone

Asia -> Tokyo を選択。

I3 Change Keyboard Layout

接続しているキーボードに合わせて設定します。

設定が終わると再起動します。

無線 LAN とネットワークの設定

ネットワークにつながらないと不便なので、設定します。

無線 LAN アダプタの接続チェック

lsusb を実行して無線 LAN アダプタが認識しているか確認します。

$ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0411:01ee BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070]

WLI-UC-GNM2 という無線 LAN アダプタが認識できているようです。

/etc/network/interfaces を修正します。

$ sudo vi /etc/network/interfaces

ネットワークの環境に合わせて設定してください。

- iface wlan0 inet manual
+ iface wlan0 inet static
+ address 192.168.xx.xx
+ netmask 255.255.255.0
+ network 192.168.xx.xx
+ gateway 192.168.xx.xx
+ wireless-power off
- wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
+ wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

wireless-power off は、パワーマネジメントが働いていると、無線 LAN の再接続がしないようなので OFF にする設定です。

ネットワークインタフェースの再起動をします。

$ sudo ifdown wlan0
$ sudo ifup wlan0

ping を打ってネットワークが疎通できていれば OK です。iwconfg を実行して Power Management:off になっていることも合わせて確認します。

avahi のインストール

ホスト名でログインしたいので、avahi をインストールします。avahi は Bonjour に対応したソフトウェアです。

$ sudo apt-get update
$ sudo apt-get avahi-daemon

これで、raspberrypi.local でアクセスできるようになります。ホスト名を raspberrypi から変更する場合は、/etc/hostname/etc/hosts を変更してください。

その他の設定

日本語フォントのインストール

日本語が表示できないと困るときもあるので、フォントをインストールします。

$ sudo apt-get update
$ sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname

NTP サーバの変更

NTP サーバを NiCT に変更します。

$ sudo /etc/ntp.conf
- server 0.debian.pool.ntp.org iburst
- server 1.debian.pool.ntp.org iburst
- server 2.debian.pool.ntp.org iburst
- server 3.debian.pool.ntp.org iburst
+ pool ntp.nict.jp iburst

NTP デーモンを再起動します。

$ sudo service ntp restart

cron のエディタを変更

vi 派なので変更します。

$ sudo update-alternatives --config editor
There are 3 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path               Priority   Status
------------------------------------------------------------
* 0            /bin/nano           40        auto mode
  1            /bin/ed            -100       manual mode
  2            /bin/nano           40        manual mode
  3            /usr/bin/vim.tiny   10        manual mode

Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.tiny to provide /usr/bin/editor (editor) in manual mode

root のパスワード設定

su - するために、root のパスワードを設定します。

$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:

公開鍵認証方式での ssh 接続

ssh のたびにパスワードを入力するのは面倒なので、公開鍵認証でログインできるようにします。

接続側の Mac で鍵ペアを生成します。

$ ssh-keygen -t rsa

~/.ssh/id_rsa.pub の内容をコピーして、Raspberry Pi にログインします。

ログインしたら、コピーした内容を ~/.ssh/authorized_keys` に貼りつけます。(vi で新規に作成して貼りつける)

$ cd ~
$ mkdir .ssh & cd $_
$ vi authorized_keys

アクセス権を編集します。

$ cd ~
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys

不要なパッケージやファイルの削除

今回使用した SD カードは 4GB だったのですが、空き容量が足りなくなってしまいました。df -m をすると 3GB しかなかったのでどうしてかなと思ったら、リカバリー用のパーティションが 800MB ぐらいありました。

リカバリーはおそらくしないので不要なのですが、リカバリー用のパーティションを消して再利用するよりも、不要なパッケージやファイルを削除して空き領域を増やすことにしました。

削除する対象の選別は、以下の URL を参考にしました。Raspberry Pi の用途に合わせて、適切に削除してください。

RaspberryPi - Raspberry PIの不要ファイル削除 - Qiita

削除前 (2428MB)

Filesystem     1M-blocks  Used Available Use% Mounted on
rootfs              2820  2428       230  92% /
/dev/root           2820  2428       230  92% /
devtmpfs             215     0       215   0% /dev
tmpfs                 44     1        44   1% /run
tmpfs                  5     0         5   0% /run/lock
tmpfs                 88     0        88   0% /run/shm
/dev/mmcblk0p5        60    10        50  17% /boot

削除後 (921MB)

Filesystem     1M-blocks  Used Available Use% Mounted on
rootfs              2820   921      1738  35% /
/dev/root           2820   921      1738  35% /
devtmpfs             215     0       215   0% /dev
tmpfs                 44     1        44   1% /run
tmpfs                  5     0         5   0% /run/lock
tmpfs                 88     0        88   0% /run/shm
/dev/mmcblk0p5        60    10        50  17% /boot

1GB 以内におさまりました。

SD カードのバックアップ

SD カードが壊れたときに、最初から設定するのは面倒なので、Mac にディスクイメージを作成して復元できるようにします。Raspberry Pi を終了して、SD カードを Mac に接続してから作業を行います。

mount コマンドで、SD カードのパスを調べます。

mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk0s4 on /Volumes/BOOTCAMP (ntfs, local, read-only, noowners)
/dev/disk1s2 on /Volumes/Backup Drive1 (hfs, local, nodev, nosuid, journaled, noowners)
/dev/disk2s1 on /Volumes/RECOVERY (msdos, local, nodev, nosuid, noowners)
/dev/disk2s5 on /Volumes/BOOT (msdos, local, nodev, nosuid, noowners)

SD カードは /dev/disk2 でアクセスできるようです。環境によって異なるので確認してください。

SD カードをアンマウントします。

$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful

mount コマンドを実行して /dev/disk2 がいないことを確認します。

$ mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk0s4 on /Volumes/BOOTCAMP (ntfs, local, read-only, noowners)
/dev/disk1s2 on /Volumes/Backup Drive1 (hfs, local, nodev, nosuid, journaled, noowners)

バックアップします。

$ sudo dd if=/dev/disk2 of=yyyymmdd-raspbackup.dmg bs=1m

参考