シリアルコンソール経由でラズベリーパイを操作するでディスプレイやキーボードがなく、WiFiに繋がっていない状態でラズベリーパイを操作する時、シリアルコンソールでラズベリーパイを操作する方法を見ましたが、シリアルコンソールの代わりにLANケーブルで操作する方法を見ていきます。
環境
マシン : Raspberry Pi 5 8G
OS : Raspberry Pi OS(64-bit)
※今回はクロームブックからラズベリーパイを操作します
はじめにラズベリーパイをLANケーブル経由で操作する時に必要となる知識について触れます。
LANケーブルですが、クロスケーブル(クロス結線)と記載されているものを選びます。
※最近のパソコンでは、パソコン間の通信でクロスケーブルではなく、ストレートケーブルでも良いとのことですが、今回は念の為にクロスケーブルを準備して話を進めます。
※今回の内容はストレートケーブルでも動作することは確認済み
【LANケーブル】クロスケーブルとストレートケーブルの違いは? - エレコム株式会社
LANケーブルですが、ラズベリーパイの方はLANポートがありますが、もう一台のパソコンにはLANポートが無いことが多いです。
そんな時はUSBで接続するLANポートを購入する必要があります。
充電にも対応したドッキングステーションを一つ保持しておくことをおすすめします。
ドッキングステーション 4in1 HDMI(R)+LAN - DST-C29SV - エレコム株式会社
ラズベリーパイのネットワーク環境について見ておきます。
WiFiの設定を終えた状態のラズベリーパイの方でターミナル(LXTerminal)を起動し、下記のコマンドを実行します。
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::e7f3:d1da:648:9279 prefixlen 64 scopeid 0x20<link> ether 2c:cf:67:10:67:0a txqueuelen 1000 (Ethernet) RX packets 4 bytes 1312 (1.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 31 bytes 5832 (5.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 106 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 90 bytes 8080 (7.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 90 bytes 8080 (7.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.55 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::e3d1:78ba:feb:5bce prefixlen 64 scopeid 0x20<link> inet6 240d:1e:3bb:5500:5541:ec39:4b57:ffcd prefixlen 64 scopeid 0x0<global> ether 2c:cf:67:10:67:0b txqueuelen 1000 (Ethernet) RX packets 73 bytes 9407 (9.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 77 bytes 11539 (11.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
出力された結果のうち、eth0が有線でネットワーク(イーサネット:ethernet)に繋ぐ方で、wlan0が無線(WiFi)でネットワークに繋ぐ方になります。
既にWiFiの設定を行っていますので、wlan0の方ではIPアドレスが振り分けられています。
ラズベリーパイのネットワーク環境はNetworkManagerで管理されており、wlan0の設定は
$ sudo less /etc/NetworkManager/system-connections/{SSID}.nmconnection
※{SSID}には、WiFiの設定の際に登録したSSIDが入っています。
NetworkManagerでパソコン間をクロスケーブルでやり取りできるようにする設定をしてみます。
設定はnmcliというコマンドで行います。
nmcli: NetworkManager Reference Manual
下記のコマンドで有線ネットワークの設定ファイルを作成します。
$ sudo nmcli connection add con-name eth0pi type ethernet ifname eth0 connection.autoconnect yes
※eth0piはネットワークのIDになりまして、任意の文字列で良いです。
Connection 'eth0pi' (dc731b18-ffd0-4eba-b5e8-7d4bd2ec9ccb) successfully added.
な文字列が出力されれば、設定ファイルの作成は成功です。
早速、生成された設定ファイルを確認してみましょう。
$ sudo less /etc/NetworkManager/system-connections/eth0pi.nmconnection
[connection] id=eth0pi uuid=dc731b18-ffd0-4eba-b5e8-7d4bd2ec9ccb type=ethernet interface-name=eth0 [ethernet] [ipv4] method=auto [ipv6] addr-gen-mode=default method=auto [proxy]
パソコン間をLANケーブルで繋ぐ際、IPv6で接続する必要がないので、下記コマンドでIPv6を無効化します。
$ sudo nmcli connection modify eth0pi ipv6.method disabled
IPv4の方の設定を行います。
最初に設定内容を確認しておきます。
$ sudo nmcli -f ipv4 connection show eth0pi
ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- ipv4.dns-options: -- ipv4.dns-priority: 0 ipv4.addresses: -- ipv4.gateway: -- ipv4.routes: -- ipv4.route-metric: -1 ipv4.route-table: 0 (unspec) ipv4.routing-rules: -- ipv4.replace-local-rule: -1 (default) ipv4.ignore-auto-routes: no ipv4.ignore-auto-dns: no ipv4.dhcp-client-id: -- ipv4.dhcp-iaid: -- ipv4.dhcp-timeout: 0 (default) ipv4.dhcp-send-hostname: yes ipv4.dhcp-hostname: -- ipv4.dhcp-fqdn: -- ipv4.dhcp-hostname-flags: 0x0 (none) ipv4.never-default: no ipv4.may-fail: yes ipv4.required-timeout: -1 (default) ipv4.dad-timeout: -1 (default) ipv4.dhcp-vendor-class-identifier: -- ipv4.link-local: 0 (default) ipv4.dhcp-reject-servers: -- ipv4.auto-route-ext-gw: -1 (default)
パソコン間をLANケーブルで繋いでネットワークを構築する場合、両方のパソコンで固定のIPアドレスを設定する必要があります。
はじめにラズベリーパイの方の固定IPの設定を行います。
IPアドレスは使用していない番号、例えば192.168.2.99等のIPアドレスを指定します。
ラズベリーパイの方のIPの設定は下記のようにします。
IPアドレス : 192.168.2.99
ゲートウェイ : 192.168.2.1
ネームサーバ(DNS) : 192.168.2.1
コマンドで設定する場合、下記の順番でコマンドを実行します。
$ sudo nmcli connection modify eth0pi ipv4.addresses 192.168.2.99/24 $ sudo nmcli connection modify eth0pi ipv4.method manual $ sudo nmcli connection modify eth0pi ipv4.gateway 192.168.2.1 $ sudo nmcli connection modify eth0pi ipv4.dns 192.168.2.1 $ sudo nmcli connection reload
続いて、クロームブックの方のIPの設定を行います。
IPアドレス : 192.168.2.100
ゲートウェイ : 192.168.2.1
ネームサーバ(DNS) : 192.168.2.1
クロームブックのポートにLANケーブルを接続すると
イーサネットの表示が追加されますので、イーサネットをクリックして、
イーサネットの設定を進めます。
IPアドレスを自動的に設定をOFF(オフ)にして、
IPアドレスとゲートウェイの項目を入力します。
ネームサーバーでカスタムネームサーバーにチェックを入れて、DNSの値を登録します。
ラズベリーパイの方のターミナルから、
$ ping 192.168.2.100
を実行して、疎通確認を行います。
64 bytes from 192.168.2.99: icmp_seq=1 ttl=64 time=30.8 ms
のように結果が返ってくれば設定は終了です。
後はラズベリーパイの方で設定したIPアドレスの192.168.2.100の値を使って、クロームブックでラズベリーパイとファイルの共有を行うに記載されているSecure Shellでクロームブックからラズベリーパイに接続してみます。
追記
色々と試してみて、有線LANとWiFiを同時に起動すると、有線LANの方のSSHのレスポンスの速度が激減するようです。
今回の内容はWiFiが使用できない環境か、ディスプレイやキーボードがない環境でラズベリーパイのWiFiの設定を行うまでの手法として捉えてください。