LoginSignup
0
0

More than 5 years have passed since last update.

ディスプレイ・キーボード・マウス・LANケーブルなしでラズパイ3のセットアップ(初心者向け)

Last updated at Posted at 2018-08-12

はじめに

眠ってたラズパイを復活させようと、久しぶりに初期セットアップしてみました。
ラズパイ自体は安いけど、色々揃えたらお金かかるじゃんって人に参考になれば幸いです。
【重要】初心者向けの内容と言いつつ、Windows向けではありません。Ubuntu他Linuxユーザ向けです。

きっかけ

ググると、「ディスプレイ・キーボード・マウスなし」でラズパイをセットアップできるという記事はたくさん出ます。
そして、最後の段階でLANケーブルでSSH接続して設定する、なんて記事を多く見かけます(とても参考になりました)。
でも、ラズパイのセットアップのためだけにLANケーブルを買うのは面倒ですし、上から目線で「惜しいなぁ」なんて思ってました。

それに加え、自分のパソコンはBUFFALO WLI-UTX-AG300/CでLANポートが埋まってて、
つまるところ面倒くさいので無線LANだけでイケないかと思い、やってみたらできました。
「ディスプレイ・キーボード・マウス・LANケーブルなしでラズパイ3のセットアップ」です。

今さらな内容ですが、備忘録を兼ねるということで…。
それと、Windows向けではありません。Macなら同じようにできるとは思います(無責任)。

作業の流れ

自分を含めた初心者向けの内容だと思うので、これだけでわかる人にはそれで大丈夫です。

 1. 環境構築用PCで、RASPBIAN STRETCHをddでSDカードに書き込む
 2. ラズパイにSDカードを入れないで、環境構築用PCで無線LANのSSIDとパスワードを設定する
 3. ラズパイにSDカードを入れないで、環境構築用PCで固定ipを設定する
 4. ラズパイにSDカードを入れないで、環境構築用PCでSSHを有効にする
 5. ラズパイにSDカードを入れて、起動後、環境構築用PCからSSH接続、ラズパイの各種設定を行う

使用したもの(環境)

言葉足らずなのでちゃんと書くと、

  • 環境構築用のパソコン(Ubuntu 18.04)
  • 無線LANルータ(自分の場合、ソネットから送られてきたONUでインターネット接続兼用のもの)
  • SDカードリーダ

を使用しました。
もちろんRaspberry Pi3やPI用のSDカードと電源は揃っているという前提です。

公式サイトから最新版RASPBIAN STRETCHをダウンロードする

まずはここからRASPBIAN STRETCHの最新版をダウンロードします。
 https://www.raspberrypi.org/downloads/raspbian/ 
DESKTOPでもLITEでも好きな方でいいと思います。
今回は何も考えずにDESKTOPをダウンロードしました。
直接ダウンロードだと重いし途切れるしなので、環境が許せば、Torenntの方が楽です。

ダウンロードしたZIPを展開する

ダウンロードしたZIPファイルにimgファイルが入っているので、アーカイブマネージャで展開します。
何も考えずにダブルクリックして、imgファイルを適当なところに置くだけです。
今回はダウンロードフォルダにそのまま展開しました。

SDカードのマウントポイントを調べてアンマウントする

パソコンにSDカードを接続するとそのままマウントされたので、一度アンマウントします。
Ubuntuの場合、スーパーキー(Windowsキー)で「d」と打つと「ディスク」が出てくるので起動します。
「ディスク」ではデバイスの情報が読めます。
今回、SDカードは sdc として認識されていることがわかりました。
詳細は他に譲るとして、SDカードを選択し、「ー」を押してアンマウントします。

terminalでも同じ作業ができます。lsblk と umount を使用します。

まず、SDカードを刺す前と刺した後の2回を比較します。

SDカードを刺す前

:~$ lsblk 
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
(省略)
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0  95.4G  0 part /
└─sda3   8:3    0  15.9G  0 part [SWAP]
sdb      8:16   0   2.7T  0 disk 

SDカードを刺す前と刺した後

:~$ lsblk 
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
(省略)
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0  95.4G  0 part /
└─sda3   8:3    0  15.9G  0 part [SWAP]
sdb      8:16   0   2.7T  0 disk 
sdc      8:32   1   7.6G  0 disk 
└─sdc1   8:33   1   7.6G  0 part 

新たに増えた sdc がSDカードだとわかります。
自分の場合、128GBのSSDをルート(= sda )に、3TBのHDD(= sdb )をファイル置き場にしてます。

