Softmodem em Linux com dois kernels

Descreve-se como adaptar o programa de softmodem da Smart Link (R) para ser usado em Linux com dois ou mais kernels da série 2.6 e dois modens. A distribuição usada foi Slackware e provavelmente o método funciona em todas. Descrita apenas a adaptação e não a instalação básica em um kernel, esta é referenciada a outros textos. Palavras-chave: modem, softmodem, Linux, Slackware.

[ Hits: 10.244 ]

Por: Elias Zoby em 03/11/2008 | Blog: http://concordancia.webs.com


Softmodem no Linux



A última versão do Slackware Linux que permitiu o uso de kernel das séries linux-2.4 e 2.6 foi a 11. A partir da 12 apenas linux-2.6.xx podem ser usados. Pode-se instalar mais de um kernel 2.6 sem maiores complicações, bastando colocar as entradas para cada um deles no boot loader.

As únicas aplicações com problemas que conheço são as que compilam seus próprios módulos de kernel, como a de softmodem. Mas é possível fazê-la funcionar nos dois kernels, até mesmo com mais de um softmodem, pelo menos se eles usarem drivers Smart Link (slmodem), e talvez com outros também.

Quando uma aplicação constrói seus módulos ela os instalará em /lib/modules/`uname -r`.

O slmodem deve ser compilado uma vez, porém instalado em diretórios temporários em cada kernel separadamente. Visto que o ../drivers/Makefile tem instruções para desinstalar versões anteriores quando do make install, não sei se é possível fazer a instalação para dois kernels sem prévio empacotamento. O uso de pacotes pré-compilados facilita em muito o controle e desinstalação dos programas, essa é a maneira que sempre uso e será descrita aqui. Neste caso os módulos (drivers) serão instalados ao mesmo tempo, não havendo posterior para desinstalar o anterior.

Quem costuma fazer o make install direto pode descrever a forma adequada de fazê-lo para dois kernels, bem como a complicada desinstalação futura em caso de perda dos códigos fontes.

Todos os kernels Linux podem ser encontrados em: Kernel.org

A compilação de slmodem e instalação em um kernel, bem como a alteração necessária para superiores a linux-2.6.24.x, pode ser vista em outros locais:
Aqui será descrita a adaptação a dois, ou mais, kernels e modens.

Instalação do slmodem

Após desempacotado e compilado o slmodem-2.9.11.aammdd (ano mês dia) com:

tar zxvf slmodem-2.9.11.aammdd.tar.gz && cd slmodem-2.9.11.aammdd && make

Loga-se como root e faz-se a instalação num diretório temporário:

# make install DESTDIR=/onde/quiser

É imprescindível que a partir daqui o usuário tenha direitos de root, do contrário a instalação ficará incompleta.

Reinicia o sistema com o outro kernel, entra no diretório ../slmodem-2.9.11.aammdd já compilado e repete o make install com outro destino:

# make install DESTDIR=/outro/local

Escolhe uma das instalações para ser a base, prefiro a do kernel mais novo (2.6.27). Digamos que seja /onde/quiser. Entra na outra instalação e copia o diretório com a numeração do kernel (uname -r) que está em /outro/local/lib/modules. Digamos 2.6.22. Agora entra na instalação base, abre /onde/quiser/lib/modules e cola 2.6.22. O .../modules então conterá dois subdiretórios: 2.6.22 e 2.6.27.

Volta para /onde/quiser e comanda:

# makepkg slmodem-2.9.11-aammdd-i686-2kern.tgz

Isso com Slackware, outras distribuições tem outros comandos e formatos para nomes de pacotes.

Instala o pacote pelo procedimento normal, volta ao diretório slmodem-2.9.11.aammdd e comanda:

# modprobe slamr

ou reinicia o micro após colocar os devidos comandos no rc.local (Slack), nalgum outro script que seja executado na inicialização, ou mesmo em script próprio (ZOBY 2008).

Os comandos para uso do modem e do discador são os mesmos de quando se tem apenas um kernel.

Se houver mais de um modem, cada um será identificado por número, ficando /dev/slamr0, /dev/slamr1 etc. e essa numeração entrará nos comandos mknod após reboot:

# mknod -m 600 /dev/slamr0 c 242 0
# mknod -m 600 /dev/slamr1 c 242 1


bem como na chamada do slmodemd e configuração do discador, pois um usará /ttySL0, outro ttySL1...

Para saber qual a identificação do módulo de cada modem usa-se "dmesg | grep slamr".

Exemplo da saída em minha máquina com dois modens PCI:

dmesg |grep slamr
slamr: module license 'Smart Link Ltd.' taints kernel.
slamr: SmartLink AMRMO modem.
slamr: probe 2000:2800 SL2800 card...
slamr 0000:00:09.0: PCI INT A -> Link[LNKB] -> GSI 10 (level,
low) -> IRQ 10
slamr: slamr0 is SL2800 card.
slamr: probe 1106:3068 VIA3058 card...
slamr 0000:00:11.6: PCI INT C -> Link[LNKC] -> GSI 5 (level,
low) -> IRQ 5
slamr 0000:00:11.6: setting latency timer to 64
slamr: mc97 codec is SIL21
slamr: slamr1 is VIA3058 card.

Nota-se que o Smart Link é slamr0 e o VIA é slamr1 (após a instalação completa do slmodem), além disso são informados os IDs e chipsets.

Os comandos detalhados e configuração do discador podem ser vistos nos artigos supra citados, inclusive para os casos em que o modem é preso (grabbed) por outro driver.

    Próxima página

Páginas do artigo
   1. Softmodem no Linux
   2. Observações, conclusão e referências
Outros artigos deste autor

Montar MP3 e pendrives USB automaticamente com Hotplug

Caracteres especiais no teclado Linux: como adaptar às necessidades do escritor

Softmodem compatível com Smart Link em kernel Linux 2.6.24 ou superior

Instalar e configurar Slackware 10.2 a 12 para um desktop

Por que e como referenciar artigos nos sites de informática

Leitura recomendada

Minimalismo em ambientes gráficos

Gnuplot - versátil ferramenta científica

GRUB 2 - Monte você mesmo o menu

WeeChat - Um (O) cliente IRC CLI

Utilizando GNU/Autotools em Projetos

  
Comentários
[1] Comentário enviado por removido em 04/11/2008 - 11:21h

Gostei do seu artigo os modenzinhos são legais para quebrar a cabeça tentando configurar,
mas só por isso já que com o preço da banda larga hoje nao vale a pena ficar sofrendo com a conexão discada.
Parabéns.

sniper!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts