准备:
准备网迅驱动源码(txgbe/ngbe),后续以txgbe为例,若编译ngbe则将下文txgbe换成ngbe,TXGBE换成NGBE
下载linux内核源码(https://www.kernel.org/)并解压或自行准备内核源码
自行准备Make,gcc等编译工具,以及build-essential等内核编译所需依赖,不同os或内核依赖和工具有区别,故需自行查询准备所需依赖。
操作:
cd 准备好的内核源码文件夹/drivers/net/ethernet 文件夹中
修改Kconfig:
在config DNET下方长列“source”处插入
source "drivers/net/ethernet/wangxun/Kconfig"
修改Makefile:
任意行插入:
` obj-$(CONFIG_NET_VENDOR_WANGXUN) += wangxun/`
创建wangxun文件夹,并进入:
mkdir wangxun
cd wangxun
将驱动源码src文件夹复制进该wangxun文件夹并更名:
cp 所在路径/txgbe/src ./txgbe
创建Kconfig,并输入设置选项:
vim Kconfig
输入Kconfig内容:
config NET_VENDOR_WANGXUN
bool "Wangxun devices"
default y
if NET_VENDOR_WANGXUN
config TXGBE
tristate "Wangxun(R) 10GbE PCI Express adapters support"
depends on PCI
depends on PTP_1588_CLOCK
select MDIO
select PHYLIB
endif # NET_VENDOR_WANGXUN
保存退出
创建Makefile,并输入设置选项z
`vim Makefile`
输入:
`obj-$(CONFIG_TXGBE) += txgbe/`
保存退出
进入txgbe文件夹:
`cd txgbe`
修改makefile,将其中“CONFIG_TXGBE=m”该行删除
若驱动版本txgbe >1.3.6,或ngbe>1.2.6,需将附件脚本放于驱动源码路径下,并按下方命令执行生成适配内核头文件:
`bash generated.sh 内核源码根目录路径`
并确定驱动源码路径下有生成<kcompat_generated_defs.h>
返回linux内核源码根目录,进行设置:
`make menuconfig`
选择:
Device Drivers --->
Network device support --->
Ethernet driver support --->
[*] Wangxun devices(“y”选定)
<M> Wangxun(R) 10GbE PCI Express adapters support(“m”选定作为模块编入)
下方Save将选项保存到.config文件中后退出
可检查.config文件中NET_VENDOR_WANGXUN和CONFIG_TXGBE是否完成对应设置
进行内核编译(其他编译选项参考make help):
make
若直接在该环境安装内核则按如下操作,若用于嵌入式系统等则需自行安装:
编译完成后安装模块:
make modules_install
安装内核:
make install
generated.sh 脚本如下:
generated.bin#!/bin/bash
KSRC="$1"
if [ -z "$1" ]; then
echo "Error: Please provide the KSRC parameter."
exit 1
文件预览无法加载。此文件或已被删除,文件 ID 或已失效。