Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais] ·  Efetividade ·  Linux in Brazil ·  Floripa  

Corrigindo o driver para modems Smartlink, para Kernel 2.6.13 em diante

O driver linux para modem Smartlink tem apresentado problemas ao ser usado em qualquer distribuição com kernel 2.6.12 em diante. O driver não compila acusando um erro no arquivo modem.c e, mesmo depois que o erro dentro do código é manualmente corrigido, ele continua não funcionando, exibindo um erro ao carregar o módulo: "insmod: error inserting 'slamr.ko': -1 Unknown symbol in module". Este erro é conhecido e afeta todas as distribuições recentes, baseadas no Kernel 2.6.12 em diante. A Smartlink ainda não disponibilizou uma versão corrigida do driver e nem existe previsão para isto, já que a última versão do driver foi lançada em abril do ano passado, quando o problema já existia. Mesmo na lista do Kernel, a única referência sobre o problema é esta mensagem, que simplesmente recomenda o uso dos drivers open-source incluídos recentemente no Alsa (que funcionam apenas com algumas variações do chipset do modem, encontradas em notebooks com chipsets Intel e Ati e placas mãe com chipset nForce), sem indicar uma solução para o driver original.

Pesquisando mais a fundo, encontrei dois patches distintos, um postado na lista do Fedora e outro no Linux-on-Laptops. Isoladamente, nenhum dos dois corrige o problema, mas combinando ambos é possível chegar a uma versão corrigida do driver, que funciona perfeitamente no Kernel 2.6.14 e, possivelmente, qualquer outra versão recente onde o driver regular apresenta o problema. Aplicar os patches envolve modificar o código fonte da camada do driver que faz a junção com o Kernel, o que é trabalhoso. O primeiro patch pode ser aplicado diretamente usando o comando "patch", enquanto o outro precisa ser aplicado manualmente. Outro problema é que, para que o driver funcione, é necessário alterar a linha com a licença para "GPL". Isso é mais problemático (do ponto de vista legal) do que pode parecer à primeira vista. Nas versões atuais do Kernel, muitas funções estão disponíveis apenas para uso de módulos marcados como GPL. A alteração da licença dentro do código do driver burla isso, fazendo com que o driver da Smartlink seja tratado como se fosse um módulo GPL pelo Kernel, embora seja um módulo proprietário. ...”
A nota foi enviada por Carlos E. Morimoto (morimotoΘguiadohardware·net) , que enviou este link para mais detalhes.

Comentários dos leitores

Os comentários abaixo são responsabilidade de seus autores e não são revisados ou aprovados pelo BR-Linux. Consulte os Termos de uso para informações adicionais. Esta notícia foi arquivada, não será possível incluir novos comentários.
Comentário de povoação
driver mais atual: eu tenho o driver slmodem-2.9.11(alguma coisa).tar.gz.
Eu uso o kernel 2.6.14 do debian unstable.
Não lembro o link onde peguei, me enviaram na lista do slmodem.
Se alguem quiser eu passo, a pessoa testa e disponibiliza ai em algum lugar para todos. Agora não sei se esse driver foi "patcheado" ou será a proxima versão realmente.

Comentário de biozit
eu quero: tem como vc me enviar isso ??

biozit@gmail.com

Fabio "biozit" Andrijauskas
EU SEI VOAR!!
http://www.biozit.rg3.net/ - blog
USF - Ciencia da Computação
RA: 002200400148
Comentário de hamacker
Uso o artigo deste link : : Uso o artigo deste link :
http://www.ubuntu-br.org/Wiki/GuiaCapitulo04_Smartlink

e ele tem me funcionado muito bem com o kernel 2.6.12-686 sem nenhum patch. Mesmo no debian (unstable).
Comentário de StanStyle
Linmodem: O pessoal da Linmodem dá suporte aos chipset da smartlink através do módulo deles (que é mantido pela comunidade). Basta baixar no site deles, sem dor de cabeça.
Comentário de Carlos E. Morimoto
Pra funcionar no 2.6.14 ele c: Pra funcionar no 2.6.14 ele com certeza é uma versão com o patch, cai no problema de violar as licensas que citei no artigo.

Casos como este são complicados, pois além da questao tecnica, tem a questão legal e até filosófica, pois ao instalar o driver patcheado você está violando a GPL, sob a qual o Kernel é licenciado. Uma situação no minimo estranha para nós.
Comentário de Fábio
eis o link pro driver opensource pro smartlink: http://linmodems.technion.ac.il/packages/smartlink/
Comentário de Grobsch
E o Nvidia?: É por este motivo de licença no kernel que o driver da Nvidia sempre dá um erro estranho ao iniciar?
Kernel module load error: Warning: loading ./usr/src/nv/nvidia.o will taint the kernel: non-GPL license - NVIDIA
See http://www.tux.org/lkml/#export-tainted for information about tainted modules
GoblinX, um livecd nacional baseado no Slackware
Comentário de Carlos E. Morimoto
O driver da nVidia implementa: O driver da nVidia implementa uma série de funcoes proprias, assim ele não usa as funoes restritas do kernel e pode funcionar nas versões recentes, de forma perfeitamente legal.

Esta mensagem só avisa que você carregou um modulo proprietário e está por sua conta.
Comentário de Bruno Gonçalves
Esse ai :): Esse driver da linmodens já compilei no 2.6.13, 2.6.14 e 2.6.15 sem problema algum
Comentário de magrox
modem lg (netodragon): Aproveitando o assunto alguém ai sabe como instalar o modem lg (netodragon) no suse 10 com kernel 2.6.13?
ja tentei de tudo e nada funciona ja tentei até mesmo a dica do morimoto.

