LoginSignup
4

More than 1 year has passed since last update.

Realtek 8125 NIC をCentOS8で動かす

Last updated at Posted at 2020-05-01

最初の出会い

私が入手したのは、AREA SD-PE25GLAN-1L というパッケージの商品でした。
適当に選びました。
大体どれでも使えるよな。って軽い気持ちでした。
なんでも2.5Gbpsだとかで凄いってことだったので。

お持ち帰り

家について母艦の富士通PRIMERGY TX1310 M3に取り付けました。

 # ip a

してみても本体のLANポートしか認識されません。
これは・・・・少し冷や汗が流れ、鼓動が大きく速くなるのが分かりました。
おちついて、

# lspci
   :
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. Device 8125

Realtek 8125って事じゃないか、カニさんチップなんてポピュラーだから大丈夫って思っていたけどそうでもなかった。

ドライバを探す in 自マシン

落ち着き払って

# ls -l /lib/modules/4.18.0-147.8.1.el8_1.x86_64/kernel/drivers/net/ethernet/realtek/
-rw-r--r-- 1 root root   15348 Apr  9 23:03 8139cp.ko.xz
-rw-r--r-- 1 root root   16936 Apr  9 23:03 8139too.ko.xz
-rw-r--r-- 1 root root   33444 Apr  9 23:03 r8169.ko.xz

ない。8125の文字がない。
8139だって8169だって大は小を兼ねるでダメなの?!
駄目です。と冷酷無比な声が聞こえた。

ドライバを探す 本家サイトで

そこで、本家に行きました。

Realtek PCIe FE/GBE/2.5G/Gaming Ethernet Family Controller Software

ここで、一覧表示されるものの中でUnix(Linux)のセクションにあるドライバの中から

Screenshot from 2020-05-01 23-44-08.png

2.5G Ethernet LINUX driver r8125 for kernel up to 4.15

を選択してダウンロードします。
メールアドレスを聞かれて、無意味な英数字を入力させられます。

コンパイル

展開するとほぼすべてmode 777でファイルが展開されます。
気持ちが悪いので autorun.sh 以外はxビットを落としたり、wビットを落としたりしました。(まったく個人的嗜好なので)
サイトのdescriptionにもあるようにkernel up to 4.15のためなのか解りませんが、このままautorun.shしてもエラーになります。そこで、足りないものが解ったのでinstallします。

ここからが重要

私の母艦はファイルサーバにするつもりだったので開発キットの類は一切インストールしていなかったのでした。そのため、コンパイラがないだとか、カーネルインクルードファイルがないだとか・・・・
それらの問題を一気に解決する呪文です。

# dnf group install "Development Tools"
# dnf install elfutils-libelf-devel

この呪文の後にautorun.shのあるディレクトリにcdして、

# ./autorun.sh

を入力したらインストールしてinsmodまでしてくれます。そこで、ip a したら、

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 4c:52:62:58:df:8d brd ff:ff:ff:ff:ff:ff
    inet 192.168.31.183/24 brd 192.168.31.255 scope global dynamic noprefixroute eno2
       valid_lft 161937sec preferred_lft 161937sec
    inet6 2001:a452:708:6500:4e52:62ff:fe58:df8d/64 scope global dynamic mngtmpaddr 
       valid_lft 13621sec preferred_lft 11821sec
    inet6 fe80::4e52:62ff:fe58:df8d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:13:3b:b0:1e:b3 brd ff:ff:ff:ff:ff:ff

ここで8125は3番目のenp1s0に相当します。

最後に

再起動させてみて起動後にちゃんとNICが認識されているか確認して大丈夫だったら完成です。

わすれずに depmod

再起動後にNICが認識されていないケースの殆どは、depmod忘れです。

# depmod -a

などとして、/lib/modules/4.18.0-147.8.1.el8_1.x86_64/modules.dep の内容の更新を忘れずに。

確認してみる

# ls -l /lib/modules/4.18.0-147.8.1.el8_1.x86_64/kernel/drivers/net/ethernet/realtek/                 
total 2596                                                                                                          
-rw-r--r-- 1 root root   15348 Apr  9 23:03 8139cp.ko.xz                                                            
-rw-r--r-- 1 root root   16936 Apr  9 23:03 8139too.ko.xz                                                           
-rw-r--r-- 1 root root 2582552 May  1 20:52 r8125.ko                                                                
-rw-r--r-- 1 root root   33444 Apr  9 23:03 r8169.ko.xz

xz圧縮形式にしなくて良いのか

わからないけど、とりあえずこのままにしてましたが、xzコマンドで簡単に圧縮できるので

# xz r8125.ko

として圧縮しましょう。なお、この圧縮をしたあとは、modules.depの内容更新のため、再度、

# depmod -a

を忘れずに。

kernel updateの時に

自動的にドライバを更新させる方法はしらないので原始的に毎回autorunしているのでそこらへんはなんとかしていきたいと思っています。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4