umount で sdc1 をアンマウントしておきます。

:~$ umount /dev/sdc1 

DDコマンドでimgファイルを書き込む

今回、imgファイルはダウンロードフォルダに置いてありますので、
このimgファイルを dd でSDカードに書き込んでいきます。
自分のユーザ名はここでは恥ずかしいので hoge に置き換えてあります。
terminal を使います。一応 ls でファイルを確認して、いざ dd です。
ddコマンドの詳細は他に譲るとして、if=が元のimgファイル、of=が書き込み先、です。

当記事作成時点の最新版は2018-06-27版ですので、それより新しいものを使う場合は適宜読み替えてください。

:~$ cd /home/hoge/ダウンロード/
:~/home/hoge/ダウンロード$ ls
2018-06-27-raspbian-stretch.img  2018-06-27-raspbian-stretch.zip
:~/home/hoge/ダウンロード$ sudo dd bs=4M if=2018-06-27-raspbian-stretch.img of=/dev/sdc status=progress conv=fsync 
[sudo] hoge のパスワード: 
4819255296 bytes (4.8 GB, 4.5 GiB) copied, 196 s, 24.6 MB/s
1150+0 レコード入力
1150+0 レコード出力
4823449600 bytes (4.8 GB, 4.5 GiB) copied, 442.013 s, 10.9 MB/s

(ディレクトリ名が日本語やんけコイツ!と思った方、そのツッコミは正しいと思います。)
書き込みが終わるまで数分かかります。ここは辛抱強く我慢です。

RASPBIANがちゃんと書き込まれたかをなんとなく確認する

パソコンに差し込んでいるSDカードを一度抜き差しします。
するとSDカードがまた自動的にマウントされるのですが、
今度はマウントポイントが /media/(ユーザ名) になっていますので、そこで ls してみます。

:~$ cd /media/hoge
:/media/hoge$ ls
boot  rootfs
:/media/hoge$ cd rootfs/
:/media/hoge/rootfs$ ls
bin   debootstrap  etc   lib         media  opt   root  sbin  sys  usr
boot  dev          home  lost+found  mnt    proc  run   srv   tmp  var

boot と rootfs が確認できました。
rootfs の中もちゃんとあるので、正しく書き込みができたと信じて次の作業です。

無線LANの設定をする

wpa_supplicant.conf に、今まさに使用している無線LANルータの設定情報を書き込みます。
wpa_supplicant.conf の詳細は他に譲りますが、ラズパイの無線LAN接続設定のファイルです。
まずはファイルがあるか cd で 該当ディレクトリに入って、ls で確認してみます。

:/media/hoge/rootfs$ cd /media/hoge/rootfs/etc/wpa_supplicant/
:/media/hoge/rootfs/etc/wpa_supplicant$ ls -a -l
合計 52
drwxr-xr-x   2 root root  4096  6月 27 09:30 .
drwxr-xr-x 111 root root  4096  6月 27 10:22 ..
-rwxr-xr-x   1 root root   937 10月 14  2017 action_wpa.sh
-rwxr-xr-x   1 root root 25619 10月 14  2017 functions.sh
-rwxr-xr-x   1 root root  4696 10月 14  2017 ifupdown.sh
-rw-------   1 root root    72  6月 27 09:30 wpa_supplicant.conf

wpa_supplicant.conf がありましたので、一応、cat で中身を見てみます。

:/media/hoge/rootfs/etc/wpa_supplicant$ cat wpa_supplicant.conf 
cat: wpa_supplicant.conf: 許可がありません
:/media/hoge/rootfs/etc/wpa_supplicant$ sudo cat wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

sudo してなくて怒られますので、sudo を付けましょう。

SSIDの設定情報を書き込みます。SSID と PASSPHRASE は適宜ご自身のものに置き換えてください。
普通は無線LANルータの背面か底面にシールで貼ってあります。

:/media/hoge/rootfs/etc/wpa_supplicant$ sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> wpa_supplicant.conf'

もう一度、 wpa_supplicant.conf の中を cat で見てみます。

:/media/hoge/rootfs/etc/wpa_supplicant$ sudo cat wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="SSID"
    #psk="PASSPHRASE"
    psk=********************************************
}

(psk=以下は***でマスクさせていただきました。)
ssid="SSID" には無線LANルータのSSIDが、#psk="PASSPHRASE" にはそのSSIDのパスフレーズが入ってますが、
このままだと万が一の際に危険ですので、#psk="PASSPHRASE"の行は消してしまいます。
きっとここでviあたりで編集するのが普通なのでしょうが、僕自身初心者なので、gedit使っちゃいます。
geditはWindowsのメモ帳のように使えて便利です。