-=|Måg®ø×|=-™
Comentário de Cesar.AR
Eu estou usando ...: ... o driver que está nos repositórios do Debian SID (sl-modem-source 2.9.9d-7) com o kernel 2.6.15-1-686-smp resultando o modulo compilado sl-modem-modules-2.6.15-1-686-smp sem problemas. Não sei se é versão com patch ou não. Aliás, nunca ví o modem funcionar tão bem e numa velocidade tão boa.

Cesar Ramina
- LinuxUser#225159 - Debian

Comentário de Carlos E. Morimoto
Você está enganado ;) Na ve: Você está enganado ;) Na verdade você está usando o slmodemd em conjunto com o driver snd-intel8x0m, que é o driver open-source. Por isso que o modem está mais rápido que antes. O serviço sl-modem-daemon carrega o módulo correto.

Esta dica que postei é para gerar um módulo slamr.ko funcional, para os modens que nao sao compativeis com o driver opensource.

O slamr.ko gerado pelo module-assistant dá o mesmo erro que citei:

# insmod -f ./slamr.ko
insmod: error inserting './slamr.ko': -1 Unknown symbol in module

Comentário de Ludi
Se não conseguiu não tentou de tudo :): 1. Baixe o Slmodem mais recente do Linmodem (eu estou usando o slmodem-2.9.11-20051101).
2.$ tar xvzf slmodem-2.9.11-XXXXX.tar.gz
3.$ cd slmodem-2.9.11-XXXXX
4.$ make
Pronto, agora os módulos estão prontos. Na pasta /modem haverá o slmodemd e na pasta /drivers haverão o slamr e o slusb.
Antes de instala-los, instale o pacote smartlink-softmodem-2.9.10-17.i586.rpm que vem no SUSE, esse pacote irá instalar os scripts de automação e o slmodemd que vem com o pacote.
Depois de instalar a rpm, vá até a pasta /usr/sbin substitua o slmodemd existente pelo o que você compilou (talvez fazendo make install funcione, mas eu não me lembro).
Copie e cole os módulos slamr.ko e slusb.ko pasta /lib/modules/2.6.13-XX-default/extra.
Agora reinicie o computador. Provavelmente o script já fará todo o trabalho de automação (talvez no segundo reboot), mas se você precisa acessar o script direto (por exemplo, para forçar o desligamento do modem), basta ir até a pasta /etc/init.d/ e como root, chamar ./slmodemd OPTION (exemplo, restart).

Ex Stanstyle
Comentário de renatogdelf
Netodragon: Olha, quando eu usava o SuSe 9.2 eu tinha um famigerado modem netodragon. Após tentar de tudo, todas as possibilidades (todas mesmo!!!), cheguei a esta dica que me salvou,Modens PCTEL/LG/VIA sem complicação (talvez um pouquinho). ?o com ela é que consegui resolver meu problema.

Não sei se ela será legal para o caso do SuSe 10.

Agora, no SuSe 10 OSS, estou com outro modem, USR, que foi prontamente reconhecido.
Comentário de Ludi
O kernel do 9.2 era o 2.6.5 s: O kernel do 9.2 era o 2.6.5 se não me engano. Esse source da Smartlink funciona nas versões antigas (leia o tópico), agora não mais.
O drive do linmodem suporta vários modelos da smlink, e até alguns em modo alsa (compartilhado com o sistema de som) que são embutidos na ponte sul, inclusive de outras "marcas".
O netodragon do modem da LG na verdade é o Smartlink, só a marcação que é da Netodragon.
Eu estou usando um modem que é dito ser motorola (e tem até a marca no chipset) mas na verdade é um SL2800. Um lspci -v mostra isso fácil:

Modem: Smart Link Ltd.: Unknown device 2800 (rev 02) (prog-if 00 [Generic])
Subsystem: Unknown device 1801:2800
Flags: bus master, medium devsel, latency 32, IRQ 5
Memory at ee000000 (32-bit, prefetchable) [size=16M]
Capabilities: [80] Power Management version 2

Comentário de Samadai
Hello there, I'm using a Neto: Hello there, I'm using a Neto Dragon PCI modem based on a SmartLink chipset on my desktop computer, the original driver (netodragon.com) worked on my Mandrake 10.0 (kernel 2.6.9) and refuses to work under my Mandriva 2006 (kernel 2.6.12), I don't know if you've got a solution I tried everything even SmartLink patched drivers that worked on my 2nd computer (a Laptop using a smartlink modem under Mandriva 2006 of course)...
Comentário de Alexandre Ortiz
Driver: Manda os drivers e as instruções de instalação passo a passo. Vou criar uma página só pro ubuntu pra ficar mais fácil pra galera encontrar drivers que são dificeis de instalar. Abraços. tochi@curitiba.org.br
BR-Linux.org
Linux® levado a sério desde 1996. Notícias, dicas e tutoriais em bom português sobre Linux e Código Aberto. "A página sobre software livre mais procurada no Brasil", segundo a Revista Isto É.
Expediente
Sobre o BR-Linux
Enviar notícia ou release
Contato, Termos de uso
FAQ, Newsletter, RSS
Banners e selos
Anunciar no BR-Linux
BR-Linux apóia
LinuxSecurity, Tempo Real
Suporte Livre, Drupal
Verdade Absoluta
Pandemonium
Efetividade, Floripa.net
sites da comunidade
Ajuda
Moderação
Flames: não responda!
Publicar seu texto
Computador para Todos
Notícias pré-2004
Tutoriais, HCL pré-2004