Existe alguma maneira de instalar os drivers do Atheros e2400?

9

Eu tenho uma nova placa-mãe: MSI Z170A GAMING M5. Esta placa-mãe tem um controlador Ethernet Atheros killer e2400. Quando faço lspci -nn , obtenho:

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

O Google não parece saber a resposta. Apenas um problema não resolvido semelhante no fórum do openSUSE.

    
por Dylan Westra 04.09.2015 / 23:18

3 respostas

12

Estou postando isso da minha compilação Skylake MSI Z170A GAMING M5 usando meu Killer E2400 no Ubuntu Gnome! Abaixo estão os passos (mais ou menos) simples que usei para que funcione.

Primeiro, vamos seguir algumas instruções do 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

Esse URL git é para 15.04 Vervet Vivid. Você substituiria vividamente pelo seu codinome de lançamento. Esse último passo pode demorar um pouco, então relaxe e aproveite que seu E2400 estará funcionando em breve.

Quando terminar, modificaremos o driver alx para incluir nosso E2400 (sinta-se à vontade para usar o editor de texto de sua escolha)

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

Encontre a linha que define ALX_DEV_ID_E2200 (você pode apenas procurar por E2200), e adicione isto abaixo dela

#define ALX_DEV_ID_E2400                0xe0a1

Em seguida,

sudo -H gedit main.c

Novamente, localize E2200 e depois das linhas { 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 },

Agora, tudo o que resta é fazer e instalar os 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

Observação: depois de executar a última linha, você verá a carga do módulo de ...extra/alx.ko . Caso contrário, talvez seja necessário renomear o alx.ko que ele encontrou para alx.ko.bak ou algo do tipo, e execute os últimos três comandos novamente.

O seu E2400 deve agora aparecer para o seu divertimento em rede!

    
por BattleDingo 14.09.2015 / 18:21
7

Atualização para o Ubuntu 14.04 (Trusty):

De acordo com o comentário do chili555 sobre uma pergunta semelhante esse dispositivo é suportado pelo kernel fornecido com o Ubuntu 16.04. Felizmente pode-se atualizar para o mesmo kernel no Ubuntu 14.04 através de atualizações LTS / HWE:

  1. Instale os pacotes do kernel:

    sudo apt install linux-generic-lts-xenial
    
  2. Reinicialize a máquina. O kernel recém-instalado deve ser a nova opção de inicialização padrão do Grub.

Mais informações: Ubuntu Wiki - LTS Enablement Stack

Publicação original (ainda aplicável a outras versões do Ubuntu antes de 16.04)

Depois de aplicar o patch apropriado e recompilar o módulo do kernel afetado, você poderá < href="// lwn.net/Articles/30791/">registrar novos IDs de dispositivos PCI ( documentation ) com drivers de dispositivo existentes:

  

A gravação de um ID de dispositivo nesse arquivo tentará adicionar dinamicamente um novo   ID do dispositivo para um driver de dispositivo PCI. Isso pode permitir que o driver suporte   mais hardware do que foi incluído no ID do dispositivo estático do driver   tabela de suporte em tempo de compilação. O formato do ID do dispositivo é:   %código%. Essa é a ID do fornecedor, ID do dispositivo,   ID do fornecedor do subsistema, ID do dispositivo do subsistema, classe, máscara de classe e   Dados do driver privado. Os campos ID do fornecedor e ID do dispositivo são obrigatórios   o resto é opcional. Após adicionar uma ID com sucesso, o driver   sondar o dispositivo e tentar ligá-lo. Por exemplo:

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

Portanto, neste caso, você deve ser bom com:

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

Eu adivinhei o nome do driver VVVV DDDD SVVV SDDD CCCC MMMM PPPP do patch mencionado nos comentários. Se não for o nome correto do módulo do driver, procure uma alternativa.

    
por David Foerster 14.09.2015 / 19:00
2

Eu fiz uma versão do DKMS usando o código fonte do kernel 4.4

As instruções são:

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

Reinicie

Eu testei isso no antigo kernel 3.13.0-24 e ele funciona junto com o 4.2, que afirma corretamente que é exatamente o mesmo que o módulo presente no kernel

    
por Jeremy31 27.03.2016 / 23:20