2018/05/05

モニタ、キーボードなしでRaspberryPiにraspbianをインストールする(改訂版)

最新のRaspbian Stretchは仕様変更があったようで昔の手順ではうまく出来なくなってしまいましたので手順を最新化して再掲します。

変更点は下記です。
  • 固定IPの設定方法変更 : etc/network/interface から /etc/dhcpcd.conf に変更
  • ssh有効化手順追加 : Raspbian Stretchは「デフォルトssh無効」に変わったため

RaspbanをインストールするにはモニタとキーボードをRaspberryPiに接続する必要があります。しかし、つなぐのは面倒なのでSSH経由でraspbianの初期設定する方法を試してみましたので備忘録を兼ねて紹介します。

■用意するもの

  • Linuxマシン
  • SDカードリーダ

■OSイメージをダウンロード

Linuxマシン上での作業です。
まずはOSイメージをミラーサイトからダウンロードします。
$ wget http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2018-04-19/2018-04-18-raspbian-stretch.zip
$ wget http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2018-04-19/2018-04-18-raspbian-stretch.zip.sha256
$ sha256sum -c 2018-04-18-raspbian-stretch.zip.sha256
2018-04-18-raspbian-stretch.zip: 完了

■イメージファイルをマウントする

Linuxマシン上での作業です。
raspbianのIPアドレスを固定するため、イメージファイルをマウントして設定ファイルを書き換えます。
$ unzip 2018-04-18-raspbian-stretch.zip
$ fdisk -l 2018-04-18-raspbian-stretch.img
Disk 2018-04-18-raspbian-stretch.img: 4.6 GiB, 4953473024 bytes, 9674752 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
Disklabel type: dos
Disk identifier: 0x9cba179a

Device                           Boot Start     End Sectors  Size Id Type
2018-04-18-raspbian-stretch.img1       8192   96453   88262 43.1M  c W95 FAT32 (LBA)
2018-04-18-raspbian-stretch.img2      98304 9674751 9576448  4.6G 83 Linux

  • 2018-04-18-raspbian-stretch.img1 : raspbian上では"/boot"にマウントされる
  • 2018-04-18-raspbian-stretch.img2 : raspbian上では"/"にマウントされる
ここからはrootでの作業です。
# mount -o loop,offset=50331648 2018-04-18-raspbian-stretch.img /mnt/

オフセットの値はfdisk中の98304にセクタサイズ512を掛けた値。

■ネットワーク関係のファイルを変更

ファイルのオーナがrootなのでrootになって作業します。
("xxx"部分は自分のネットワーク環境に合わせて適宜書き換える)

# vi /mnt/etc/dhcpcd.conf

・変更前
# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1

・変更後
# Example static IP configuration:
interface eth0
static ip_address=xxx.xxx.xxx.xxx/xx
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=xxx.xxx.xxx.xxx
static domain_name_servers=xxx.xxx.xxx.xxx

# umount /mnt

■sshを有効化

raspbian上の/bootに"ssh"というファイルを置くとsshが有効化されます。
# mount -o loop,offset=4194304 2018-04-18-raspbian-stretch.img /mnt/
オフセットの値はfdisk中の8192にセクタサイズ512を掛けた値。

# touch /mnt/ssh
# umount /mnt

■SDカードに書き込む

LinuxマシンからSDカードにイメージファイルを書き込みむ。("/dev/sdb"は自分の環境に合わせて適宜書き換える)

# dd bs=16M status=progress if=2018-04-18-raspbian-stretch.img of=/dev/sdb

■Raspberry PiにSDカードを挿入して起動する

Linuxマシンからssh経由でRaspberry Piにログインする。(user=pi, passwd=raspberry, xxx.xxx.xxx.xxxは先に設定したIPアドレス)
各種設定をする。
$ ssh pi@xxx.xxx.xxx.xxx
pi@xxx.xxx.xxx.xxx's password: raspberry
pi@raspberrypi ~ $ sudo raspi-config

これで完了です。

RaspberryPiにCUI版Emacsをインストールする

標準のEmacsではGUI対応のため、沢山のパッケージがインストールされます。ssh経由でしかEmacsを使用しないなどGUI不要の場合は"emacs-nox"をインストールすると良いです。XをサポートしないEmacsなので、インストールされるパッケージが少ないです。
# apt update
# apt install emacs-nox

■emacs-noxについて

GNU Emacs editor (metapackage, without X support)

■補足

emacs-noxではホイールマウスの設定は使えないようです。
.emacsの該当部分をコメントアウトする
;;;; ホイールマウス
;(mouse-wheel-mode t)
;(setq mouse-wheel-follow-mouse t)

【備忘録】時系列データの編集方法(R言語, tidyverse)

TimeSeries.knit 1 サンプルデータ作成 2 日付単位に集計する 2.1 月毎集計 2.2 四半期毎集計 ...