Có cách nào để cài đặt trình điều khiển Atheros e2400 không?


9

Tôi có một bo mạch chủ mới: MSI Z170A GAMING M5. Bo mạch chủ này có bộ điều khiển Ethernet e2400 killer Atheros. Khi tôi làm lspci -nn, tôi nhận được:

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

Google dường như không biết câu trả lời. Chỉ có một vấn đề chưa được giải quyết tương tự trên diễn đàn openSUSE.


Tôi thấy bản vá này ngay bây giờ bình
luận.gmane.org / gmane.linux.network / 376851

Tôi thấy bản vá được đăng bởi yuyichao ... bình luận.gmane.org / gmane.linux.network / 376851 Nhưng làm cách nào để cài đặt nó?
dùng3081568

Chà ... có vẻ đầy hứa hẹn :) có kiên nhẫn không geuss?
Dylan Westra

1
Vì tôi muốn thử kernel git vì đồ họa skylake, tôi đã biên dịch kernel của riêng tôi. Với bản vá ở trên, tôi hiện đang sử dụng bộ điều khiển Killer e2400 mà không gặp vấn đề gì
yuyichao

@yuyichao làm thế nào để tôi sử dụng bản vá này?
PitaJ

Câu trả lời:


12

Tôi đang đăng bài này từ bản dựng Skylake MSI Z170A GAMING M5 của tôi bằng Killer E2400 của tôi trên Ubuntu Gnome! Dưới đây là các bước đơn giản (ít nhiều) mà tôi đã sử dụng để làm cho nó hoạt động.

Trước tiên, chúng tôi sẽ làm theo một số hướng dẫn từ 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 đó dành cho 15.04 Verv Vervet. Bạn sẽ thay thế sinh động với tên mã phát hành của bạn. Bước cuối cùng đó có thể mất một chút thời gian, vì vậy hãy thư giãn và đắm chìm trong kiến ​​thức rằng E2400 của bạn sẽ sớm hoạt động.

Khi đã xong, chúng tôi sẽ sửa đổi trình điều khiển alx để bao gồm E2400 của chúng tôi (thoải mái sử dụng trình soạn thảo văn bản của bạn)

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

Tìm dòng xác định ALX_DEV_ID_E2200 (bạn chỉ có thể tìm kiếm E2200) và thêm dòng này bên dưới nó

#define ALX_DEV_ID_E2400                0xe0a1

Kế tiếp,

sudo -H gedit main.c

Một lần nữa, tìm E2200 và sau khi { PCI_VDEVICE(ATTANSIC, ALX_DEV_ID_E2200), .driver_data = ALX_DEV_QUIRK_MSI_INTX_DISABLE_BUG },thêm dòng

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

Bây giờ, tất cả những gì còn lại là tạo và cài đặt trình điều khiển

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

Lưu ý: Bạn sau khi thực hiện dòng cuối cùng, bạn sẽ thấy tải mô-đun từ ...extra/alx.koNếu không, bạn có thể cần phải đổi tên dòng alx.komà nó đã tìm alx.ko.bakhoặc một cái gì đó sắp xếp và chạy lại ba lệnh cuối cùng.

E2400 của bạn bây giờ sẽ xuất hiện để thưởng thức mạng của bạn!


Chúng tôi vẫn đang đợi 1 ngày sau, vì vậy đây chưa phải là câu trả lời hoàn chỉnh, vì vậy tôi đã bỏ phiếu để xóa nó ...
Fabby

Cuối cùng cũng có cơ hội để thử nó. Cập nhật câu trả lời của tôi để bao gồm hướng dẫn từng bước. Hoạt động như một bùa mê :)
BattleDingo

Bạn là một người cứu rỗi cuộc sống.
Austin cầu nguyện

FYI - đã hoạt động tốt trên Ubuntu Gnome 15.10
BattleDingo

Làm thế nào bạn có thể thực hiện cài đặt sudo apt-get khi card mạng của bạn không hoạt động?
bioShark 4/12/2015

7

