turtlechanのブログ

無知の私がLinuxをいじりながら書いていくブログ

RaspberryPi(Raspbian)のインストール

RaspbianのLite版をディスプレイなし(ヘッドレス)でインストールしたときのメモ。

Jessieを使っていたが、この際Stretchをクリーンインストールしてしまおうってことでやった。

必要なもの

  • パソコン(microSDを扱えるもの)
  • microSD 8GB以上あれば十分、class10推奨
  • RaspberryPi(ラズパイ)本体

Raspbianの種類

Raspbianは3種類ある。目的によって最適なのを選びましょう。なお現在の最新バージョンは9(Stretch)。

Raspbian Stretch with Desktop And Recommended Software

GUIが同梱されていて、更にオススメのソフトウェアも色々入っている。Minecraft Piが入っているのはこれ。

Raspbian Stretch With Desktop

GUIが同梱されている。ソフトウェアは必要最低限の物が入っている。

Raspbian Stretch Lite

GUIなし。黒い画面に白い文字で操作するやつ。

Raspbian Lite版のインストール手順

イメージファイルのダウンロード

ラズパイの公式サイトからダウンロードしてくる。

Raspbianのダウンロードページ

Raspbianのダウンロードページの画像

Download ZIPをクリックしてダウンロード。

公式サイトだと時間が掛かったのかミラーサイトをメモってた。

JAIST(北陸先端科学技術大学院大学)
http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/images/

zipを解凍

ダウンロードしたファイルはzip形式で圧縮されているので解凍すること。

~$ unzip -d <解凍先のディレクトリ> <zipファイル>

例)

2019-04-08-raspbian-stretch-lite.zipを./raspbianディレクトリに解凍

~$ unzip -d ./raspbian ./2019-04-08-raspbian-stretch-lite.zip
Archive:  ./2019-04-08-raspbian-stretch-lite.zip
  inflating: ./raspbian/2019-04-08-raspbian-stretch-lite.img

microSDへ書き込む

イメージファイルのあるディレクトリに移動してddコマンドで書き込む。microSDのフォーマットは不要(バックアップは忘れずに取っとく)。microSDのデバイス名はdmesgコマンドで確認。

~$ sudo dd if=<イメージファイル> of=<書き込み先デバイス> bs=<ブロックサイズ>

例)

書き込み

~$ sudo dd if=./2019-04-08-raspbian-stretch-lite.img of='/dev/mmcblk0 bs=1M
1720+0 レコード入力
1720+0 レコード出力
1803550720 bytes (1.8 GB, 1.7 GiB) copied, 201.219 s, 9.0 MB/s
~$ sudo sync

確認

~$ sudo fdisk -l
~省略~
Disk /dev/mmcblk0: 14.9 GiB, 15931539456 bytes, 31116288 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: 0xc1dc39e5

Device         Boot Start     End Sectors  Size Id Type
/dev/mmcblk0p1       8192   96042   87851 42.9M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      98304 3522559 3424256  1.6G 83 Linux

2つのパーティションが作成されている。

これでmicroSDにインストールは完了。ディスプレイなしの場合はラズパイで起動する前に一部設定をしておいたほうが楽。

ディスプレイなし(ヘッドレス)用に設定

ラズパイで起動させる前にPCでmicroSDをマウントして設定をいじる。

microSDを挿入し直す

microSDを一回抜いて、挿し直す。じゃないとマウントができなかった。

sshの有効化

そのままだとsshが無効になっているので、ヘッドレスの場合詰む。

起動時に有効にするため、microSDをマウントして「/boot」ディレクトリの中に「ssh」という名前のファイルを作る。ファイルの中身は空でいい。

例)

ブートパーティションをマウントして/boot内にsshファイルを作成

~$ sudo mount /dev/mmcblk0p1 /mnt/sd
~$ sudo touch /mnt/sd/ssh

/boot内のファイルを確認

