admin管理员组

文章数量:1567301

1. 前言

公司的人工智能团队需要一台训练服务器,申请购买之后从网上购买了一台服务器核心配置如下

  1. 显卡:战斧rtx3090
  2. 主板: B360M mortar
  3. CPU: i5 1070
  4. 网卡: Realtek-R8125

到手之后是windows环境, 不符合服务器环境 重装ubuntu-server-18.04
但是安装完成之后碰到不少问题

2. 问题与解决方案
2.1 无法上网

通过命令

lspci

可以看到网卡型号是Realtek-R8125
这样我们就去realtek官方网站上面找驱动
下载linux对应版本的最新驱动
驱动安装方法参考https://blog.csdn/thunder_k/article/details/106494511
但是这个文章内容里面告诉我们需要apt-get install 安装build-essential 编译组件
我都要装网卡驱动了,我当前网络不通的。
这样的话就涉及到离线安装 build-essential模块了

2.2 离线安装build-essential

通过stack-overflow大神提供的答案How do I install build-essential without an Internet connection?
这个方法是行得通

sudo apt-get -qq --print-uris install build-essential linux-headers-$(uname -r) dkms | cut -d\' -f 2 > urls.txt

然后把这个urls.txt放入你的u盘里面 再插入你的带网络的电脑
把所有的文件全部下载下来
我使用的命令是

wget -i urls.txt

注意留意文件数量是否相等(部分文件可能下载失败, 如果下载失败的话得去google搜索下载对应的文件)
如果网速慢的话建议使用阿里云ubuntu镜像 至于如何使用ubuntu镜像自己看吧, 很简单

然后把u盘插入服务器 进入到u盘下载目录执行

dpkg -i *.deb

至此 离线安装build-essential 完成

2.3 编译安装网卡驱动

上一步, 我们的编译环境已经安装好了, 我们就可以继续安装网卡驱动了
解压网卡驱动到 /usr/src

cp r8125-9.004.01.tar.bz2 /usr/src
tar -xvf r8125-9.004.01.tar.bz2
cd r8125-9.004.01

然后我们创建/usr/src/r8125-9.004.01/dkms.conf

PACKAGE_NAME=Realtek_r8125
PACKAGE_VERSION=9.004.01

DEST_MODULE_LOCATION=/updates/dkms
BUILT_MODULE_NAME=r8125
BUILT_MODULE_LOCATION=src/
[Match]
Name=enp0s20f6  # 匹配名为 enp0s20f6 的网卡
[Network]
DHCP=both    # 开启 DHCP 客户端
MAKE="'make' -C src/ all"
CLEAN="'make' -C src/ clean"
AUTOINSTALL="yes"

注意文件中的版本得和你下载的驱动一致
然后执行命令

sudo dkms add -m r8125 -v 9.004.01
sudo dkms build -m r8125 -v 9.004.01
sudo dkms install -m r8125 -v 9.004.01
sudo depmod -a
sudo modprobe r8125

至此, 如果可以通过如下命令可以看到网卡, 那么就完成了。我的网卡名称是enp2s0

ifconfig -a
2.4 网卡驱动安装了, 但是上不了网

我们使用

ifconfig -a

是可以看到网卡
但是使用

ifconfig 

是无法看到网卡的 证明我们这个网卡是没有挂载上去的
我们通过(注意修改对应网卡名称)

ifconfig enp2s0 up

可以挂载,但是还是无法上网而且地址那一栏显示的是 ipv6的地址
这样我们需要执行
因为网卡没有主动去路由器申请ip地址,这样的话 我们就得让他去申请ip

dhclient -r enp2s0 #注意修改网卡名称
dhclient enp2s0

至此通过ifconfig 可以看到 路由器分配了一个Ipv4的地址给到这台电脑

2.5 重启之后 网卡继续无法获取ip地址

这个就涉及到我们的网卡onbootl了, 简单说就是网卡在开机之后没有自动获取ip地址,我第一个想到的就是写一个脚本 把之前用到的命令加进去, 让它开机运行, 但是后面想想, 这个是不科学的,肯定 网卡的 start ONBOOT没有设置成功, 找了一圈方案, 找到一个解决方案

在 /etc/systemd/network/ 目录下新建一个 ens3work 文件(文件名自己可以随意设定),配置文件写法参考如下:

设置固定ip
[Match]
Name=enp2s0  # 匹配名为 enp0s20f6 的网卡
[Network]
DHCP=none    # 关闭 DHCP 客户端,
Address=172.16.5.251/24  # 设置 IP 和子网掩码
Gateway=192.168.5.50   # 设置网关,这项设置会将该网卡添加到缺省路由这个网关就参考其他电脑的就OK
DNS=8.8.8.8  # 设置 DNS 
设置dhcp
[Match]
Name=enp0s20f6  # 匹配名为 enp0s20f6 的网卡
[Network]
DHCP=both    # 开启 DHCP 客户端

重启 解决网络问题, 这也太难了~, 折腾了大半天

本文标签: 要点网卡驱动版本技术Ubuntu