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