Esiste un modo per installare i driver Atheros e2400?


9

Ho una nuova scheda madre: MSI Z170A GAMING M5. Questa scheda madre ha un controller Ethernet Atheros killer e2400. Quando lo faccio lspci -nn, ottengo:

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

Google non sembra conoscere la risposta. Solo un problema irrisolto simile sul forum openSUSE.



Vedo la patch pubblicata da yuyichao ... commenti.gmane.org/gmane.linux.network/376851 Ma come lo installo?
user3081568

Beh ... sembra promettente :) avere pazienza i geuss?
Dylan Westra,

1
Dato che mi piacerebbe provare il kernel git a causa della grafica skylake, ho compilato il mio kernel. Con la patch sopra, attualmente sto usando il controller Killer e2400 senza problemi
yuyichao,

@yuyichao come posso usare questa patch?
PitaJ,

Risposte:


12

Sto pubblicando questo dal mio Skylake MSI Z170A GAMING M5 build usando il mio Killer E2400 su Ubuntu Gnome! Di seguito sono riportati i (più o meno) semplici passaggi che ho usato per farlo funzionare.

Per prima cosa seguiremo alcune istruzioni da 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

L'URL git è per 15.04 Vivid Vervet. Sostituiresti vivido con il tuo nome in codice di rilascio. L'ultimo passaggio può richiedere un po 'di tempo, quindi rilassati e crogiolati nella consapevolezza che presto l'E2400 funzionerà.

Una volta terminato, modificheremo il driver alx per includere il nostro E2400 (sentiti libero di usare il tuo editor di testo preferito)

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

Trova la riga che definisce ALX_DEV_ID_E2200 (puoi solo cercare E2200) e aggiungila sotto

#define ALX_DEV_ID_E2400                0xe0a1

Il prossimo,

sudo -H gedit main.c

Ancora una volta, trova E2200 e dopo aver { PCI_VDEVICE(ATTANSIC, ALX_DEV_ID_E2200), .driver_data = ALX_DEV_QUIRK_MSI_INTX_DISABLE_BUG },aggiunto le righe

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

Ora non resta che creare e installare i driver

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

Nota: dopo aver eseguito l'ultima riga, dovresti vedere il caricamento del modulo da In ...extra/alx.kocaso contrario, potresti dover rinominare quello alx.koche ha trovato alx.ko.bako qualcosa del genere ed eseguire nuovamente gli ultimi tre comandi.

Il tuo E2400 ora dovrebbe apparire per il tuo divertimento in rete!


Stiamo ancora aspettando 1 giorno dopo, quindi questa non è una risposta completa (ancora), quindi ho votato per la sua cancellazione ...
Fabby,

Finalmente ho avuto la possibilità di provarlo. Aggiornato la mia risposta per includere istruzioni dettagliate. Funziona come un fascino :)
BattleDingo

Sei un salvavita.
Austin Pray,

Cordiali saluti - ha funzionato fuori dagli schemi su Ubuntu Gnome 15.10
BattleDingo il

Come è possibile eseguire un'installazione sudo apt-get quando la scheda di rete non funziona?
bioShark il

7

Aggiornamento per Ubuntu 14.04 (Trusty):

Secondo il commento di chili555 su una domanda simile, il dispositivo è supportato dal kernel fornito con Ubuntu 16.04. Fortunatamente si può aggiornare allo stesso kernel in Ubuntu 14.04 tramite aggiornamenti LTS / HWE:

  1. Installa i pacchetti del kernel:

    sudo apt install linux-generic-lts-xenial
    
  2. Riavvia la macchina. Il kernel appena installato dovrebbe essere la nuova opzione di avvio predefinita per Grub.

Ulteriori informazioni: Ubuntu Wiki - LTS Enablement Stack


Post originale (ancora applicabile ad altre versioni di Ubuntu prima del 16.04)

A meno di applicare la patch appropriata e ricompilare il modulo kernel interessato, potresti essere in grado di registrare nuovi ID dispositivo PCI ( documentazione ) con driver di dispositivo esistenti:

La scrittura di un ID dispositivo in questo file tenterà di aggiungere dinamicamente un nuovo ID dispositivo a un driver di dispositivo PCI. Ciò può consentire al driver di supportare più hardware di quanto non fosse incluso nella tabella di supporto dell'ID dispositivo statico del driver al momento della compilazione. Il formato per l'ID del dispositivo è il seguente: VVVV DDDD SVVV SDDD CCCC MMMM PPPP. Si tratta di ID fornitore, ID dispositivo, ID fornitore sottosistema, ID dispositivo sottosistema, classe, maschera di classe e dati del driver privato. I campi ID fornitore e ID dispositivo sono obbligatori, il resto è facoltativo. Dopo aver aggiunto correttamente un ID, il driver verificherà il dispositivo e tenterà di collegarlo. Per esempio:

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

Quindi, in questo caso, dovresti essere bravo con:

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

Ho indovinato il nome del driver alxdalla patch menzionata nei commenti. Se non è il nome del modulo driver corretto, cercare un'alternativa.


Dato che sei (quasi) un utente di reputazione 1: se questo risponde alla tua domanda, non dimenticare di fare clic sul grigio ☑ sotto lo "0" a sinistra di questo testo per accettarlo , il che significa "sì, questa risposta è valido"!
David Foerster,

Bella soluzione che non comporta la costruzione di alcun driver! Non è nemmeno necessario un ripristino.
BenB,

Inoltre, ho dovuto sudo chmod 777 /sys/bus/pci/drivers/alx/new_idprima. Quindi ho dovuto usare anche sudotutti gli altri comandi.
BenB,

2
Non modificare le autorizzazioni di accesso dei parametri del kernel in modificabili dal mondo a meno che tu non sappia cosa stai facendo! Dovresti invece scrivere su questi file come superutente da a) prima avviando una shell super utente ( sudo -i) e quindi eseguendo i comandi precedenti oppure b) usando sudo modprobe alx && echo 1969 e0a1 | sudo tee /sys/bus/pci/drivers/alx/new_idper aprire il file come superutente.
David Foerster,

2

Ho realizzato una versione DKMS di questo utilizzando il codice sorgente dal kernel 4.4

Le istruzioni sono:

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

Reboot

Ho provato questo nel vecchio kernel 3.13.0-24 e funziona insieme al 4.2 che afferma correttamente che questo è esattamente lo stesso del modulo presente nel kernel

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.