できること

第41回「見た目も中身もコンパクトに!Raspberry Pi ZeroをCUI環境で動かそう」

raspberrypi41_main
バージョンアップのたびにデスクトップが使いやすくなっていくRaspbianですが、「Raspbian Jessie Lite」という、デスクトップ環境関連のパッケージが入っていないバージョンもリリースされています。必要最低限の構成に絞り込まれているので、その名の通り、とても軽いのが特徴です。
小さなラズベリーパイ・ゼロに合わせて、中身も軽く!「Raspbian Jessie Lite」を使って、CUI環境で操作に挑戦します!

さらに今回は、オーディオ端子の付いていないRaspberry Pi Zeroのために、USBスピーカーを用意してみました。Zeroで受信したインターネットラジオの音がUSBスピーカーから流れるまでの過程をご紹介します。

 

Raspbian Jessie Liteのインストール

Raspbian Jessie Lite
Minimal image based on Debian Jessie

今回は2016年2月26日リリース版を使用します。

公式サイトからダウンロードしたZIPファイルを比べてみると、「Raspbian Jessie」が1.3GBに対し、「Raspbian Jessie Lite」は284MBでした。
ファイルを解凍してみると、イメージファイルは1.26GB。容量が少ない分、SDカードに焼き込む時間も大幅短縮!2~3分程度でできあがりました。

raspberrypi41_img01

図1

USBポートに接続するものは、キーボードとWi-Fiアダプタの2つです(いつもの癖でマウスも用意してしまったのですが、今回はCUI環境なので必要ありませんね……)。

raspberrypi41_img01

図2

コンソールの流れは比較的ゆっくり。図2のあたりで1分程度止まります。文字列末尾のカウンターと、先頭の赤いアスタリスクが動いているので、フリーズのような印象はありません。

raspberrypi41_img03

「raspberrypi login: 」と表示されて、止まりました。ここまでの流れはいつものRaspbianですね!とはいえ、最近のRaspbianは自動的にデスクトップ起動までをやってくれるので、手動ログインは久しぶりです!
まずはデフォルトの「pi」ユーザーでログインしましょう。ユーザー名「pi」と入力し、「Password:」と表示されたら「raspberry」を続けて入力します。

raspberrypi41_img04

図4

図4は、ログイン後に「startx」コマンドを実行してみたところ。デスクトップ環境がインストールされていないRaspbianなので、「command not found」とエラーになってしまいます。

 

キーボードの設定

後述しますが、先にキーボードの設定を済ませておいた方が進めやすいので、「raspi-config」コマンドで設定画面を呼び出しましょう。

sudo raspi-config

raspberrypi41_img05

図5

矢印キー操作で「5.Internationalisation Options」を選択し、[Enter]キーで決定します。

raspberrypi41_img06

図6

続いて、「I3 Change Keyboard Layout」を選択。次の画面が表示されるまで少し時間がかかりますが、再表示されるまで待ちましょう。

raspberrypi41_img07

図7

キーボードの一覧が表示されます。いろいろなメーカーや型番が表示されていますが、該当するものが見当たらなかったので、デフォルトで選択されていた「Generic 105-key (Intl) PC 」のまま次へ。

raspberrypi41_img08

図8

デフォルトは英語キーボードの設定になっているので、「Other」を選択して言語選択の画面に遷移しましょう。

次に言語を選択します。デフォルトでは「English」になっているので、一番下の「Other」を選択し、次の画面で「Japanese」を選択しましょう。

raspberrypi41_img09

図9

言語の一覧の中から「Japanese」を探しましょう。

raspberrypi41_img10

図10

一番上の「Japanese」を選択。この後も2つ、選択画面が続きますが、あとはデフォルトのままでOKです。設定が完了すると、再起動を促すメッセージが表示されるので、指示通りに再起動して適用させましょう。

 

オートログインの設定

いつもの「Raspbian Jessie」ではデフォルトで設定されているオートログイン機能ですが、「Raspbian Jessie LITE」の場合は手動ログインが必要でした。

この設定も「raspi-config」から可能です。

raspberrypi41_img11

図11

「raspi-config」画面を呼び出したら、「3. Boot Options」を選択します。

raspberrypi41_img11-2

図12

