文章目录
- 前言
- 准备
- 正题
- 问题1:
- 问题2
- 问题3
- 问题4
前言
首先跟大家聊聊我的情况吧。因为网络极其关键,要不然服务器还服务个毛,就会是一个废物。
我是在最小化安装Centos7系统的时候,设置网络的时候发现,只能检测到我的无线网卡,也就是WIFI,然后我在那里连上了WIFI,我也推荐在安装系统的界面你就脸上WIFI,否则到了命令行里面你不知道连WIFI的命令是什么,出一堆幺蛾子。
不管怎么说,我发现无法检测到我的有线网卡,注意:安装系统中界面上的连接网络的添加设备中的bond,bridge等等都不是,一开始我还以为是。
即:
ip addr
只有lo(回环本地),wlo1(无线网卡1)两个网卡。
所以,我还不算太不幸,起码有一个无线网卡,可以用来yum一些东西。比如查看我们的有线网卡的型号:
yum install pciutils
lspci | grep -i ethernet
有线网卡:Realtek 3000
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. Device 3000 (rev 06)
然后后来才知道,似乎是因为2.5G网卡是目前的新型网卡,很多系统中的那些网卡驱动根本不支持,所以我们需要自己安装。所以,一般情况下,我们需要看看自己的有线网卡是什么型号,然后找驱动对吧。但是我找了好久,也没有找到我的网卡对应的驱动,反而回过头来发现,其实下面的这个网卡驱动是通用的,都是针对2.5G网卡的。进入这个网站:
就下载那个2.5G最新的即可,也就是众所周知的r8125,算比较有名吧。
所以你有两种方案:
- 用Windows下载,然后用U盘拷过去。怎么拷贝
- 由于有无线网,可以使用
wget 下载地址
的方式直接下载。
下载完之后,就是安装喽。
准备
需要下载一些东西,所以你可以先配置一下yum的国内源,方法见我的这个LINUX专栏里或者自己百度搜。
- bios禁用secure boot,也就是设置为disable。
-
yum install gcc
,这个系统我是最小化安装的,默认没有,所以需要安装。 -
yum install kernel*
,下载所有有关于内核的东西。
以上3个其实只要你以前在Centos7上安装过驱动,不管是什么驱动,都需要做,所以处之淡然。
所以现在就是一个问题,如果你是最小安装,又没有无线网,只怕你会遇到很多的困难,因为yum不了啊,不过,据我所知gcc即使最小安装也是可以yum的,下面那个kernel就不知道了。如果不行,又没网的话,建议你改成yum本地源,然后下载一个centos 的everything版本的.iso文件到U盘里,并设置其为yum源,里面应该有这些东西。
正题
dnf group install "Development Tools"
#解压网卡驱动文件
tar xvf r8125-9.003.05.tar.bz2 -C /usr/src
#然后到解压之后的文件夹里/usr/src/r8125
./autorun.sh
这一步很关键,有可能会报错,一般可能是下面几个问题:
问题1:
make: *** /lib/modules/2.6.32-573.7.1.el6.x86_64/build/: No such file or directory. Stop.
按照报错提示的,去看一下到底有没有这个文件:
/lib/modules/2.6.32-431.el6.x86_64/build
如果有还报错,那么就删除这个build,然后执行下面的。再去看看有没有build了。
#下面这个其实就是之前做的yum install kernel*
yum install -y kernel-devel kernel-headers
ln -s /usr/src/kernels/2.6.32-573.7.1.el6.x86_64/ /lib/modules/2.6.32-431.el6.x86_64/build
然后再来:
./autorun.sh
问题2
modprobe:fatal:mudule r8125 not found
这个还是那个kernel*的问题,安装了就不会有事。
问题3
modprobe error could not insert:required keys
这个其实就是secure boot的问题,你关了就没事。
问题4
这个问题是代码的版本问题,这个你仔细看提示,它说是哪一行错,你就到那一行去修改,有两个文件要修改:r8125.h和r8125_n.c。你可以vim这个文件,然后":行数
“,然后回车就可以定位到报错的那一行。然后改成(3,10,0),也就是内核版本,这个我不知道Centos7是不是都是3.10.0(我的是这个),你可以uname -r
查看一下。
错误提示 :/src/r8125.h:59:20 error: redefinition of ‘ether_addr_copy’ static inline void ether_addr_copy
// 解决方案 在r8125.h 这个文件的第五十八行
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)
// 改为
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
r8125_n.c:10870:9 error :unknown field ‘ndo_change_mtu’ specified in initializer
// 解决方案
cat /usr/src/kernels/3.10.0-327.el7.x86_64/include/linux/netdevice.h | grep ndo_change_mtu
// 这个文件里面 ndo_change_mtu 定义的是什么名称 我这里是ndo_change_mtu_rh74
// 在r8125_n.c的10870行对应改掉就行了 这个官方承认是个bug
r8125_n.c:13519:28 error ‘struct net_device’ has no member named ‘last_rx’
// 解决方案 这个是内核的版本问题 直接用 // 注释掉
然后再次运行:
./autorun.sh
按理应该是万事大吉了。
此时,我们使用
ip addr
可以看到多了一块网卡,就是我们的有线网卡。但是呢,其却没有配置文件(/etc/sysconfig/network-scripts/ifcfg-en***
),而那个回环和无线网卡都有。我们可以自己创建一个,但是你不是高手的话我不推荐,比如UUID这些你需要自己填,比较麻烦,又怕有一些名字和ID被你弄混了,所以有一个可视化的方法介绍给你,这个方法是来自于。
nmtui
选择确定和返回,退出即可,很容易。最重要的是去看一下配置文件有没有了,反正我是有了,而且我们不需要再进行修改,也就是说,完事了。
至此,网通了。