💻

Proxmox VE 8.2でRealtek RTL8126を使えるようにする

2024/08/05に公開

はじめに

最近ミニPCを使って遊んでる中で、試しにProxmox VEをインストールしてみたところRealtek RTL8126(NIC)を認識してくれなかったので、使えるようにするまでの備忘録です。

やったこと

以下の方法でドライバをインストールしただけで無事動きました😌

  1. ドライバと必要なパッケージの収集
  2. Proxmox VEでドライバのインストール
  3. NICの設定

なお、作業用PCにはM2 MacBookを使用しています。

1. ドライバと必要なパッケージの収集

Proxmox VEで apt-get install …と書きたいところですが、残念ながらNICを認識してくれないのでインターネットには繋がりません😇
なので、作業用PC側で必要なドライバと必要なパッケージを収集して、USB経由でProxmox VEに持っていきました。

Realtek RTL8126のドライバは、公式ダウンロードページからダウンロードできます。Proxmox VEはDebianベースなので、Linux用のものをダウンロードします。

次にパッケージを集めます。必要なパッケージは以下です。

  • build-essential
  • dkms
  • proxmox-headers

今回はDebianコンテナをM2 MacBook上で起動し、その上で上記パッケージをダウンロードすることにしました。

以下のコマンドで、コンテナを起動します。

docker run --rm -it --platform linux/amd64 -v ./packages:/packages bash

利用するイメージは今回導入するProxmox VE 8.2.2のベースに合わせて、 debian:12.5-slim にしました。
Proxmox VEインストール先のPCはCPUアーキテクチャがx64なので、環境を合わせるため --platform linux/amd64 が必要です。
また、最終的にはMacBookからUSBにパッケージをコピーするため、-v で適当な場所にボリュームをマウントしています。

いよいよ本丸のパッケージ集めです。
proxmox-headers は、aptにProxmoxのリポジトリを追加する必要があります。(参考:公式Wiki
以下の行を、/etc/apt/sources.list に追加します。

/etc/apt/sources.list
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription

合わせてgpgキーを導入します。

wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

コンテナ上で以下のコマンドを実行しパッケージを集めていきます。

apt-get update
apt-get install -y vim apt-rdepends build-essential dkms

cd /packages

# build-essential
apt-rdepends build-essential | grep "^ " > deps.txt
# libc-devの行を削除
vim deps.txt
apt-get download $(cat deps.txt)

# dkms
apt-rdepends build-essential | grep "^ " > deps.txt
# libc-dev, c-compiler, kldutilsの行を削除
vim deps.txt
apt-get download $(cat deps.txt)

# proxmox-headers
# 6.8.4-2はProxmox VEのKernelバージョンに合わせる
apt-get download proxmox-headers-6.8.4-2-pve

ここまでで、ドライバとドライバのインストールに必要なパッケージが揃います。
ドライバと集めたパッケージは適当にUSBメモリなりにコピーしておきます。

2. Proxmox VEでドライバのインストール

まずは、USBをProxmox VEにマウントして1で集めたファイル類をProxmox VEにコピーします。

mkdir -p /mnt/usb
mount /dev/<USBメモリデバイス> /mnt/usb

cp -r /mnt/usb/r8126-10.013.00 /root/  # ドライバ
cp -r /mnt/usb/packages /root/  # パッケージ

次に、パッケージのインストールです。
インストール順によっては一部が正しくインストールされない可能性があるため、インストールコマンドを実行しました。

dpkg -i /root/*.deb

最後にドライバをインストールします。

/root/r8126-10.013.00/autorun.sh

Proxmox VEを再起動して、以下のようなコマンドでNICが認識されていれば成功です。

ip link show

3. NICの設定

最低限のNICの設定をしておきます。
以下の行を、/etc/network/interfaces に追加します。

/etc/network/interfaces
auto <インターフェース名>
iface <インターフェース名> inet dhcp

また、Proxmox VEインストール時に作成されるbridgeに認識されたNICを参加させるために設定を変更しておきます。

/etc/network/interfaces
iface vmbr0 inet static
        address 192.168.10.2/24
        gateway 192.168.10.1
        bridge-ports <インターフェース名>  # ここを変更
        bridge-stp off
        bridge-fd 0

まとめ

今回は、Proxmox VE 8.2でRealtek RTL8126が利用できるようにするためのドライバのインストール方法について紹介しました。

今後はProxmox VE上にKubernetesクラスタを構築して、夢のおうちKubernetesを手に入れたいと思います😎

Discussion