🫐

M5Stack CoreMP135: IP アドレスを固定する

2024/09/23に公開

概要

https://docs.m5stack.com/en/guide/linux/coremp135/image からダウンロードした Debian イメージがインストールされた M5Stack CoreMP135(以下、「CoreMP135」と呼ぶ)において、IP アドレスを固定する方法を解説します。

操作手順

CoreMP135 には LAN ポートが 2 個あります。右側が eth0、左側が eth1 です。右側の LAN ポートに Ethernet ケーブル(LAN ケーブル)を接続し、ネットワークと連結してください。

CoreMP135 に接続したキーボードを用いて root ユーザーで Debian にログインします。

コマンド hostname -I を実行して、現在 Debian OS に割り当てられている IP アドレスを調べてください。

192.168.0.130 2408:26:22ee:0:7e85:21ad:f5ea:1171

のように表示されたとすれば、192.168.0.130 がその IP アドレスです。

次に、LAN 内で使用されている IP アドレスのリストを調べるため、arp -a コマンドを実行します。

? (192.168.0.102) at 50:eb:f6:9a:1b:fc [ether] on eth0
ntt.setup (192.168.0.1) at 00:0b:a2:c0:67:42 [ether] on eth0

のように表示されたとすれば、192.168.0.102192.168.0.1 が使用中です。

vim /usr/local/m5stack/init.sh コマンドで Vim エディタを開き、init.sh の末尾に以下の 2 行を加えてください。

sleep 5
ifconfig eth0:0 192.168.0.200

ただし、各 IP アドレスの 192.168.0 の部分は、現在 Debian OS に割り当てられている IP アドレスのものと同じにしてください。また、200 については、使用済みの IP アドレスと重複しないように 2 以上 254 以下の範囲で選択してください。

shutdown -r now コマンドで Debian を再起動し、IP アドレスが正しく設定されていることを確認してください。

補足(1)

Debian がインストールされた CoreMP135 を LAN に接続して起動すると、初期状態では DHCP により IP アドレスが割り当てられます。この IP アドレスは Debian を起動するたびに変化するので、外部から SSH で接続することなどを考えると固定すべきです。

「Debian IP アドレス 固定」でネット検索してヒットするブログ記事などには、/etc/network/interfaces に次のような記述を加えることで IP アドレスを固定できると書かれています。

auto eth0
iface eth0 inet static
address 192.168.0.200
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 192.168.0.1

しかし、この方法はうまく行きません。その理由は、筆者にはわかりません。

試行錯誤の結果、見出したのが本稿で解説した方法です。もっと良い方法があるのかもしれませんが、とりあえずこれで IP アドレスが固定されます。

補足(2)

本稿の最初のバージョンでは、/usr/local/m5stack/init.sh に対して次の記述を加えるとしていました。

ifconfig eth0 192.168.0.200

eth0:0 の部分が eth0 となっている点に注目してください。この方法でも IP アドレスを固定できますが、CoreMP135 からインターネットに対してアクセスできなくなります。なぜ、そうなるのか筆者にはわかりませんが、とにかくそういう問題が発生します。

コマンド ifconfig eth0:0 192.168.0.200 を使えば、DHCP によって eth0 に対して割り当てられた IP アドレスを維持したまま、別の IP アドレス(エイリアス IP アドレス)を eth0 に割り当てることができます。

Discussion