OpenSUSE掉网卡驱动的问题和解决方案

诱因?

使用yast工具对磁盘未分配空间划分新挂载空间(不确定)


环境

命令
网卡型号 Intel Ethernet I217-LM lspci | grep -i ethernet
系统 openSUSE Leap 15.3 cat /etc/os-release
驱动版本 e1000e-3.8.4.tar.gz
包管理 https://pkgs.org/

重装网卡驱动

一.下载Intel网卡驱动

  1. 先进入Intel官网
  2. 在搜索栏中搜索具体型号,在结果栏中进入“英特尔® 以太网连接 I217 - 产品信息、文档、支持和下载”。
  3. Tab栏中选择“支持”,然后在左边的文章搜索栏中搜索“Linux”,会找到一篇“适用于英特尔® 千兆位以太网网络连接的 Linux* 基础驱动程序”的文章,进入以后可以看到Intel提供的三种驱动程序。
  4. 继续向下找到“适用于英特尔® 千兆位网络连接的 Linux* e1000e 基础驱动程序安装说明”,点进“Linux* e1000e 驱动程序”。里面有“e1000e-3.8.4.tar.gz”的下载链接,下载并放入U盘中。
  5. 注意:Intel官方会经常变更上述的链接,如果发现链接无法使用,请按照上述方法手动查找驱动下载链接,如果可以的话请及时给我留言更新链接。

二. 下载和安装驱动编译工具

  1. 依赖关系:编译网卡驱动 -> make install -> gcc。所以已经安装了gcc环境和make工具的可以跳过这一步。
  2. 下载gcc环境,进入阿里开源镜像站centos Package,下载以下rpm包(有可能版本会更新,注意不要完全搜索)
    • mpfr-3.1.1-4.el7.i686.rpm
    • libmpc-1.0.1-3.el7.x86_64.rpm
    • kernel-headers-3.10.0-1160.el7.x86_64.rpm
    • glibc-headers-2.17-317.el7.x86_64.rpm
    • glibc-devel-2.17-317.el7.x86_64.rpm
    • cpp-4.8.5-44.el7.x86_64.rpm
    • gcc-4.8.5-44.el7.x86_64.rpm
  3. 将上述包合入一个文件夹(例如:rpm),放入U盘中。
  4. 下载make工具。进入阿里开源镜像站opensuse Package,下载以下rpm包(有可能版本会更新,注意不要完全搜索)
    • make-4.2.1-7.3.2.x86_64.rpm
  5. 将以上文件单独放置目录。
  6. 挂载设备:
    1. 将存储rpm文件的U盘接入Linux主机。
    2. 使用fdisk -l命令查看外部存储的路径。
    3. 使用mount -t vfat /dev/sde1 /mnt/usb挂载到主机上。(注意这里的sde是示例路径,而且需要U盘是FAT32格式,需要提前在/mnt创建名叫usb的目录mkdir /mnt/usb
    4. 创建目录暂存文件:mkdir /home/drive
    5. 将rpm移动到暂存目录中:cp /mnt/usb/make-4.2.1-7.3.2.x86_64.rpm /home/drivecp -r /mnt/usb/rpm /home/drive
    6. 将U盘从主机挂载解除:umount /mnt/usb
  7. 安装gcc:
    1. 移动到rpm目录下:cd /home/drive/rpm
    2. 执行命令:rpm -ivh *.rpm --nodeps --force
    3. 等待进度条完毕后检查安装是否完成:gcc -v
  8. 安装make
    1. 移动到drive目录下:cd /home/drive
    2. 执行安装命令:rpm -ivh make-4.2.1-7.3.2.x86_64.rpm --nodeps --force
    3. 等待进度条完毕后检查安装是否完成:make -v

三. 安装网卡驱动

  1. 在编译驱动之前,需要确认是否安装了kernel-devel包:rpm -qa kernel-devel。如果没有找到,再次进入阿里开源镜像站centos Package,下载以下rpm包(有可能版本会更新,注意不要完全搜索)
    • kernel-devel-3.10.0-1160.el7.x86_64.rpm
  2. 如果需要安装kernel-devel包,请参考二中的6和7,安装依赖包。安装完毕以后还需要添加一个软链接:
    1. 移动到:cd /usr/src
    2. 创建软链接:ln -s kernels/3.10.0-1160.el7.x86_64/ linux,注意里面的路径需要根据自己情况修改
    3. 如果没有执行这个步骤,即使安装了包,在执行编译网卡的时候也可能出现以下错误:
      ====================================================
      Makefile:71: *** Kernel header files not in any of the expected locations.
      Makefile:72: *** Install the appropriate kernel development package, e.g.
      Makefile:73: *** kernel-devel, for building kernel modules and try again. Stop.
      ====================================================
      
  3. 确认上述步骤全部完成后,开始安装网卡驱动:
    1. (默认放置网卡驱动的U盘已经挂载到/mnt/usb目录了)拷贝驱动包到暂存目录:cp /mnt/usb/e1000e-3.8.4.tar.gz /home/drive
    2. 移动到目录:cd /home/drive
    3. 解压出来:tar zxf e1000e-3.8.4.tar.gz
    4. 进入目录:cd e1000e-3.8.4/src
    5. 编译驱动:make install
  4. 等待驱动编译完成后,下面就是确认驱动是否编译出来:
    1. 编译成功的话,会在这个目录下生成一个名为“e1000e.ko”的二进制文件:/lib/modules/3.10.0-1160.el7.x86_64/updates/drivers/net/ethernet/intel/e1000e(同样,这个目录是根据kernel-devel包版本号生成的,注意自己的包版本号)
    2. 如果找不到,就使用查找命令找一下(其实找不到没关系,只要有就行):find / -name "e1000e.ko" 2>/dev/null
  5. 上述确认后,执行驱动加载命令:modprobe e1000e,检查驱动是否加载到内核:lsmod | grep e1000e,查看驱动位置:modinfo e1000e
  6. 配置网卡配置文件:
    1. 进入配置文件目录:cd /etc/sysconfig/network,打开文件:nano ifcfg-eth0
    2. 使用DHCP的话就这么配置:
      BOOTPROTO='dhcp'
      STARTMODE='auto'
      
  7. 保存退出以后重启网络服务:service network restart
  8. 检查网卡是否正确的获取到了ip:ip addr
posted @ 2023-02-12 03:03  苍凉温暖  阅读(381)  评论(0编辑  收藏  举报