Existe-t-il un moyen d'installer les pilotes Atheros e2400?

9

J'ai une nouvelle carte mère: MSI Z170A GAMING M5. Cette carte mère dispose d'un contrôleur Ethernet Atheros killer e2400. Quand je le fais lspci -nn, je reçois:

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

Google ne semblait pas connaître la réponse. Seul un problème similaire non résolu sur le forum openSUSE.

Dylan Westra
la source
Je vois ce patch tout à l'heure comments.gmane.org/gmane.linux.network/376851
yuyichao
Je vois le correctif posté par yuyichao ... comments.gmane.org/gmane.linux.network/376851 Mais comment l'installer?
user3081568
Et bien ... ça semble prometteur :) avoir de la patience i geuss
Dylan Westra du
1
Puisque j'aimerais essayer le noyau git à cause des graphiques skylake, j'ai compilé mon propre noyau. Avec le patch ci-dessus, j'utilise actuellement le contrôleur Killer e2400 sans problème
yuyichao
@yuyichao comment utiliser ce patch?
PitaJ

Réponses:

12

Je publie ceci depuis ma build Skylake MSI Z170A GAMING M5 en utilisant mon Killer E2400 sur Ubuntu Gnome! Voici les étapes simples (plus ou moins) que j'ai utilisées pour le faire fonctionner.

Nous allons d'abord suivre quelques instructions d' 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

Cette URL git est pour 15.04 Vivid Vervet. Vous devez remplacer vivid par le nom de code de votre version. Cette dernière étape peut prendre un peu de temps, alors détendez-vous et savourez que votre E2400 fonctionnera bientôt.

Une fois cela fait, nous modifierons le pilote alx pour inclure notre E2400 (n'hésitez pas à utiliser l'éditeur de texte de votre choix)

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

Trouvez la ligne définissant ALX_DEV_ID_E2200 (vous pouvez simplement rechercher E2200), et ajoutez-la ci-dessous

#define ALX_DEV_ID_E2400                0xe0a1

Prochain,

sudo -H gedit main.c

Encore une fois, trouvez E2200, et après les lignes, { PCI_VDEVICE(ATTANSIC, ALX_DEV_ID_E2200), .driver_data = ALX_DEV_QUIRK_MSI_INTX_DISABLE_BUG },ajoutez

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

Maintenant, il ne reste plus qu'à créer et installer les pilotes

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

Remarque: Après avoir exécuté la dernière ligne, vous devriez voir la charge du module à partir de ...extra/alx.koSi vous ne le faites pas, vous devrez peut-être renommer le fichier alx.koqu'il a trouvé alx.ko.bakou quelque chose du genre, puis réexécuter les trois dernières commandes.

Votre E2400 devrait maintenant apparaître pour votre plaisir de réseautage!

BattleDingo
la source
Nous attendons toujours 1 jour plus tard, donc ce n'est pas une réponse complète (encore), j'ai donc voté pour qu'il soit supprimé ...
Fabby
J'ai enfin eu l'occasion de l'essayer. Mise à jour de ma réponse pour inclure des instructions étape par étape. Fonctionne comme un charme :)
BattleDingo
Tu es un sauveur.
Austin Pray du
FYI - travaillé hors de la boîte sur Ubuntu Gnome 15.10
BattleDingo
Comment pouvez-vous faire une installation sudo apt-get lorsque votre carte réseau ne fonctionne pas?
bioShark
7

Mise à jour pour Ubuntu 14.04 (Trusty):

Selon le commentaire de chili555 sur une question similaire, ce périphérique est pris en charge par le noyau livré avec Ubuntu 16.04. Heureusement, on peut mettre à niveau vers le même noyau dans Ubuntu 14.04 via des mises à niveau LTS / HWE:

  1. Installez les packages du noyau:

    sudo apt install linux-generic-lts-xenial
    
  2. Redémarrez la machine. Le noyau nouvellement installé devrait être la nouvelle option de démarrage par défaut pour Grub.

Plus d'informations: Ubuntu Wiki - LTS Enablement Stack


Article d'origine (toujours applicable aux autres versions d'Ubuntu avant le 16.04)

À moins d'appliquer le correctif approprié et de recompiler le module du noyau affecté, vous pourrez peut-être enregistrer de nouveaux ID de périphérique PCI ( documentation ) avec les pilotes de périphérique existants:

L'écriture d'un ID de périphérique dans ce fichier tentera d'ajouter dynamiquement un nouvel ID de périphérique à un pilote de périphérique PCI. Cela peut permettre au pilote de prendre en charge plus de matériel que ce qui était inclus dans la table de prise en charge de l'ID de périphérique statique du pilote au moment de la compilation. Le format de l'ID du périphérique est: VVVV DDDD SVVV SDDD CCCC MMMM PPPP. Il s'agit de l'ID du fournisseur, de l'ID du périphérique, de l'ID du fournisseur du sous-système, de l'ID du périphérique du sous-système, de la classe, du masque de classe et des données de pilote privé. Les champs Vendor ID et Device ID sont obligatoires, les autres sont facultatifs. Après avoir correctement ajouté un ID, le pilote recherchera le périphérique et tentera de s'y connecter. Par exemple:

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

Donc dans ce cas, vous devriez être bon avec:

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

J'ai deviné le nom alxdu pilote à partir du patch mentionné dans les commentaires. Si ce n'est pas le bon nom de module de pilote, recherchez une alternative.

David Foerster
la source
Comme vous êtes (presque) un utilisateur de réputation 1: si cela répond à votre question, n'oubliez pas de cliquer sur le gris ☑ sous le "0" à gauche de ce texte pour l' accepter , ce qui signifie "oui, cette réponse est valide"!
David Foerster
Belle solution qui ne nécessite pas de construire de pilotes! Je n'ai même pas eu besoin d'une réinitialisation.
BenB
Aussi, je devais d' sudo chmod 777 /sys/bus/pci/drivers/alx/new_idabord. Ensuite, j'ai dû utiliser également sudotoutes les autres commandes.
BenB
2
Ne changez pas les autorisations d'accès des paramètres du noyau en écriture universelle, sauf si vous savez ce que vous faites! Au lieu de cela, vous devez écrire dans ces fichiers en tant que super-utilisateur soit a) en commençant d'abord un shell de super-utilisateur ( sudo -i) puis en exécutant les commandes ci-dessus ou b) en utilisant sudo modprobe alx && echo 1969 e0a1 | sudo tee /sys/bus/pci/drivers/alx/new_idpour ouvrir le fichier en tant que super-utilisateur.
David Foerster
2

J'ai fait une version DKMS de cela en utilisant le code source du noyau 4.4

Les instructions sont les suivantes:

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

Redémarrer

J'ai testé cela dans l'ancien noyau 3.13.0-24 et cela fonctionne avec 4.2 qui indique correctement que c'est exactement le même que le module présent dans le noyau

Jeremy31
la source