当前位置:首页 > 计算机科学 > 网络技术 > 正文内容

realtek 瑞昱r8168千兆网卡芯片编译安装驱动及解决出现问题

fanglong2020-08-16网络技术4818

销售名称可以是:RTL8111e/8168B/8411 PCI EXPRESS 等等芯片基本上千兆的芯片都是的,说白了就是"换汤不换药".

首先下载驱动地址:

官方(选择linux r8168): https://www.realtek.com/zh-tw/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software 

这个目测能打开,验证码输入后,可能需要科学上网下载.未全国验证,我这边是这样的,不开科学上网,换好多浏览器都下载不了.

下载:  r8168-8.048.03.tar.bz2


github下载: https://github.com/mtorromeo/r8168 


安装说明文件.

<用于Realtek以太网控制器的Linux设备驱动程序>

这是针对具有PCI-Express接口的千兆以太网控制器的RealTek RTL8168B / 8111B,RTL8168C / 8111C,RTL8168CP / 8111CP,RTL8168D / 8111D,RTL8168DP / 8111DP和RTL8168E / 8111E千兆位以太网控制器发布的Linux设备驱动程序。

<要求>

-内核源代码树(受支持的Linux内核2.6.x和2.4.x)

-对于Linux内核2.4.x,此驱动程序支持2.4.20及更高版本。

-编译器/ binutils,用于内核编译

<使用正确的内核设置快速安装>

打开压缩包:

#tar vjxf r8168-8.aaa.bb.tar.bz2

转到目录:

#cd r8168-8.aaa.bb


如果您正在运行目标内核,则应该能够:

#./autorun.sh(以root或sudo身份)


您可以使用以下命令检查驱动程序是否已加载。

#lsmod | grep r8168

#ifconfig -a


如果监视器上显示的是设备名称ethX,则为linux

驱动程序已加载。然后,您可以使用以下命令激活

ethX。

#ifconfig ethX up

,其中X = 0,1,2,...


<设置网络相关信息>

1.手动设置

一个。设置机器的IP地址。


#ifconfig ethX“您计算机的IP地址”


b。设置DNS的IP地址。


在/etc/resolv.conf中插入以下配置。


名称服务器“ DNS的IP地址”


C。设置网关的IP地址。


#route添加默认gw“网关的IP地址”


2.通过在/ etc / sysconfig / network-scripts中进行配置来设置

/ ifcfg-ethX用于Redhat和Fedora,或/ etc / sysconfig / network

/ ifcfg-ethX用于SuSE。设置网络有两个示例

配置。


a。固定配置:

                        DEVICE=eth0

BOOTPROTO=static

ONBOOT=yes

TYPE=ethernet

NETMASK=255.255.255.0

IPADDR=192.168.1.1

GATEWAY=192.168.1.254

BROADCAST=192.168.1.255



b。 动态配置:

DEVICE = eth0

BOOTPROTO = DHCP

ONBOOT =yes


<修改MAC地址>

有两种方法可以修改NIC的MAC地址。

1.使用ifconfig:

#ifconfig ethX hw ether YY:YY:YY:YY:YY:YY

,其中X是Linux内核分配的设备号,以及

YY:YY:YY:YY:YY:YY是用户分配的MAC地址。


2.使用ip:

# ip link set ethX address YY:YY:YY:YY:YY:YY

,其中X是Linux内核分配的设备号,以及

YY:YY:YY:YY:YY:YY是用户分配的MAC地址。


<强制链接状态>


1.插入驱动程序时强制链接状态。


如果用户在路径〜/ r8168中,则可以强制链接状态

进入以下5种模式之一。

#insmod ./src/r8168.ko speed = SPEED_MODE duplex = DUPLEX_MODE autoneg = NWAY_OPTION


,哪里

SPEED_MODE = 1000   表示1000Mbps

= 100  表示100Mbps

= 10   表示10Mbps

DUPLEX_MODE = 0  表示半双工

= 1    代表全双工

NWAY_OPTION = 0,表示自动协商关闭(真强制)

= 1 表示自动协商(向后强制)

例如:

#insmod ./src/r8168.ko speed=100 duplex=0 autoneg=1

将强制PHY以100Mpbs半双工(正向力)运行。


2.使用ethtool强制链接状态。

a。首先插入驱动程序。

b。确保/ sbin中存在ethtool。

C。按以下命令强制链接状态。


#ethtool -s ethX speed SPEED_MODE duplex DUPLEX_MODE autoneg NWAY_OPTION


