Apakah ada cara untuk menginstal driver Atheros e2400?

9

Saya memiliki motherboard baru: MSI Z170A GAMING M5. Motherboard ini memiliki pengontrol Atheros killer e2400 Ethernet. Ketika saya melakukannya lspci -nn, saya mendapatkan:

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

Google sepertinya tidak tahu jawabannya. Hanya masalah yang belum terpecahkan serupa di forum openSUSE.

Dylan Westra
sumber
Saya melihat tambalan ini tadi saja comments.gmane.org/gmane.linux.network/376851
yuyichao
Saya melihat tambalan yang diposting oleh yuyichao ... comments.gmane.org/gmane.linux.network/376851 Tapi bagaimana cara menginstalnya?
user3081568
Wah ... sepertinya menjanjikan :) bersabar saya geuss?
Dylan Westra
1
Karena saya ingin mencoba kernel git karena grafis skylake, saya mengkompilasi kernel saya sendiri. Dengan tambalan di atas, saya saat ini menggunakan controller Killer e2400 tanpa masalah
yuyichao
@ yuyichao bagaimana cara menggunakan tambalan ini?
PitaJ

Jawaban:

12

Saya memposting ini dari Skylake MSI Z170A GAMING M5 build menggunakan Killer E2400 di Ubuntu Gnome! Di bawah ini adalah (kurang lebih) langkah sederhana yang saya gunakan untuk membuatnya bekerja.

Pertama kita akan mengikuti beberapa instruksi dari 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

URL git itu untuk 15,04 Vivid Vervet. Anda akan mengganti vivid dengan nama kode rilis Anda. Langkah terakhir itu bisa memakan waktu cukup lama, jadi santai dan nikmati pengetahuan bahwa E2400 Anda akan segera berfungsi.

Setelah selesai, kami akan memodifikasi driver alx untuk memasukkan E2400 kami (jangan ragu untuk menggunakan editor teks pilihan Anda)

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

Temukan baris yang mendefinisikan ALX_DEV_ID_E2200 (Anda bisa mencari E2200), dan tambahkan ini di bawahnya

#define ALX_DEV_ID_E2400                0xe0a1

Lanjut,

sudo -H gedit main.c

Sekali lagi, cari E2200, dan setelah baris { PCI_VDEVICE(ATTANSIC, ALX_DEV_ID_E2200), .driver_data = ALX_DEV_QUIRK_MSI_INTX_DISABLE_BUG },ditambahkan

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

Sekarang, yang tersisa hanyalah membuat dan menginstal 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

Catatan: Anda setelah menjalankan baris terakhir, Anda akan melihat modul memuat dari ...extra/alx.koJika Anda tidak, Anda mungkin perlu mengubah nama alx.koyang ditemukan alx.ko.bakatau semacamnya, dan menjalankan tiga perintah terakhir lagi.

E2400 Anda sekarang akan muncul untuk kesenangan jaringan Anda!

BattleDingo
sumber
Kami masih menunggu 1 hari kemudian, jadi ini bukan jawaban yang lengkap (belum), jadi saya memilih untuk dihapus ...
Fabby
Akhirnya mendapat kesempatan untuk mencoba ini. Memperbarui jawaban saya untuk memasukkan petunjuk langkah demi langkah. Bekerja seperti pesona :)
BattleDingo
Anda adalah penyelamat hidup.
Austin Pray
FYI - bekerja di luar kotak pada Ubuntu Gnome 15.10
BattleDingo
Bagaimana Anda bisa menginstal sudo apt-get ketika kartu jaringan Anda tidak berfungsi?
bioShark
7

Pembaruan untuk Ubuntu 14.04 (Terpercaya):

Menurut komentar chili555 tentang pertanyaan serupa bahwa perangkat didukung oleh kernel yang dikirimkan bersama Ubuntu 16.04. Untungnya seseorang dapat melakukan upgrade ke kernel yang sama di Ubuntu 14.04 melalui peningkatan LTS / HWE:

  1. Instal paket kernel:

    sudo apt install linux-generic-lts-xenial
    
  2. Nyalakan ulang mesin. Kernel yang baru diinstal harus menjadi opsi boot default baru untuk Grub.

Info lebih lanjut: Ubuntu Wiki - LTS Enablement Stack


Posting asli (masih berlaku untuk rilis Ubuntu lainnya sebelum 16,04)

Pendek menerapkan patch yang sesuai dan mengkompilasi ulang modul kernel yang terkena dampak, Anda mungkin dapat mendaftarkan ID perangkat PCI baru ( dokumentasi ) dengan driver perangkat yang ada:

Menulis ID perangkat ke file ini akan berupaya menambahkan ID perangkat baru secara dinamis ke driver perangkat PCI. Hal ini memungkinkan pengemudi untuk mendukung lebih banyak perangkat keras daripada yang termasuk dalam tabel dukungan ID perangkat statis pengemudi pada waktu kompilasi. Format untuk ID perangkat adalah: VVVV DDDD SVVV SDDD CCCC MMMM PPPP. Itu adalah ID Vendor, ID Perangkat, ID Vendor Subsistem, ID Perangkat Subsistem, Kelas, Topeng Kelas, dan Data Driver Pribadi. Kolom Vendor ID dan Device ID diperlukan, sisanya adalah opsional. Setelah berhasil menambahkan ID, pengemudi akan menyelidiki perangkat dan berusaha untuk mengikatnya. Sebagai contoh:

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

Jadi dalam hal ini, Anda harus pandai dengan:

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

Saya menebak nama driver alxdari tambalan yang disebutkan dalam komentar. Jika itu bukan nama modul driver yang tepat, cari alternatif.

David Foerster
sumber
Karena Anda (hampir) adalah pengguna reputasi 1: jika ini menjawab pertanyaan Anda, jangan lupa klik abu-abu ☑ di bawah "0" di sebelah kiri teks ini untuk menerimanya , yang berarti "ya, jawaban ini adalah sah"!
David Foerster
Solusi bagus yang tidak melibatkan membangun driver apa pun! Bahkan tidak perlu diatur ulang.
BenB
Juga, saya harus sudo chmod 777 /sys/bus/pci/drivers/alx/new_idterlebih dahulu. Kemudian saya harus menggunakan sudountuk semua perintah lain juga.
BenB
2
Jangan mengubah izin akses parameter kernel menjadi dapat ditulis oleh dunia kecuali Anda tahu apa yang Anda lakukan! Sebagai gantinya Anda harus menulis ke file-file ini sebagai super-user dengan a) pertama-tama memulai shell super user ( sudo -i) dan kemudian menjalankan perintah di atas atau b) gunakan sudo modprobe alx && echo 1969 e0a1 | sudo tee /sys/bus/pci/drivers/alx/new_iduntuk membuka file sebagai super-user.
David Foerster
2

Saya membuat versi DKMS ini menggunakan kode sumber dari kernel 4.4

Instruksi adalah:

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

Mulai ulang

Saya telah menguji ini di kernel lama 3.13.0-24 dan bekerja bersama dengan 4.2 yang dengan benar menyatakan bahwa ini persis sama dengan modul yang ada di kernel

Jeremy31
sumber