「B2 Console Autologin」を選択します。「Text console,automatically logged in as ‘pi’ user」という記載の通り、起動時にpiユーザーで自動ログインしてくれます。

 

Wi-Fi接続

デスクトップ環境ではWi-Fi接続のためのツールが用意されていましたが、今回はコマンド入力のみで設定する必要があります。

Setting WiFi up via the command line – Raspberry Pi Documentation

コマンドラインからのWi-Fi接続設定についてのドキュメントが、公式サイトに用意されていました。この手順に沿ってやってみましょう!
事前準備として、Wi-Fiアダプタを事前にUSBハブに接続しておきます。

sudo iwlist wlan0 scan

こちらはアクセスポイントをスキャンして表示するコマンドです。接続したいネットワーク名がきちんと受信できているか、確認してみましょう。
受信しているネットワーク数にもよるのですが、わたしの環境の場合、コマンドを打ち込んでEnterキーを押した瞬間、何百行にも渡る大量の情報が表示されてしまいました!そしてスクロールバーが出ないので戻れません……ということで、もう一手間加えて再チャレンジ。

sudo iwlist wlan0 scan | grep ESSID

このように絞込みをかけて、今必要な情報だけを表示します。
実は先にキーボードの設定が必要だったのはこのコマンドを実行するため!ラズベリーパイのデフォルトのキーボード設定は英語のため、設定を変えないと「|(パイプ)」が打てないのです……(※お使いのキーボードによって異なります)。

raspberrypi41_img12

図13

SSID名のみの一覧が表示されました!接続したいネットワークが表示されているでしょうか?
ここまでは確認だけの作業なので必須ではないのですが、

受信が確認できたら、指定のWi-Fi根とワークに自動的に接続できるように、ネットワークの設定を行いましょう。

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

nanoエディタで設定ファイルを開いたら、下記のような書式でWi-Fiの情報を記述します。

network={
    ssid="SSID"
    psk="パスワード"
}
raspberrypi41_img13

図14

わたしの環境では、文字列が2行設定されていたので、3行目から追記しました。

設定はこれだけ!次回起動時からは、電源を入れるだけで指定のネットワークに接続できます。
ネットワークの設定を済ませれば、同ネットワークのPCからSSH接続も可能になります。
ディスプレイなしで使えるようになると、HDMIケーブルを外すことができ、ラズベリーパイ本体がさらにすっきり!場所を選ばずに使用できるようになりますね!

 

NAS化してもっと便利に!

外部のPCから簡単にアクセスできるように、sambaパッケージをインストールしてRaspberry Pi ZeroをNAS化してしまいましょう!
NASについては第6回「ラズベリーパイの中にNASを詰め込む!」第7回「ラズベリーNASをカスタマイズ!」で詳しく解説しています。ここではコマンド入力のみで行う設定方法をご紹介!

sudo apt-get update
sudo apt-get install -y samba

まずはインストールコマンドを実行します。

次に、NAS用のディレクトリを準備します。GUI環境のときとは違い、コマンドで行う必要があります。誰でも読み書きができるように、パーミッションは777に設定しておきましょう。

sudo mkdir -m 777 /home/pi/nas/

今回は「 /home/pi/nas/ 」ディレクトリをNAS用に利用することにしました。
環境が整ったので、sambaの設定ファイルを編集して、nasの設定を完了させましょう。

sudo nano /etc/samba/smb.conf

設定ファイルを呼び出したら、下記のように追記します。

[nas]
path = /home/pi/nas/
guest ok = Yes
read only = No

再起動後からは、自動的にsambaが起動し、NASが利用できるようになります。

 

Raspbianのメモリについて

NASとして使っているうちに、メモリが足りなくなってしまう事案が発生!サイズの小さい「Raspbian Jessie Lite」を使っているはずなのになぜ……と思って調べてみると、Raspbianをイメージファイルから書き込んだ場合、デフォルトでは、SDカードの領域をフルには使えない状態になっているそうです。
そこで必要になるのがパーティションの拡張。「raspi-config」から設定できます。

sudo raspi-config

raspberrypi41_img14

図15

一番上の「1 Expand Filesystem」を選択します。

raspberrypi41_img15

図16

少しの間、黒い画面でコンソールが動きますが、図16のような画面が表示されたら設定完了です。

 

ラズパイゼロでUSBスピーカーを使って音を鳴らそう!

