Gibt es eine Möglichkeit, Atheros e2400-Treiber zu installieren?

9

Ich habe ein neues Motherboard: MSI Z170A GAMING M5. Dieses Motherboard verfügt über einen Atheros Killer e2400 Ethernet-Controller. Wenn ich das tue lspci -nn, bekomme ich:

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

Google schien die Antwort nicht zu kennen. Nur ein ähnliches ungelöstes Problem im openSUSE-Forum.

Dylan Westra
quelle
Ich sehe diesen Patch gerade jetzt Kommentare.gmane.org/gmane.linux.network/376851
yuyichao
Ich sehe die von yuyichao ... geschrieben Patch comments.gmane.org/gmane.linux.network/376851 Aber wie ich es installiere?
user3081568
Nun ... es scheint vielversprechend :) Geduld zu haben, ich geuss?
Dylan Westra
1
Da ich den Git-Kernel wegen Skylake-Grafiken ausprobieren möchte, habe ich meinen eigenen Kernel kompiliert. Mit dem obigen Patch verwende ich derzeit den Killer e2400-Controller ohne Probleme
Yuyichao
@yuyichao Wie verwende ich diesen Patch?
PitaJ

Antworten:

12

Ich poste dies von meinem Skylake MSI Z170A GAMING M5 Build mit meinem Killer E2400 auf Ubuntu Gnome! Im Folgenden sind die (mehr oder weniger) einfachen Schritte aufgeführt, mit denen ich es zum Laufen gebracht habe.

Zuerst folgen wir einigen Anweisungen von 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

Diese Git-URL ist für 15.04 Vivid Vervet. Sie würden vivid durch Ihren Release-Codenamen ersetzen. Dieser letzte Schritt kann eine Weile dauern. Entspannen Sie sich und genießen Sie das Wissen, dass Ihr E2400 bald funktionieren wird.

Sobald dies abgeschlossen ist, werden wir den Alx-Treiber so ändern, dass er unseren E2400 enthält (Sie können gerne den Texteditor Ihrer Wahl verwenden).

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

Suchen Sie die Zeile, die ALX_DEV_ID_E2200 definiert (Sie können einfach nach E2200 suchen), und fügen Sie diese darunter hinzu

#define ALX_DEV_ID_E2400                0xe0a1

Nächster,

sudo -H gedit main.c

Suchen Sie erneut E2200 und { PCI_VDEVICE(ATTANSIC, ALX_DEV_ID_E2200), .driver_data = ALX_DEV_QUIRK_MSI_INTX_DISABLE_BUG },fügen Sie nach den Zeilen hinzu

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

Jetzt müssen nur noch die Treiber erstellt und installiert werden

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

Hinweis: Sie nach der letzten Zeile ausgeführt wird , sollten Sie die Modullast von sehen ...extra/alx.koWenn Sie das nicht tun, können Sie die umbenennen müssen , alx.kodass sie das finden alx.ko.bakoder etwas Derartiges, und wieder die letzten drei Befehle ausführen.

Ihr E2400 sollte jetzt für Ihr Netzwerkvergnügen angezeigt werden!

BattleDingo
quelle
Wir warten noch 1 Tag später, daher ist dies (noch) keine vollständige Antwort, also habe ich dafür gestimmt, dass es gelöscht wird ...
Fabby
Endlich die Gelegenheit, dies auszuprobieren. Meine Antwort wurde aktualisiert und enthält nun schrittweise Anleitungen. Funktioniert wie ein Zauber :)
BattleDingo
Du bist ein Lebensretter.
Austin Pray
Zu
Ihrer Information
Wie können Sie eine sudo apt-get-Installation durchführen, wenn Ihre Netzwerkkarte nicht funktioniert?
BioShark
7

Update für Ubuntu 14.04 (Trusty):

Laut dem Kommentar von chili555 zu einer ähnlichen Frage wird dieses Gerät von dem mit Ubuntu 16.04 gelieferten Kernel unterstützt. Glücklicherweise kann man in Ubuntu 14.04 über LTS / HWE-Upgrades auf denselben Kernel upgraden:

  1. Installieren Sie die Kernel-Pakete:

    sudo apt install linux-generic-lts-xenial
    
  2. Starten Sie den Computer neu. Der neu installierte Kernel sollte die neue Standardstartoption für Grub sein.

Weitere Informationen: Ubuntu Wiki - LTS Enablement Stack


Ursprünglicher Beitrag (gilt noch für andere Ubuntu-Versionen vor dem 16.04.)

Wenn Sie nicht den entsprechenden Patch anwenden und das betroffene Kernelmodul neu kompilieren, können Sie möglicherweise neue PCI-Geräte-IDs ( Dokumentation ) bei vorhandenen Gerätetreibern registrieren :

Durch Schreiben einer Geräte-ID in diese Datei wird versucht, einem PCI-Gerätetreiber dynamisch eine neue Geräte-ID hinzuzufügen. Dadurch kann der Treiber möglicherweise mehr Hardware unterstützen, als zur Kompilierungszeit in der statischen Geräte-ID-Unterstützungstabelle des Treibers enthalten war. Das Format für die Geräte-ID lautet : VVVV DDDD SVVV SDDD CCCC MMMM PPPP. Dies sind Hersteller-ID, Geräte-ID, Subsystem-Hersteller-ID, Subsystem-Geräte-ID, Klasse, Klassenmaske und private Treiberdaten. Die Felder Hersteller-ID und Geräte-ID sind erforderlich, der Rest ist optional. Nach erfolgreichem Hinzufügen einer ID sucht der Treiber nach dem Gerät und versucht, eine Bindung herzustellen. Zum Beispiel:

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

In diesem Fall sollten Sie also gut sein mit:

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

Ich habe den Treibernamen alxaus dem in den Kommentaren erwähnten Patch erraten . Wenn es nicht der richtige Name des Treibermoduls ist, suchen Sie nach einer Alternative.

David Foerster
quelle
Da Sie (fast) ein Reputationsbenutzer 1 sind: Wenn dies Ihre Frage beantwortet, vergessen Sie nicht, auf das graue ☑ unter der "0" links in diesem Text zu klicken, um es zu akzeptieren. Dies bedeutet "Ja, diese Antwort ist" gültig"!
David Foerster
Schöne Lösung, bei der keine Treiber gebaut werden müssen! Ich brauchte nicht einmal einen Reset.
BenB
Auch musste ich sudo chmod 777 /sys/bus/pci/drivers/alx/new_idzuerst. Dann musste ich auch sudofür alle anderen Befehle verwenden.
BenB
2
Ändern Sie die Zugriffsberechtigungen von Kernel-Parametern nicht in "weltweit beschreibbar", es sei denn, Sie wissen, was Sie tun! Stattdessen sollten Sie als Superuser in diese Dateien schreiben, indem Sie entweder a) zuerst eine Superuser-Shell starten ( sudo -i) und dann die obigen Befehle ausführen oder b) sudo modprobe alx && echo 1969 e0a1 | sudo tee /sys/bus/pci/drivers/alx/new_iddie Datei als Superuser öffnen.
David Foerster
2

Ich habe eine DKMS-Version davon mit Quellcode aus dem 4.4-Kernel erstellt

Anweisungen sind:

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

Starten Sie neu

Ich habe dies im alten 3.13.0-24-Kernel getestet und es funktioniert zusammen mit 4.2, das korrekt angibt, dass dies genau das gleiche ist wie das im Kernel vorhandene Modul

Jeremy31
quelle