环境
内核版本:6.6.0-159.4.3.154.oe2403sp4.x86_64
系统:openEuler 24.03 LTS SP4
安装
预装软件、下载源码
dnf install -y dkms gcc gcc-c++ make kernel-devel-$(uname -r) kernel-headers-$(uname -r) elfutils-libelf-devel tar -y
然后在linux内核官网https://kernel.org/下载相似内核的压缩包,我这里用的是https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.155.tar.xz

编译
文件上传到服务器解压
tar -xf linux-6.6.155.tar.xz
mkdir -p ~/igc_build
cp -r linux-6.6.155/drivers/net/ethernet/intel/igc/* ~/igc_build/
然后更改makefile文件
mv Makefile Makefile.orig
cat > Makefile << 'EOF'
obj-m += igc.o
igc-objs := igc_main.o \
igc_ethtool.o \
igc_mac.o \
igc_base.o \
igc_nvm.o \
igc_phy.o \
igc_diag.o \
igc_i225.o \
igc_tsn.o \
igc_xdp.o \
igc_dump.o \
igc_ptp.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
EOF
make
测试
make完成后会在当前目录产生一个igc.ko文件
insmod igc.ko
lsmod |grep igc
mkdir -p /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/intel/igc/
cp igc.ko /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/intel/igc/
depmod -a
echo "igc" | sudo tee /etc/modules-load.d/igc.conf
编译好的文件: https://pan.baidu.com/s/1KnfplbaE9h4jHiyDQiu3Ww?pwd=5xsq 提取码: 5xsq
提供CDN加速/云存储服务