:/media/hoge/rootfs/etc/wpa_supplicant$ sudo gedit wpa_supplicant.conf 

(gedit:5445): IBUS-WARNING **: 14:38:51.147: The owner of /home/hoge/.config/ibus/bus is not root!

** (gedit:5445): WARNING **: 14:39:05.413: Set document metadata failed: metadata::gedit-spell-language という属性値はセットできません

** (gedit:5445): WARNING **: 14:39:05.413: Set document metadata failed: metadata::gedit-encoding という属性値はセットできません

** (gedit:5445): WARNING **: 14:39:07.071: Set document metadata failed: metadata::gedit-position という属性値はセットできません

gedit で開くと怒られますが、普通に編集できるので大丈夫です。
geditはWindowsのメモ帳のように使えるので(二度目)、#psk="PASSPHRASE"の行を丸ごと消します。
保存するのを忘れずに。(スクショ省略)

もう一度、 wpa_supplicant.conf の中を cat で見てみます。

:/media/hoge/rootfs/etc/wpa_supplicant$ sudo cat wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="SSID"
    psk=********************************************
}

#psk="PASSPHRASE"の行がなくなったことがわかります。
(psk=以下は***でマスクさせていただきました。)

これでとりあえずラズパイは無線LAN接続できるようになったはずですが、
このままではDHCPでipアドレスが動的に振られてしまい(その都度違うipアドレス)、
ラズパイのipアドレスがわかりません。
avahiとか難しい話は置いといて、ipアドレスを固定してしまいます。

ipアドレスを固定する

RASPBIANのipアドレスはそのままでは動的ですので、
ipアドレスの設定ファイルである dhcpcd.conf を編集して、ipアドレスを固定(静的)します。
なぜか気まぐれで cd でホームディレクトリに移動してしまいましたが、
面倒なので直接 dhcpcd.conf の中身を cat で確認してみます。

:~$ sudo cat /media/hoge/rootfs/etc/dhcpcd.conf 
# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.

# Allow users of this group to interact with dhcpcd via the control socket.
#controlgroup wheel

# Inform the DHCP server of our hostname for DDNS.
hostname

# Use the hardware address of the interface for the Client ID.
clientid
# or
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
# Some non-RFC compliant DHCP servers do not reply with this set.
# In this case, comment out duid and enable clientid above.
#duid

# Persist interface configuration when dhcpcd exits.
persistent

# Rapid commit support.
# Safe to enable by default because it requires the equivalent option set
# on the server to actually work.
option rapid_commit

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Most distributions have NTP support.
option ntp_servers
# Respect the network MTU. This is applied to DHCP routes.
option interface_mtu

# A ServerID is required by RFC2131.
require dhcp_server_identifier

# Generate Stable Private IPv6 Addresses instead of hardware based ones
slaac private

# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1

# It is possible to fall back to a static IP if DHCP fails:
# define static profile
#profile static_eth0
#static ip_address=192.168.1.23/24
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1

# fallback to static profile on eth0
#interface eth0
#fallback static_eth0

この設定ファイルに、無線LAN接続でのipアドレスは固定してね、ということを書きます。
またしてもgeditを使います。

:~$ sudo gedit /media/hoge/rootfs/etc/dhcpcd.conf 

geditが立ち上がったら、メモ帳の要領で、一番最後に行を足して、下記内容を追記します。
ちなみにうちのネットワーク構成では、ルータの無線LANが192.168.1.1で、有線LANが192.168.0.1です。
ルータごとに設定が違うはずなので、ルータの説明書を見て、ルータ自身のipアドレスを確認してください。

interface wlan0
static ip_address=192.168.1.30/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

interface wlan0 は無線LAN接続の場合という意味。
static ip_address=192.168.1.30/24 はipアドレスを192.168.1.30に固定するという意味。
static routers=192.168.1.1 は無線LANルータのipアドレス。
static domain_name_servers=192.168.1.1 はDNSのipアドレスで、普通は無線LANルータが兼ねてます。
ipアドレス192.168.1.30のところ、30に固定したのにはあまり意味がなくて、忘れなければ10でも20でも構いません。
(もちろん、0、1、256は駄目です。)

もう一度、ipアドレスの設定ファイルである dhcpcd.conf を cat で確認してみます。

