Raspbian Stretch with desktopでのネットワークデバイス名変更への対応方法

2017-09-11 追記:2017-09-07版のRaspbian Stretch with desktopでは、ラズパイ3内蔵の有線LANはeth0に戻っていました。記録のため、記事は残しておきます。

ここから元記事:

2017-08-16 にRaspbian Stretch with desktop がリリースされてました。「Raspberry Pi Desktop – Raspberry Pi」という、Debian with Raspberry Pi Desktopのダウンロードページも出来たせいか、Raspbianのダウンロードページでは、デスクトップ版は「Raspbian Stretch with desktop」という名前になってますね。
ということで、「Download Raspbian for Raspberry Pi」からデスクトップ版をダウンロードしてインストールしてみました。また、FacebookのRaspberry Pi JAPANグループで有線LANで静的IPを指定する際の注意点が話題にあがっていたので調べてみました。

インストール時に気になった点

インストール時に気になった点は下記の2つ。すぐに修正版が出るかもしれませんが、ここだけ注意すれば、これまで通りの方法でインストール作業はできます。

  • キーボードの設定がラズパイの設定画面からはできなかったので、別途、ラズパイアイコンのメニューから「設定」-「キーボードとマウス」で表示される画面で「キーボード」タブを開いて「Keyboard Layout」ボタンをクリックして設定
  • ロケールを日本語にしたら日本語フォントをインストールしてから再起動

有線LAN用のデバイス名をeth0にする

ネットワークについては、有線LAN用のデバイス名が変わりました。ラズパイ3内蔵の有線LANは、eth0ではなくてMACアドレスを使ったデバイス名になります。

ただし、Raspberry Pi Zero W では「ロジテック 有線LANアダプタ USB 3.0 ギガビット対応 USB3.0ハブ3ポート付 LAN-GTJU3H3 」をつけたところeth0として認識しました。

/sys/class/net/ にあるデバイスファイルをlsコマンドで確認できます。XXXXXXXXXXXにMACアドレスから生成される文字列、例えば827eabcdeabのような文字列で入ります。これ以降、XXXXXXXXXXXはMACアドレスから生成される文字列に置き換えて読んでください。

$ ls /sys/class/net/
enxbXXXXXXXXXXX  lo  wlan0

さて、ここで、eth0を使いたいという要望もあるでしょう。調べていたら、Where is eth0? – Raspberry Pi Forumsに同じ質問があって、回答がありました。次の内容で /etc/udev/rules.d/70-persistent-net.rules を作成すると、内蔵の有線LANはeth0になります。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="smsc95xx", ATTR{address}=="*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

こうすると、従来の方法で静的IPを指定できるようになります。

静的IPアドレスの指定方法

静的IPアドレスの指定については、Debianのネットワーク設定方法を見ると /etc/network/interfaces ファイルへ記述するように説明がされています。しかし、Raspbianの/etc/network/interfaces ファイルには、「Please note that this file is written to be used with dhcpd」というコメントが記載されています。Raspbianだと/etc/network/interfaces はユーザーは編集しない方が良さそうなので、/etc/dhcpcd.conf で静的IPアドレスを指定するという方法が単純です。

下記の内容を /etc/dhcpcd.conf の最後に追加します。192.168.1.100や192.168.1.1は自分のネットワークに合わせて変更してください。デバイス名をeth0にしてある場合は「interface enxbXXXXXXXXXXX」は「interface eth0」とします。

interface enxbXXXXXXXXXXX
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8

ラズパイを再起動すれば静的IPアドレスが設定されます。

静的IPアドレスの指定方法 その2

Debianの設定に慣れていて、/etc/dhcpcd.confへ記述したことを忘れそうだから、/etc/network/の下に設定をまとめておきたいという人もいるでしょう。

その場合は、/etc/network/interfaces.d/enxbXXXXXXXXXXX というファイルを作成して、そこへ下記のような内容を記述します。

auto enxbXXXXXXXXXXX
iface enxbXXXXXXXXXXX inet static
  address 192.168.1.100
  netmask 255.255.255.0
  dns-nameservers 192.168.1.1 8.8.8.8
  gateway 192.168.1.1

デバイス名をeth0にしてある場合、ファイル名は/etc/network/interfaces.d/eth0、設定ファイル内の「enxbXXXXXXXXXXX」は「eth0」とします。

次に、このデバイスについてはdhcpcdの対象からはずす必要があります。/etc/dhcpcd.conf の最後の行に、下記を追加します。

denyinterfaces enxbXXXXXXXXXXX

ラズパイを再起動すれば静的IPアドレスが設定されます。

同じタグの記事: Raspberry Pi 3
同じタグの記事: ラズパイ
同じカテゴリの記事: Linux