安装ubuntu16.04 LTS后无网络连接的解决方法

本文适用情况:1.系统安装后无法识别有线网卡(Windows是正常的) 2. I219-V网卡或者I218网卡

解决方法一:

1、查看是否安装网卡驱动      打开终端,输入ifconfig –a,如果出现“本地环回”字样,说明网卡驱动未安装。 

 2、查看网卡型号      终端输入lspci,查看网卡型号,本文只针对I219-V网卡驱动。  

3、下载e1000e网卡驱动,下载地址https://downloadcenter.intel.com/zh-cn/download/15817?_ga=1.159975677.114505945.1484457019      因官网i219-V驱动无法安装成功,google发现e1000e可以支持I2xx网卡(见参考资料1)。 

 4、拷贝下载的tar.gz文件至选择的目录,如使用 "/home/< 用户名 >/e1000E”或“ /usr/local/src/e1000E”。 

 5、解压缩档案,<x.x.x>, 其中是驱动程序 tar 文件的版本号:      tar zxf E1000E-<x.x.x>.tar.gz 

 6、切换到驱动程序 src 目录下, 其中 x.x.x<> 是驱动程序 tar 文件的版本号:      cd e1000E-x.x.x<>/src/ 

 7、编译驱动程序模块(需root用户):      make install  

8、使用 modprobe 命令加载模块:      modprobe e1000e

9、 如果不行,可进入驱动的目录 sudo insmod /lib/modules/3.16.0-30-generic/updates/drivers/net/ethernet/intel/ethernet/intel/e1000e/e1000e.ko


解决方法二:

    该方法是在上面方法仍然无法奏效的情况,这种情况比较极端,但是本人遇到了,是网卡芯片内部有问题。

1、在insmod 驱动之后无反应。

$ dmesg | grep e1000e
[    5.643760] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    5.643761] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    5.644308] e1000e 0000:00:1f.6: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[    5.877838] e1000e 0000:00:1f.6: The NVM Checksum Is Not Valid
[    5.907340] e1000e: probe of 0000:00:1f.6 failed with error -5
查看调试信息可以看到报出了一个错误 The NVM Checksum is not valid。

2、我们去看这个驱动的源码 nvm.c 

s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw)
{
	s32 ret_val;
	u16 checksum = 0;
	u16 i, nvm_data;

	for (i = 0; i < (NVM_CHECKSUM_REG + 1); i++) {
		ret_val = e1000_read_nvm(hw, i, 1, &nvm_data);
		if (ret_val) {
			e_dbg("NVM Read Error\n");
			return ret_val;
		}
		checksum += nvm_data;
	}

	if (checksum != (u16)NVM_SUM) {
		e_dbg("NVM Checksum Invalid\n");
		return -E1000_ERR_NVM;
	}

	return 0;
}

修改这个函数 ,直接强制返回0
s32 e1000e_validate_nvm_checksum_generic(struct e1000_hw *hw)
{
	s32 ret_val;
	u16 checksum = 0;
	u16 i, nvm_data;

	return 0;
}

从新编译驱动在src文件夹中make ,把e1000e.ko考到上面那个驱动文件夹中 ,先rmmod e1000e.ko  再insmod e1000e.ko;就可以解决这个问题。

总结一下:这个问题是由于网卡芯片内部一部分内存有问题导致的,代码修改之后就不会再去检查这片内存。开源系统linux的好处之一就是可以自己去修改代码。


参考链接:1、http://www.mamicode.com/info-detail-1710888.html

2、https://unix.stackexchange.com/questions/294753/intel-ethernet-connection-i219-v-not-working-under-linux-on-an-asuspro-b-laptop

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值