M5Stack CoreMP135: IP アドレスを固定する
概要
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.102
と 192.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