云计算百科
云计算领域专业知识百科平台

麒麟V10服务器系统安装华为Hinic3 SP670网卡驱动

先看网卡图

麒麟系统版本以及内核版本如图

HiNIC3驱动编译与安装原理详解
一、驱动架构与依赖关系

1.1 驱动组件结构HiNIC3驱动 = hiudk3.ko (用户态接口) + hisdk3.ko (系统服务层) + hinic3.ko (内核驱动)

如图编译成功后的模块:

1.2 编译依赖关系

二、编译原理详解  重点来了

2.1 内核模块编译原理

Linux内核模块编译使用内核的Kbuild系统:

1. 读取模块的Makefile文件

2. 调用内核头文件/usr/src/linux-headers-$(uname -r)

3. 使用gcc编译成.ko (Kernel Object)文件 4. 生成模块签名和版本信息

2.2 HiNIC3的特殊处理

华为HiNIC驱动需要处理内核API变化:

# 1. 为什么需要nic-kcompat-generator.sh? # 因为不同内核版本的API可能变化,需要生成兼容层代码

# 2. 兼容层的作用: # – 封装不同内核版本的API调用 # – 处理内核数据结构变化 # – 确保驱动在不同内核版本上都能编译

三、完整编译流程(第一次需要执行)

3.1 准备编译环境

# 1. 检查当前内核版本 uname -r # 输出示例: 4.19.90-52.23.v2207.gfb08.ky10.aarch64 (GF国防版本)

# 2. 安装编译依赖

# 注意:kernel-devel版本必须与运行内核完全一致

dnf install -y gcc make kernel-devel-$(uname -r)

# 或使用yum yum install -y gcc make kernel-devel-$(uname -r)

# 3. 验证内核开发包安装 rpm -qa | grep kernel-devel

# 应该看到类似:kernel-devel-4.19.90-52.23.v2207.gfb08.ky10.aarch64 # 4. 检查内核头文件路径 ls -la /lib/modules/$(uname -r)/build/ # 这个链接应该指向内核源码目录

3.2 编译驱动模块

# 进入驱动源码目录 cd ~/hinic3-src_17.12.5.0

# 步骤1: 生成内核兼容代码

# 原理:检查当前内核版本,生成对应的适配代码 ./nic-kcompat-generator.sh

# 执行后会在output目录生成适配文件

# 步骤2: 编译内核驱动模块 cd hinic

# 清理之前的编译结果(可选) make clean

# 编译驱动 # make命令会:

# 1. 读取当前目录的Makefile

# 2. 使用内核的Kbuild系统编译

# 3. 生成hinic3.ko文件 make

# 步骤3: 验证编译结果 file hinic3.ko # 应该显示:ELF 64-bit LSB relocatable, ARM aarch64, version 1 (SYSV), BuildID[sha1]=…
# 步骤4: 查看编译的其他模块 ls ../output/ # 应该看到hiudk3.ko和hisdk3.ko

4 最后安装步骤

# 1. 创建目标目录(如果不存在)

mkdir -p /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/huawei/

# 2. 复制编译好的模块 # 从源码目录复制内核驱动

cp ~/hinic3-src_17.12.5.0/hinic/hinic3.ko \\ /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/huawei/

# 从output目录复制其他模块

cp ~/hinic3-src_17.12.5.0/output/hiudk3.ko \\ ~/hinic3-src_17.12.5.0/output/hisdk3.ko \\ /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/huawei/

# 3. 验证复制结果 ls -la /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/huawei/

# 应该看到3个.ko文件

5:更新模块依赖关系

# 运行depmod更新模块依赖

depmod -a

# 验证依赖关系

cat /lib/modules/$(uname -r)/modules.dep | grep huawei

5.1手动加载驱动模块

# 按顺序加载三个模块

modprobe hiudk3

# 检查是否加载成功

lsmod | grep hiudk3

# 加载第二个模块

modprobe hisdk3

lsmod | grep hisdk3

# 加载主驱动

modprobe hinic3 lsmod | grep hinic3

modinfo hinic3.ko

赞(0)
未经允许不得转载:网硕互联帮助中心 » 麒麟V10服务器系统安装华为Hinic3 SP670网卡驱动
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!