Чи є спосіб встановити драйвери Atheros e2400?


9

У мене нова материнська плата: MSI Z170A GAMING M5. Ця материнська плата має контролер Atheros killer e2400 Ethernet. Коли я це роблю 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

Ну ... це здається перспективним :) маючи терпіння i geuss?
Ділан Вестра

1
Оскільки я хотів би спробувати ядро ​​git через графіку 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

Ця git URL призначена для 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

Ви рятувальник життя.
Остін Моліться

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


Оригінальна публікація (досі застосовно до інших версій Ubuntu до 16.04)

Окрім застосування відповідного виправлення та повторної компіляції модуля ядра, можливо, ви зможете зареєструвати нові ідентифікатори пристрою PCI ( документацію ) за допомогою існуючих драйверів пристроїв:

Запис ідентифікатора пристрою до цього файлу спробує динамічно додати новий ідентифікатор пристрою до драйвера пристрою PCI. Це може дозволити драйверу підтримувати більше обладнання, ніж було включено в таблицю підтримки статичного пристрою ідентифікатора драйвера під час компіляції. Формат для ідентифікатора пристрою є: VVVV DDDD SVVV SDDD CCCC MMMM PPPP. Це ідентифікатор постачальника, ідентифікатор пристрою, ідентифікатор постачальника підсистеми, ідентифікатор пристрою підсистеми, клас, маска класу та приватні дані драйвера. Поля Ідентифікатора постачальника та Ідентифікатор пристрою обов'язкові, решта - необов’язкові. Після успішного додавання ідентифікатора, драйвер перевірятиме пристрій та намагатиметься зв'язати його. Наприклад:

# 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 користувача: якщо це відповідає на ваше запитання, не забудьте натиснути сірий ☑ під "0" зліва від цього тексту, щоб прийняти його , що означає "так, ця відповідь дійсний "!
Девід Фоерстер

Приємне рішення, яке не передбачає побудови драйверів! Навіть не потрібно було скидання.
БенБ

Також мені довелося sudo chmod 777 /sys/bus/pci/drivers/alx/new_idспочатку. Тоді мені довелося використовувати і sudoдля всіх інших команд.
БенБ

2
Не змінюйте дозволи доступу параметрів ядра на доступні для запису, якщо ви не знаєте, що ви робите! Натомість слід записати в ці файли як суперкористувача або а) спочатку запустити оболонку супер користувача ( sudo -i), а потім sudo modprobe alx && echo 1969 e0a1 | sudo tee /sys/bus/pci/drivers/alx/new_idвиконати вищевказані команди, або b) використовувати, щоб відкрити файл як суперкористувач.
Девід Фоерстер

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

Перезавантажте

Я перевірив це в старому ядрі 3.13.0-24, і він працює разом з 4.2, що правильно стверджує, що це точно так само, як і модуль, присутній у ядрі

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.