Z790 D DDR4 (rev. 1.0) のNIC をubuntu 20.04で認識させる話
現在絶賛サーバ新調中です.
本当はOSのセットアップはいちからするのが普通です…
しかし、めんどくさいのですよ。元の環境を復旧させるのは…
なので、ドライブを入れ替えるだけで今回はさせていただきました
で、今回の記事はそのときにNICが認識しない不具合を解消したメモです
昨今はドライブを入れ替えてもCPUとかメモリとか変更する箇所は特にないので…
とか思っていましたが交換したマザーボード Z790 D DDR4は悪名な高いRealtekだったのですw
動作環境
wataru@gitlab:~$ uname -a
Linux gitlab 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
wataru@gitlab:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
メモ
はい、なぜRealtekが悪名な高いかというと…
自動で適用されるRealtekのNICドライバ(r8169)の動きが変なわけです
オートネゴがおかしく繋がらないらしいです(風の噂)
これは結構古い問題なのでなんとかして欲しいかな…
ともあれ、自動適用されたドライバ r8169を正しいドライバに変更すれば完了となります。
正しいドライバがわからないので動作しているチップを確認します
wataru@gitlab:~$ lspci | grep -i realtek
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
RTL8125ですね。
Realtekのページからドライバを取得します
ここからダウンロードすればOKです。
途中、Captchaの入力を求められますが入力してダウンロードしてください
ダウンロードファイル : r8125-9.010.01.tar.bz2
ドライバの適用方法は中にあるREADME通りにすれば適用されます
README抜粋はこんな感じです。autorun.shは必ずrootで実行してください
# tar vjxf r8125-9.010.01.tar.bz2
# cd r8125-9.010.01
# ./autorun.sh
# lsmod | grep r8125
とありますので手順通りしてモジュール適用をします。
終わるとこんな感じになります…(Try & でのスナップじゃないのですみません)
wataru@gitlab:~$ lsmod | grep r81
r8125 221184 0
モジュールはちゃんと読み取っています。
もし、r8169が残っている場合はmodprobeで削除してください。
wataru@gitlab:~$ echo "blacklist r8169" | sudo tee -a /etc/modprobe.d/blacklist-r8169.conf
wataru@gitlab:~$ sudo modprobe -rvf r8169
モジュールが正しく動作しているかを正しく判定するためにPCを再起動します
再起動して、lsmodでちゃんと入っていることを確認できれば次の作業です。
ハード情報を確認します (※ IP割り当て後の結果なのでconfigurationとか入っています… )
wataru@gitlab:~$ lshw -c network
*-network
description: Ethernet interface
product: RTL8125 2.5GbE Controller
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:04:00.0
logical name: enp4s0
version: 05
serial: d8:5e:d3:**:**:**
size: 1Gbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=r8125 driverversion=9.009.02-NAPI duplex=full ip=192.168.1.201 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:18 ioport:3000(size=256) memory:4b900000-4b90ffff memory:4b910000-4b913fff
enp4s0と命名(logical name)されている様ですね
ついでにLinkがDOWNだったのでとりあえず接続してみます。
wataru@gitlab:~$ sudo ip link set enp4s0 up
これで DOWN状態からUP状態になりました!
これで!とは無理です。IPが割り当てられません
というか古いNICのlogical nameはens0だったのですが、今回は命名が変更されましてenp4s0になっております。
wataru@gitlab:~$ sudo vi /etc/netplan/00-installer-config.yaml
ens0って書いているところを置き換えるだけでOKです
変更後はネットワーク設定を適用すればOKです
wataru@gitlab:~$ sudo netplan apply
これでネットワークがつながりました
終いに
今回はサーバをそのままHDDを入れ替えた場合にNICがおかしくなった時の復旧方法を書いてみました。
ちゃんとインストールしたら入っていたはずです!(未確認)
ここまでくればサーバの引っ越しは完了かな
メモ
いかれ環境になってきましたねw
CPU 23 + 1個 メモリ128GB
wataru@gitlab:~$ cat /proc/cpuinfo | grep -e processor -e i7 | tail -n 2
processor : 23
model name : 13th Gen Intel(R) Core(TM) i7-13700KF
wataru@gitlab:~$ free -h
total used free shared buff/cache available
Mem: 125Gi 12Gi 105Gi 769Mi 7.6Gi 111Gi
Swap: 14Gi 0B 14Gi