有什么方法可以安装Atheros e2400驱动程序?


9

我有一块新主板:MSI Z170A GAMING M5。该主板具有Atheros杀手级e2400以太网控制器。当我这样做时lspci -nn,我得到:

03.00.0 Ethernet controller [0200]: Qualcomm Atheros Device [1969:e0a1] (rev 10)

Google似乎不知道答案。openSUSE论坛上只有一个类似的未解决问题。



我看到了yuyichao发布的补丁... comments.gmane.org/gmane.linux.network/376851但是如何安装它?
user3081568 2015年

好吧...看来很有希望:)我有耐心吗?
迪伦·韦斯特拉

1
由于我想尝试使用git内核的原因是因为skylake的图形,所以我编译了自己的内核。使用上面的补丁,我当前正在使用Killer e2400控制器,没有问题
yuyichao 2015年

@yuyichao我如何使用此补丁?
PitaJ

Answers:


12

我正在使用我的Killer E2400在Ubuntu Gnome上从Skylake MSI Z170A GAMING M5版本中发布此消息!以下是我用来使其工作的(或多或少)简单步骤。

首先,我们将遵循Ubuntu的一些说明

sudo apt-get build-dep linux-image-$(uname -r)
sudo apt-get install git
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-vivid.git

该git URL用于15.04 Vivid Vervet。您将用发布代号替换生动。最后一步可能需要一段时间,因此请放心并晒太阳,以了解E2400即将开始工作。

完成后,我们将修改alx驱动程序以包括E2400(随意使用您选择的文本编辑器)

cd ubuntu-vivid/drivers/net/ethernet/atheros/alx/
sudo -H gedit reg.h

找到定义ALX_DEV_ID_E2200的行(您可以仅搜索E2200),并将其添加到下面

#define ALX_DEV_ID_E2400                0xe0a1

下一个,

sudo -H gedit main.c

再次找到E2200,并在行{ PCI_VDEVICE(ATTANSIC, ALX_DEV_ID_E2200), .driver_data = ALX_DEV_QUIRK_MSI_INTX_DISABLE_BUG },添加之后

{ PCI_VDEVICE(ATTANSIC, ALX_DEV_ID_E2400),
  .driver_data = ALX_DEV_QUIRK_MSI_INTX_DISABLE_BUG },

现在,剩下的就是制作并安装驱动程序了

make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules_install
sudo modprobe -r alx
sudo depmod
sudo modprobe -v alx

注意:执行完最后一行后,您应该看到从中加载模块。...extra/alx.ko如果没有,则可能需要重命名alx.ko它确实找到的模块alx.ko.bak或类似的名称,然后再次运行最后三个命令。

您的E2400现在应该出现在您的网络享受中!


1天后我们仍在等待中,所以(尚)尚不完整的答案,所以我投票删除了它……
Fabby 2015年

终于有机会尝试一下。更新了我的答案,以包含逐步说明。像魅力一样工作:)
BattleDingo

您是救生员。
奥斯汀祈祷

仅供参考-在Ubuntu Gnome 15.10上
开箱即用-BattleDingo

当网卡不工作时,如何进行sudo apt-get安装?
bioShark 2015年

7

Ubuntu 14.04(Trusty)的更新:

根据chili555对类似问题的评论,即Ubuntu 16.04随附的内核支持该设备。幸运的是,可以通过LTS / HWE升级在Ubuntu 14.04中升级到同一内核:

  1. 安装内核软件包:

    sudo apt install linux-generic-lts-xenial
    
  2. 重新启动机器。新安装的内核应该是Grub的新的默认启动选项。

更多信息:Ubuntu Wiki – LTS启用堆栈


原始帖子(仍然适用于16.04之前的其他Ubuntu版本)

无需应用适当的补丁程序并重新编译受影响的内核模块,您就可以向现有设备驱动程序注册新的PCI设备ID文档):

将设备ID写入此文件将尝试将新设备ID动态添加到PCI设备驱动程序。这可能使驱动程序支持的硬件数量比在编译时驱动程序的静态设备ID支持表中包含的硬件更多。设备ID的格式为: VVVV DDDD SVVV SDDD CCCC MMMM PPPP。即供应商ID,设备ID,子系统供应商ID,子系统设备ID,类,类掩码和专用驱动程序数据。供应商ID和设备ID字段为必填字段,其余均为可选。成功添加ID后,驱动程序将探测该设备并尝试绑定到该设备。例如:

# echo "8086 10f5" > /sys/bus/pci/drivers/foo/new_id

因此,在这种情况下,您应该擅长:

sudo modprobe alx
echo 1969 e0a1 | sudo tee /sys/bus/pci/drivers/alx/new_id >/dev/null

alx从注释中提到的补丁中猜到了驱动程序名称。如果不是正确的驱动程序模块名称,请搜索其他名称。


由于您(几乎)是信誉1用户:如果此回答了您的问题,请不要忘记单击文本左侧“ 0”下方的灰色☑ 接受它,这表示“是,此答案是有效”!
大卫·佛斯特

不错的解决方案,无需构建任何驱动程序!甚至不需要重置。
BenB

另外,我必须sudo chmod 777 /sys/bus/pci/drivers/alx/new_id先。然后,我也必须使用sudo所有其他命令。
BenB'2

2
除非您知道自己在做什么,否则请勿将内核参数的访问权限更改为世界可写!相反,您应该通过以下两种方式以超级用户身份写入这些文件:a)首先启动超级用户外壳程序(sudo -i),然后运行上述命令,或者b)sudo modprobe alx && echo 1969 e0a1 | sudo tee /sys/bus/pci/drivers/alx/new_id以超级用户身份打开文件。
David Foerster

2

我使用4.4内核中的源代码制作了DKMS版本

说明是:

sudo apt-get install git dkms build-essential linux-headers-generic
git clone https://github.com/jeremyb31/alx.git
sudo dkms add ./alx
sudo dkms build alx/2.0
sudo dkms install alx/2.0

重启

我已经在旧的3.13.0-24内核中进行了测试,它与4.2一起工作,正确地指出这与内核中存在的模块完全相同

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.