Raspberry Piを活用しよう ディスプレイ、キーボードなしで運用する

Raspbianの新しいイメージ2016-05-10-raspbian-jessieがでました。

手元には自由に使えるPi(Rev2)があるので今回はこのイメージを使ってディスプレイ、キーボード、マウスなしでインストールから運用までどこまで可能か試してみたいと思います。

 

リモートホスト Raspberry Pi (Rev2)
クライアント  Raspberry Pi 3

用意するもの
ネットワーク、X環境の整った作業用Pi
マイクロSDカード(FAT32フォーマット済)
2016-05-10-raspbian-jessie.zip(ダウンロードしておく)

SDカードの作成
ダウンロードした2016-05-10-raspbian-jessie.zipを展開します。

$ unzip 2016-05-10-raspbian-jessie.zip

$ ls -la
-rw-r--r-- 1 pi pi 4016046080  5月 21 08:20 2016-05-10-raspbian-jessie.img
-rw-r--r-- 1 pi pi 1426915530  5月 15 20:56 2016-05-10-raspbian-jessie.zip

SDカードに書き込む前に2016-05-10-raspbian-jessie.imgに少し手を加えます。

マウント
以前SDカードの作成とバックアップで紹介したkpartxを使います。
1.kpartxのインストール

# apt install kpartx

2.ターミナル(lxterminal)からkpartx -va 2016-05-10-raspbian-jessie.imgを実行

# kpartx -va 2016-05-10-raspbian-jessie.img

3.ファイルマネージャ(pcmanfm)からデバイスアイコンをクリック
パスワード入力
マウントに成功すれば下記の画面になります。

2016-05-10-raspbian-jessie.imgの編集
一応ディスプレイに接続することも考慮して/boot/config.txtを作業用Piのconfig.txtと同じように編集します。
kpartx21
マウントしたconfig.txtはpiユーザー権限になっているのでpcmanfmからテキストエディタで編集できます。

編集が終わったら保存して終了します。

kpartx25
3.9GBボリュームを右クリック 端末を開くを選択

3.9GBボリュームの編集にはroot権限が必要です。

sudo nano使いの場合はそれぞれ読み替えます。

kpartx26
/media/pi/以下に”uuid”でマウントされます。

下記は説明上”uuid”としていますが実際はe093a5bb-b180-4f87-9d60-467b3e79811dです。
端末で開いた3.9GBボリュームを基点に操作したいと思います。
スラッシュ(/)の使い方に注意をします。
要は編集するのはマウントした2016-05-10-raspbian-jessie.imgの方ということです。

/media/pi/”uuid”/etc/dhcpcd.confの編集
ネットワークの値は各自環境に合わせます。
今回はwifiを使います。変更は同じ要領でSDカード書き込み後も変更可能です。

pi@raspberrypi:/media/pi/"uuid" # vi etc/dhcpcd.conf
interface wlan0
#interface eth0
inform 192.168.0.70
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

/media/pi/”uuid”/etc/wpa_supplicant/wpa_supplicant.confの編集
作業用Piからコピーします。(wifi接続情報)

pi@raspberrypi:/media/pi/"uuid" # cp /etc/wpa_supplicant/wpa_supplicant.conf etc/wpa_supplicant/wpa_supplicant.conf

編集が終わったらexit exitでターミナルを終了させます。
kpartx27
一旦他のフォルダを選んでboot,3.9GBボリュームのマウントアイコンをクリックしてアンマウント

デバイスを片付けます。

# kpartx -d 2016-05-10-raspbian-jessie.img

SDカードの書き込み
SDカードのデバイス名称を確認して実行 — しばし休憩

# dd if=2016-05-10-raspbian-jessie.img of=/dev/sda bs=1M

書き込みが終わったらSDカードを抜き差ししてファイルマネージャで正常に読めることを確認してPi (Rev2)にセット
誤りが無ければ設定したIPを取得しているはずです。
pi-rev2
sshで接続

$ ssh pi@192.168.0.70
The authenticity of host '192.168.0.70 (192.168.0.70)' can't be established.
ECDSA key fingerprint is c2:8f:56:34:2f:29:73:07:bc:4e:8e:2e:17:41:f9:06.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.70' (ECDSA) to the list of known hosts.
pi@192.168.0.70's password: 

raspi-configの実行

$ sudo raspi-config

raspi01
1 Expand Filesystem
SDカード拡張
5 Internationalisation Options
ロケール ja_JP.UTF-8
タイムゾーン asia–tokyo
キーボードはとりあえず変更なし

再起動

apt update apt upgrade rpi-update

# apt update
# apt upgrade
# rpi-update
# reboot

再起動、ログインします。

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

# apt install fonts-ipafont

リモートデスクトップサーバー(xrdp)インストール

# apt install xrdp

日本語キーボードレイアウト設定
こちらで配布されているので利用させて頂きます。https://w.vmeta.jp/temp/km-0411.ini
下記をkb_jpというファイル名にして/etc/xrdpに保存します。

wget https://w.vmeta.jp/temp/km-0411.ini
ln -s km-0411.ini km-e0010411.ini
ln -s km-0411.ini km-e0200411.ini
ln -s km-0411.ini km-e0210411.ini

次を実行します。

# sh /etc/xrdp/kb_jp

xrdp.serviceを再起動

# systemctl restart xrdp.service

リモートデスクトップクライアント(rdesktop)インストール

ここで作業用pc(ディスプレイ、キーボードのあるpi)にリモートデスクトップクライアント(rdesktop)インストールします。

# apt install rdesktop

クライアントpiから接続してみましょう。

$ rdesktop -u pi -p raspberry -g 1024x720 192.168.0.70

2016-05-10-raspbian-jessieからbluetoothアプレットが追加されたようです。
rdeshtop01
rdesktop -u ユーザー -p パスワード -g ジオメトリ 接続先
通常の操作は特に問題ありませんがウェブブラウザなどで動きのあるものはvnc特有のパラパラ感が出ます。

日本語入力環境

# apt install ibus-mozc

rdesktop02
日本語入力環境はfcitxが動きませんでした。

xrdp上ではibus-mozcが動作するので導入します。
もちろんインストールするのはリモートホストRaspberry Pi(Rev2)のほうです。

tight-vncもありますがxrdp+rdesktopが動作も軽快で使いやすいと思います。
残念ながらpi to piではクリップボード共有ができません。またマウスの中ホイールも効かないようです。ココらへんはscpを使ったりnfsを上げたりという手もありです。

実はxrdp+rdesktopはwindowsのほうが親和性が良いです。
pi(rdesktop)からwindowsリモートデスクトップ(windows10HOMEもホストになれますRDPWrapで検索)
windowsからpi(xrdp)

それでもpi同士であればpiの資産を活かせます。またwifi接続であれば基本の接続は電源ケーブルだけですので気軽にいろんなことが試せると思います。

単にwinもmacも嫌いだという噂もあります。