Raspberry Pi Zero セットアップ – 初回起動とログイン

いよいよボードの電源を入れてSSHでログインしてみます


PCからSDカードを安全に取り出して、Raspberry Pi Zeroボードに挿入します。この手のボードについているコネクタは、普段民生機器で使用されているものより創造以上に壊れやすいので慎重に行ってください。

電源投入

いよいよ電源投入。ボードのPower側のUSB端子にUSBチャージャを接続して起動します…

Power端子近くの緑のLEDが点灯したでしょうか? (常時点灯ではなく、点滅や点灯を繰り返します)。うまく点灯していれば、ひとまずOSのイメージは認識されたようです。


sshで接続

起動はしましたが、このままではIPアドレスがわかりません。Rasbianは標準でZeroConfというプロトコルに対応しているので、MacやLinuxユーザは

% ping -c 3 raspberrypi.local

raspberrypi.localにpingを打つことでIPを割り出すことができるのですが、Windowsの場合は標準では入っていないため、少し複雑です。ただし、iTuneやSkypeをインストールすると、ついでにインストールされるらしいので、ひとまずコマンドプロンプトで

% ping -4 raspberrypi.local

と実行してみて、応答があればIPアドレスを検知することができます。この方法で割り出せなかった場合、Bonjour Print Services for Windows 2.0.2をインストールすることでZeroConfのクライアント機能が追加されるようです。もしくは自宅のWiFiルータの管理画面から割り当てられたIPアドレスの確認などが可能など思います。

自分は以下のPythonコードでmDNSクエリーを送信してIPを取得しました

import struct
import socket

MDNS_PORT = 5353
MDNS_IP = '244.0.0.251'
SRC_PORT = 12345
LOCCAL_IP = '192.168.x.x'  # 環境に合わせて設定


def send_mdns(server_name):
    udp_socket = socket.socket(
        family=socket.AF_INET, type=socket.SOCK_DGRAM)
    udp_socket.bind(('0.0.0.0', SRC_PORT))
    udp_data = bytearray()
    udp_data += struct.pack('>HHHHHH', 0, 0, 1, 0, 0, 0)
    udp_data += struct.pack(f'B{len(server_name)}s',
                            len(server_name), server_name.encode())
    udp_data += struct.pack(f'B{len("local")}s',
                            len('local'), b'local')
    udp_data += struct.pack('>BHH', 0, 1, 1)
    udp_socket.sendto(udp_data, ('224.0.0.251', 5353))


def recv_mdns(server_name):
    udp_socket = socket.socket(
        family=socket.AF_INET, type=socket.SOCK_DGRAM)
    udp_socket.bind((LOCCAL_IP, SRC_PORT))
    data, addr = udp_socket.recvfrom(1024)
    ip = struct.unpack('4B', data[-4:])
    print(
        f'{server_name}.local: {ip[0]}.{ip[1]}.{ip[2]}.{ip[3]}')


def main():
    print(arg)
    send_mdns('raspberrypi')
    recv_mdns('raspberrypi')


if __name__ == "__main__":
    main()

上記いずれかの方法でIPが分かった段階で、sshで接続してみます

% ssh pi@raspberrypi.local
pi@raspberrypi.local's password: raspberry
Linux raspberrypi 4.19.97+ #1294 Thu Jan 30 13:10:54 GMT 2020 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.

pi@raspberrypi:~ $

初期のユーザ名はpi、パスワードはraspberryです。書かれているように、初期パスワードはpasswdコマンドで変更しておきましょう

おすすめ