มีวิธีการติดตั้งไดรเวอร์ Atheros e2400 หรือไม่?


9

ฉันมีเมนบอร์ดใหม่: MSI Z170A GAMING M5 เมนบอร์ดนี้มีคอนโทรลเลอร์อีเธอร์เน็ตอีเธอร์เน็ต E2400 killer เมื่อฉันทำlspci -nnฉันจะได้รับ:

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

Google ดูเหมือนจะไม่รู้คำตอบ เฉพาะปัญหาที่ไม่ได้แก้ไขที่คล้ายกันในฟอรัม openSUSE


ฉันเห็นแพทช์นี้ในขณะนี้comments.gmane.org/gmane.linux.network/376851
yuyichao

ฉันเห็นแพตช์ที่โพสต์โดย yuyichao ... comments.gmane.org/gmane.linux.network/376851แต่ฉันจะติดตั้งได้อย่างไร
3081568

อืม ... ดูเหมือนว่าจะเป็นสัญญา :) มีความอดทนในตัวฉัน
Dylan Westra

1
เนื่องจากฉันต้องการลองเคอร์เนลคอมไพล์เนื่องจากกราฟิก skylake ฉันจึงรวบรวมเคอร์เนลของตัวเอง ด้วยแพตช์ด้านบนตอนนี้ฉันใช้ตัวควบคุม Killer e2400 โดยไม่มีปัญหา
yuyichao

@ yuyichao ฉันจะใช้โปรแกรมแก้ไขนี้ได้อย่างไร
PitaJ

คำตอบ:


12

ฉันโพสต์สิ่งนี้จาก Skylake MSI Z170A GAMING M5 ของฉันโดยใช้ Killer E2400 ของฉันบน Ubuntu Gnome! ด้านล่างเป็นขั้นตอนง่าย ๆ (มากหรือน้อย) ที่ฉันเคยใช้เพื่อให้มันทำงานได้

ก่อนอื่นเราจะทำตามคำแนะนำจาก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 นั้นใช้สำหรับ 15.04 Vivid Vervet คุณจะแทนที่สดใสด้วยชื่อรหัสการเปิดตัวของคุณ ขั้นตอนสุดท้ายนั้นอาจใช้เวลาสักครู่ดังนั้นโปรดผ่อนคลายและรับความรู้ที่ E2400 ของคุณจะทำงานได้ในไม่ช้า

เมื่อเสร็จแล้วเราจะแก้ไขไดรเวอร์ alx เพื่อรวม E2400 ของเรา (อย่าลังเลที่จะใช้โปรแกรมแก้ไขข้อความที่คุณเลือก)

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

ค้นหาบรรทัดที่กำหนด ALX_DEV_ID_E2200 (คุณสามารถค้นหา E2200) และเพิ่มที่ด้านล่าง

#define ALX_DEV_ID_E2400                0xe0a1

ต่อไป,

sudo -H gedit main.c

ค้นหา E2200 อีกครั้งหลังจาก{ PCI_VDEVICE(ATTANSIC, ALX_DEV_ID_E2200), .driver_data = ALX_DEV_QUIRK_MSI_INTX_DISABLE_BUG },เพิ่มบรรทัดแล้ว

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

ตอนนี้สิ่งที่เหลือคือการสร้างและติดตั้งไดรเวอร์

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

หมายเหตุ: คุณดำเนินการตามบรรทัดสุดท้ายคุณจะเห็นโมดูลโหลดจาก...extra/alx.koหากคุณไม่คุณอาจต้องเปลี่ยนชื่อalx.koที่มันหาalx.ko.bakหรือบางอย่างของการเรียงลำดับและเรียกใช้สามคำสั่งล่าสุดอีกครั้ง

E2400 ของคุณควรปรากฏขึ้นเพื่อความบันเทิงด้านเครือข่ายของคุณ!


เรายังรออีก 1 วันต่อมาดังนั้นนี่ยังไม่เป็นคำตอบที่สมบูรณ์ (ยัง) ดังนั้นฉันจึงโหวตให้ลบ ...
Fabby

ในที่สุดก็มีโอกาสลองทำเช่นนี้ อัปเดตคำตอบของฉันเพื่อรวมคำแนะนำทีละขั้นตอน ทำงานได้เหมือนมีมนต์เสน่ห์ :)
BattleDingo

คุณเป็นผู้ช่วยชีวิต
Austin Pray

FYI - ทำงานนอกกรอบบน Ubuntu Gnome 15.10
BattleDingo

คุณจะติดตั้ง sudo apt-get ได้อย่างไรเมื่อการ์ดเครือข่ายของคุณไม่ทำงาน
bioShark

7

อัพเดทสำหรับ Ubuntu 14.04 (เชื่อถือได้):

