Linux安装后无网卡

Linux安装后无网卡

日期:2021-11-15

作者:JonathanJiang

此文章为个人笔记,有误请指正,推荐读者查看参考资料的原文

一、参考资料

  1. Ubuntu下安装RealtekRTL8125网卡驱动
  2. CentOS下离线安装gcc环境
  3. make: *** /lib/modules/3.10.0-1160.el7.x86_64/build: No such file or directory. Stop.
  4. centos7.6/7.9 下 r8125 2.5g的网卡驱动安装遇到的问题

    我主要参考这个文章,解决了问题

二、简介

使用ip addr命令后,信息中没有eth*网卡信息,可能是由于系统内核老旧,没有包含此网卡的驱动。

解决方式:

  • 重装新版本系统(推荐)

    如果没有特别原因,请一定选择重装新版本,最累的活让系统自己来干,别硬撑

  • 手动安装网卡驱动

    此路九死一生,慎重

系统环境:

  • 操作系统:Centos 7
  • 网卡型号:RTL8125

三、手动安装网卡驱动

3.1 找到网卡驱动

  • 执行命令 lspci | grep -i ethernet,此时输出的信息就是你的网卡信息,我的网卡是RTL8125
  • 根据网卡型号,在自己的官网找到网卡驱动,我下载的网址瑞昱

    r8125-9.006.04.tar.bz2

  • 手动拷贝进系统内,然后解压

    tar vjxf r8125-9.006.04.tar.bz2
    cd r8125-9.006.04
    看看有没有README文件,官方指导你怎么安装

  • 我手动执行sudo ./autorun.sh进行安装

    如果能完成安装,恭喜。
    如果不能请,执行gcc -v查看你的是否安装gcc,或者gcc版本是否足够

3.2 手动安装GCC

施主,我劝你向善,重装系统吧

方法一、

  • 下载gcc与其依赖包,阿里云的centos7
    • glibc-devel-2.17-317.el7.x86_64.rpm
    • glibc-headers-2.17-317.el7.x86_64.rpm
    • kernel-headers-3.10.0-1160.el7.x86_64.rpm
    • libmpc-1.0.1-3.el7.x86_64.rpm
    • gcc-4.8.5-44.el7.x86_64.rpm
    • cpp-4.8.5-44.el7.x86_64.rpm
    • mpfr-3.1.1-4.el7.x86_64.rpm
  • 手动拷贝进Linux中,然后打开其目录终端,手动进行安装

    rpm -ivh *.rpm --nodeps --force

方法二、

  • 准备一个大一点的U盘,然后打开linux的iso镜像文件,找到Packages文件夹,此文件夹内是软件包,将Package文件夹解压到你的U盘上

    你也可以只取自己需要的软件包

  • 在linux打开U盘中打开U盘,然后shell(终端)进入Packages文件夹内,安装gcc的rpm包即可

    rpm -ivh gcc-*** # 安装你需要版本的gcc

  • 检查:gcc -v

  • 最后,重复3.1内的手动安装

    如果能安装完成,恭喜

3.3 报错:/lib/modules/3.10.0-1160.el7.x86_64/build:没有那个文件或目录

原因:没有安装内核开发包,即缺少kernel-devel的包

解决方式:

  • 先从ISO镜像文件中取出全部软件包到U盘中,在linux中的shell(终端)中进入U盘的文件夹中,然后安装perl等依赖

    rpm -ivh perl-* --nodeps --force #不知道依赖些啥,不管是不是全部装上,乱拳打死,有经验的同学不推荐这么做

  • 安装kerel-devel

    rpm cpio kernel-devel-3.10.0-1160.el7.x86_64.rpm | cpio -div

3.4 报错:官方自行安装(./autorun.sh)提示的BUG

我的报错如下:

错误信息图片

这里基本上是编译./驱动文件夹/src内的文件出错,需要自己去修改代码,仔细看看都有错误信息中有提示的,然后重新编译,不难

  • 错误:‘ether_addr_copy’重定义

    # 修改 r8125.h文件
    vim src/r8125.h
    
    # 将文件的68行,下面
    #if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)
    
    
    # 改成
    #if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
    
  • 错误:初始值设定项里有未知的字段‘ndo_change_mtu’

    # 这个文件里面 ndo_change_mtu 定义的是什么名称  我这里是ndo_change_mtu_rh74
    # 在r8125_n.c的10870行对应改掉就行了 这个官方承认是个bug
     cat /usr/src/kernels/3.10.0-327.el7.x86_64/include/linux/netdevice.h | grep ndo_change_mtu
    
  • 错误:‘struct net_device’没有名为‘last_rx’的成员

    # 这个是内核的版本问题
    vim src/r8125_n.c
    
    # 使用//将14580行注释掉,如下
    //                         dev->last_rx = jiffies;
    

重新安装网卡驱动sudo ./autorun.sh,安装成功后,使用ifconfigip addr就可以查看网卡信息了

3.5 手动增加网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-en*

上面装完后,虽然有网卡显示,但系统不会自动生成网卡配置信息,请手动配置

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值