有没有办法安装 Atheros e2400 驱动程序?

有没有办法安装 Atheros e2400 驱动程序?

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

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

Google 好像也没有找到答案。只有 openSUSE 论坛上有一个类似的未解决的问题。

答案1

我用我的 Skylake MSI Z170A GAMING M5 构建,在 Ubuntu Gnome 上使用我的 Killer E2400 发布此内容!下面是我用来使其运行的(或多或少)简单步骤。

首先,我们将遵循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。您需要将 Vivid 替换为您的发布代号。最后一步可能需要一点时间,因此请放松并享受您的 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 现在应该已经出现,可供您享受网络乐趣了!

答案2

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修补评论中提到。如果它不是正确的驱动程序模块名称,请搜索替代名称。

答案3

我使用 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 内核一起工作,正确地表明这与内核中存在的模块完全相同

相关内容