ラズパイは非力なハードウェアです.ディスプレイやキーボードをつないで,OSとして Raspbian(ラズビアン)などを使えば,PCのように利用することもできます.しかし所詮はラズパイ.PCの代用としては処理速度が遅く,実用性に欠けます.
またIoTやオーディオサーバのような用途ではGUI自体が不要な場合が多いです.この場合,キーボード,マウスを接続すること自体が無駄,GUI関連のソフトウェアをインストールすることも無駄になります.
というわけで,今回は
- キーボード,マウスは接続しない
- ラズパイはLANケーブルでネットワークに接続
- ラズパイの操作は,ssh経由で遠隔操作
するいわゆる head less で運用する方法をまとめます
また Raspberry pi 3 は64bitモードで使用します.つまり,32bitのARMv7(bcm2707 dts)ではなく,64bitのARM v8 (bcm2837 dts)を使うものとします
手順0) OSの選定
Debianを使います.理由は以下の通り.
- インストールが簡単
- 64bit版である
- インストール直後は必要最低限のソフトウェアしかインストールされていない.つまり軽量&高速です.
- 必要なソフトが簡単にインストールできる(aptを使うだけ)
RaspberryPiにdebianをインストール,と言っても,原理的にはddでSDカードにイメージを書くだけです.
ただし今回はMacで作業したので,Mac固有のddの使い方として手順をメモします.
手順1) SDカードをMacに接続
手順2) ターミナルを起動
手順3) SDカードのデバイスファイルを確認します
ターミナル上でdiskutilコマンドを使います
$ diskutil list
今回は /dev/disk2 にSDカードが接続されていました.
/dev/disk2 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *31.0 GB disk2 1: Windows_FAT_32 31.0 GB disk2s1
デバイスファイル名を確認するだけなら dh コマンドでも大丈夫ですが
$ dh -h
次のステップで結局 diskutil を使う羽目になります.「Macなら diskuitl 」と覚えておいたほうが都合が良いです
手順4) SDカードをアンマウント
diskutilを使います
$ diskutil unmountDisk /dev/disk2
手順5) ddコマンドで,debianのイメージをsdカードに書き込む
今回は RaspberryPi3 Model Bを使いました.
対応するイメージファイルをダウンロードします.preview版を使いました
https://wiki.debian.org/RaspberryPi3
$ wget https://people.debian.org/~stapelberg/raspberrypi3/2018-01-08/2018-01-08-raspberry-pi-3-buster-PREVIEW.img.xz $ unxz 2018-01-08-raspberry-pi-3-buster-PREVIEW.img.xz $ dd bs=1m if=2018-01-08-raspberry-pi-3-buster-PREVIEW.img of=/dev/rdisk2 conv=sync
ofオプションでは /dev/rdisk2 を指定します.ここを間違うと大事故(Macが起動しなくなる等)がおきかねません.気をつけましょう.
あとbs=1mも重要なオプションです.このオプションをつけない場合,上記の処理はものすごく遅くなります.詳細は割愛しますが,理由が気になる人は「 dd ブロックサイズ」などで検索して調べてください.
手順6) 確認
成功するとパーティションテーブルが書き換わります.diskutil で確認します
$ diskutil list
/dev/disk2 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *31.0 GB disk2
手順7) 起動
SDカードをラズパイに装着して,有線LANに接続した状態で,ラズパイの電源を入れます.
ディスプレイやキーボードはラズパイに繋ぐ必要はありません.
これでDHCPでIPアドレスを自動取得して,sshでログイン可能な状態でラズパイが起動します.
手順8) sshでログイン
ネットワークの設定にもよりますが,うまくいけば,以下のコマンドでラズパイにログインできます.
$ ssh root@rpi3
Password は “raspberry”です
ログインできない場合は,ラズパイのIPアドレスを調べる必要があります.
簡単な方法は,LANのルーターの管理画面で,貸出中のDHCPのアドレスを調べる方法でしょう.
他には ポートスキャンをかけて raspberry piを探す方法があります
nmapを使うなら
$ nmap -p 22 192.168.0.0/24
sshは22番ポートなので"-p 22",192.168.0.0/24はスキャンする範囲で,この場合192.168.0.1から192.168.0.254までの範囲でsshが起動しているホストを探します.
手順9) 初期設定
ルートのパスワードを変更します
$ password
あとは通常のdebianと同じです
まずはパッケージを最新のものに更新します.
$ apt update
$ apt upgrade
デフォルトでは sudo さえインストールされていません.インストールします.
$ apt install sudo
ユーザを作成します
$ adduser アカウント名
sudoできるようにします.設定ファイルを新規作成します.
$ vi /etc/sudoers.d/local
流石にvi は初めからインストール済みです
設定を書きます
アカウント名 ALL=(ALL) ALL
基本設定は以上です.
外部からsshでログインできることを確認します
$ ssh アカウント名@ラズパイのIPアドレス