T510网卡82577LM升级记录

鸟枪换炮

Posted by swint 2019-05-05 database linux tag wicd tag ifplugd tag ethtool

之前花了点钱把家里的网线换成超五类的,虽然我不太明确自己买到的是不是超五类的,但的确是支持了千兆以上的传输速度。唯一的缺憾是,主力的笔记本T510居然只有10MB,偶尔甚至只有2MB左右的速度,明明跟小笔记本相同的网卡,可为什么速度就是慢呢?在网上查了好久,试了各种方法,现在把过程记录下来。

尝试

更新驱动 无效

虽然最后证实没有效果,但是至少对linux的驱动更熟悉了一些。

    sudo apt install linux-headers-$(uname -r) # 编译需要headers文件
解压进入src文件夹,使用make install编译。该步骤会:

-   删除/lib/modules/4.9.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko原驱动。

-   添加/lib/modules/4.9.0-8-amd64/updates/drivers/net/ethernet/intel/e1000e/e1000e.ko新驱动。
    sudo rmmod e1000e # 卸载原驱动
    sudo modprobe e1000e # 加载新驱动
    lsmod | grep -i e1000 # 查看驱动
    sudo dmesg |grep -e eth0 # 输出内核信息
试了几个不同的驱动版本,要么编译失败,要么编译成功但无效果,总之最后可以确认跟驱动没有关系。

关闭ipv6 无效

在网上有人说到上网速度慢是由于解析ipv6导致的,虽然也知道这跟传输速度几乎没有关系,但还是试一下吧。

  • /etc/sysctl.conf
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
  • /etc/hosts 注释掉ipv6相关
    # ::1     localhost ip6-localhost ip6-loopback
    # ff02::1 ip6-allnodes
    # ff02::2 ip6-allrouters

手动设置模式 无效

T510有线网卡支持1000M,但实际只有100M。

sudo ethtool -s eth0 autoneg off speed 1000 duplex full # 设置网卡连接速率。不行,1000以上网速无法手动设置。
sudo ifdown eth0; sudo ifup eth0                        # 重启网卡
  • autoneg on时,默认速率为100MB。

  • autoneg off时,若手动设置为1000M,连接不上。

  • autoneg off时,若手动设置为100M,可以连接。

Express Card接口外接网卡

试了各种方法,大致确认是硬件的问题。于是开始找替代,网上很多USB接口的千兆网卡,但是这台老笔记本的USB接口都是2.0的,极限20MB的速度也发挥不出来千兆网卡的速度。突然发现自己有个Express Card的接口,这个本子用了快十年了,从来就没想过这个接口对我会有什么作用。网上有很多Express Card转USB3.0的接口,于是想有没有Express Card接口的外接网卡呢。搜了一下,京东淘宝几乎都没有,但是咸鱼上面找到两个,55包邮到手,不用任何驱动,插上去解决一切问题。

然后新的问题冒出来,现在一台本子上面两个有线网卡加一个无线网卡,该怎么管理呢?折腾了一下,大致方案如下:

一个有线网卡

使用 ifplugd 管理有线网卡的热插拔。

sudo apt install ifplugd
sudo dpkg-reconfigure ifplugd

一个有线网卡/一个无线网卡

使用 wicd 同时管理有线/无线网卡,但无法同时管理多个有线,可以实现有线/无线切换。

两个有线网卡/一个无线网卡

使用 ifplugd/wicd ifplugd管理有线网卡eth0,wicd管理有线网卡eth1和无线网卡。

  • interface 关闭所有接口的自动开启,使用ifplugd管理有线网卡eth0。
    # auto eth0
    # allow-hotplug eth0
    iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1
  • wicd 设置有线网卡eth1和无线网卡的静态地址和自动连接。

  • 存在问题 连接无线网卡后再连接有线网卡eth0时,无线并不断开,流量走无线网卡。有线网卡eth1和无线网卡切换没问题。

    修改 /etc/ifplugd/action.d/ifupdown 文件,使wicd/ifplugd更好的配合:

    #!/bin/sh
    set -e
    case "$2" in
        up)
            # 首次开机时,等到wicd.service启动后执行之后动作。
            ERROR=$(LC_ALL=C wicd-cli -i | awk NR\ ==\ 1\{print\ \$1\})
            while [ $ERROR = 'Error:' ] ;do
                sleep 2;
                ERROR=$(LC_ALL=C wicd-cli -i | awk NR\ ==\ 1\{print\ \$1\})
            done
            STATE=$(LC_ALL=C wicd-cli -i | awk NR\ ==\ 1\{print\ \$3\})
            TYPE=$(LC_ALL=C wicd-cli -i | awk NR\ ==\ 2\{print\ \$3\})
            # 在使用ifplugd连接网络之前,断开网络连接,使网络脱离wicd的管理。
            if [ $STATE = 'Not' ]; then
                /usr/bin/wicd-cli -zyx
            else
                if [ $TYPE = 'Wired' ]; then
                    /usr/bin/wicd-cli -zx
                elif [ $TYPE = 'Wireless' ]; then
                    /usr/bin/wicd-cli -yx
                else
                    /usr/bin/wicd-cli -zyx
                fi
            fi
            /sbin/ifup --force $1
            ;;
        down)
            /sbin/ifdown --force $1
            # 在使用ifplugd断开网络之后,重新连接有线网络,使网络恢复wicd的管理。
            /usr/bin/wicd-cli -zc
            ;;
    esac
0 Comments.

Please log in to leave a comment.