国产信创海光服务、兆芯服务器,搭配板载国产千兆网卡网讯WX1860A2、WX1860A4网卡驱动安装方法

国产网卡网讯WX1860A2,Linux驱动安装方法

1、关于网卡

网迅科技WX1860系列千兆以太网络控制器芯片,支持PCIe2.0×4主机接口,2或4个RJ45端口,具有RGMII接口,支持外接光口PHY实现1GbE光端口,支持网络数据包校验和卸载,支持RSS、QoS、NC-SI、PXE等,WX1860系列芯片主要应用于网络安全设备、工控计算机、服务器、工作站或嵌入式主板等。

国产操作系统,麒麟Kylin、统信UOS、欧拉openeluer、龙蜥Anolis,较新的系统已经预装了该网卡的驱动。老系统如Redhat、centos、debian、ubuntu等没有预装驱动,这时就需要手动安装驱动。

2、安装编译环境

由于官网提供的驱动是源码包,需要提前安装编译环境。这里主要使用centos7.9、ubuntu22.04.3环境演示,centos7.9做全步骤演示,因为原理相同ubuntu22.04.3如有不一样的地方再单独说明,推荐使用yum,apt去安装编译环境。

2.1准备网络环境

yum肯定需要联网,如果服务器上还有其他型号网卡并且有驱动,可以接上网线用该网卡上网。如果服务器只有网讯或者没有其他网卡可用。

可用通过ip a命令查看网卡,本服务器只有板载2口千兆网讯网卡,可以发现没有可用网卡,如下图:

2.1.1方法1使用手机给服务器提供热点

使用一条USB A-C数据线连接服务器,在手机 设置→更多连接→个人热点→USB网络共享,以小米hyperos系统为例,其他系统可能位置不一样。

打开后再次通过ip a命令查看网卡,已经有一张可用网卡,并已经获取地址

2.1.2方法2使用USB网卡(推荐)

在服务USB口上插入USB网卡,接上网线,大概率和你的电脑是同一个网络,网络通以后可以使用终端登录服务器,减少手动敲命令

通过ip a命令查看网卡,已经有一张可用网卡,并已经获取地址

Ubuntu配置网络时需要注意的地方

ubuntu插入usb网卡,网卡可能处于down的状态,需要手动up网卡,刷新dhcp、配置dns

cpp 复制代码
sudo -i
ip a
ip link set dev enx00e04c680295 up
dhclient
echo "nameserver 223.5.5.5" > /etc/resolv.conf

2.2下载驱动

可以到网讯下载中心下载驱动,

ngbe是网卡驱动,通常物理机安装驱动就用ngbe这个。ngbevf是虚拟化的驱动。

下载完成,建议解压好后传到服务器/root/目录下,或用U盘复制

ubuntu环境

ubuntu默认不允许root用户直接登录,传输文件需要传到/home/用户/目录下,我这边普通用户为user,传到了/home/user/目录下

2.3更新软件源

centos在几年前已经停止了软件更新,yum源也关闭了。还有些系统源在国外,下载速度非常慢,这里可以使用一个更换软件源脚本大部分linux系统都可以用,有专人更新。

cpp 复制代码
bash <(curl -sSL https://linuxmirrors.cn/main.sh)

输入上面命令可以弹出可以选中的软件源地址,脚本内有中文,如果是在终端输入可以正常显示

如果接显示器用键盘输入,如果没安装中文包,显示不了中文。但这里不影响,不需要看懂一直按敲回车下一步、下一步就行

2.4安装编译环境

编译需要安装 kernel-devel、kernel、gcc正常情况需要对应内核版本安装对应版本的kernel,但有些内核版本太低,或者软件源只有最新的版本,最终可能报错

cpp 复制代码
yum install -y kernel-devel-$(uname -r)
yum install -y kernel $(uname -r)
yum install -y gcc

如果出现上面的报错,先默认安装,不指定版本

cpp 复制代码
yum install -y kernel-devel
yum install -y kernel
yum install -y gcc

Ubuntu环境

ubuntu环境需要安装一下编译环境,headers版本在源上保留很完整,大概率可以匹配上,不太可能出现下面 2.5节描述的情况。

cpp 复制代码
sudo -i
apt install -y make
apt install -y gcc
apt install -y linux-headers-$(uname -r)

2.5 kernel小版本对不上,导致编译找不到kernel环境,很坑,大概率会卡在这

安装好环境尝试编译,依然出现找不到kernel目录

cpp 复制代码
[root@192 ~]# cd /root/ngbe-1.2.7/src/
[root@192 src]# make install
common.mk:79: *** Kernel header files not in any of the expected locations.
common.mk:80: *** Install the appropriate kernel development package, e.g.
common.mk:81: *** kernel-devel, for building kernel modules and try again.  Stop.

通过以下命令,复制一份kernel目录

通过uname -r查看内核版本

通过ls /usr/src/kernels/ 查看kernel安装的版本

通过cp -r /usr/src/kernels/3.10.0-1160.119.1.el7.x86_64/ /usr/src/kernels/3.10.0-1160.el7.x86_64 复制ls /usr/src/kernels/ 的文件夹,并重新命名为uname -r的名称。

每台服务器,每个系统版本号可能不同根据实际查看到的内容填写。

3编译驱动

通过以下命令进行编译

cpp 复制代码
chmod +x -R /root/ngbe-1.2.7/
cd /root/ngbe-1.2.7/src/
# 这里1.2.7是下载驱动的文件夹名也是版本号,如果下载了其他版本对应更改数字
make install

编译完成

安装完成通过modprobe ngbe命令加载驱动加载成功就能看到网卡(centos大概率加载不出来,ubuntu可以加载),加载不出来可以重启服务器。

网卡已经识别

Ubuntu环境

总结

1、准备网络环境,USB网卡,手机热点

2、安装编译环境,下载驱动

3、编译驱动

Centos7.9环境

cpp 复制代码
bash <(curl -sSL https://linuxmirrors.cn/main.sh)
yum install -y kernel-devel
yum install -y kernel
yum install -y gcc
cp -r /usr/src/kernels/3.10.0-1160.119.1.el7.x86_64/ /usr/src/kernels/3.10.0-1160.el7.x86_64
      # 3.10.0-1160.119.1.el7.x86_64是ls /usr/src/kernels/的值
      # 3.10.0-1160.el7.x86_64是(uname -r的值)
chmod +x -R /root/ngbe-1.2.7/
cd /root/ngbe-1.2.7/src/
make install
reboot

Ubuntu环境

cpp 复制代码
sudo -i
ip a
ip link set dev enx00e04c680295 up
     # 其中enx00e04c680295是ip a 查询到的网卡名
dhclient
echo "nameserver 223.5.5.5" > /etc/resolv.conf
bash <(curl -sSL https://linuxmirrors.cn/main.sh)
apt install -y make
apt install -y gcc
apt install -y linux-headers-$(uname -r)
chmod +x -R /home/user/ngbe-1.2.7/
cd /home/user/ngbe-1.2.7/src/
make install
modprobe ngbe
reboot
相关推荐
STDD13 小时前
VictoriaLogs:轻量级日志存储方案,Loki 的高效替代
运维·jenkins
枳实-叶13 小时前
【Linux驱动开发】第18天:I2C驱动深度解析
linux·运维·驱动开发
shandianchengzi13 小时前
【记录】Ubuntu|Ubuntu 26.04 笔记本耗电过快,排查 省电过程
linux·运维·ubuntu
一叶星殇13 小时前
日志成海,何以检索:Serilog 解锁 .NET 日志可查询新范式
运维·服务器
企服AI产品测评局13 小时前
AI Agent实测:Agent Store现成应用如何重塑企业自动化?
运维·人工智能·ai·chatgpt·自动化
上海云盾安全满满13 小时前
服务器不稳定,丢包有哪些原因?
运维·服务器
li星野13 小时前
FastAPI 参数详解:路径参数、查询参数与请求体 —— 从入门到实战
服务器·学习·fastapi
陳103013 小时前
Linux:信号
linux·运维·服务器
tongluowan00713 小时前
负载均衡之硬件与软件层面的异同
运维·nginx·负载均衡·f5
小此方13 小时前
Re:Linux系统篇(二十五)进程篇·十:深度硬核!Linux 进程等待,从 task_struct 源码到位图状态解构
linux·运维·驱动开发