Raspberry Pi Zeroにはステレオジャックが付いていないため、このままでは音が鳴りません。ということで、USBスピーカーを買ってもらいました!

raspberrypi41_img16

図17

コンパクトUSBスピーカ – MS-P05シリーズ
(型番:MS-P05UWH)

コードはUSB1本のみ。電力供給も兼ねるので、ラズベリーパイに接続する際にはセルフパワーのUSBハブを利用しましょう。

それでは早速音を鳴らしてみましょう!今回もいつものように「mplayer」を使って、インターネットラジオを流してみたいと思います。mplayerについての詳細は第13回「ラズベリーラジオ前編 – インターネットラジオ受信と遠隔操作」を参考にしてください。

mplayerインストールコマンド
sudo apt-get install mplayer

デフォルトの状態ではHDMIのスピーカーが選択されているので、スピーカーの優先順位を変更する必要があります。
調べてみると、「Raspbian Jessie」と「Raspbian Wheezy」では設定方法が異なるようです。わたしの環境では、Adafruite社のページで紹介されている方法で実現できました!

Updating ALSA Config | USB Audio Cards with a Raspberry Pi | Adafruit Learning System

sudo nano /etc/asound.conf

下記の6行を記述します。

pcm.!default  {
 type hw card 1
}
ctl.!default {
 type hw card 1
}

このままスピーカーを使うと大音量でなってしまう可能性が高いので、続けて音量を調整しておきましょう。

alsamixser

raspberrypi41_img17

図18

[F6]キーを押下してUSBスピーカーを選択し、上下の矢印キーで音量を調整します。わたしの環境では。10程度で十分な音量でした。

mplayer -volume 50 -playlist http://yp.shoutcast.com/sbin/tunein-station.pls?id=172098

mplayerでSHOUTcastを受信してみました(詳しくは第13回「ラズベリーラジオ前編 – インターネットラジオ受信と遠隔操作」にて)。
「-volume」パラメータは、音量のデフォルト値(%)を指定するためのものです。デフォルトでは100%となってしまうので、小さめの値を指定してあげた方が安全ですね。音量は、キーボードの[0]キー(+)と[9]キー(-)で調節できます(スピーカー側での音量調節はできませんでした)。

USBハブを介して接続しているせいか、ノイズをひろうことはほとんどなく、とても快適に音を楽しむことができました。また、電力もUSBハブからとっているので、ラズベリーパイの電力不足の心配もありません。
唯一の注意点は、最初の音量設定!スタートは小さめに、少しずつ調整して、聞きやすい音量を探していきましょう(何度も大音量で鳴らしてしまい、社員全員の注目を集めてしまいました……)。

主にSSH接続を利用するなら、キー入力のみで操作ができるmplayerがオススメですが、スマートフォンなどから手軽に使いたい場合はMPDを使うと良いかもしれません(詳しくは第14回「ラズベリーラジオ後編 – MPDとスマートフォンアプリで簡単操作なラジオに変身!」にて)。
ちなみに、音楽を聞くなら「Volumio」を入れれば簡単のでは?と思ってやってみたのですが、電源を入れてもRaspberry Pi Zeroは無反応……残念ながら非対応のようでした。

まとめ

raspberrypi41_img18

上の写真は、接続機器をWi-Fiアダプタのみに絞り込んだ最小構成。小ささが魅力のRaspberry Pi Zeroは、あまり機能を詰め込まずに、シンプルに使うのがオススメです。
「Raspbian Jessie Lite」も、デスクトップ環境が無いこと以外は、いつものRaspbianと変わらずに使うことができました。コマンド入力になれている方なら、こちらの方が快適に使えるかもしれません。

USB接続のスピーカーは、オーディオ端子接続のものに比べて、とても音が良いように感じました。配線がUSBハブ1つにまとめられるので、ラズベリーパイ自体もすっきりと保つことができます。

次回はこちら!

raspberrypi41_img19
Raspberry Pi 3 Model B

Zeroに引き続き、またまたデバプラ編集部から届きました!Raspberry Pi 3 Model B!
次回はこの新ラズパイを使って遊びます!

アバター画像

プロフィール:プログラミング暦通算4年、最近IT業界に舞い戻ってきたプログラマーです。女子です。

高専ロボコン2016 出場ロボット解剖計画