AMD B550 芯片组下安装 Proxmox VE 6.3 和 Realtek 8125B 网卡驱动

ToC

MSI B550M 主板网卡是 Realtek RTL8125B, 这款网卡的驱动其实已经在 Linux kernel 5.9 有了, 但是 Promox VE 6.3 用的是 5.4 的 Linux LTS 内核, 所以, 只能发挥 Linux 用户传统艺能: 手装驱动了.

这里有个小问题我还没搞懂, 即使装好网卡驱动, PVE 6.3 仍然会报错无法进入图形界面安装, 所以下面讨论的是先装 Debian 再在此基础上装 PVE.

安装 Debian

先到 Debian 官网下载好安装镜像, 虽然我们待会没网, 但这里还是直接用 netinst 版就行.

当然你也可以在其他国内镜像站搞一个, 保证版本最新就好.

烧录镜像

这步不介绍太多, 用 ventoy 也行, etcher 也行.


接着插 U 盘, 开机, 狂按 Del 键(或别的什么能进 BIOS 的键)进 BIOS 调整 U 盘到首位启动, 重启, 进 Debian 安装界面, 开搞.

安装过程

我选的是命令行界面安装(也即是非界面安装), 按这个来讨论; 同时, 其他单纯填写信息和无关的步骤: 例如”选时区”, “填 hostname”, “分区方案”, 我也会忽略.

当提示找不到网卡驱动提示手动选网卡时, 选没有网卡, 继续安装, 当稍候提示根据地区选择镜像(mirrors)时, 不需要选任何地区, 直接将光标移到”back”进入之后的安装流程.

然后会问要不要插入 U 盘自动搜索驱动, 选否.

总之就是一切要联网的步骤选否.

然后如无意外会装完.

重启进 Debian 系统.

准备

没网怎么装网卡驱动呢? 先按这里的帖子第 4-8 步用手机 USB 共享网络连上网.

为免帖子丢失, 这里摘抄一下.

4)plug in android phone after enabling usb tether on the phone (Dont try to ping anything yet lol)
5)type in ‘ ip addr show ‘ And note down the interface name for the usb tether, mine was enp0s something something
6) type in ‘ ip link set enp0s up’ #replace enp0s with your own interface name
7) type in dhclient enp0s #replace enp0s with your own interface name
8) test connectivity by using ping, ‘ping 1.1.1.1’

有网了就着手换源, 参考 USTC 帮助换个国内 debian 源.

vi /etc/apt/sources.list

然后apt update一下.

装个 wget 和 git, 待会会用到.

apt install wget git

下载 GPG 公钥

稍后用到的脚本因为要装 Proxmox VE 的 headers, 按官方 wiki 先把官方 GPG 公钥装上.

wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg

准备清华社区源

echo "deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian buster pve-no-subscription" >> /etc/apt/sources.list.d/pve-install-repo.list

当然这是因为国情, 你网络好的话可以加原版 pve-no-subscription 源.

echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" >> /etc/apt/sources.list.d/pve-install-repo.list

正式装驱动

Github 有人已经写好了脚本, uioprr/RTL8125-Driver-for-Proxmox-VE5-6-and-debian, 主要做的是判断系统版本和用官方驱动编译安装, 跟着它 README 走就行.

其实有个同样也是用 RTL8125B 网卡的主板 wiki 是推荐用 Ubuntu PPA 方式安装的, 但是这里大陆可能会遇到网络问题, 或者 gpg 公钥问题, 就还是先编译安装吧. 有能力的可以试试 PPA 安装.

git clone https://github.com/uioprr/RTL8125-Driver-for-Proxmox-VE5-6-and-debian.git
cd ./RTL8125-Driver-for-Proxmox-VE5-6-and-debian
chmod a+x rtl8125_install.sh
bash rtl8125_install.sh

现在没 SSH 没法复制粘贴, 小心别打错字符. 出现安装提示的话按 y 回车确认就好.

如果脚本运行出错, 注意看脚本的提示.

然后就装完了, 检验一下.

lsmod | grep 'r8125'

出现 r8125字样即安装成功

在 Debian 基础上装 Proxmox VE

首先当然还是看官方 wiki.

改 hostname 部分按自己需要改了.

wiki 接下来要求装 GPG key 和导入 PVE 源, 这步我们已经提前做了, 可以省略.

接下来流程和注意事项都是跟着 wiki 走就好.


走到

apt install proxmox-ve postfix open-iscsi

这步, 也就是安装 PVE 的包, 并按 wiki 重启完之后, 网卡会丢失, 这是预料之中的. 因为之前我们用的脚本带的驱动是 Realtek 官方提供的编译安装方式, 装完 PVE 内核会变动, 自然就没了. 咋办? 用 deb 包重新装一遍.

PVE 下用 deb 包重装驱动

装 headers

DKMS 需要依赖 Proxmox VE kernel headers, 先安装.

sudo apt install pve-headers

装驱动

按上面”准备”章节的方法用手机 USB 把系统连上网.

如果细心的话会发现, 提供 USB 联网方法的帖子其实就是 deb 安装流程, 只不过, 他失败了.

在这个仓库的 release 页面下载好最新驱动 deb 包, 放进 U 盘, 插 U 盘进系统.

接下来按那帖子的 12-21 步操作, 就算装完了. 这里同样为了防丢, 摘抄一下.

注意前文的编译安装脚本已经包含了下面 18-19 步, 可以跳过.

12) cd into a directory to make the second usb mount= ‘cd /media’
13) ‘mkdir usb’
14) use blkid to find the correct /dev/sd** name for your usb, (mine was sda1)
15) ‘mount /dev/sda1 /media/usb/‘
16) cd /media/usb
17)’ls’ #to find names
18) ‘apt install build-essential’
19) ‘apt install dkms’
19) Change directories to your USB folder with the DEB file (cd /media/usb)
20) install the DEB file with dpkg -i NAME_OF_DEB_FILE
21) now you can unplug the usb tether, repeat steps 5-8 to check if your Ethernet connection works.


来检验下

ip link

应该就可以看到 RTL8125B 网卡的 interface 了, 大概是类似 enp42s0 之类的东西. 又因为 Proxmox 自带 DHCP 客户端, 这时理论上已经可以直接获取到 IP 上网了.

用这种方式安装的驱动以后即使内核升级也会继续存在, 也就是不用再折腾了.


Have fun.