不涉及
DELL服务器安装完Centos7后发现无法识别到10G的万兆网卡
1、下图为实际插卡槽位
2、在以下目录没有查看到对应槽位的网口信息
初步定位为没有安装对应的网卡驱动。
1、搜索需要下载驱动对应的网卡型号
[root@localhost ~]# lspci|grep10G
05:00.0 Ethernet controller: Intel Corporation Ethernet 10G 2P X520 Adapter (rev 01)
05:00.1 Ethernet controller: Intel Corporation Ethernet 10G 2P X520 Adapter (rev 01)
[root@localhost ~]#
2、官网搜索对应的驱动程序并下载到本地
https://downloadcenter.intel.com/zh-cn/download/14687/Ethernet--PCIe-Linux-10-
3、该驱动需要安装kernel-headers,gcc,kernel-devel依赖包,可以先使用命令查看是否安装,若没有,则需要挂载ISO镜像,配置yum源,安装依赖包。若存在,可跳过步骤4-8,直接执行步骤9进行驱动安装。
[root@localhost ~]# rpm -qa |grep kernel* gcc*
gcc-4.8.2-16.el7.x86_64
kernel-tools-libs-3.10.0-123.el7.x86_64
grep-2.16-1.el7.x86_64
kernel-3.10.0-123.el7.x86_64
kernel-tools-3.10.0-123.el7.x86_64
kernel-headers-3.10.0-123.el7.x86_64
kernel-devel-3.10.0-123.el7.x86_64
4、可将对应操作系统的ISO通过光盘,U盘,或者直接上传到对应服务器的方式进行挂载,以下步骤以直接上传ISO镜像文件到服务器为例,其他方式挂载步骤与此类似。
先将ISO文件上传到服务器。
注意:该ISO镜像一定要是对应安装操作系统的镜像源,否则安装的kernel-headers和kernel-devel的版本与实际的kernel版本不一致,会导致后续网卡驱动程序安装失败的问题。实际安装的kernel版本可用uname –a查看。
5、使用mount命令将镜像挂载到/mnt目录,命令执行完后可用df –h命令查看是否挂载成功。
[root@localhost ISO]# mount CentOS-7.0-1406-x86_64-DVD.iso /mnt
mount: /dev/loop0 写保护,将以只读方式挂载
[root@localhost ISO]# df-h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 12G 39G 23% /
devtmpfs 24G 0 24G 0% /dev
tmpfs 24G 80K 24G 1% /dev/shm
tmpfs 24G 9.6M 24G 1% /run
tmpfs 24G 0 24G 0% /sys/fs/cgroup
/dev/mapper/centos-home 1.8T 37M 1.8T 1% /home
/dev/sda1 497M 121M 377M 25% /boot
/dev/loop0 3.9G 3.9G 0 100% /mnt
[root@localhost ISO]#
6、配置yum源,进入/etc/yum.repos.d/目录,将原来的yum源配置文件保存一份,修改原来的配置文件,替换成以下标红内容。
[root@localhost ISO]# cd/etc/yum.repos.d/
[root@localhost yum.repos.d]# cp CentOS-Base.repo BASE.BAK
[root@localhost yum.repos.d]# vi CentOS-Base.repo
[base]
name=CentOS-$releasever- Base
baseurl=file:///mnt
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
7、清除yum缓存,并重新加载
[root@localhost yum.repos.d]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: base
Cleaning up everything
Cleaning up list of fastest mirrors
[root@localhost yum.repos.d]#yum list
已加载插件:fastestmirror, langpacks
base | 3.6 kB 00:00:00
(1/2): base/group_gz | 157 kB 00:00:00
(2/2): base/primary_db | 2.7 MB 00:00:00
Determining fastest mirrors
已安装的软件包
GConf2.x86_64 3.2.6-8.el7 @anaconda
…#省略剩余安装包
8、执行命令安装依赖包
[root@localhost yum.repos.d]# yum install -y kernel-devel kernel-headers gcc
9、通过xftp等工具将网卡驱动上传到服务器。
10、使用命令解压驱动压缩包到当前目录
[root@localhost ~]#tar -zxvf ixgbe-5.6.1.tar.gz
ixgbe-5.6.1/
ixgbe-5.6.1/src/
…省略
ixgbe-5.6.1/ixgbe.7
ixgbe-5.6.1/ixgbe.spec
ixgbe-5.6.1/SUMS
[root@localhost ~]#
11、解压后进入对应的/src目录进行安装,此时发现还是报以下错误。
root@localhost yum.repos.d]# cd /root/ixgbe-5.6.1/src/
[root@localhost src]# make install
common.mk:84: *** Kernel header files not in any of the expected locations.
common.mk:85: *** Install the appropriate kernel development package, e.g.
common.mk:86: *** kernel-devel, for building kernel modules and try again。 停止。
12、打开 common.mk 发现编译时需要 /usr/src/linux 目录,但是系统并没有此目录,手动创建 /usr/src/kernels/3.10.0-123.el7.x86_64/ 到 /usr/src/linux 的链接即可。
[root@localhost linux]# ln -s /usr/src/linux/3.10.0-123.el7.x86_64 /usr/src/linux/
注意:示例中标红的kernel版本号以实际安装的版本号为准
13、再次进入安装目录进行编译,安装成功
[root@localhost src]#make install
make[1]: 进入目录“/usr/src/kernels/3.10.0-123.el7.x86_64”
CC [M] /root/ixgbevf-4.6.1/src/ixgbevf_main.o
CC [M] /root/ixgbevf-4.6.1/src/ixgbevf_ethtool.o
CC [M] /root/ixgbevf-4.6.1/src/ixgbe_vf.o
CC [M] /root/ixgbevf-4.6.1/src/ixgbe_mbx.o
CC [M] /root/ixgbevf-4.6.1/src/kcompat.o
LD [M] /root/ixgbevf-4.6.1/src/ixgbevf.o
Building modules, stage 2.
MODPOST 1 modules
CC /root/ixgbevf-4.6.1/src/ixgbevf.mod.o
LD [M] /root/ixgbevf-4.6.1/src/ixgbevf.ko
make[1]: 离开目录“/usr/src/kernels/3.10.0-123.el7.x86_64”
Copying manpages...
Installing modules...
make[1]: 进入目录“/usr/src/kernels/3.10.0-123.el7.x86_64”
INSTALL /root/ixgbevf-4.6.1/src/ixgbevf.ko
Can't read private key
DEPMOD 3.10.0-123.el7.x86_64
make[1]: 离开目录“/usr/src/kernels/3.10.0-123.el7.x86_64”
Running depmod...
[root@localhost src]#
14、导入驱动模块
如果之前存在旧版本的网卡驱动模块,可以先移除,再重新导入新版本的模块
[root@localhost linux]# modprobe -r ixgbe #移除驱动模块
[root@localhost linux]#modprobe ixgbe #导入驱动模块
15、用命令可以查看到驱动模块已经成功导入
[root@localhost linux]#lsmod |grep ixgbe
ixgbe334497 0
vxlan 37584 1 ixgbe
dca 15130 2 igb,ixgbe
ptp 18933 3 igb,tg3,ixgbe
16、在/sys/class/net下已经能识别到对应的网口信息
[root@localhost linux]#ls/sys/class/net/
em1 em2 em3 em4 lo p5p1 p5p2 p5p3 p5p4 p6p1 p6p2