Driver Smartlink e modem discado, tudo a seu respeito em relação ao Ubuntu

Iniciado por alarcon, 11 de Abril de 2009, 22:27

tópico anterior - próximo tópico

alarcon

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ção

Resolvi 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:

Citar0000: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:

Citarlspci -n | grep 0000:00:11.6

a resposta seria algo assim:

Citar0000: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:

Citar1022: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:

Citarlspci -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.gz

Dito 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:

Citarsudo apt-cdrom add

Irá parecer algo assim:

CitarUsando 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:

Citarsudo 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.gz

Nota: Esta versão do driver Smartlink é a adequada para o Ubuntu 8.04 Hardy Heron 32bits, mas caso esteja usando outra versão do Ubuntu procure pelo driver mais adequando ou mais recente aqui http://linmodems.technion.ac.il/packages/smartlink/

De posse do driver abra um terminal (Aplicações > Acessórios > Consola ou Terminal) e descompacte o arquivo baixado no link acima:

Citartar -zxvf slmodem-2.9.11-20080629.tar.gz

Entre na pasta criada após a descompactação:

Citarcd slmodem- 2.9.11-20080629

Já no interior da pasta dê os comandos para a compilação:

Citarmake
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.gz

De posse do driver abra um terminal (Aplicações > Acessórios > Consola ou Terminal) e descompacte o arquivo baixado no link acima:


Citartar -zxvf ungrab-winmodem-20080126.tar.gz

Entre na pasta criada após a descompactação:

Citarcd  ungrab-winmodem-20080126

Já no interior da pasta dê os comandos para a compilação:

Citarmake
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:

Citar
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.8) 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:

Citarlsmod

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.gz

Nota: Esta versão do driver Smartlink é a adequada para o Ubuntu 8.04 Hardy Heron 32bits, mas caso esteja usando outra versão do Ubuntu procure pelo driver mais adequando ou mais recente aqui http://linmodems.technion.ac.il/packages/smartlink/

De posse do driver abra um terminal (Aplicações > Acessórios > Consola ou Terminal) e descompacte o arquivo baixado no link acima:

Citartar -zxvf slmodem-2.9.11-20080629.tar.gz

Entre na pasta criada após a descompactação:

Citarcd slmodem- 2.9.11-20080629

Agora entre na subpasta modem da seguinte forma:

Citar$ cd modem

Dentro desta pasta abra o arquivo Makefile do seguinte modo:

Citar$ gedit Makefile

Procure pela seguinte linha:

