Abaixo a "receita de bolo" para fazer o modem funcionar. O kernel utilizado foi o 2.6.15, podendo facilmente ser substituído por qualquer superior a 2.6.10.
Passo a passo:
1) Compilação do kernel
Instalar todos os pacotes necessários para a compilação.
Entrar na pasta source do kernel 2.6.15:
# cd /usr/src/linux-2.6.15
Copiar a configuração do seu kernel atual 2.x.x (para evitar possíveis problemas de Kernel Panic por exemplo):
# cp /boot/config-2.x.x .config
Iniciar a compilação:
# make menuconfig
Configurar os módulos exatamente como listados abaixo:
1. Dentro do menuconfig vá em:
Bus Options > PCI HOTPLUG
e marque:
(*) PCI hotplug suport;
(*) Fake PCI Hotplug Suport;
2. Volte ao menu principal do menuconfig e vá em:
Device Drivers > NetWorking Support > Network Options
e marque:
(*) Assynchrounos Transfer Mode (ATM) Support
(*) RFC1483/2684 Bridged Protocol
3. Volte ao menu "Networking Support" e marque:
(M) PPP suport;
(M) PPP suport for Async Serial Ports;
(M) PPP suport for Sync TTY port;
(M) PPP Deflate Compression;
(M) PPP Over Ethernet;
(M) PPP Over ATM;
4. Volte ao Menu "Device Drivers", vá em "Character Devices" e então marque:
(*) HDLC line discipline Support;
5. Volte ao Menu "Device Drivers", vá em "USB Support" então marque:
(M) USB Support;
(M) EHCI HCD Support;
(M) OHCI HCD Support;
(M) UHCI HCD Support;
(M) Alcatel SpeedTouch USB Supoort;
Criar pacote .deb da compilação do novo kernel:
# make-kpkg -rev Custom.1 kernel_image
OBS: O nome Custom pode ser mudado para um de sua preferência. Ex: albertoc.1.
Instalar o novo kernel (entrar na pasta onde foi criado o .deb antes):
# dpkg -i kernel-image-2.6.15_Custom.1_i386.deb
Criar o initrd para não haver problemas de Kernel Panic na inicialização:
# mkinitrd /boot/initrd.img-2.6.15 2.6.15
Configurar o gerenciador de boot para setar o initrd criado. Abaixo exemplo com o GRUB:
# vim /boot/grub/menu.lst
Acrescentar a linha destacada abaixo:
Resetar a máquina, entrar no novo kernel compilado, se tudo deu certo, sem nenhuma mensagem de erro, ir ao próximo passo. Caso dê algo errado ou esqueceu de acrescentar algum módulo, rode o comando abaixo (na pasta source do kernel):
# make-kpkg clean
Volte à etapa iniciar a compilação.
2) Carregar firmware do Modem
Rode o
firmware-extractor baixado anteriormente (com o firmware correto para o modelo do modem salvo na mesma pasta):
# chmod u+x firmware-extractor
# ./firmware-extractor modelodomodem.eni
Ele irá extrair dois arquivos (speedtch-1.bin e speedtch-2.bin) que servirão para carregar o firmware do modem na inicialização da máquina ou toda vez que o modem for plugado na porta.
Estes arquivos devem ser colocados na pasta firmware dentro de hotplug do seu novo kernel, geralmente em /usr/lib/hotplug/firmware:
# cp speedtch*.bin /usr/lib/hotplug/firmware
Reinicie a máquina e verifique se o firmware foi carregado.
Os leds inicialmente ficam piscando e após 30 segundos em média, se estabilizam e ficam ambos acesos (verdes). Se isto ocorreu, pode ir ao próximo passo. Do contrário, se algo deu errado, retire o modem da porta e recoloque, verifique a mensagem no console:
Quando tudo está correto:
usb 1-2: new full speed USB device using uhci_hcd and address 4
usb 1-2: reset full speed USB device using uhci_hcd and address 4
speedtch 1-2:1.0: found stage 1 firmware speedtch-1.bin
speedtch: already loaded
speedtch 1-2:1.0: found stage 2 firmware speedtch-2.bin
ATM dev 0: ADSL line is synchronising
ATM dev 0: DSL line goes up
ATM dev 0: ADSL line is up (320 kb/s down | 160 kb/s up)
Se ocorrer mensagem do tipo: speedtch 1-2:1.0 no found stage 1 firmware, então:
Verificar pasta hotplug padrão do kernel para colocar os arquivos .bin criados com o firmware-extractor.
3) Configurar a interface de rede do modem e a conta de autenticação ADSL
§ Instalar o pacote
libatm baixado anteriormente. Ex:
# dpkg -i libatm1_2.4.1-16_i386.deb
Instalar o binário
br2684ctl:
# chmod +x br2684ctl
# install -m 755 br2684ctl /usr/sbin
Criar o arquivo de configuração da conta ADSL. O arquivo deve ter o conteúdo abaixo, substituindo obviamente,
[email protected] pelo seu usuário e provedor de acesso: