Raspberry Pi に Raspbian をヘッドレス インストール (有線接続)

Raspberry Pi を、ディスプレイ、キーボードを使わないでインストールする方法です。有線LAN で接続する設定をします。

SD への書き込み

```text
# dd bs=4M if=2020-08-20-raspios-buster-armhf-lite.img of=/dev/mmcblk0
440+0 レコード入力
440+0 レコード出力
1845493760 bytes (1.8 GB, 1.7 GiB) copied, 373.702 s, 4.9 MB/s
```

書き込みが完了した SD を、fdisk で見ると

```text
# fdisk /dev/mmcblk0

fdisk (util-linux 2.34) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): p
ディスク /dev/mmcblk0: 7.29 GiB, 7822376960 バイト, 15278080 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x907af7d0

デバイス       起動 開始位置 最後から  セクタ サイズ Id タイプ
/dev/mmcblk0p1          8192   532479  524288   256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2        532480  3604479 3072000   1.5G 83 Linux
```

設定を行う為に SD をマウントします。

```text
# mount /dev/mmcblk0p2 /mnt/sdp2
# ls /mnt/sdp2
bin   dev  home  lost+found  mnt  proc	run   srv  tmp	var
boot  etc  lib	 media	     opt  root	sbin  sys  usr
```

ネットワークの設定
/mnt/sdp2/etc/dhcpcd.conf に次を加えます。

```text
interface eth0
static ip_address=192.168.0.10/24

```

/mnt/sdp2/etc/rc.local に次を加えます。

```text
ifup eth0
```

/boot をマウントします。

```text
# mount /dev/mmcblk0p1 /mnt/sdp1
# ls /mnt/sdp1
bcm2708-rpi-0-w.dtb	bootcode.bin   fixup_x.dat	 start_cd.elf
bcm2708-rpi-b.dtb	cmdline.txt    issue.txt	 start_db.elf
bcm2708-rpi-b-plus.dtb	config.txt     kernel7.img	 start.elf
bcm2708-rpi-cm.dtb	COPYING.linux  kernel.img	 start_x.elf
bcm2709-rpi-2-b.dtb	fixup_cd.dat   LICENCE.broadcom
bcm2710-rpi-3-b.dtb	fixup.dat      LICENSE.oracle
bcm2710-rpi-cm3.dtb	fixup_db.dat   overlays
```

ブート時にSSH サーバーを起動するようにする。

```bash
cd /mnt/sdp1
touch ssh
```
 ヘッドレスで ssh をスタートさせるには、/boot に、ssh という名前のファイルを置きます。
[A security update for Raspbian PIXEL](https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/)

```text
If you want to enable SSH, all you need to do is to put a file called ssh in the /boot/ directory. The contents of the file don’t matter: it can contain any text you like, or even nothing at all. When the Pi boots, it looks for this file; if it finds it, it enables SSH and then deletes the file. 
```

アンマウントして、SDカードを抜き、ラズベリーパイに差して、ブートします。

>ssh でログインします。

```bash
ssh pi@192.168.0.10
```

>ログインしてから、ssh サーバーの状態を確認します。

```text
# systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
   Active: active (running) since Fri 2017-12-29 05:16:26 UTC; 4h 13min ago
  Process: 476 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS
  Process: 471 ExecReload=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
  Process: 393 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 452 (sshd)
   CGroup: /system.slice/ssh.service
           └─452 /usr/sbin/sshd -D
```


>設定

```bash
sudo raspi-config
```

wifi 接続に切り替えるには、次を行います。

>/etc/wpa_supplicant/wpa_supplicant.conf の設定


```text
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
	ssid="GP01-SSID"
	psk="secret123"
	key_mgmt=WPA-PSK
}

network={
	ssid="GP03-SSID"
	psk="secret456"	
	key_mgmt=WPA-PSK
}
```

>/etc/network/interfaces の設定

```text
allow-hotplug wlan0
iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
```

>/etc/rc.local の ifup eth0　をコメントアウト

>再起動

```bash
sudo shutdown -r now
```