Cập nhật cho Ubuntu 14.04 (Trusty):

Theo nhận xét của chili555 về một câu hỏi tương tự rằng thiết bị được hỗ trợ bởi kernel được cung cấp cùng với Ubuntu 16.04. May mắn thay, người ta có thể nâng cấp lên cùng một hạt nhân trong Ubuntu 14.04 thông qua các bản nâng cấp LTS / HWE:

  1. Cài đặt các gói kernel:

    sudo apt install linux-generic-lts-xenial
    
  2. Khởi động lại máy. Hạt nhân mới được cài đặt phải là tùy chọn khởi động mặc định mới cho Grub.

Thông tin thêm: Ubuntu Wiki - Ngăn xếp hỗ trợ LTS


Bài đăng gốc (vẫn áp dụng cho các bản phát hành Ubuntu khác trước ngày 16.04)

Không áp dụng bản vá thích hợp và biên dịch lại mô-đun hạt nhân bị ảnh hưởng, bạn có thể đăng ký ID ( tài liệu ) thiết bị PCI mới với trình điều khiển thiết bị hiện có:

Viết ID thiết bị vào tệp này sẽ cố gắng tự động thêm ID thiết bị mới vào trình điều khiển thiết bị PCI. Điều này có thể cho phép trình điều khiển hỗ trợ nhiều phần cứng hơn mức được bao gồm trong bảng hỗ trợ ID thiết bị tĩnh của trình điều khiển tại thời điểm biên dịch. Định dạng cho ID thiết bị là : VVVV DDDD SVVV SDDD CCCC MMMM PPPP. Đó là ID nhà cung cấp, ID thiết bị, ID nhà cung cấp hệ thống con, ID thiết bị hệ thống con, Lớp, Mặt nạ lớp và Dữ liệu trình điều khiển riêng. Các trường ID nhà cung cấp và ID thiết bị là bắt buộc, phần còn lại là tùy chọn. Sau khi thêm ID thành công, trình điều khiển sẽ thăm dò thiết bị và cố gắng liên kết với nó. Ví dụ:

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

Vì vậy, trong trường hợp này, bạn nên tốt với:

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

Tôi đoán tên trình điều khiển alxtừ các bản vá được đề cập trong các ý kiến. Nếu đó không phải là tên mô-đun trình điều khiển phù hợp, hãy tìm kiếm một sự thay thế.


Là bạn (gần) một người dùng danh tiếng 1: nếu điều này trả lời câu hỏi của bạn, đừng quên nhấp vào màu xám ☑ bên dưới "0" ở bên trái của văn bản này để chấp nhận nó , có nghĩa là "có, câu trả lời này là có hiệu lực"!
David Foerster

Giải pháp tốt đẹp không liên quan đến việc xây dựng bất kỳ trình điều khiển! Thậm chí không cần thiết lập lại.
BenB

Ngoài ra, tôi đã phải sudo chmod 777 /sys/bus/pci/drivers/alx/new_idđầu tiên. Sau đó tôi cũng phải sử dụng sudocho tất cả các lệnh khác.
BenB

2
Đừng thay đổi quyền truy cập của các tham số kernel thành có thể ghi trên thế giới trừ khi bạn biết bạn đang làm gì! Thay vào đó, bạn nên ghi vào các tệp này dưới dạng siêu người dùng bằng cách a) trước tiên bắt đầu một siêu người dùng shell ( sudo -i) và sau đó chạy các lệnh trên hoặc b) sử dụng sudo modprobe alx && echo 1969 e0a1 | sudo tee /sys/bus/pci/drivers/alx/new_idđể mở tệp dưới dạng siêu người dùng.
David Foerster

2

Tôi đã tạo phiên bản DKMS này bằng mã nguồn từ kernel 4.4

Hướng dẫn là:

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

Khởi động lại

Tôi đã thử nghiệm điều này trong kernel 3.13.0-24 cũ và nó hoạt động cùng với 4.2, trong đó nêu chính xác rằng điều này hoàn toàn giống với mô-đun có trong kernel

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.