ラズパイのセットアップメモ (ヘッドレス運用)

ヘッドレスでのセットアップと運用

ラズパイをヘッドレス(ディスプレイ、キーボード、マウスを接続しない)で使うためのセットアップ手順を以下にメモする。

  • 母艦: Windows 10 の PC
  • ラズパイ: Raspberry Pi 3B
  • OS: Raspbian Stretch Lite
  • SDカード: 16GB

OSイメージのダウンロードとSDカードへの書き込み

シリアルコンソール接続

ラズパイへのログイン方法は

  1. ディスプレイとキーボードを接続
  2. シリアルコンソール接続
  3. 有線LAN接続
  4. WiFI接続

があり、この順に確実性が高い。まずは確実な方法でログインして設定していく。ただし、ディスプレイとキーボードはできれば無しですませたい。シリアルコンソール接続する方法は以下の通り。

  • Windows上でSDカードのbootパーティションのフォルダを開く。(ラズパイ上での /boot/ )
  • /boot/config.txt に下記の1行を追記する。
dtoverlay=pi3-miniuart-bt
  • SDカードをラズパイに挿入する。
  • USBシリアル変換アダプタ(これとか)を用いて下図のようにラズパイとPCを接続する。IO電圧が3.3Vであることに注意。

f:id:licheng:20190426161014p:plain:w600

  • Tera Termなどのターミナルソフトを用い、USBシリアルポートを開く。
    (ボーレートは115200)
  • ラズパイの電源を入れる。するとターミナルにコンソール出力が表示される。
  • ログインする。(ユーザー名=pi / 初期パスワード=raspberry)
  • ラズパイのユーザ名/パスワードは変更することが望ましい。手順はこちら

有線LAN接続

SSH接続の有効化

/boot/sshという空ファイルを作成して再起動するとSSH接続が有効になる。

sudo touch /boot/ssh
sudo reboot

この操作はWindows上でおこなってもよいが拡張子の無いファイルなので要注意。エクスプローラ上では「ssh.」というファイルを新規作成するとsshというファイル名になる。

あるいは、raspi-configの「Interfacing Options」>「SSH」でも設定できる。

sudo raspi-config
固定IPアドレスの設定

有線LANに固定IPアドレスを設定するには /etc/dhcpcd.conf を下記のように編集する。ラズパイのIPアドレスを192.168.11.2、ゲートウェイIPアドレスを192.168.11.1とする例である。母艦のWindows PCをゲートウェイとして、母艦のインターネット接続を共有することもできる。
(→参考ページ)

interface eth0
static ip_address=192.168.11.2/24
static routers=192.168.11.1
static domain_name_servers=8.8.8.8
SSHでログイン
  • Tera Termなどのターミナルソフトを用い、SSHでラズパイにログインする。
  • 固定IPアドレスであればそのIPアドレスでホストを指定する。
  • DHCPであれば、DOS窓arp -a コマンドを実行するなどしてIPアドレスを調べる。
    (ラズパイのMACアドレスB8:27:EBから始まる。) 
  • または、最新のWindows 10であればmDNSに対応しているので、ホスト名での指定が可能である。その場合は raspberrypi.local と指定する。
  • ログインできない場合、ラズパイで以下のコマンドを実行してみる。
sudo rm -r /etc/ssh/ssh*key
sudo dpkg-reconfigure openssh-server
Windowsのインターネット共有

ラズパイを有線LANでWindowsのPCに接続し、PCのインターネット接続を共有することができる。Windows上でインターネット接続に使用しているネットワークデバイスのプロパティでインターネット接続の共有を有効にする。

f:id:licheng:20190816120747p:plain

WiFi接続

  • /etc/wpa_supplicant/wpa_supplicant.confを下記のように編集する。
  • Windows上で /boot/wpa_supplicant.conf を作成してもよい。
    (ラズパイ起動時に/etc/wpa_supplicant/wpa_supplicant.confにコピーされる。)
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
   ssid="WiFiのSSID"
   psk="WiFiのパスワード"
}
  • 再起動するとWiFiに接続されるはずなので ifconfig コマンド等で確認する。
  • 有線LANと同じように、SSHでログインする。
  • アクセスポイントの一覧は下記コマンドで見ることができる。
sudo iwlist wlan0 scan | grep ESSID

raspi-config

下記コマンドでraspi-configを起動して種々の設定をおこなう。

sudo raspi-config

特に「Localisation Options」で、ロケールタイムゾーン、キーボードの設定をおこなう。

  • ロケールは あえて日本語にせず
  • タイムゾーンは Asia -> Tokyo
  • キーボードは接続した場合のみ。SSH接続の場合は設定不要。
    • 日本語キーボードなら、Generic 105-key (Intl) PC -> Other -> Japanese -> Japanese を選択。

aptの更新

sudo apt-get update
sudo apt-get -y upgrade

共有フォルダの設定 (samba)

sambaをインストールする。

sudo apt-get install samba
sudo vi /etc/samba/smb.conf

smb.confのホームディレクトリ共有設定の記述を下記のように修正。

[homes]
   comment = Home Directories
   browseable = yes
   read only = no
   valid users = %S

sambaユーザを設定し、sambaのサービスを再起動。

sudo smbpasswd -a pi
sudo systemctl restart smbd nmbd

たとえばIPアドレスが192.168.11.2であったら、Windowsエクスプローラで \\192.168.11.2と入力すれば共有フォルダにアクセスできる。mDNSが利用できるなら \\raspberrypi.local でもアクセスできる。

ただし、ユーザー名がpiだとWindowsのユーザー名と異なるのでうまく共有フォルダにアクセスできない。そこでWindowsDOS窓で下記コマンドを実行する。

net use \\raspberrypi.local\ipc$ /delete ←すでにアクセスして失敗した場合はまずこれを実行
net use \\raspberrypi.local\ipc$ /user:pi raspberry ←ラズパイのユーザー名とパスワード

このような面倒をさけるには前述のようにラズパイのユーザ名とパスワードを変更してWindowsと合わせた方が良い。