网卡是intel的i225v 千兆网卡,系统为ubuntu18.0.4,原始内核为5.4.0-135-generic,但是重新编译出错,不知道少了什么东西,也没去深究,重新下载了5.9.0的内核;结果重新编译内核重启有线网卡就不能用;
查看网卡状态sudo lshw -C network
发现有线网卡并未加载成功
查看网卡类型lspci -k | grep -i -A2 net
第一个为无线网卡,第二个为有线网卡,驱动为igc;查看驱动是否加载lsmod | grep igc
驱动已经加载,但是有线网卡还是没有工作,说明驱动有问题,看下内核启动的打印信息
dmesg | grep igc
返回错误,说明驱动没有正确的加载,查看当前内核版本,并看下当前内核编译出的驱动是否支持该网卡,如果不支持,需要去官网下载驱动重新编译
modinfo /lib/modules/5.9.0/kernel/drivers/net/ethernet/intel/igc/igc.ko
驱动也支持该网卡,但是就是不行,后面找到了一位大佬的方法,原来驱动源码并不支持该网卡的phy_id,需要强制性给它设置,需要修改内核代码,详情Intel(R) Ethernet Controller I225-V linux5.4支持_xiaoning132的博客-CSDN博客_igc kernel 5.4
改完代码后重新编译内核,内核源码一般在/usr/src/目录下,选择当前对应的版本编译,编译可能会报错,可以搜下资料;卸载当前的驱动
sudo rmmod igc
然后加载刚生成的驱动
sudo insmod ./drivers/net/ethernet/intel/igc/igc.ko
查看内核打印信息,未报错
ifconfig也可以看到信息
sudo lshw -C network,也正常工作了