Como desabilitar o dispositivo no Linux Debian (Wheezy)

5

Eu preciso forçar o kernel a não carregar os drivers da Intel NIC no meu PC para ver se isso ajuda nos problemas de desempenho que eu tenho usando o segundo NIC que está na mesma placa-mãe. Como posso fazer isso?

Eu acabei de instalar o Linux Debian Wheezy no meu desktop, desde que eu sou tão afeiçoado e feliz com o Squeeze. Eu encontrei um problema no entanto, onde o kernel depois do que parece ser um tempo aleatório para de responder ao IRQ 16 e desacelera a máquina inteira a um ponto em que ela não pode ser usada.

Pesquisando isso mostra muitas pessoas de todos os tipos de distribuições e kernels com o mesmo problema, mas sem solução. Eu verifiquei /proc/interrupts e descobri que minha placa de vídeo e placa de rede está compartilhando o mesmo IRQ e decidi mover a placa gráfica para um novo slot que ajudou muito. No entanto, o problema ainda está lá, só agora ele está apenas causando problemas com o meu Intel gigabit NIC causando perda de desempenho. Como tenho duas placas de rede nesta máquina / placa-mãe, quero tentar desativar essa placa de rede e usar a outra para ver se isso resolve o problema.

Como posso fazer isso?

Aqui estão algumas informações sobre o meu sistema que podem ser úteis para saber. Eu cortei a informação que não é importante para este caso.

hamartin@Sabriel:~$ lspci
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:01.1 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 05)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b5)
00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 (rev b5)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b5)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5)
00:1c.6 PCI bridge: Intel Corporation 82801 PCI Bridge (rev b5)
00:1c.7 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 8 (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation P67 Express Chipset Family LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
02:00.0 VGA compatible controller: NVIDIA Corporation GF114 [GeForce GTX 560 Ti] (rev a1)
02:00.1 Audio device: NVIDIA Corporation GF114 HDMI Audio Controller (rev a1)
04:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
06:00.0 SATA controller: JMicron Technology Corp. JMB362 SATA Controller (rev 10)
07:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
08:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 01)
09:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8110SC/8169SC Gigabit Ethernet (rev 10)
0a:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9172 SATA 6Gb/s Controller (rev 11)

Note que antes de eu mover a placa gráfica, o IRQ 16 era compartilhado apenas entre os drivers eth0 e nouveau.

hamartin@Sabriel:~$ cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7      
 16:     400001          0          0          0          0          0          0          0   IO-APIC-fasteoi   eth0

Informações do kernel.

hamartin@Sabriel:~$ uname -a
Linux Sabriel 3.2.0-4-amd64 #1 SMP Debian 3.2.39-2 x86_64 GNU/Linux

Registros de log relevantes de /var/log/messages . Isso é de antes de eu mudar o posicionamento da placa gráfica.

Mar 25 01:22:50 Sabriel kernel: [    4.137920] fb0: nouveaufb frame buffer device
Mar 25 01:22:50 Sabriel kernel: [    4.137922] drm: registered panic notifier
Mar 25 01:22:50 Sabriel kernel: [    4.137927] [drm] Initialized nouveau 1.0.0 20120316 for 0000:01:00.0 on minor 0
Mar 25 01:22:50 Sabriel kernel: [    4.137966] hda_intel: Disabling MSI

Eu não consigo encontrar a mensagem de erro que foi "murada" para a minha janela de terminal, eu suspeito que não tenha sido gravado nos logs. Em essência, a mensagem de erro dizia que ele parou de responder aos IRQs do dispositivo configurado para 16.

Se mais alguma informação for necessária, diga-me e eu a fornecerei assim que eu ver que há uma atualização aqui. Agradecemos antecipadamente por ter tempo para ajudar.

    
por Mogget 29.03.2013 / 14:21

2 respostas

2

Você pode colocar seu módulo na lista negra usando as seguintes etapas:

  1. Crie um arquivo /etc/modprobe.d/<modulename>.conf contendo blacklist <modulename>
  2. Executar depmod -ae como raiz
  3. Recrie seu initrd com update-initramfs -u
por 29.03.2013 / 15:29
0

se você não puder desconectar seu hardware NIC, você precisa personalizar o kernel no qual nenhum código de driver correspondente será compilado. ou remover seu arquivo ko.

    
por 29.03.2013 / 15:19