Ubuntu Dapper Server e placa de rede Broadcom NetXtreme
6 06UTC Setembro 06UTC 2007
Muitas placas de rede são automaticamente detectadas pelo Ubuntu, porém pode acontecer que uma placa não seja reconhecida durante a instalação. Por exemplo, as placas Broadcom NetXtreme II BCM5708 e NetXtreme BCM5704, ambas presentes nos servidores IBM x3550 e X3850 respectivamente, não foram detectadas pelo Dapper 6.06 LTS (kernel 2.6.15-26-server e kernel 2.6.15-28-server).
Uma vez diagnosticado que a placa de rede não foi detectada (use o dmesg para obter mais informações do problema), você terá que realizar algumas pesquisas a fim de ativá-la. Uma bom início é começar a pesquisa pelos “bugs conhecidos“, que é uma ótima forma de obter ajuda via comentários que incluem informações sobre o problema, patch (correção) e formas de como contorná-lo até que saia uma correção definitiva.
Caso não encontre nenhuma ocorrência para solução do problema, uma boa maneira é compilar o próprio driver do fabricante. Vejamos como isso foi realizado para as placas BCM5704 e BCM5708:
Broadcom NetXtreme BCM5704
1. Identificar o fabricante da placa de rede:
$ lspci -v | grep Ethernet
0000:01:01.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 10)
0000:01:01.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5704 Gigabit Ethernet (rev 10)
0000:02:01.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5703 Gigabit Ethernet (rev 10)
2. Verificar a saída do dmesg:
$ dmesg | less
3. Verificar se o driver foi carregado:
$ lsmod | grep bnx2
No caso da BCM5704 o driver que o Ubuntu estava usando era o bnx2, o engraçado é que o fabricante usa o tg3 para essa placa. Logo, remova o driver carregado para ter certeza que ele não “atrapalhe em nada.
$ rmmod bnx2
$ rmmod tg3
4. Baixar o driver do fabricante:
http://www.broadcom.com/support/ethernet_nic/netxtreme_server.php
5. Agora é necessário instalar os pacotes “build-essential” e os “headers” do kernel atual. O pacote “build-essential’ possui um compilador básico e outras ferramentas necessárias para compilação de pacotes. Os “headers” do kernel da instalação estão disponíveis no CD-ROM de instalação do Ubuntu ($ uname -a).
$ sudo aptitude install build-essential linux-headers-2.6.15-26-server
6. Parar o serviço de rede:
$ sudo /etc/init.d/networking stop
7. Descompactar e compilar o drive para o kernel (informações completa deste passo estão contidas no arquivo README.TXT dentro do tarball baixado no site do fabricante da placa):
$ cd /tmp
$ tar -zxf tg3-3.71b.tar.gz
$ cd Server/Linux/Driver/tg3-3.71b
$ make
$ insmod tg3.ko
$ sudo make install
8. Neste ponto o driver já foi compilado e instalado.
$ sudo /etc/init.d/networking start
9. Pronto!
Broadcom NetXtreme 5708
1. Resumidamente repita os passos anteriores e utilize as informações abaixo:
Download do driver: http://www.broadcom.com/support/ethernet_nic/netxtremeii.php
Remoção do driver antigo: rmmod bnx2; rmmod tg3
Compilação e instalação:
$ cd /tmp
$ unzip linux-1.5.10c.zip
$ cd Server/Linux/Driver/
$ tar xvzf bnx2-1.5.10c.tar.gz
$ cd bnx2-1.5.10c/src
$ make
$ insmod bnx2.o
$ insmod bnx2.ko
$ sudo make install
Pronto!
Vale lembrar que o driver só foi compilado para o kernel atual, ou seja, caso haja atualização de kernel será necessário realizar outra compilação.
Referências:
https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.15/+bug/73647
http://www.broadcom.com
Muito bom, Alex Fooo. Voltou a blogar de com força, botei fé
Estimado,
Estoy tentando seguir los pasos pero cuando llego al “unto 7″, donde tengo que hacer o “make” no me funciona me tira error, no ejecuta…
Saludos
Darío.