:~ $ sudo cat /etc/dhcpcd.conf 
# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.

# Allow users of this group to interact with dhcpcd via the control socket.
#controlgroup wheel

# Inform the DHCP server of our hostname for DDNS.
hostname

# Use the hardware address of the interface for the Client ID.
clientid
# or
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
# Some non-RFC compliant DHCP servers do not reply with this set.
# In this case, comment out duid and enable clientid above.
#duid

# Persist interface configuration when dhcpcd exits.
persistent

# Rapid commit support.
# Safe to enable by default because it requires the equivalent option set
# on the server to actually work.
option rapid_commit

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Most distributions have NTP support.
option ntp_servers
# Respect the network MTU. This is applied to DHCP routes.
option interface_mtu

# A ServerID is required by RFC2131.
require dhcp_server_identifier

# Generate Stable Private IPv6 Addresses instead of hardware based ones
slaac private

# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1

# It is possible to fall back to a static IP if DHCP fails:
# define static profile
#profile static_eth0
#static ip_address=192.168.1.23/24
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1

# fallback to static profile on eth0
#interface eth0
#fallback static_eth0

interface wlan0
static ip_address=192.168.1.30/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

最終行に4行、先程の内容が追記されているのが確認できました。

ここまでで、RASPBIANは固定ipでの無線LAN接続になったはずです。
しかしこのままではssh接続できません。
ただのping応答マシンでしかないので、sshを有効にします。

SSHを有効化する

環境構築用PCにはSSHDが入ってて動いてる前提です。
最新版のRASPBIAN STRETCHではSSHが入ってるものの無効化されており、有効にするためには、
boot/ にsshという名前のファイルを作ります。拡張子はなし、ディレクトリでも駄目ですので、touch で作ります。
もうこれは本当に簡単で、一行です。

:~$ sudo touch /media/hoge/boot/ssh

この状態でいよいよ完成です。

ラズパイ3にSSH接続してみる

できあがったSDカードをパソコンから取り出し、ラズパイ3に差し込み、電源を入れます。

1分ぐらい待って、いざSSH接続です。ssh ユーザ名@ipアドレスで接続します。
ラズパイの初期ユーザは、
ユーザ名: pi
パスワード: raspberry です。

:~$ ssh pi@192.168.1.30
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:2BWnH/BKSXNW5Sv5NCmLu9TIW0UQ24rX5MEjEJYCGNE.
Please contact your system administrator.
Add correct host key in /home/hoge/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/hoge/.ssh/known_hosts:1
  remove with:
  ssh-keygen -f "/home/hoge/.ssh/known_hosts" -R "192.168.1.30"
ECDSA host key for 192.168.1.30 has changed and you have requested strict checking.
Host key verification failed.

とここで、想定外というか、初めてSSH接続する場合には出ないメッセージが出ました。
これは、過去に192.168.1.30にSSH接続してて、そのときの相手となんだか違うよっていう意味です。
ここまでの作業が初めての人には関係ないのですが、自分としては一瞬アレ?と思ったので、一応メモとして残しておきます。
エラーメッセージの中にちゃんと対処方法が書かれているので、その通りにします。

:~$ ssh-keygen -f "/home/hoge/.ssh/known_hosts" -R "192.168.1.30"
/home/hoge/.ssh/known_hosts updated.
Original contents retained as /home/hoge/.ssh/known_hosts.old

バックアップ取って更新したよ的なメッセージのあと、もう一度SSH接続してみます。
初めての人にはここからの作業となります。

:~$ ssh pi@192.168.1.30
The authenticity of host '192.168.1.30 (192.168.1.30)' can't be established.
ECDSA key fingerprint is SHA256:2******************************************E.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.30' (ECDSA) to the list of known hosts.
pi@192.168.1.30's password: 
Linux raspberrypi 4.14.50-v7+ #1122 SMP Tue Jun 19 12:26:26 BST 2018 armv7l

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.
Last login: Sun Aug 12 06:05:36 2018

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:~ $ 

無事に成功しました。

RASPBIAN(ラズパイ)の設定を変更する

ここから先は、環境構築用パソコンからSSH接続したラズパイで行います。
raspi-config で、初期パスワードの変更、ロケーションなんかの設定をします。
選択の上下は矢印キー。選択はスペースキー。移動はタブキーです。
この設定の詳細は他に譲ります。

pi@raspberrypi:~ $ sudo raspi-config

変更が終わったら、アップデートしておきます。

sudo apt-get upgrade -y

これで終了です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0