~$ ls -l /mnt/sd
合計 21623
-rwxr-xr-x 1 root root   18693  3月 10  2018 COPYING.linux
-rwxr-xr-x 1 root root    1494  3月 10  2018 LICENCE.broadcom
-rwxr-xr-x 1 root root   18974  4月  8 19:25 LICENSE.oracle
-rwxr-xr-x 1 root root   23315  9月 20  2018 bcm2708-rpi-0-w.dtb
-rwxr-xr-x 1 root root   23071  9月 20  2018 bcm2708-rpi-b-plus.dtb
-rwxr-xr-x 1 root root   22812  9月 20  2018 bcm2708-rpi-b.dtb
-rwxr-xr-x 1 root root   22589  9月 20  2018 bcm2708-rpi-cm.dtb
-rwxr-xr-x 1 root root   24115  9月 20  2018 bcm2709-rpi-2-b.dtb
-rwxr-xr-x 1 root root   25914  2月 18 19:10 bcm2710-rpi-3-b-plus.dtb
-rwxr-xr-x 1 root root   25311  9月 20  2018 bcm2710-rpi-3-b.dtb
-rwxr-xr-x 1 root root   24087  9月 20  2018 bcm2710-rpi-cm3.dtb
-rwxr-xr-x 1 root root   52296  2月 18 19:10 bootcode.bin
-rwxr-xr-x 1 root root     190  4月  8 19:25 cmdline.txt
-rwxr-xr-x 1 root root    1590  4月  8 18:56 config.txt
-rwxr-xr-x 1 root root    6701  4月  1 23:03 fixup.dat
-rwxr-xr-x 1 root root    2622  4月  1 23:03 fixup_cd.dat
-rwxr-xr-x 1 root root    9750  4月  1 23:03 fixup_db.dat
-rwxr-xr-x 1 root root    9752  4月  1 23:03 fixup_x.dat
-rwxr-xr-x 1 root root     145  4月  8 19:25 issue.txt
-rwxr-xr-x 1 root root 4698056  2月 18 19:10 kernel.img
-rwxr-xr-x 1 root root 4944992  2月 18 19:10 kernel7.img
drwxr-xr-x 2 root root   13312  4月  8 18:48 overlays
-rwxr-xr-x 1 root root       0  5月 19 20:11 ssh
-rwxr-xr-x 1 root root 2873444  4月  1 23:03 start.elf
-rwxr-xr-x 1 root root  683460  4月  1 23:03 start_cd.elf
-rwxr-xr-x 1 root root 4830756  4月  1 23:03 start_db.elf
-rwxr-xr-x 1 root root 3774980  4月  1 23:03 start_x.elf

sshファイルができていたらオッケー。

忘れずにアンマウント

~$ sudo umount /mnt/sd

ネットワークの設定(ipアドレスを固定)

「/etc/dhcpcd.conf」を書き換える。

/etc/network/interfacesを書き換えるという記事を見るがそのファイルには「# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'」と書かれているので最近のバージョンで変わったのだろう。

例)

ルートパーティションをマウントして/etc/dhcpcd.confに追記

~$ sudo mount /dev/mmcblk0p2 /mnt/sd
~$ sudo echo '# My static IP setting' >> /mnt/sd/etc/dhcpcd.conf
~$ sudo echo 'interface eth0' >> /mnt/sd/etc/dhcpcd.conf
~$ sudo echo 'static ip_address=192.168.0.101/24' >> /mnt/sd/etc/dhcpcd.conf
~$ sudo echo 'static routers=192.168.0.1' >> /mnt/sd/etc/dhcpcd.conf
~$ sudo echo 'static domain_name_servers=192.168.0.1' >> /mnt/sd/etc/dhcpcd.conf

/etc/dhcpcd.confファイルを確認

~$ cat /mnt/sd/etc/dhcpcd.conf
~省略~

# My static IP setting
interface eth0
static ip_address=192.168.0.101/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

追記した内容が書いてあればオッケー。

忘れずにアンマウント

~$ sudo umount /mnt/sd

起動

ラズパイ本体にイメージを書き込んだmicroSDを挿入して電源ケーブルを挿せば勝手に動く。

おわりに

以上、Raspbianのインストールでした。ローカルで使う分には問題ないだろうけどセキュリティ上初期設定はしっかりやった方がいい。初期アカウントを使い続けるのは良くないとか。。。

今現在Raspberry Pi 3 Model bを使っていて処理能力にも不満はない。が、最新機種のModel b+がほしいなぁ。