ตามความเห็นของ chili555ในคำถามที่คล้ายกันว่าอุปกรณ์ได้รับการสนับสนุนโดยเคอร์เนลที่มาพร้อมกับ Ubuntu 16.04 โชคดีที่หนึ่งสามารถอัพเกรดเคอร์เนลเดียวกันใน Ubuntu 14.04 ผ่านการอัพเกรด LTS / HWE:

  1. ติดตั้งแพ็กเกจเคอร์เนล:

    sudo apt install linux-generic-lts-xenial
    
  2. รีบูทเครื่อง เคอร์เนลที่ติดตั้งใหม่ควรเป็นตัวเลือกการบูตเริ่มต้นใหม่สำหรับ Grub

ข้อมูลเพิ่มเติม: Ubuntu Wiki - LTS Enablement Stack


โพสต์ต้นฉบับ (ยังคงใช้ได้กับ Ubuntu รุ่นอื่นก่อน 16.04)

เนื่องจากการใช้โปรแกรมปะแก้ที่เหมาะสมและการคอมไพล์โมดูลเคอร์เนลที่ได้รับผลกระทบอีกครั้งคุณอาจสามารถลงทะเบียน ID อุปกรณ์ PCI ใหม่ ( เอกสารประกอบ ) กับไดรเวอร์อุปกรณ์ที่มีอยู่:

การเขียน ID อุปกรณ์ลงในไฟล์นี้จะพยายามเพิ่ม ID อุปกรณ์ใหม่ให้กับไดร์เวอร์อุปกรณ์ PCI สิ่งนี้อาจช่วยให้ไดรเวอร์สามารถรองรับฮาร์ดแวร์ได้มากกว่าที่รวมอยู่ในตารางการสนับสนุน ID อุปกรณ์แบบคงที่ในเวลารวบรวม รูปแบบสำหรับ ID VVVV DDDD SVVV SDDD CCCC MMMM PPPPอุปกรณ์ที่มี: นั่นคือ ID ผู้ขาย, ID อุปกรณ์, ID ผู้ขายระบบย่อย, ID อุปกรณ์ระบบย่อย, คลาส, คลาสมาสก์และข้อมูลไดร์เวอร์ส่วนตัว จำเป็นต้องกรอกข้อมูลรหัสผู้ขายและหมายเลขอุปกรณ์ส่วนที่เหลือเป็นทางเลือก เมื่อเพิ่ม ID สำเร็จแล้วไดรเวอร์จะตรวจสอบอุปกรณ์และพยายามผูกเข้ากับอุปกรณ์ ตัวอย่างเช่น:

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

ดังนั้นในกรณีนี้คุณควรจะดีกับ:

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

ฉันเดาชื่อไดรเวอร์alxจากแพตช์ที่กล่าวถึงในความคิดเห็น หากไม่ใช่ชื่อโมดูลไดรเวอร์ที่ถูกต้องให้ค้นหาทางเลือกอื่น


ในขณะที่คุณ (เกือบ) ผู้ใช้ที่มีชื่อเสียง 1 คน: หากตอบคำถามของคุณอย่าลืมคลิก gray สีเทาใต้ "0" ที่ด้านซ้ายของข้อความนี้เพื่อยอมรับซึ่งหมายความว่า "ใช่คำตอบนี้คือ ถูกต้อง"!
David Foerster

ทางออกที่ดีที่ไม่เกี่ยวข้องกับการสร้างไดรเวอร์ใด ๆ ! ไม่จำเป็นต้องมีการรีเซ็ตด้วยซ้ำ
BenB

นอกจากนี้ฉันต้องsudo chmod 777 /sys/bus/pci/drivers/alx/new_idก่อน จากนั้นฉันก็ต้องใช้sudoคำสั่งอื่นทั้งหมด
BenB

2
อย่าเปลี่ยนสิทธิ์การเข้าถึงของพารามิเตอร์เคอร์เนลเป็นแบบเขียนได้ทั่วโลกเว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่! แต่คุณควรเขียนไฟล์เหล่านี้ในฐานะผู้ใช้ขั้นสูงโดยก) เริ่มต้นเชลล์ผู้ใช้ขั้นสูง ( sudo -i) จากนั้นเรียกใช้คำสั่งด้านบนหรือ b) sudo modprobe alx && echo 1969 e0a1 | sudo tee /sys/bus/pci/drivers/alx/new_idเพื่อเปิดไฟล์ในฐานะผู้ใช้ขั้นสูง
David Foerster

2

ฉันสร้าง DKMS เวอร์ชันนี้โดยใช้ซอร์สโค้ดจากเคอร์เนล 4.4

คำแนะนำคือ:

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

ฉันได้ทดสอบสิ่งนี้ในเคอร์เนล 3.13.0-24 เก่าและทำงานร่วมกับ 4.2 ซึ่งระบุอย่างถูกต้องว่านี่เป็นสิ่งเดียวกันกับโมดูลที่มีอยู่ในเคอร์เนล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.