Realtek ネットワークドライバをUbuntuにインストール 備忘録


概要

自作PCを組んだ時、マザボ(ASUS製)のRealtek製オンボード有線LANをUbuntuが認識しない状態であった
そこで有線LANが開通するまでの手順を残す
今後もUbuntuインストール後、有線でネットにつながらない場合もあると思うし…

  • 実施時期: 2020年12月
  • OS: Ubuntu18.04LTS
  • Chipset: B550

build-essentialのインストール(オフライン)

ドライバをインストールするには対象PCにコンパイル環境(build-essential)がインストールされてなければならない
普通なら "sudo apt install build-essential" で解決するが、対象PCはネットに繋がらないので、これはできない
なので、
1. 対象PCでbuild-essentialに必要なdebファイルリスト(URL)を作る
2. ネットに繋がるもう一台のPCでどのリストの全debファイルをダウンロード
3. ダウントードしたdebファイルを対象PCに使ってコピー
4. 対象PCで全debファイルを一括インストール
という手順となる

対象PCで下記を打つと、そのパケージに必要なdebファイルのURLをリスト出力してくれる
(下記の'build-essential'のところはapt install するパケージ名)

sudo apt-get --print-uris install build-essential | cut -d\' -f2 | grep http:// > urls.txt

"no installation candidate"とエラーが出た場合は、Software & UpdatesのDownloads from に'Main server'を選択する。

ちなみに、今回出力されたurls.txtは下記だった。

http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/libc-dev-bin_2.27-3ubuntu1.2_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/l/linux/linux-libc-dev_4.15.0-112.113_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/libc6-dev_2.27-3ubuntu1.2_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libitm1_8.4.0-1ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libatomic1_8.4.0-1ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/libasan4_7.5.0-3ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/liblsan0_8.4.0-1ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libtsan0_8.4.0-1ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/libubsan0_7.5.0-3ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/libcilkrts5_7.5.0-3ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libmpx2_8.4.0-1ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-8/libquadmath0_8.4.0-1ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/libgcc-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/gcc-7_7.5.0-3ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-defaults/gcc_7.4.0-1ubuntu2.3_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/libstdc++-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-7/g++-7_7.5.0-3ubuntu1~18.04_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-defaults/g++_7.4.0-1ubuntu2.3_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/m/make-dfsg/make_4.1-9.1ubuntu1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/d/dpkg/dpkg-dev_1.19.0.5ubuntu2.3_all.deb
http://archive.ubuntu.com/ubuntu/pool/main/b/build-essential/build-essential_12.4ubuntu1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/f/fakeroot/libfakeroot_1.22-2ubuntu1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/f/fakeroot/fakeroot_1.22-2ubuntu1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/liba/libalgorithm-diff-perl/libalgorithm-diff-perl_1.19.03-1_all.deb
http://archive.ubuntu.com/ubuntu/pool/main/liba/libalgorithm-diff-xs-perl/libalgorithm-diff-xs-perl_0.04-5_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/main/liba/libalgorithm-merge-perl/libalgorithm-merge-perl_0.08-3_all.deb
http://archive.ubuntu.com/ubuntu/pool/main/m/manpages/manpages-dev_4.15-1_all.deb

このurls.txtファイルをUSBメモリにコピーしネットにつながるPCに持っていき、wgetで全debファイルをダウンロードする。
ダウンロードしたdebファイルは1フォルダ(例えばdebフォルダ)に入れて、対象PCにコピーする(例えばDownloadsフォルダ)
そのフォルダに移動し、dpkgでdebファイルを展開・インストールしてくれる

cd Downloads/deb
sudo dpkg -i *.deb

なお、上から2番めのlinux-libc-dev_4.15.0-112.113_amd64.debはリンクが切れててwgetできなかったのでブラウザ使ってここからダウンロードした。

調べると、オフラインでパケージをインストール方法はいくつかあるみたいだけど、今回みたいに一時的にオフラインとなる場合は多分これが一番簡単だと思う。

注意!!

ライブUSBのpoolフォルダに、build-essentialのdebファイルがあるが、これをdpkgでインストールしないこと!
他の多くの(上記)パケージに依存しているので、あれがないこれがないとエラーが出て、結果立ち行かなくなりapt自体が壊れてしまう(体験談)

Realtek Ethernet driverインストール

ドライバダウンロード

lspclコマンドでオンボードLANがRealtek R8125であることを確認する

lspci | grep net
06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 04)

ネットにつながるPCで、ここから下図一番上の"2.5G Ethernet LINUX driver..."をダウンロードし、USBメモリ等でUbuntuの任意のフォルダにコピーする
小生は無線LANを接続した状態で行った

ターミナルで、そのパスに移動し解凍しておく

tar -jxvf r8125-9.004.01.tar.bz2

インストール

ここに手順があり、その通りに行うとうまくいった
行った手順は下記の通り

1. dkms.confファイル作成

上で解凍したフォルダのパス(Downloads/r8125-9.004.01など)に移動しvimで新しいファイルを作成する
テキストエディタでもOK。中身は下記をコピペする
但し、PACKAGE_VERSIONはダウンロードしたドライバのそれに書き換えること
このファイルにより今後カーネルの更新を行ってもドライバの再登録を行わなくて済むらしい
逆に言うと、これのファイルがないといつの間にかオンボードLANが使用できない状態になるかも

PACKAGE_NAME="r8125"
PACKAGE_VERSION="9.004.01"
BUILT_MODULE_NAME[0]="$PACKAGE_NAME"
DEST_MODULE_LOCATION[0]="/updates/dkms"
AUTOINSTALL="YES"
REMAKE_INITRD="YES"
CLEAN="rm src/@[email protected] src/*.o || true"

ファイル名をdkms.confとし、今のパスに保存する
保存後、念のため権限を変更した

sudo chmod 777 dkms.conf

2. 古いドライバの削除(もしあれば)

もし、すでに古いバージョンのドライバがインストールされていたら下記を実行する
もちろんバージョン番号はその古いバージョンに変更する

sudo dkms remove r8125/9.002.02 --all
sudo rm -rf /usr/src/r81259.002.02/
sudo dkms status

3. ドライバ登録

このフォルダを/usr/srcに移動し、同フォルダ内のautorun.shでドライバを登録する
ここでもバージョンは上記同様に変更する

cd
sudo cp -R Downloads/r8125-9.004.01/ /usr/src/r8125-9.004.01
cd /usr/src/r8125-9.004.01
sudo bash autorun.sh

再起動するとまたネットワークに繋げなくなった
そここで下記を実施

cd /usr/src/r8125-9.004.01
sudo bash autorun.sh      # これでネットにつながる
sudo apt install dkms
sudo dkms add -m r8125 -v 9.004.01  # ドライバをdkmsで登録

最後の処理はautorun.shに入っているかと思ったがどうもそうではないみたい
実施後はまったく順調

その他

インストール直後のUbuntuは16も18も20も、手持ちのUSB wifiアダプタは認識してネットにつながるので、そういうひとにはこれは無縁の作業

以上