イーサネットカードのデバイス名を割り当てる (2006/04/08)

Kernel のアップグレード後にごくまれにイーサネットカードの認識の順番が変更(udevパッケージが採用された後?)されて困るときがありました.

ネット検索でいろいろ調べてみました./etc/modprobe.conf もしくは /etc/modprobe.d/alias を変更すればよいというのはうまくいきませんでした.

調べていくうちに,udev でデバイス名の名前割り当てができることが分かりました.今回の調査のきっかけも udev をインストールしてからのことでしたので,udev による解決方法について述べます.

まず,udevinfo で MAC アドレスを調べます.

# udevinfo -a -p /sys/class/net/eth0 | grep address
   SYSFS{address}=="eth0のMACアドレス"

この結果の MAC アドレスに従い,デバイス名を割り当てます./etc/udev/interfaces.rules を作成します.

# network interfaces
KERNEL="eth*", SYSFS{address}=="eth0にしたいMACアドレス", NAME="eth0"
KERNEL="eth*", SYSFS{address}=="eth1にしたいMACアドレス", NAME="eth1"

そして,次のようにシンボリックリンクを作成します.

# cd /etc/udev/rules.d
# ln -s ../interfaces.rules 010_interfaces.rules 

再起動すれば,名前割り当てができています.私は試していませんが,無線LANには "wlan0" などを割り当てることも可能のようです.

(追記 2006/11/29) udevinfo で見ると "SYSFS" が "ATTR" に変更されていました.

# udevinfo -a -p /sys/class/net/eth0 | grep address
   ATTR{address}=="eth0のMACアドレス"

これに伴い,/etc/udev/interfaces.rules の "SYSFS" を "ATTR" に変更しておく必要があるかと思います.

# network interfaces
KERNEL="eth*", ATTR{address}=="eth0にしたいMACアドレス", NAME="eth0"
KERNEL="eth*", ATTR{address}=="eth1にしたいMACアドレス", NAME="eth1"

梅原 大祐 / UMEHARA Daisuke umehara@kit.ac.jp
Last modified: 2020/05/01 15:37
Total Access Count