我有一块新主板:MSI Z170A GAMING M5。该主板具有Atheros杀手级e2400以太网控制器。当我这样做时lspci -nn
,我得到:
03.00.0 Ethernet controller [0200]: Qualcomm Atheros Device [1969:e0a1] (rev 10)
Google似乎不知道答案。openSUSE论坛上只有一个类似的未解决问题。
我有一块新主板:MSI Z170A GAMING M5。该主板具有Atheros杀手级e2400以太网控制器。当我这样做时lspci -nn
,我得到:
03.00.0 Ethernet controller [0200]: Qualcomm Atheros Device [1969:e0a1] (rev 10)
Google似乎不知道答案。openSUSE论坛上只有一个类似的未解决问题。
Answers:
我正在使用我的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现在应该出现在您的网络享受中!
根据chili555对类似问题的评论,即Ubuntu 16.04随附的内核支持该设备。幸运的是,可以通过LTS / HWE升级在Ubuntu 14.04中升级到同一内核:
安装内核软件包:
sudo apt install linux-generic-lts-xenial
重新启动机器。新安装的内核应该是Grub的新的默认启动选项。
无需应用适当的补丁程序并重新编译受影响的内核模块,您就可以向现有设备驱动程序注册新的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
从注释中提到的补丁中猜到了驱动程序名称。如果不是正确的驱动程序模块名称,请搜索其他名称。
sudo chmod 777 /sys/bus/pci/drivers/alx/new_id
先。然后,我也必须使用sudo
所有其他命令。
sudo -i
),然后运行上述命令,或者b)sudo modprobe alx && echo 1969 e0a1 | sudo tee /sys/bus/pci/drivers/alx/new_id
以超级用户身份打开文件。
我使用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一起工作,正确地指出这与内核中存在的模块完全相同