1. 前言
公司的人工智能团队需要一台训练服务器,申请购买之后从网上购买了一台服务器核心配置如下
- 显卡:战斧rtx3090
- 主板: B360M mortar
- CPU: i5 1070
- 网卡: Realtek-R8125
到手之后是windows环境, 不符合服务器环境 重装ubuntu-server-18.04
但是安装完成之后碰到不少问题
2. 问题与解决方案
2.1 无法上网
通过命令
lspci
可以看到网卡型号是Realtek-R8125
这样我们就去realtek官方网站上面找驱动
下载linux对应版本的最新驱动
驱动安装方法参考https://blog.youkuaiyun.com/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/ 目录下新建一个 ens3.network 文件(文件名自己可以随意设定),配置文件写法参考如下:
设置固定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 客户端
重启 解决网络问题, 这也太难了~, 折腾了大半天