2.5GbE の LAN アダプター PTR-FU を Ubuntu Linux で使ってみる

Network

イーサーネット HUB を 2.5GbE 対応のものに置き換えたので、せっかくだから Ubuntu Linux にも 2.5GbE 対応の LAN カードを増設して使えるように整えてみました。


イーサーネット環境を 2.5GbE のものに変更したため、これまで 1GbE で接続していた Linux にも 2.5GbE 対応のイーサーネットアダプターを付けて速度アップを図ってみたくなりました。

そのために今回、用意したのが ORICO の PTR-FU-BK-BP という機器です。

PCIe 1x 接続のイーサーネット増設ボードになっていて、Windows だけでなく Linux 2.4 にも対応している様子です。今回はミドルタワーサイズの筐体だったのでもともと問題ないのですけれど、この機械にはロープロファイルブラケットも付属しているので、コンパクト PC にも使えるのが嬉しいところです。

そんな ORICO PTR-FU を Ubuntu 20.04.4 LTS がインストールされている PC にセットアップしてみました。

Ubuntu 20.04.4 LTS へのインストール

物理的なインストールは特に難しいことはなく、空いていた PCIe 1x のスロットに ORICO PTR-FU を接続します。ただし、ソフトウェアのドライバーは手動で導入しないといけないところは些か手間なところかもしれません。

ところで Linux カーネルをアップデートしたときにはデバイスドライバーを再度インストールしないといけなさそうでした。この辺りについては DKMS という仕組みを使って対処できるらしい情報があったのですけれど、それを試す前に Ubuntu 22.04.1 LTS なら標準で対応ドライバーが用意されているようなのを知って、アップグレードしたのでそちらは試しませんでした。 以下では、標準対応していない Ubuntu 20.04.4 LTS で、Linux カーネルのアップデートをするまでの間は上手く動いてくれる普通なデバイスドライバーのインストール方法について記載していきます。

デバイスドライバーのダウンロード

デバイスドライバーは製品のパッケージには付属せず、説明書に記載のダウンロードページから辿れる ORICO PTR-FU 2.5G Ethernet Card のソフトウェアダウンロードページ から入手する必要がありました。

現時点では最新版が https://oos.oricogroup.com/ORICO%20PTR-FU.rar からダウンロードできるようになっていたので、Ubuntu Linux から次のようにしてダウンロードを行いました。

wget https://oos.oricogroup.com/ORICO%20PTR-FU.rar

これを解凍して使うのですけれど、Ubuntu 20.04.4 LTS では標準では rar 形式の圧縮ファイルを展開するソフトウェアがインストールされていないようだったので sudo apt install unrar を実行して、解凍ソフト unrar をインストールしておきました。その上で、次のようにしてダウンロードしたデバイスドライバーを展開します。

unrar e ORICO\ PTR-FU.rar 

デバイスドライバーのインストール

マニュアル等の詳細なインストール方法が記された文書がなかったのですけれど、展開されたファイルの中の r8125-9.004.01.tar.bz2 が Linux 用のデバイスドライバーであると思われたので、まずはこれを次のようにして展開しました。

tar xvjf r8125-9.004.01.tar.bz2

こうしてファイルを展開すると、その中にはインストール手順の記された README が用意されていたので、それに従ってインストールを進めていきます。

cd r8125-9.004.01/
sudo ./autorun.sh

インストールにはカーネルヘッダーが必要

こうしたところで、自分の環境では次のエラーが発生しました。

Check old driver and unload it.

Build the module and install

make[2]: *** /lib/modules/5.4.0-117-generic/build: No such file or directory. Stop.

make[1]: *** [Makefile:167: clean] Error 2

make: *** [Makefile:48: clean] Error 2

メッセージ的には /lib/modules/5.4.0-117-generic/build というディレクトリーがないとのことですけれど、これはどうやら適切な Linux ヘッダーがインストールされていないために発生するエラーのようでした。そこで次のようにして、現在のカーネルに適した Linux ヘッダーをインストールしておきました。

sudo apt-get install linux-headers-$(uname -r)

このようにして改めて autorun.sh を実行したところ、途中でエラーは出たものの、インストールは完了しました。エラー自体は放っておいてもドライバーは動作してくれる様子です。

Check old driver and unload it.
Build the module and install
At main.c:160:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:69
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:76
sign-file: certs/signing_key.pem: No such file or directory
Warning: modules_install: missing 'System.map' file. Skipping depmod.
DEPMOD 5.4.0-117-generic
load module r8125
Updating initramfs. Please wait.
update-initramfs: Generating /boot/initrd.img-5.4.0-117-generic
Completed.

インストール後の動作確認

ここまでの手順で PTR-FU-BK-BP のデバイスドライバーがインストールされて、それが読み込まれて実際に LAN アダプターが利用できるようになっていました。

実際にモジュールが読み込まれているかは、次のコマンドで確認できます。

lsmod | grep r8125

また、実際に使えるようになっているかは、次のコマンドでおおよそ確認できます。

ifconfig -a

今回の自分の環境であれば、次のようなそれっぽいインターフェイスが新たに認識されていました。 表示される情報からは今回に増設した LAN アダプターであるかは窺えないので、今までになかったネットワークインターフェイスが認識されているからきっと上手くいったのだろう、という程度ですけれど。

enp5s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:e0:4c:66:83:7f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 50 

インターフェイスが 2.5GbE 対応であるかを調べる

このインターフェイス enp5s0 の特性をより詳しく調べたいときには、次のコマンドを実行することで、リンク速度などの情報を詳しく知れるので、今回に増設した LAN アダプターであるかを推定しやすくなります。

sudo ethtool enp5s0

今回の自分の環境であれば、次のような情報を得ることができました。

Settings for enp5s0:
        Supported ports: [ TP    MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
                                2500baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
                                2500baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
                                             2500baseT/Full
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 2500Mb/s
        Duplex: Full
        Auto-negotiation: on
        master-slave cfg: preferred slave
        master-slave status: slave
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: external
        MDI-X: Unknown
        Supports Wake-on: pumbg
        Wake-on: d
        Link detected: yes

物理的な確認はできない様子

なにやら ethtool には -p オプションによって、Linux 上で認識されているネットワークインターフェイス名に対応する実際の LAN アダプターの LED を点滅させる機能があるらしいのですけれど、今回の PTR-FU-BK-BP では対応していない様子でした。

このコマンドを実行してみると、次のようなメッセージが表示されてしまいます。

Cannot identify NIC: Operation not supported

MTU 値について

今回セットアップしたネットワークアダプターは、その MTU の値が既定の 1,500 に設定されています。2.5GbE 環境の場合は 9,000 くらいの設定にしておくと通信効率が高まるらしいので、必要に応じて こちら で記載したみたいにして MTU の値を変更しておくのも良いかもしれません。

Realtek RTL8125

次のようにして lspci コマンドを使うことで、認識されているネットワークアダプターのコントローラーの情報を確認できるようになっていました。

lspci | grep net

このようにすると、自分の環境では次のように出力されたので、今回に入手した LAN アダプターのチップセットは Realtek 社の RTL8125 であることがわかります。

05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

RTL8125 用のデバイスドライバー

このチップセットに対応するデバイスドライバーは、上記でインストールした説明書に記載の URL からだけではなく Realtek 社の Realtek PCIe FE / GBE / 2.5G / Gaming Ethernet Family Controller Software のページからも最新版をダウンロードできるようになっていました。

最新版のデバイスドライバーをインストールしたときの注意

試しに上記のページから最新版のデバイスドライバーをインストールしてみたのですけれど、その中で機になるところがありました。

インストールしたのは なのですけれど、この時点での最新版である r8125-9.010.1 の autorun.sh を実行してみたところ、マザーボードのオンボード LAN が認識されなくなってしまいました。

次のコマンドが実行されたタイミングで通信が途絶えたので、どうやらオンボード LAN のデバイスドライバーがアンロードされてしまったことに起因しそうです。

Check old driver and unload it.
rmmod r8169

このようなことがあったので、Linux にリモート接続でこのデバイスドライバーをインストールするのは無難かもしれません。もっとも、ネットワーク系のドライバーセットアップは遠隔操作で行わないのが一般的に安全そうです。