Там какой-либо путь состоит в том, чтобы установить драйверы Atheros e2400?

У меня есть новая материнская плата: MSI Z170A, ИГРАЮЩИЙ M5. Эта материнская плата имеет уничтожающий контроллер e2400 Ethernet Atheros. Когда я делаю lspci -nn, Я добираюсь:

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

Google, казалось, не знал ответ. Только подобная нерешенная проблема на форуме openSUSE.

9
задан 14 September 2015 в 10:03

3 ответа

Я размещаю это с моей сборки 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. Вы бы заменили vivid на ваше кодовое имя выпуска. Этот последний шаг может занять некоторое время, так что расслабьтесь и наслаждайтесь знанием того, что ваша E2400 скоро будет работать.

После этого мы изменим драйвер алькса, включив в него нашу 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 }, add

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

Now, all that's left to make and install the drivers

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

Note: Вы после выполнения последней строки должны увидеть загрузку модуля из . ..extra/alx.ko Если вы этого не сделаете, вам может понадобиться переименовать alx.ko, который он нашел в alx.ko.bak или что-то в этом роде, и выполнить три последние команды снова.

Теперь ваш E2400 должен появиться для вашего сетевого удовольствия!

12
ответ дан 23 November 2019 в 04:49

Обновление для Ubuntu 14.04 (Trusty):

Согласно комментарию chili555 по аналогичному вопросу, устройство поддерживается ядром, поставляемым с Ubuntu 16.04. К счастью, можно обновиться до того же ядра в Ubuntu 14.04 с помощью LTS/HWE-обновлений:

  1. Установите пакеты ядра:

    sudo apt install linux-generic-lts-xenial
    
  2. Перезагрузите машину. Вновь установленное ядро должно быть новой опцией загрузки по умолчанию для Grub.

More info: Ubuntu Wiki - LTS Enablement Stack


Original post (все еще применимо к другим выпускам Ubuntu до 16.04)

Незадолго до применения соответствующего патча и перекомпиляции затронутого модуля ядра, вы сможете зарегистрировать новые идентификаторы PCI-устройств (документация) с существующими драйверами устройств:

Запись идентификатора устройства в этот файл будет пытаться динамически добавлять новые идентификатор устройства к драйверу устройства PCI. Это может позволить драйверу поддерживать больше аппаратного обеспечения, чем было включено в статический идентификатор устройства драйвера. таблица поддержки во время компиляции. Формат идентификатора устройства: VVVVV DDDD SVVV SDDD CCCC MMMM PPPP. Это ID поставщика, ID устройства, Идентификатор поставщика подсистемы, идентификатор устройства подсистемы, класс, маска класса, а также Данные частного водителя. Поля Vendor ID и Device 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 из патча , упомянутого в комментариях . Если это неправильное имя модуля драйвера, поищите альтернативу.

7
ответ дан 23 November 2019 в 04:49

Я сделал его версию для 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, в которой правильно указано, что это точно такой же модуль, как и модуль, присутствующий в ядре

2
ответ дан 23 November 2019 в 04:49

Другие вопросы по тегам:

Похожие вопросы: