自己学习集群相关的问题,买了一个主机,打算装kvm 模拟集群,由于众所周知的docker原因,系统为7.6(后因为换m.2固态7.6装不上系统,换成了7.9,驱动版本也变成了9.005.01)

而主板是华硕的tuf,网卡是r8125 2.5g,7.6不带驱动,这就出现了问题

  1.  前提,去官网下载驱动 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
  2. 解压 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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