,哪里

SPEED_MODE = 1000   表示1000Mbps

= 100   表示100Mbps

= 10   表示10Mbps

DUPLEX_MODE = half  半双工

                         =full  全双工

NWAY_OPTION =off,表示自动协商关闭(真强制)

= on(自动协商开启)(向后强制)

例如:

#ethtool -s eth0 speed 100 duplex full autoneg on

将强制PHY以100Mpbs全双工(正向力)运行。

<巨型帧>

传输数据包大小大于1500字节的巨型帧,请通过以下命令更改mtu。

#ifconfig ethX mtu MTU

,其中X = 0,1,2,...,并且MTU由用户配置。

RTL8168B / 8111B支持最大4 KB的巨型帧。

RTL8168C / 8111C和RTL8168CP / 8111CP支持超大帧,最大大小为6 KB。

RTL8168D / 8111D支持最大9 kBytes的巨型帧


安装包安装

导入elrepo后可以使用  yum install -y kmod-r8168 安装驱动 参考: http://elrepo.org/tiki/tiki-index.php 

也可以直接下载 kmod-r8168安装包使用yum localinstall ,rpm -ivh安装.

yum install https://elrepo.org/linux/elrepo/el7/x86_64/RPMS/kmod-r8168-8.048.00-1.el7_7.elrepo.x86_64.rpm



编译安装

基于最新的rpm系统内核或者自行修改编译的内核安装.

yum -y install git  pciutils net-tools.x86_64

yum install kernel-devel kernel-headers

yum install gcc gcc-c++ autoconf automake


如果还有正常能使用的网卡

git clone https://github.com/mtorromeo/r8168.git

cd r8168

./autorun.sh

或者

wget 看你情况可以先下载好文件到相应目录然后切换至需要驱动的系统或者挂载U盘安装

tar -xjvf r8168-8.048.03.tar.bz2    版本号可能要修改

cd r8168-8.048.03


检查一下是否加载了驱动或者驱动是否正常

# lsmod | grep r8168

或者

# lspci -v 

modinfo r8168    #查看驱动

modprobe r8168   #测试驱动  




出现问题一:

如果报错

Makefile:972: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"

centos 6/7需要安装 yum install elfutils-libelf-devel

Ubuntu:apt install libelf-dev


问题二:

出现:"cc1: some warnings being treated as errors"

这个是因为编译系统内核的编译工具和现在系统使用的编译工具不一致或者说是系统内核编译工具更新导致的.特别是使用最新的内核.

解决更新使用新版的gcc.

gcc -v

# 升级gcc到5.3及以上,如下:

升级到gcc 9.3:

yum -y install centos-release-scl

yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

scl enable devtoolset-9 bash

当然编译源码安装gcc也可以,配置不能太差,我在1G内存下加了2Gsawp安装gcc10.1版本失败.具体安装步骤,以后更新或者重新开文详细描述.


安装好的驱动在

/lib/modules/5.7.8-1.el7.elrepo.x86_64/kernel/drivers/net/ethernet/realtek

5.7.8-1.el7.elrepo.x86_64为你机器安装的内核版本.


驱动只针对内核,与发行版关联较小,linux都可以装,仅需注意系统个别命令.

实测r8168-8.048.03.tar.bz2在kernel 5.8.1上正常使用,说明只有 up to 5.6.


扫描二维码推送至手机访问。

版权声明:本文由人从众的博客发布,如需转载请注明出处。

本文链接:http://loulin.bid/23.html

分享给朋友:

相关文章

linux服务器上thinkphp等系统系统登录验证码一直提示不正确

用phpinfo函数找到相应的有效php.ini文件修改如下段落:session.save_path="/tmp"去掉;然后chmod -R 777 /tmp (赋予权限)重启相应...

yum命令高级使用方式本地下载安装包和依赖和无网络安装

(1)使用yum只下载至本地指定位置 $ yum install --downloadonly --downloaddir=/home/packetName packetName...

优化 CentOS 7,减少无用的写入动作延长 SSD 使用寿命

 禁用文件最后访问时间编辑 /etc/fstab 文件,为其中所有 xfs 的分区添加挂载参数。将类似以下的配置......    xfs  ...

Linux下的tmpfs文件系统(/dev/shm)

介绍/dev/shm/是一个使用就是tmpfs文件系统的设备,其实就是一个特殊的文件系统。centos中默认大小为物理内存的一半,使用时不用mkfs格式化。tmpfs是Linux/Unix系统上的一种...

评论列表

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。