Modem LM-I56N no Ubuntu 5.04: Uma dica e algumas dúvidas.

Iniciado por admoraes, 30 de Setembro de 2005, 10:52

tópico anterior - próximo tópico

admoraes

Tive vários problemas em instalar este modem. Após alguns problemas, consegui fazê-lo funcionar no Suse 9.3. No ubuntu foi mais difícil, pois todas as dicas e pacotes não funcionavam. Sou novo no linux, mas espero que minha experiência ajude muitos que passam pelo mesmo problema que eu. Agradecimentos à equipe do site http://linmodems.technion.ac.il, principalmente a Sasha e MarvS, e ao Rodrigo Rigues da Linux Magazine.

O problema se deve ao fato de algumas versões do Kernel identificam alguns chipset que funcionam com o driver da smartlink como um modem real.

No caso do Ubuntu, o problema é que, mesmo com o pacote instalado e embora o daemon do driver não estivesse instalado, por algum motivo o hotplug carregava o driver do modem.

Acho que se vocês testarem os comando abaixo e obtiverem o mesmo resultado que eu, o que fiz pode ajudá-los

Execute:

# dmesg | grep slamr

Verifique se o resultado foi:

slamr: module license 'Smart Link Ltd.' taints kernel.
slamr: SmartLink AMRMO modem.
slamr: device 10b9:5459 is grabbed by another driver

Se o driver tiver instalado e ao executar:

# /usr/sbin/slmodemd -country=BRAZIL /dev/slamr0

e tem o resultado:

error: mdm setup: cannot stat `/dev/slamr0': No such file or directory
error: cannot setup device `/dev/slamr0'

O seu problema é semelhante ao meu.

Como os pacotes .deb não surtiram efeito, usei os seguintes pacotes que baixei de http://linmodems.technion.ac.il/packages/smartlink/:

1) slmodem-2.9.9d.tar.gz
2) ungrab-winmodem.tar.gz

OBS: É preciso desinstalar os pacotes do modem já instalados.

Como foi preciso compilar esses pacotes, foi necessário instalar as fontes do kernel e o pacote do gcc. Usuários mais experiêntes podem indicar quais pacotes, pois não me lembro agora.

No terminal, como root, descompactei os pacotes 1) e 2) em /usr/src/

tar -xzvf slmodem-2.9.9d.tar.gz /usr/src/
tar -xzvf ungrab-winmodem.tar.gz /usr/src/

Vamos compilar. Ainda como root:

# cd /usr/src/slmodem-2.9.9d
# make clean
# make
# make install
# cd /usr/src/ungrab-winmodem
# make clean
# make
# make install

Vamos carregar o driver. É importante que o ungrab-winmodem seja carregado antes:

# modprobe ungrab-winmodem
# modprobe slamr

Se tudo tiver OK,

# /usr/sbin/slmodemd --country=BRAZIL /dev/slamr0

Se você obter uma mensagem semelhante a esta, está tujdo OK:

SmartLink Soft Modem: version 2.9.9d Sep 30 2005 20:58:43
modem `ttyS0' created. TTY is `/dev/pts/1'
symbolic link `/dev/ttySL0' -> `/dev/pts/1' created.
Use `/dev/ttySL0' as modem device, Ctrl+C for termination.

Dê o Ctrl+C e crie o link simbólico:

# ln -s /dev/ttySL0 /dev/modem

Agora vem o detalhe importante. O modem funcionou, conectei-me a Internet, etc... Mas quando reiniciava o micro e executava novamente os comando, recebia de novo o mesmo erro:

# modprobe ungrab-winmodem
# modprobe slamr
# /usr/sbin/slmodemd -country=BRAZIL /dev/slamr0
error: mdm setup: cannot stat `/dev/slamr0': No such file or directory
error: cannot setup device `/dev/slamr0'

Bem, por algum motivo o Hotplug do Ubuntu carrega o driver. É necessario descarregar o slamr antes de todo o procedimento:

# modprobe -r slamr
# modprobe ungrab-winmodem
# modprobe slamr
# /usr/sbin/slmodemd -country=BRAZIL /dev/slamr0
SmartLink Soft Modem: version 2.9.9d Sep 30 2005 20:58:43
modem `ttyS0' created. TTY is `/dev/pts/1'
symbolic link `/dev/ttySL0' -> `/dev/pts/1' created.
Use `/dev/ttySL0' as modem device, Ctrl+C for termination.

OK. Funciona. Espero que a dica ajude a todos que tem sofrido como eu. Mas agora enfrento um pequeno problema. empre dá erro de dependência aos instalar o pacote sl-modem-daemon.

Daqui pra frente, preciso a ajuda de vocês para que eu instale manualmente o script do pacote no Ubuntu (/usr/src/slmodem-2.9.9d/script/slmodemd) para que o driver do modem seja carregado a cada inicialização. Sei que preciso copiar este script para /etc/init.d/, mas sei também que devo criar links simbólicos para /etc/rc?.d, onde o ? indica os níveis (0, 1, 2, 3, 4, 5, 6). Não sei fazer isso.

É precisaria adaptar o script /etc/init.d/slmodem para que ele descarregue o driver (modprobe -r slamr), carregue a correção (modprobe ungrab-winmodem) e carregue novamente o driver (modprobe slamr). Tambpem não sei fazer isso. Espero a ajuda de vocês e espero que minhas dicas também os ajude.
Augusto Drumond Moraes

FaBMak

Se vc quer que o driver não seja carregado automaticamente pelo hotplug basta colocar ele no blacklist. Insira o nome do driver a ser "ignorado" pelo hotplug no arquivo /etc/hotplug/blacklist.

Se vc quer "forçar" o carregamento do driver durante o boot, basta inserir o nome do driver no arquivo /etc/modules.

Sugiro que vc coloque o driver no blacklist e depois coloque o mesmo no modules, obdecendo a ordem:
primeiro ->  ungrab-winmodem e depois -> slamr

Para inserir o /etc/init.d/slmodem na inicilização do sistema basta usar o comando update-rc.d. Então o comando update-rc.d slmodem default deve resolver.


FaBMak
"Não creias impossível o que apenas improvável parece". (Shakespeare)
fabmak://website