国产信创海光服务、兆芯服务器,搭配板载国产千兆网卡网讯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
相关推荐
Avan_菜菜11 小时前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB1 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
zzzzzz3103 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode3 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz6 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工7 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信