Considerações Iniciais: Este texto visa ser fonte de todas as informações relativas ao uso do driver smartlink para ativar o modem no Ubuntu quer de maneira manual quer de maneira automática. Tudo que foi relatado aqui foi feito no
Ubuntu 8.04 Hardy Heron 32bits e usando uma versão do driver smartlink, portanto para quem for usar em outras versões façam a adaptação de pacotes
.deb que são usados, do
driver smartlink (versão) a ser usada e etc. O importante é que a essência é a mesma.
Configurando sua conexão discada para modems que usam driver smartlink
IntroduçãoResolvi escrever este artigo para compartilhar minhas experiências com este driver de ativação de modems para Linux chamado de Smartilink por considerá-lo um ótimo driver para quem usa conexão discada via softmodems. Considero esse um grande driver por três motivos que são eles:
- Serve para distribuições Linux que usam kernels das séries 2.4.x e 2.6.x;
- É o driver utilizado por uma grande variedade de modems;
- É o que mais rapidamente sofre novas atualizações.
Por estes e outros motivos é que chamo este driver de "driver coringa", pois como já informado acima ele serve para inúmeros modems e portanto se o usuário não sabe qual é o seu tipo de modem é uma boa escolha começar tentando por esse driver.
Modems que usam o driver da SmartlinkÉ sempre muito complicado falar em nomes de tipos de modems por que esta questão não é bem resolvida, ou seja, não há uma uniformidade quando o assunto é o nome de identificação do modem. Vou dar um pequeno exemplo, o modem que tem estas IDs
134d:2189 é reconhecido em alguns casos, no Windows, como sendo um
Intel 537EP e no Linux como sendo um
HDP56 Micromodem além de ter outras denominações também. No driver da Smartlink mais recente, que passou a dá suporte para este modem PC-Tel, ele denomina este modem como sendo um
HSP1688 PCI Modem.
Por esse motivo acho eu que a forma mais segura de identificação do tipo de modem são pelas suas IDs que neste caso são sempre as mesmas independentes do Sistema Operacional em uso ou o nome dado ao modem. As IDs são compostas por duas partes de 4 dígitos cada uma, separados por 2 pontos no qual a primeira parte indica o Vendedor e a segunda parte indica o Dispositivo, ou seja, sendo
xxxx:yyyy as IDs de um modem, a ID do vendedor seria
xxxx e a ID do dispositivo seria
yyyy.
Para saber como identificar as IDs do seu modem basta abrir um terminal e digitar o comando
lspci, este comando vai listar todos os dispositivos PCI em seu sistema. Quando for mostrada a lista de todos eles você deverá procurar pela linha que relativa ao modem, algo com
Communication controller ou
Modem. Anote a numeração antes desta palavra e digite mais isso no terminal
lspci -n | grep numeração. Para exemplificar digamos que o comando
lspci deu a seguinte linha em relação ao modem dentre outras informações sobre dispositivos PCI:
0000:00:11.6 Communication controller: VIA Technologies, Inc. AC'97 Modem Controller (rev 80)
Agora você deverá pegar a numeração que antecede o nome
Communication controller e usar com o outro comando que no caso seria assim:
lspci -n | grep 0000:00:11.6
a resposta seria algo assim:
0000:00:11.6 0780: 1106:3068 (rev 80)
e por este resultado poderemos observar que o modem tem ID
1106:3068 que como podemos observar numa lista mais abaixo, é um dos suportados pelo driver Smartlink. Ele é popularmente conhecido como
HSP56 MR (VIA).
A título ilustrativo, pois o número de modems suportados pode não se encerrar nesta lista como é o caso de alguns modems
motorola sm56 que só recentemente passou a ter suporte pelo driver Smartlink, segue todas as IDs dos modems suportados pelo Driver da Smarlink até o presente momento:
1022:7446 10de:01c1 10de:00d9 4005:0308 10b9:5450 10b9:5451 10b9:5457 10b9:5459 10b9:545a 1131:3400 10ec:8197 1055:9178 1039:7013 1039:7018 1106:3068 8086:2416 8086:2426 8086:2446 8086:2486 8086:24c6 8086:24d6 8086:7196 2000:2800 163c:3052 10a5:3052 2003:8800 163c:5459 10a5:5459 1002:434d 134d:2189 1057:3052
Caso tenham achado muito complicado a forma de saber a ID do seu modem, uma maneira mais rápida seria usar o comando:
lspci -d xxxx:yyyy
onde
xxxx:yyyy você mudaria pelos da tabela acima. Caso algum deles retornar algum tipo de informação relativa ao modem é por que a ID usada no comando representa o seu modem.
Caso seu modem não seja nenhum dos indicados acima, recomendo usar o script
scanModem para que ele identifique seu modem e gere alguns arquivo de textos numa pasta chamada de
Modem dentro da sua pasta de usuário na pasta home com informações que irão lhe auxiliar na descoberta de que driver usar, pois existem vários outros além do Smartlink, apenas este último abrange uma quantidade maior de modems. O link para download é:
http://linmodems.technion.ac.il/packages/scanModem.gzDito estas considerações iniciais sobre o driver Smartlink, passarei agora a falar sobre os passos para a instalação manual deste driver para a forma original de utilização do mesmo. Posteriormente falarei de outra forma de utilização deste driver que é para o caso de problemas em alguns sistemas e o módulo ALSA.
Analise cada uma das duas formas e use apenas uma delas para ativar seu modem já que muitos comandos serão repetidos nos dois métodos que são quase iguais, só sendo diferentes na forma de compilação do driver Smartlink.
Passos para instalação Manual (forma Original)A primeira coisa a fazer é instalar alguns pacotes necessários a compilação do driver do modem que são estes aqui:
- make
- gcc
- build-essential
- linux-headers-2.6.24-16-generic
- libasound2
- libasound2-dev
Nota: O pacote linux-headers-2.6.24-16-generic é para o caso da intalação inicial do Ubuntu 8.04 Hardy Heron 32bits, caso seu Ubuntu seja outro use o comando uname -r no terminal para saber qual é o valor, ou seja, linux-headers-versão_kernel
Felizmente a maioria já está instalada no seu sistema, mas para não haver dúvida pegue o seu CD do Ubuntu que deve ser o original. Quando falo em original estou querendo dizer o que você recebe ou a ISO que você baixa do site oficial e coloca no CD e não uma cópia remasterizada por que alguns arquivos presentes no CD original importantes podem não está em uma versão remasterizada ok.
Continuando, coloque o CD na bandeja, abra um terminal (
Aplicações >
Acessórios >
Consola ou
Terminal) e digite:
sudo apt-cdrom add
Irá parecer algo assim:
Usando ponto de montagem de CD-ROm /cdrom/
Desmontando CD-ROM
Aguardando por disco ...
Por favor, insira um Disco no leitor e pressione enter
Se o CD do Ubuntu já está na bandeja é só teclar ENTER para que ele adicione o CD como um repositório para o comando
apt-get/Synaptic.
Feito isso e com o CD ainda no driver, pelo terminal digite o seguinte comando:
sudo apt-get --assume-yes install make gcc build-essential linux-headers-2.6.24-16-generic
Aguarde o processo de instalação terminar. Para finalizar baixe (pelo outro sistema operacional) e instale este pacote aqui:
http://mirrors.kernel.org/ubuntu/pool/main/a/alsa-lib/libasound2-dev_1.0.15-3ubuntu4_i386.deb Nota: Este pacote libasound2-dev_1.0.15-3ubuntu4_i386.deb é para o Ubuntu 8.04 Hardy Heron 32bits, caso use outra versão do Ubuntu, procure pelo libasound2-dev correspondente aqui http://packages.ubuntu.com/ Para instalar basta colocar no Ubuntu e dar dois cliques nele e depois digitar sua senha.
A segunda medida é fazer o download do driver da smartlink pelo outro sistema operacional e depois levá-lo para o Ubuntu colocando na sua pasta de usuário dentro da pasta home. O link é:
http://linmodems.technion.ac.il/packages/smartlink/slmodem-2.9.11-20080629.tar.gzDe posse do driver abra um terminal (
Aplicações >
Acessórios >
Consola ou
Terminal) e descompacte o arquivo baixado no link acima:
tar -zxvf slmodem-2.9.11-20080629.tar.gz
Entre na pasta criada após a descompactação:
cd slmodem- 2.9.11-20080629
Já no interior da pasta dê os comandos para a compilação:
make
sudo make install
Password: (sua senha )
Aguarde alguns segundos para o processo de compilação terminar. Terminado o processo anterior baixe agora o módulo
UnGrab. Alguns modelos de winmodem supridos pelo smartlink não funcionam até que se carregue um módulo chamado ‘ungrab-winmodem’. A instalação desse módulo é fácil como se pode ver a seguir e seu download é pequeno, apenas 2.3KB.
Faça a mesma coisa que fez com o driver Smartlink, ou seja, fazer o download do driver da ungrab-wimodem pelo outro sistema operacional e depois levá-lo para o Ubuntu colocando na sua pasta de usuário dentro da pasta home. O link é:
http://linmodems.technion.ac.il/packages/smartlink/ungrab-winmodem-20080126.tar.gzDe posse do driver abra um terminal (
Aplicações >
Acessórios >
Consola ou
Terminal) e descompacte o arquivo baixado no link acima:
tar -zxvf ungrab-winmodem-20080126.tar.gz
Entre na pasta criada após a descompactação:
cd ungrab-winmodem-20080126
Já no interior da pasta dê os comandos para a compilação:
make
sudo make install
Password: (sua senha )
Passos para instalação Manual (forma ALSA)Antes de iniciarmos os procedimentos para esse segundo caso cabe aqui uma explicação.
Muitos usuários após seguirem fielmente os passos anteriores continuavam com seus modems sem funcionar, então resolvi ler o README do driver da Smartlink para ver se poderia encontrar algo sobre o que estaria acontecendo com estes usuários. Descobrir algo que poderia ser a solução e que era sobre um problema entre alguns modems e os respectivos módulos de som do computador destes usuários.
O texto original do README do driver da Smartlink que fala sobre isso é este:
ALSA mode
=========
ALSA has the built-in modem drivers included in 'alsa-driver' >= 1.0.2
and in Linux kernel >= 2.6.5. Currently there is 'intel8x0m' (snd-intel8x0m)
modem driver, which supports ICH based AC97 modems (MC97).
Recent 'alsa-driver' (>=1.0. has also support for NVidia NForce, SiS 630
(snd-intel8x0m), VIA686 (snd-via82xx-modem) and ATI IXP (snd-atiixp-modem)
based modems.
1. Configure your kernel and enable ALSA and ICH based modem support
( 'Device Drivers' -> 'Sound' -> 'Advanced Linux Sound Architecture' ->
'PCI devices' -> 'Intel i8x0/MX440; AMD768/8111 modems' ) .
2. Build and install kernel and modules as usual (make , make modules_install,
etc.). ICH modem driver modem module name is 'snd-intel8x0m'
(if was configured as module).
3. Build application 'slmodemd' with ALSA support. For this in
slmodem-2.9.x dir:
$ cd modem
$ make SUPPORT_ALSA=1
This will build 'slmodemd' with ALSA support. If compilation is failed
review Makefile (near ALSA_SUPPORT condition) and define right library
and/or CFLAGS .
Note: For above you need ALSA library and header files installed.
4. Use option '--alsa' when running 'slmodemd' and ALSA conventional
device name ('hw:0' or 'hw:1' for instance). If modem support in
the kernel was enabled as module module 'snd-intel8x0m' should be loaded.
Note: Recent version of 'alsa-lib' (>= 1.0.6) has built-in "modem" device
name support ('modem:0', 'modem:1', etc). It is recommended to use
those names with modems (mandatory with ATI IXP modems).
Note: When using ALSA modem driver you don't need to load other
modules ('slamr').
Que de forma resumida diz o seguinte: Para distribuições Linux baseadas em kernels maiores ou iguais a 2.6.5. e o ALSA maior ou igual a 1.0.8 ocorre um conflito entre o
slmodemd e o ALSA, pois ambos tentam usar o modem.
Este erro só ocorre para determinados computadores e suas respectivas placas de som, onde o ALSA carrega um destes módulos de som para o modem:
snd-intel8x0m ou
snd-atiixp-modem.
Por este motivo é que determinados usuários tem de fazer uma compilação do driver Smartlink de uma forma diferente para que o executável
slmodemd deixe estes módulos já citados fazerem a sua parte eliminando assim o conflito.
Depois desta pequena explicação vamos fazer os procedimentos para ativação do modem para o caso ALSA.
Inicialmente o usuário deve observar se um dos módulos já citados está presente em seu sistema, ou seja, se ele tem o
snd-intel8x0m ou
snd-atiixp-modem ativado no seu computador. Para isso dê o comando:
lsmod
Observe se nas informações mostrada aparece um dos módulos:
snd-intel8x0m (ou
snd_intel8x0m) ou o módulo
snd-atiixp-modem (ou
snd_atiixp_modem) e em caso positivo os procedimentos para sua compilação e ativação serão outros.
Sendo o seu caso o do ALSA, primeira medida é fazer o download do driver da smartlink que se encontra no link abaixo:
http://linmodems.technion.ac.il/packages/smartlink/slmodem-2.9.11-20080629.tar.gzDe posse do driver abra um terminal (
Aplicações >
Acessórios >
Consola ou
Terminal) e descompacte o arquivo baixado no link acima:
tar -zxvf slmodem-2.9.11-20080629.tar.gz
Entre na pasta criada após a descompactação:
cd slmodem- 2.9.11-20080629
Agora entre na subpasta modem da seguinte forma:
$ cd modem
Dentro desta pasta abra o arquivo Makefile do seguinte modo:
$ gedit Makefile
Procure pela seguinte linha:
ifeq ($(ARCH64), 0)
CC:= gcc
else
#SUPPORT_ALSA:=1
CC:= gcc -m32
endif
E retire o símbolo "
#" que se encontra a sua esquerda de
SUPPORT_ALSA:=1 para fazer com que esse passo seja executado na hora da compilação, pois do jeito que está ele será ignorado, ou seja, ele está desabilitado.
Ficaria assim:
ifeq ($(ARCH64), 0)
CC:= gcc
else
SUPPORT_ALSA:=1
CC:= gcc -m32
endif
Salve e feche o arquivo. Agora volte para a pasta inicial, ou seja:
$ cd /home/seu_usuário/slmodem-2.9.11-20080629
Lembrando que
/home/seu_usuário/ é a sua pasta de usuário onde você inicialmente deve colocar todos os drivers baixados da internet e de seu outro sistema operacional, portanto verifique bem isso para não errar o caminho. Peço sempre para colocar os drivers baixados na pasta de usuário por que quando se precisa executar algo pelo terminal e eu digo para abrir o terminal indo em
Aplicações >
Acessórios >
Consola ou
Terminal, ele já é aberto exatamente na pasta do usuário.
Voltando a pasta slmodem-2.9.11-20080629 dê os comandos:
make
sudo make install
Password: (sua senha )
Aguarde alguns segundos para o processo de compilação terminar. Terminado o processo anterior baixe agora o módulo
UnGrab. Alguns modelos de softmodems supridos pelo smartlink não funcionam até que se carregue um módulo chamado
ungrab-winmodem. A instalação desse módulo é fácil como se pode ver a seguir e seu download é pequeno, apenas 2.3KB.
Faça a mesma coisa que fez com o driver Smartlink, ou seja, fazer o download do driver ungrab-wimodem pelo outro sistema operacional e depois levá-lo para o Ubuntu colocando na sua pasta de usuário dentro da pasta home. O link é:
http://linmodems.technion.ac.il/packages/smartlink/ungrab-winmodem-20080126.tar.gzDe posse do driver, abra um terminal (
Aplicações >
Acessórios >
Consola ou
Terminal) e descompacte o arquivo baixado no link acima:
tar -zxvf ungrab-winmodem-20080126.tar.gz
Entre na pasta criada após a descompactação:
cd ungrab-winmodem-20080126
Já no interior da pasta dê os comandos para a compilação:
make
sudo make install
Password: (sua senha )
Particularmente acho que se deve sempre usar a compilação do driver Smartlink no modo ALSA ativado como fizemos acima antes de compilar o driver do modem, pois assim o executável
slmodemd criado na compilação vai poder ser usado tanto na forma original ( slmodemd + slamr ou slusb), como na forama ALSA ( slmodemd + snd-intel8x0m ou snd-atiixp-modem). Fica aí a dica de usar a segunda forma de instalação manual (caso ALSA).
Instalando o script de inicialização do modem (SL-MODEM-DEAMON)Para inicializar o modem vamos usar um script chamado de
sl-modem-daemon presente num pacote chamado de
sl-modem-daemon_2.9.10+2.9.9d+e-pre2-5ubuntu4_i386.deb. Como este pacote além de instalar o script
sl-modem-daemon instala também um executável
slmodemd já compilado por ele e que no nosso caso não será necessário, pois ao compilar o driver Smartlink já criamos um que vamos usar e para a instalação deste pacote não sobrescrever o nosso executável
slmodemd, vamos renomeá-lo e depois sobrescrever o que o pacote em questão vai instalar.
Novamente abra um terminal (
Aplicações >
Acessórios >
Consola ou
Terminal) e digite o seguinte comando:
sudo mv -f /usr/sbin/slmodemd /usr/sbin/slmodemd_backup
depois baixe o pacote
sl-modem-daemon_2.9.10+2.9.9d+e-pre2-5ubuntu4_i386.deb deste link:
http://mirrors.kernel.org/ubuntu/pool/restricted/s/sl-modem/sl-modem-daemon_2.9.10+2.9.9d+e-pre2-5ubuntu4_i386.debNota: Este pacote sl-modem-daemon_2.9.10+2.9.9d+e-pre2-5ubuntu4_i386.deb é para o caso do Ubuntu 8.04 Hardy Heron 32bits, se usar outra versão do Ubuntu procure pela respectiva versão do sl-modem-daemon aqui http://packages.ubuntu.com/