Citarifeq ($(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:
Citarifeq ($(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:

Citar$ 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:

Citarmake
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.gz

De posse do driver, abra um terminal (Aplicações > Acessórios > Consola ou Terminal) e descompacte o arquivo baixado no link acima:

Citartar -zxvf ungrab-winmodem-20080126.tar.gz

Entre na pasta criada após a descompactação:

Citarcd  ungrab-winmodem-20080126

Já no interior da pasta dê os comandos para a compilação:

Citarmake
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:

Citarsudo 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.deb

Nota: 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/

alarcon

#1
Novamente baixe pelo outro sistema operacional e coloque na sua pasta de usuário dentro da pasta home pelo Ubuntu. Abra um terminal (Aplicações > Acessórios > Consola ou Terminal) e digite:

Citarsudo dpkg -i --force-all sl-modem-daemon_2.9.10+2.9.9d+e-pre2-5ubuntu4_i386.deb

depois de terminada a instalação e ainda com o terminal aberto execute os 7 comandos na seqüência:

Citarsudo /etc/init.d/sl-modem-daemon stop
cd /etc
sudo sed -i -e 's/SLMODEMD_COUNTRY=USA/SLMODEMD_COUNTRY=BRAZIL/g' default/sl-modem-daemon
sudo sed -i -e 's/""/"--perm=0666"/g' default/sl-modem-daemon
sudo rm -f /usr/sbin/slmodemd
sudo mv -f /usr/sbin/slmodemd_backup /usr/sbin/slmodemd
sudo /etc/init.d/sl-modem-daemon restart

Muito importante que você digite cada comando exatamente com está escrito não esquecendo de nenhuma letra espaço e etc.


Passos para instalação Manual (forma ALSA – modem HDA)

Alguns Computadores não possuem uma paca de modem e sim uma placa de Audio especial (HDA) que faz o duplo papel de placa de audio e  modem. O driver smartlink é capaz de dar suporte para alguns tipos de modem HDA.

Infelizmente neste caso não é possível usar o script sl-modem-daemon para ativar esta forma depois do driver já compilado pelo procedimento já explicado anteriormente para a forma ALSA.

Basicamente a linha que vai ativar o modem é do tipo:

Citarsudo /usr/sbin/slmodemd -c BRAZIL --alsa --perm=0666 hw:0,1

Só que a última parte do comando, hw:0,1, varia de modem para modem. O comando:

Citarsudo cat /proc/asound/pcm

Pode fornecer um caminho a se seguir para saber o que usar, entretanto o caminho mais fácil seria por tentativa e erro testando cada um destes aqui: modem:0; modem:1; hw:0,1; hw:0,2 até 6.

Digamos que você testando o comando em questão, dê que o hw:0,1 tenho sido o correto, então no terminal você digitaria os seguintes comandos:

Citarsudo echo '#!/bin/sh' >> /etc/init.d/ativar-modem
sudo echo 'modprobe -r slamr' >> /etc/init.d/ativar-modem
sudo echo 'modprobe -r ungrab-winmodem' >> /etc/init.d/ativar-modem
sudo echo '/usr/sbin/slmodemd -c BRAZIL --alsa --perm=0666 hw:0,1' >> /etc/init.d/ativar-modem
sudo chmod +x /etc/init.d/ativar-modem
sudo ln -sf /etc/init.d/ativar-modem /etc/rc2.d/S98ativar-modem
sudo ln -sf /etc/init.d/ativar-modem /etc/rc3.d/S98ativar-modem
sudo ln -sf /etc/init.d/ativar-modem /etc/rc4.d/S98ativar-modem
sudo ln -sf /etc/init.d/ativar-modem /etc/rc5.d/S98ativar-modem

Ou seja, você está criando um script chamado de ativar-modem que será o responsável pela ativação do modem HDA (modo ALSA) durante o boot do sistema.

Atenção que no nosso exemplo constatamos que deveríamos usar o hw:0,1 pelo teste da tentativa e erro, mas poderia ter sido o  modem:0 ou modem:1 ou hw:0,2 até 6 ok.


Programa de discagem para acesso a internet (GOME-PPP)

Vou fornecer aqui o método mais simples para se conectar a internet que é instalando e o frontend para o wvdial chamado de gnome-ppp. Inicialmente você pode baixá-lo neste link aqui:

http://mirrors.kernel.org/ubuntu/pool/universe/g/gnome-ppp/gnome-ppp_0.3.23-1_i386.deb

Nota: Este pacote gnome-ppp_0.3.23-1_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 discador gráfico gnome-ppp aqui http://packages.ubuntu.com/

para instalá-lo é simples, basta colocar na sua pasta de usuário no Ubuntu e dar dois cliques nele seguido da digitação de sua senha.

Depois de instalado basta ir no menu Aplicações > Internet > GNOME PPP, mas cabe aqui algumas considerações quanto a sua configuração, ao abrir a janela do discador preencha o local de nome de acesso do provedor de forma completa ( com o @ e domínio) e sua senha. Clique no botão  Configuração e deixe exatamente desta forma aqui para as abas Modem, Rede e Opções:

Aba Modem:




Aba Rede:




Aba Opções:




Alguns tipos de modem suportados pelo driver Smartlink requerem que na aba Opções do discador gnome-ppp a opção verificar portadora fique desmarcada, portanto tente a conexão com esta opção marcada e desmarcada para em qual delas seu modem se encaixa.


Ativação Automática para os dois Casos (Original e ALSA)

Bem pensando sempre em facilitar as coisas para o usuário final e ainda com poucas experiências com o Linux, eu fiz um pacote compactado em .tar.gz que automatiza a maioria dos passos para que o usuário tenha de executar apenas um script de ativação e responder a umas perguntas que serão feitas por janelas gráfica elaboradas no Zenity visando assim diminuir os possíveis erros.

O pacote compactado para o Ubuntu 8.04 Hardy Heron 32bits se chama modem-arquivos-v25.tar.gz e o link para baixar o mesmo se encontra no meu tutorial chamado de Tutorial para HSP56 MR driver Smartlink mais especificamente neste link aqui:

http://ubuntuforum-br.org/index.php/topic,4204.msg222673.html#msg222673

Para instalar o pacote basta baixá-lo pelo outro sistema operacional, levá-lo para o Ubuntu colocando sempre na sua pasta de usuário. Pelo nautilus basta clicar com o botão direito do mouse sobre ele e escolher a opção extrair aqui. Será criada uma pasta chamada de modem-arquivos-v25 dentro da sua pasta de usuário na pasta home, entre nela e leia os arquivos Leia-me.txt (resumido) e o guia_instalação.pdf (completo com ilustrações) que explicam como usar o pacote e ativar o modem. Se preferir pelo terminal e depois de colocar o pacote na sua pasta de usuário basta o comando:

Citartar -zxvf modem-arquivos-v25.tar.gz

Este pacote inicialmente verifica qual é o caso para cada usuário e compila o driver conforme o caso além de fazer os outros passos necessários para a ativação do modem durante o boot. Como um Plus ele também instala e configura o discador gnome-ppp da melhor maneira possível, ou seja, da forma o mais padrão possível que funciona na maioria dos casos criando apenas uma conta e se você tiver mais de um provedor de acesso deverá fazer as outras configurações de conta da forma manual.

A configuração do gnome-ppp durante o processo de instalação do pacote vai fazer algumas perguntas básicas para você, portanto responda corretamente e são as seguintes:


  • Qual o nome do usuário para onde vai ser feitas as configurações ;
  • Qual é o número do telefone do provedor a ser discado;
  • Qual é o nome de usuário do provedor;
  • Qual a senha de acesso do provedor;
  • Qual deve ser o Init2 utilizado para a conexão;
  • Qual o tipo de tom do seu telefone (Tom ou Pulso).

Por fim vai ser criado uma entrada no menu Aplicações > Internet > GNOME PPP que é o discador padrão do Gnome que você deve usar para a cessar a internet discada, mas nada impede de se usar outras foram de conexão, tais como o discador kppp (mais apropriado para o KDE), o terminal e etc.


Solucionando Problemas

Considerando que você seguiu corretamente todos os passos relatados aqui neste guia, mas mesmo assim sua conexão com a internet não se efetiva, irei relatar aqui os tipos de problemas mais comuns que encontrei e que foram solucionados seguindo as mudanças propostas por mim.

Conecta mais não navega, isso pode ocorrer por alguns motivos o primeiro deles é que nos arquivos pap-secrets e chap-secrets que ficam em /etc/ppp no final de cada um destes arquivos deve ter uma informação do tipo: "usuário@provedor.com.br" * "senha1234" e como o discador gnome-ppp é usado como usuário comum ele não tem permissão para adicionar entradas nos arquivos pap-secrets e chap-secrets que ficam em /etc/ppp.

Obviamente que as informações entre duas aspas " " são o nome de acesso completo (com @ e domínio) do seu provedor e a senha de acesso do mesmo respectivamente. Para colocar tais informações caso não estejam lá use os comandos (no terminal):

Citarsudo gedit /etc/ppp/pap-secrets


cole o final o já comentado e na formatação indicada somente alterando os valores nome de acesso e senha para os seus valores particulares.

Repita o mesmo procedimento para o outro arquivo:

Citarsudo gedit /etc/ppp/chap-secrets


Um outro problema que pode atrapalhar a conexão são os DNS primário e secundário que estão ajustados para serem obtidos automaticamente do seu provedor de acesso a internet. Caso seja valores que você mesmo tenha que adicionar é só configurar no discador gnome-ppp.

Se mesmo assim não funcionar sua internet, mesmo que você observando que o modem disca e aparentemente conecta, tente usar no terminal este comando aqui:

Citarsudo route add default ppp0


Outro problema é que para os modems HSP56 MR (SiS) o script sl-modem-daemon parece não funcionar direito no boot do sistema tendo sempre que o usuário que possuir este modem, antes de usar o discador gnome-ppp abrir um terminal e digitar:

Citarsudo /etc/init.d/sl-modem-daemon restart


Por fim se sua conexão se efetiva mais você acha a mesma muito instável tente usar alguns destes Init2 para o discador gnome-ppp:

Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

Init2 = ATQ0 V1 E1 S0=0 X3 &C1 &D2 +FCLASS=0

Init2 = ATQ0 V1 E1 S0=0 X3 &C1 &D2 +MS=34

Init2 = ATQ0 V1 E1 S0=0 X3 &C1 &D2 +MS=90

Init2 = ATQ0 V1 E1 S0=0 S10=200 S36=7 S15=128 &C1 &D2 +FCLASS=0


para fazer esta alteração basta abrir um terminal e digitar:

Citargedit .wvdial.conf


quando abrir o arquivo de configuração do discador gnome-ppp procure pela linha Init2 e altera para cada um dos valores acima para verificar qual é o melhor para o seu caso.

Para finalizar o script sl-modem-daemon já carrega o modulo smartlink correspondente ao softmodem que foi detectado, porém se você estiver tendo problemas no carregamento do driver, poderá forçar o mesmo seguindo as instruções a seguir.

Abra o terminal e digite :

Citarsudo gedit /etc/modules

e acrescente ao final deste arquivo:

Citarungrab-winmodem
slamr

Salve o arquivo e saia do editor de textos.

yghw3l

Caro alarcon, obrigado pela sua ajuda. Eu tenho banda larga mas, além de não saber até quando, eu queria ativar o modem sm56 para qualquer emergência. Como em princípio eu não consegui baixar o seu pacote v25, eu fui no Linmodems e estava tomando coragem pra instalar na mão. Depois eu consegui baixar o seu pacote mas aí já estava meio na dúvida se precisaria de alguma configuração extra (tipo desabilitar uns módulos e tal). Então a Telefônica deu o empurrão final ontem c/ a pane no Speedy. Aí eu mandei ver.
Eu uso o Hardy e portanto baixei o pacote v25. No entanto eu vi um post de uma pessoa que usou o 'slmodem' e o 'ungrab-winmodem' novos no seu ubuntu 6.06 e funcionou então eu resolvi baixar o slmodem mais novo (20090222) e pôr no seu pacote, editando as linhas que fazem referência a ele no 'instal-modem_Gnome'. E funcionou!

Me pareceu apenas que a conexão é meio lenta, mas eu num testei quase nada pra não ficar pagando ligação à toa. De todo modo é bom ter uma conexão reserva.

Só se vc souber de cabeça (pq eu nem pesquisei ainda), me diz se há algum acelerador pra conexão discada no ubuntu.

Abraço.

alarcon

Citação de: yghw3l online 19 de Maio de 2009, 20:17
Caro alarcon, obrigado pela sua ajuda. Eu tenho banda larga mas, além de não saber até quando, eu queria ativar o modem sm56 para qualquer emergência. Como em princípio eu não consegui baixar o seu pacote v25, eu fui no Linmodems e estava tomando coragem pra instalar na mão. Depois eu consegui baixar o seu pacote mas aí já estava meio na dúvida se precisaria de alguma configuração extra (tipo desabilitar uns módulos e tal). Então a Telefônica deu o empurrão final ontem c/ a pane no Speedy. Aí eu mandei ver.
Eu uso o Hardy e portanto baixei o pacote v25. No entanto eu vi um post de uma pessoa que usou o 'slmodem' e o 'ungrab-winmodem' novos no seu ubuntu 6.06 e funcionou então eu resolvi baixar o slmodem mais novo (20090222) e pôr no seu pacote, editando as linhas que fazem referência a ele no 'instal-modem_Gnome'. E funcionou!

Me pareceu apenas que a conexão é meio lenta, mas eu num testei quase nada pra não ficar pagando ligação à toa. De todo modo é bom ter uma conexão reserva.

Só se vc souber de cabeça (pq eu nem pesquisei ainda), me diz se há algum acelerador pra conexão discada no ubuntu.

Abraço.

Não conheço e acho até que não existe um acelerador para conexões discadas no linux.

Talvez a sensação da lentidão seja por que vc está comparando com a banda larga, pois lembro-me bem quando tinha conexão discada e sempre achei que no linux a conexão discada era mais rápida, agora isso depende do horário de conexão. Muitas vezes uma conexão não entra legal, mas se desligar e ligar logo em seguida pode-se obter uma velocidade maior, pelo menos é o que ainda lembro deste tipo de conexão que usei por muito tempo.

dtomadon

Alarcon parabéns mais uma vez, suas informações sobre modem são magnifìcas, só tenho uma dúvida :

Já compilei na forma normal, gostaria de compilar na forma alsa , terei que primeiramente desinstalar seu pacote antes

pretendo fazer isso para poder me aprofundar no universo do linux, isso graças as suas informações !!!!!!

caso sim , quais comandos devo executar????
BacKTrack5 64 bits com Vídeo SIS

kernel omnislash 1.4.4 64 bits , Que venha o 5º Semestre !!!

alarcon

Citação de: dtomadon online 19 de Maio de 2009, 23:40
Alarcon parabéns mais uma vez, suas informações sobre modem são magnifìcas, só tenho uma dúvida :

Já compilei na forma normal, gostaria de compilar na forma alsa , terei que primeiramente desinstalar seu pacote antes

pretendo fazer isso para poder me aprofundar no universo do linux, isso graças as suas informações !!!!!!

caso sim , quais comandos devo executar????

Todo pacote que faço eu já habilito no driver Smartlink para que ele compile desta forma, pois o script sl-modem-daemon é quem vai identificar para cada caso se é melhor usar o driver smatlink da forma padrão ou da forma ALSA.

Quando vc compila da forma ALSA o executável slmodemd pode ser usado na forma padrão ou alsa, já se você apenas compilar da forma padrão, é só assim que ele pode ser usado.

A compilação da forma alsa apenas acrescenta mais essa opção de parâmetro (--alsa) ao executável slmodemd criado pelo processo de compilação do driver smartlink.

E como fazer isso já expliquei aqui nos textos mais acima, ou seja:

Entre na pasta criada após a descompactação:


Citarcd slmodem- 2.9.11-20080629

Agora entre na subpasta modem da seguinte forma:


Citar$ cd modem

Dentro desta pasta abra o arquivo Makefile do seguinte modo:


Citar$ gedit Makefile

Procure pela seguinte linha:


Citarifeq ($(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.

dtomadon

Alarcon , valeu pelo esclarecimento assim que possível compilarei na forma alsa e posto aqui o resultado!!!!
BacKTrack5 64 bits com Vídeo SIS

kernel omnislash 1.4.4 64 bits , Que venha o 5º Semestre !!!

RenatoMN

alarcon,

com todo o respeito, vim ler esta página por orientação sua no tópico 4204 (Tutorial HSP56) ao perguntar sobre o modo ALSA, mas sua orientação está errada quanto a remover o comentário de "#SUPPORT_ALSA:=1" e vou explicar porquê.

acontece que no código a seguir:

ifeq ($(ARCH64), 0)
CC:= gcc
else
#SUPPORT_ALSA:=1
CC:= gcc -m32
endif


o comando "ifeq" é uma comparação de igualdade entre 2 parâmetros ("ifeq (A,B)" é como se fosse o "if (A == B)" do PHP, por exemplo) então a "interpretação" é:

Citar
teste: se a variável $ARCH64 for 0 (ou seja, falsa ou inexistente), faça:
CC (variavel "comando de compilacao") deve ser: gcc
do contrário faça:
#SUPPORT_ALSA:=1 <- linha ignorada
CC (variavel "comando de compilacao") deve ser: gcc -m32
fim do teste

a variável $ARCH64 armazena 1(TRUE) nos sistemas de arquitetura x86_64, e o parametro -m32 do gcc significa "forçar compilação em modo 32 bits" (para ser utilizado em sistemas de arquitetura x86_64 que comportem esta compilação)

a linha comentada (#SUPPORT_ALSA) está ali pois, inicialmente, o driver só era compilado em x64_64 com suporte ALSA, então a variável era "forçada" mesmo que o comando de compilação fosse somente "make" em vez de "make SUPPORT_ALSA=1", mas isso não acontece mais (o driver agora fornece suporte a x64_64 sem ALSA, por isso foi comentada)

sendo assim, a execução deve ser "make SUPPORT_ALSA=1" para que o ALSA seja incluído, tanto em x86 quanto em x86_64. ou então, pode-se "forçar" a inclusão do suporte ALSA (mesmo que o comando utilizado seja somente "make") editando desta forma (como disse no outro tópico):

ifeq ($(ARCH64), 0)
SUPPORT_ALSA:=1
CC:= gcc
else
#SUPPORT_ALSA:=1
CC:= gcc -m32
endif


talvez nos seus testes a compilação com ALSA tenha sido feita manualmente, seguindo o manual e por isso tenha funcionado, pois usando o seu pacote (pelo menos na v30), isto não acontecerá de forma alguma em sistemas x86 (32 bits) pois o parâmetro SUPPORT_ALSA não está sendo passado na linha de execução do make e nem via alteração da variável diretamente no Makefile - somente em sistemas x64.

Atenciosamente,
Renato Frota

alarcon

Citação de: RenatoMN online 09 de Junho de 2009, 17:01
alarcon,

com todo o respeito, vim ler esta página por orientação sua no tópico 4204 (Tutorial HSP56) ao perguntar sobre o modo ALSA, mas sua orientação está errada quanto a remover o comentário de "#SUPPORT_ALSA:=1" e vou explicar porquê.

acontece que no código a seguir:

ifeq ($(ARCH64), 0)
CC:= gcc
else
#SUPPORT_ALSA:=1
CC:= gcc -m32
endif


o comando "ifeq" é uma comparação de igualdade entre 2 parâmetros ("ifeq (A,B)" é como se fosse o "if (A == B)" do PHP, por exemplo) então a "interpretação" é:

Citar
teste: se a variável $ARCH64 for 0 (ou seja, falsa ou inexistente), faça:
CC (variavel "comando de compilacao") deve ser: gcc
do contrário faça:
#SUPPORT_ALSA:=1 <- linha ignorada
CC (variavel "comando de compilacao") deve ser: gcc -m32
fim do teste

a variável $ARCH64 armazena 1(TRUE) nos sistemas de arquitetura x86_64, e o parametro -m32 do gcc significa "forçar compilação em modo 32 bits" (para ser utilizado em sistemas de arquitetura x86_64 que comportem esta compilação)

a linha comentada (#SUPPORT_ALSA) está ali pois, inicialmente, o driver só era compilado em x64_64 com suporte ALSA, então a variável era "forçada" mesmo que o comando de compilação fosse somente "make" em vez de "make SUPPORT_ALSA=1", mas isso não acontece mais (o driver agora fornece suporte a x64_64 sem ALSA, por isso foi comentada)

sendo assim, a execução deve ser "make SUPPORT_ALSA=1" para que o ALSA seja incluído, tanto em x86 quanto em x86_64. ou então, pode-se "forçar" a inclusão do suporte ALSA (mesmo que o comando utilizado seja somente "make") editando desta forma (como disse no outro tópico):

ifeq ($(ARCH64), 0)
SUPPORT_ALSA:=1
CC:= gcc
else
#SUPPORT_ALSA:=1
CC:= gcc -m32
endif


talvez nos seus testes a compilação com ALSA tenha sido feita manualmente, seguindo o manual e por isso tenha funcionado, pois usando o seu pacote (pelo menos na v30), isto não acontecerá de forma alguma em sistemas x86 (32 bits) pois o parâmetro SUPPORT_ALSA não está sendo passado na linha de execução do make e nem via alteração da variável diretamente no Makefile - somente em sistemas x64.

Atenciosamente,
Renato Frota

Não há problema algum, se eu estiver errado é melhor mesmo que alguém mais entendido no assunto programação possa corrigir. ;)

Já trabalho com este driver há muito tempo, desde a época do kurumin versão bem antiga, e lá os comandos make e make install só ativavam o executável slmodemd da forma padrão. É verdade que para se usar a forma ALSA tinha-se que no make fornecer o parâmetro que como sou muito esquecido, em alguns casos, nunca me lembrava e aí resolvi já editar no Makefile para isso.

Não é de hoje que faço o que falei acima e coincidência ou não, funcionava. Não lembro se nas versões mais antigas a parte SUPPORT_ALSA:=1 era dentro de uma condicional, tenho impressão que não e sim solta no Makefile e foi quando testei a compilação com e sem esta opção comentada (#) sendo que só compilava na forma alsa descomentado a linha, agora isso faz bastante tempo e não dá para lembrar. Acho que só nas versões recentes do driver (não muito recentes ok) passou a ser colocada nesta condicional e aí apenas reproduzi o que já vinha fazendo desde as versões bem antigas, ou seja, apenas descomentar #SUPPORT_ALSA:=1 independente de ele está ou não dentro de uma condicional, pois a lembrança que tinha das versões anteriores é que sem descomentar não compilava na forma alsa (a não ser que se usasse o make SUPPORT_ALSA:=1 ou algo muito semelhante a isso).

Como não tenho mais aqui nenhum tipo de modem para conexão discada com suporte ao driver smartlink, não tenho como testar se SUPPORT_ALSA:=1 comentado, ou seja, #SUPPORT_ALSA:=1, já faria com que o executável slmodemd pudesse ser usado da forma padrão ou ALSA.

Já que você me parece uma pessoa bastante entendida sobre programação, então vou confiar no que diz, mas seria bom que você pudesse testar para ver se é isso mesmo para esclarecer de uma vez por todas.

De qualquer forma fica aqui suas explicações. ;D

Ah, outra coisa é que já vi muitos tentando compilar este driver em 64bits sem sucesso, por isso sempre recomendo usar em 32bits. Agora pelas suas explicações parece-me que é possível usar em 64bits.

RenatoMN

Para ser sincero, eu só comecei a me aprofundar mais no seu pacote e nos arquivos do site da Linuxant e da linmodens depois que troquei o Ubuntu 9.04 pelo 32 bits, pois estava quebrando a cabeça com o HSF em 64 bits: o site deles tem uma informação num lugar dizendo que depende do "alsa-driver-linuxant" (que faz meu notebook ficar totalmente instável e sem desligar corretamente), e depois em outra, mais escondido, que um determinado .tar.gz do site funciona sem esse alsa-driver-linuxant (arquivo esse que instala o driver sem suporte a alsa/hda), que só fui ver depois.

Lendo as listas de discussão, acompanhando o problema de um usuário que usa 64 bits, entendi o seguinte: alsa e hda até funcionam, usando a biblioteca alsa padrão (libasound2-dev) e um patch (da própria linuxant) para quem já tem alguma bibilioteca alsa instalada. Não fiz questão de voltar ao x86_64 para testar, pois já estava lidando com o seu pacote e os drivers da Smart Link/linmodens.

Estou terminando um script aperfeiçoado de instalação para 32 bits (já que estou usando ele e testando a fundo, para descobrir o que pode estar causando o sumiço dele na inicialização, além do suporte alsa, claro) e, assim que concluir, vou testar a instalação no Ubuntu 9.04 64 bits novamente, tanto desse driver quanto do HSF da Linuxant.

Att;
Renato

alarcon

Citarsendo assim, a execução deve ser "make SUPPORT_ALSA=1" para que o ALSA seja incluído, tanto em x86 quanto em x86_64. ou então, pode-se "forçar" a inclusão do suporte ALSA (mesmo que o comando utilizado seja somente "make") editando desta forma (como disse no outro tópico):



ifeq ($(ARCH64), 0)
SUPPORT_ALSA:=1
CC:= gcc
else
#SUPPORT_ALSA:=1
CC:= gcc -m32
endif



talvez nos seus testes a compilação com ALSA tenha sido feita manualmente, seguindo o manual e por isso tenha funcionado, pois usando o seu pacote (pelo menos na v30), isto não acontecerá de forma alguma em sistemas x86 (32 bits) pois o parâmetro SUPPORT_ALSA não está sendo passado na linha de execução do make e nem via alteração da variável diretamente no Makefile - somente em sistemas x64.

Opa, lendo melhor o seu texto, porque dá última vez li na pressa, pois estava de saída observei isso que destaquei logo acima.

Pelo que li e entendi você está afirmando que a mudança que fiz (descomentar a referida linha) não causa nenhuma mudança e portanto o driver continuaria sendo compilado na forma padrão. Isso não é verdade, pois já faço isso a muito tempo e se você tiver a paciência de observar página por página daquele outro link meu que presta assistência para quem usa o driver smartlink, verá que em muitos dos caso tem a opção do driver usada como a forma alsa.

Na primeira leitura havia entendido que você verificou que se usasse apenas make e make install apenas, o driver smartlink já compilava da forma alsa e que a mudança que fiz de descomentar a referida linha na verdade não tinha efeito nenhum (para o 32bits) e o que eu pesava que tinha dado certo seria apenas por que o driver smartlink já compilava da forma alsa. Como vc está mesmo é afirmando que a forma alsa só é criada com a compliação com make SUPPORT_ALSA=1 ou com esta mudança aqui:

Citarifeq ($(ARCH64), 0)
SUPPORT_ALSA:=1
CC:= gcc
else
#SUPPORT_ALSA:=1
CC:= gcc -m32
endif

acredito que vc se equivocou. Como felei antes, da forma que uso já vi muitos usuários ao dar o comando ps -aux | grep slmodemd mostrar o uso do driver smartlink na forma padrão e alguns outros na forma alsa.

Só por que até agora os que experimentaram o v30 no Ubuntu 9.04 só usaram na forma padrão (aquela que cria o /dev/slam0) não significa dizer que somente nesta forma de compilação é que o driver smartlink foi compilado. Só se mudou algo neste último driver smartlink que eu não saiba, mas repito a mudança que faço no driver smartlink tem algum tempo e muitos já usaram o meu pacote carregando o driver smartlink na forma padrão ou na forma alsa.

Veja bem, não são em todos os caso que se deve usar o forma ALSA, mas somente para aqueles que tem um determinado hardware (placa de som) que o kernel do linux carrega alguns destes módulos: snd-intel8x0m (ou snd_intel8x0m) ou o módulo snd-atiixp-modem (ou snd_atiixp_modem) ou snd-via82xx-modem (ou snd_via82xx_modem).

O script sl-modem-daemon se encarrega de verificar e escolher se a forma de uso do driver smartlink será a padrão ou a alsa (desde que o executável tenha sido compilado para suportar a forma alsa). Não sei se o critério do script é apenas verificar se estes módulos existem e então já passa a usar a forma alsa ou se tem algum critério que indique, neste caso o melhor é a padrão, neste outro a forma alsa.


===EDITADO===

Como havia suspeitado, até a versão v23 do meu pacote (modem-arquivos-v23.tar.gz) a parte relativa a mudança que proponho para que se compile no modo alsa do arquivo Makefile estava assim:

Citar
SUPPORT_ALSA:=1
ifdef SUPPORT_ALSA
slmodemd: -lasound
CFLAGS+= -DSUPPORT_ALSA=1
LFLAGS+= -lasound
endif

portanto fora de qualquer condicional como tinha comentado antes. Este pacote modem-arquivos-v23.tar.gz trazia o driver smartlink versão slmodem-2.9.11-20080401.tar.gz, portanto deste aí para os inferiores o driver smartlink trazia a opção#SUPPORT_ALSA:=1 fora de uma condicional.

Já a partir do modem-arquivos-v24.tar.gz que traz o driver smartlink de versão slmodem-2.9.11-20080417.tar.gz é que a começa a trazer o arquivo Makefile assim:

Citarifeq ($(ARCH64), 0)
CC:= gcc
else
SUPPORT_ALSA:=1
CC:= gcc -m32
endif

Atenção: em todos os casos aí eu já descomentei a referida linha que vinha comentada no driver ok.

Meu entendimento, de certo modo meio leigo em programação, é que nesta condicional caso não fosse o caso 1 do 64bits e sim o caso 2 do 32bits, sem descomentar a linha, ele compilaria na forma padrão para 32bits. Se descomentar a linha compilaria na forma alsa para 32bits. De qualquer forma apenas segui nos novos driver smartlink o que já vinha fazendo nas versões anteriores que traziam a linha #SUPPORT_ALSA:=1 fora de qualquer condicional e que era a responsável por compilar na forma alsa.

Para compilar na forma alsa passando parâmetros e não editando o Makefile acho que o correto seria assim:

make SUPPORT_ALSA=1

e depois

sudo make install SUPPORT_ALSA=1

Ao invés de:

make

e depois

sudo make install

que compilaria no modo padrão.

RenatoMN

alarcon,

o Makefile da pasta raiz é o responsável pela criação da variável $ARCH64 => 0 para 32 bits, 1 para 64 bits. quando o Makefile do diretorio /modem é lido, o "ifeq" executa os comandos DE CIMA quando a condicional bate (ARCH64 = 0) para 32 bits e os DE BAIXO quando não bate (ARCH64 = 1) para 64 bits - e isso fica claro pela existência do parâmetro -m32, que é "forçar compilação em 32 bits" quando o gcc roda em sistemas de 64 bits.

Inclusive, o Makefile principal também comporta o parâmetro SUPPORT_ALSA, o que permite a compilação ser feita diretamente na pasta raiz, com make SUPPORT_ALSA=1 e make install SUPPORT_ALSA=1 - no entanto, desta forma a compilação dos drivers slamr, slusb e ungrab são saltadas, fazendo com que SOMENTE o modo ALSA funcione. Por isso, o recomendável é executar make e make install e, em seguida, dentro da pasta modem, make clean e make SUPPORT_ALSA=1 (sem executar make install) e então copiar o binário "slmodemd" resultante por cima do /usr/sbin/slmodemd gerado pela compilação anterior (e torná-lo executável com chmod +x /usr/sbin/slmodemd).

me aprofundando nos testes, descobri ainda que:

- em 64 bits, esta versão do driver funciona! ressalva: somente em modo ALSA.
- o "Verificar Portadora" não pode ser ativado (inclusive, o parametro deve obrigatoriamente existir no wvdial.conf, sendo Carrier Check = no) para o modem funcionar com perfeição no Ubuntu 9.04 (pois o padrão é "yes").

meu script está em 99%, ficou muito completo, espero que goste! devo colocar para download em instantes.

- não precisa mais do "ativar-modem" (o detalhe que fazia o modem não iniciar era uma besteirinha).
- o reconhecimento do país como "PORTUGAL" para alguns sistemas foi resolvido (e adicionada opção de selecionar outros países).
- foram incluídos TODOS os números do provedor iG.
- foi incluída a opção de discagem interurbana (com seleção de prestadora) e via PABX (discagem de "0" ou outro número para adquirir sinal de linha).
entre outras coisas...

Att;
Renato

alarcon

Citaro Makefile da pasta raiz é o responsável pela criação da variável $ARCH64 => 0 para 32 bits, 1 para 64 bits. quando o Makefile do diretorio /modem é lido, o "ifeq" executa os comandos DE CIMA quando a condicional bate (ARCH64 = 0) para 32 bits e os DE BAIXO quando não bate (ARCH64 = 1) para 64 bits - e isso fica claro pela existência do parâmetro -m32, que é "forçar compilação em 32 bits" quando o gcc roda em sistemas de 64 bits.

Não consegui enxergar isso que você falou logo acima, o que vejo é que apenas o Makefile da pasta /modem do driver é que no seu começo define o valor da variável ARCH64 que seria definida com o resultado do comando uname -m (de uma forma simplista), veja:

ARCH64:=$(shell uname -m | sed -e '/amd64/s//x86_64/' | grep -c x86_64)


depois é feito a condicional e que iria comparar o valor da variável e caso fosse o caso de usar em 64bits, usaria a opção:

CC:= gcc

caso contrario (o 32bits portanto):

#SUPPORT_ALSA:=1
CC:= gcc -m32


e então para não se digitar muita coisa para usar da forma alsa (o make SUPPORT_ALSA=1 e make install SUPPORT_ALSA=1) e seguindo o que já fazia nos drivers antigos, apenas editei tal linha retirando o símbolo # para que se pudesse compilar e criar o executável slmodemd com a possibilidade de se usar da forma alsa também, usando apenas o make e make install.

Tudo que falo aqui é em relação ao uso em 32bits, pois nunca testei nem usei este driver em 64bits. O que notei é que nestas últimas versões do driver smartlink, agora há a possibilidade de se usar na arquitetura 64bits.

Citaro "Verificar Portadora" não pode ser ativado (inclusive, o parametro deve obrigatoriamente existir no wvdial.conf, sendo Carrier Check = no) para o modem funcionar com perfeição no Ubuntu 9.04 (pois o padrão é "yes").

Não sei se você está se referindo ao caso do 64bits, mas no caso do 32bits há modems que precisam desta opção marcada, outros com a opção desmarcada. Como na época que comecei a elabora este pacote que faço (para automatizar o processo e facilitar as coisas) haviam mais casos que necessitavam desta opção marcada, portanto optei por deixar ela marcada no meu script por padrão e fiz a observação no guia_instalação.pdf na parte de solucionando problemas.


Citarnão precisa mais do "ativar-modem" (o detalhe que fazia o modem não iniciar era uma besteirinha).

Isso aí já vi desde o tempo do kurumin em algumas versões dele e acho que tem haver com o kernel usado em determinada versão. O dispositivo /dev/slamr0 que é criado não se mantém aṕos o reboot, não sei por qual motivo, sendo necessário recriá-lo, por isso o script ativar-modem. Nas outras versões do Ubuntu e portanto do kernel não ocorria esse problema de desaparecimento do /dev/slamr0 após o reiniciar o sistema. Agora se você conseguiu solucionar o problema de forma que ao reiniciar o sistema, não se tenha que recriar o /dev/slamr0, melhor ainda.

Citar- o reconhecimento do país como "PORTUGAL" para alguns sistemas foi resolvido (e adicionada opção de selecionar outros países).

Fiquei intrigado com isso, pois o meu script não faz isso e nem vi nada no script sl-modem-daemon que alterasse isso também, mas hoje ao descompactar o pacote .deb do sl-modem-daemon na pasta control tem um arquivo postinst, ou seja, que executa comandos após a instalação do pacote, tem lá algo que pode estar alterando o SLMODEMD_COUNTRY para um valor inadequando em alguns casos.

Citarmeu script está em 99%, ficou muito completo, espero que goste! devo colocar para download em instantes.

...

- foram incluídos TODOS os números do provedor iG.
- foi incluída a opção de discagem interurbana (com seleção de prestadora) e via PABX (discagem de "0" ou outro número para adquirir sinal de linha).
entre outras coisas...

Oba! Será que encontrei um sucessor, ;D, pois confesso que já estou ficando cansado de dar assistência para o pessoal que tem conexão discada e que usa este tipo de modem. São anos (acho que desde de 2005 ou 2006) dizendo praticamente a mesma coisa, embora já tenha feito um pacote que automatiza tudo, um guia_instalação.pdf que explica seu uso com ilustrações, dois tópicos no fórum (fora outros que participo de maneira indireta) e mais mp e email e até mensageiro instantâneo.

Embora esteja cansado de repetir tudo, eu faço por que me coloco muito no lugar de quem está precisando de ajuda e a conexão com a internet é ponto fundamental para que o próprio usuário encontre outras soluções via google, fóruns e etc., e se aprofunde cada vez mais no universo linux.

Também já fui usuário de conexão discada por um longo tempo, fase que aprendi muito sobre o driver smartlink e linux, e sei como é a peleja para usar no linux, por isso respiro fundo, conto até dez, kkkkkkkkkk, e respondo as perguntas relativas a modem smartlink (e outros também) e Ubuntu mesmo que seja pela milésima vez.

Agora acho que já está na hora de descansar deste assunto, partindo para outros.

Estes dois textos iniciais deste tópico foi uma tentativa para isso, pois aqui explico tudo que sei, não que isso seja tudo sobre conexão discada, driver smartlink e Ubuntu, mas é tudo que aprendi durante os anos e cada um pode ler, adaptar, fazer seus próprios pacotes e o que é mais importante, ajudar ao próximo.

RenatoMN

Realmente, me confundi, o próprio Makefile da pasta /modem que define a variável ARCH64. De cabeça, imaginei que ela viesse passada do Makefile da pasta pai.

É que meu Ubuntu 9.04 está em partições ext4 e nem me dei ao luxo de montá-las aqui no Big Linux, que ainda estou usando quando trago o notebook à Lan House, justamente por que o Ubuntu irá substituí-lo (pelo menos até sair uma versão final do Big Linux 5) e não quero que o Ubuntu tenha contato com a internet até eu testar meu pacote (e tudo que "codei" está lá, estou brincando com isso quando vou pra casa, no final da noite e madrugadas), para ter certeza que funcionará para todos, pois não poderei ficar acompanhando o tópico com tanta frequência.

O único ponto onde você interpretou errado, foi o ifeq. Acompanhe comigo.

ARCH64:=$(shell uname -m | sed -e '/amd64/s//x86_64/' | grep -c x86_64)

Ou seja: ARCH64 busca "x86_64" em "uname -m" (e antes do grep, ele troca "amd64" por "x86_64", caso exista)

Se o processador for 32 bits, ARCH64 será FALSO, então o teste do ifeq será VERDADEIRO, pois ele busca o FALSO:

ifeq ($(ARCH64),0) <-- se $ARCH64 for FALSO(0), entao... executa-se os comandos
CC:= gcc
senão (se $ARCH64 for VERDADEIRO (processador 64 bits)) executa-se os comandos de baixo*
SUPPORT_ALSA:=1
CC:= gcc -m32

Observe que num sistema 32 bits, usamos "gcc" para compilar sem parâmetros, e obtemos um binário de 32 bits. Num sistema 64 bits, usamos "gcc" sem parâmetros e obtemos um binário em 64. O "gcc -m32" faz o driver ser compilado em 32 bits, não porque o sistema é em 32 bits, mas porque o "slmodemd" é um binário que só funciona em 32 bits - ao contrários dos módulos .ko (slamr, slusb e ungrab) que devem acompanhar a base do sistema, sendo 32 ou 64 bits conforme o caso.

Você em certa mensagem disse que poderia não aparecer "ALSA" durante a compilação porque o script reconhece se há ou não o suporte à ALSA no modem. Ocorre que, ainda que o modem não tenha suporte à ALSA, na compilação o suporte é adicionado ao binário slmodemd de qualquer forma, se o SUPPORT_ALSA for definido como 1 (e nunca incluído, se não incluído, ainda que o modem tenha suporte, pois no momento da compilação, não há script que possa determinar se o modem suporta ou não o ALSA). O sl-modem-daemon é que se encarrega de determinar se o modem tem ou não suporte à ALSA (e o nome do dispositivo, modem:1, hw:0,1, hw:0,6) na hora de executar o binário passando os parâmetros corretos.

Experimente executar o seu script do pack v30 no Live CD 32 bits, colocando o SUPPORT_ALSA:=1 descomentado na parte de cima do "ifeq", e você verá diversas vezes, em letras capitais, SUPPORT_ALSA durante a compilação, o que não ocorre se colocar na parte de baixo (else).

Att;
Renato

alarcon

CitarVocê em certa mensagem disse que poderia não aparecer "ALSA" durante a compilação porque o script reconhece se há ou não o suporte à ALSA no modem. Ocorre que, ainda que o modem não tenha suporte à ALSA, na compilação o suporte é adicionado ao binário slmodemd de qualquer forma, se o SUPPORT_ALSA for definido como 1 (e nunca incluído, se não incluído, ainda que o modem tenha suporte, pois no momento da compilação, não há script que possa determinar se o modem suporta ou não o ALSA). O sl-modem-daemon é que se encarrega de determinar se o modem tem ou não suporte à ALSA (e o nome do dispositivo, modem:1, hw:0,1, hw:0,6) na hora de executar o binário passando os parâmetros corretos.

Nunca afirmei isso, principalmente a parte que destaquei em negrito. O que disse é que ao se compilar o driver de forma a habilitar no executável slmodemd a opção de se usar da forma padrão ou alsa o script sl-modem-daemon instalado pelo pacote de mesmo, deve analisar em qual situação deverá ser usado este executável, portanto o que já falei é coisa totalmente diferente do que vc entendeu.

Afirmei ainda que essa escolha deve ser somente pela verificação de que no sistema do usuário exista algum destes módulos carregados:  snd_intel8x0m ou  snd_atiixp_modem ou snd_via82xx_modem ou um do tipo HDA que seja suportado pelo driver smartlink. Que são os responsáveis por fazer parte do trabalho.

O que estou tentando te dizer é que descomentar aquela linha pode sim ser efetivo para que a compilação do driver smartlink em 32bits crie o executável slmodemd com a opção de se usar da forma padrão ou da forma alsa. Isso só estaria errado se os desenvolvedores destas últimas versões do driver smartlink, que passaram a conter a linha que eu retiro o # do inicio  contida naquela condicional e que fala de 64bits, tivessem feito ele de uma forma que os comandos makesudo make install já compilasse o driver smartlink criando o executável slmodemd com a opção de se usar da forma normal  ou alsa e faz até sentido por que já que a compilação da forma alsa pode ser usada da forma tradicional também (o contrário é que não), então seria mais sensato deixar as coisas mais simples e portanto o make e sudo make install já faria tudo e aí eu realmente estaria errado descomentando a linha já que o driver já teria sido concebido para fazer o que eu pretendia.

Agora o que vc está afirmando não é isso, o que afirmou foi que para se usar o executável da forma alsa eu teria de compilar assim, make SUPPORT_ALSA=1 e sudo make install SUPPORT_ALSA=1 (isso sem editar o Makefile da pasta /modem) ou então editar o Makefile da pasta /modem  deixando assim:
Citar
ifeq ($(ARCH64), 0)
SUPPORT_ALSA:=1
CC:= gcc
else
#SUPPORT_ALSA:=1
CC:= gcc -m32
endif

e compilar assim make e sudo make install.

Como já afirmei não sou um conhecedor profundo de programação, só tenho conhecimentos básicos, superficiais, mas o que tenho visto é na pratica e constatei que da forma que faço, para alguns usuários aqui que me fornecem o resultado do comando ps -aux | grep slmodemd é mostra resultado assim:

/usr/sbin/slmodemd --perm=0666 -c BRAZIL /dev/slamr0

portanto forma tradicional de uso.

Como assim:

/usr/sbin/slmodemd --alsa --perm=0666 -c BRAZIL modem:1

portanto forma alsa. Indicando assim que a mudança proposta por mim tem sim efeito na criação do executável slmodemd com suporte a forma alsa. Agora reafirmo que minha solução estaria equivocada apenas no caso de se ao usar simplesmente make e sudo make install, sem alterar qualquer arquivo do driver smartlink, ele já compilasse da forma que se pudesse usar o slmodemd na forma padrão ou alsa.

Tudo que falo aqui é sobre 32bits, nunca usei ou testei o driver smartlink na forma 64bits. Também não posso fazer os testes que vc relata com o live CD por que não tenho mais conexão discada há uns dois anos e não tenho um modem smartlink aqui, portando a compilação do driver daria erro logo de início por não ter modem suportado.

Tudo que já fiz aqui com relação a este driver nos últimos anos foi pelo feedback dos usuários que possuem tal modem.