centos7.6/7.9 下 r8125 2.5g的网卡驱动安装遇到的问题
自己学习集群相关的问题,买了一个主机,打算装kvm 模拟集群,由于众所周知的docker原因,系统保证为7.6而主板是华硕的tuf,网卡是r8125 2.5g,7.6不带驱动,这就出现了问题前提,去官网下载驱动,本文基于centos7.6最小安装版本,由于断网,还需要个u盘解压,运行autorun.sh环境依赖问题1. 问题:提示 /lib/modules/3.10.0-514.el7.x86_6
自己学习集群相关的问题,买了一个主机,打算装kvm 模拟集群,由于众所周知的docker原因,系统为7.6(后因为换m.2固态7.6装不上系统,换成了7.9,驱动版本也变成了9.005.01)
而主板是华硕的tuf,网卡是r8125 2.5g,7.6不带驱动,这就出现了问题
- 前提,去官网下载驱动 https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software,本文基于centos7.6最小安装版本,由于断网,还需要个u盘,没找到mac linux共用的格式,将u盘格式为fat32 mkfs.vfat /xxx -I
- 解压 r8125-9.004.01(注意版本),运行autorun.sh
环境依赖问题
1. 提示 /lib/modules/3.10.0-514.el7.x86_64/build:
解决方案:
从ios里面拿到包 在packages下
复制拿到 kernel-devel 建议直接拿全家桶
安装
2. 安装kernel-devel时候需要依赖
解决方案:
从ios里面拿到包 在packages下
复制拿到 perl 建议直接拿全家桶
如果懒 直接批量安装了 rpm -ivh perl-* --nodeps --force(强烈不建议这样安装)
随手记录下,如果看不懂 直接执行上面的批量安装
找一台正常的机器 先查看下依赖
yum deplist perl
一般来说 格式是这个样子
依赖 xxx
provider
必须和其他的perl一起安装 要不然会有
记录几个特殊值
1. perl(Cwd) 是perl PathTools
2. perl(Pod::Text) perl-podlators.noarch
然后 rpm -ivh perl-xxx perl-xxx .... 这样把所有的依赖一次性安装
重复步骤1 保证kernel-devel 的安装
3. 再次运行.sh 提示需要gcc 例如 gcc:command not foud
解决方案:
从ios里面拿到包 在packages下
复制拿到 gcc
4. gcc 安装需要依赖
解决方案:
从ios里面拿到包 在packages下
复制拿到 cpp glibc-devel libmpc mpfr 四个 这里面mpfr的依赖提示是 libmpfr 可以用命令查一下
安装依赖顺序
mpfr
libmpc
glibc-devel
cpp
5. 安装 glibc-devel依赖
复制拿到 glibc-header (建立在已经安装好 libmpc mpfr 前提下)
6. 安装 glibc-header依赖
复制拿到 kernel-header 如果第一步是全家桶 这步就没问题了
环境本身问题(下面说的行数都是centos7.6,7.9的有稍许变化,但代码内容没变,搜索一下即可)
1. 错误提示 :/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)
2. 错误提示 :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
3. 错误提示 :r8125_n.c:13519:28 error 'struct net_device' has no member named 'last_rx'
// 解决方案 这个是内核的版本问题 直接用 // 注释掉
再次运行.sh,可以安装了,但是是一次性的,要自己写网卡例如
//在 /etc/sysconfg/network-script下面新建文件ifcfg-xxx
DEVICE="xxx"
NAME="xxx"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="ethernet"
NETMASK="xxx.xxx.xxx.xxx" // 一般是 255.255.255.0
IPADDR="xxx.xxx.xxx.xxx"
GATEWAY="xxx.xxx.xxx.xxx"
UUID="xxx" //nmcli con 自己看
DNS1="114.114.114.114"
DNS2="8.8.8.8"
运行 systemctl restart network.service
更多推荐
所有评论(0)