xx
                xxxx     xx    xxxx    xxxxx            xxxx
               xx  xx          xx xx   xx  xx          xx  xx
        xxxx   xx  xx  xxxx    xx  xx  xx  xx   xxxx   xx       xxxx
           xx  xx        xx    xx  xx  xx  xx      xx   xx     xx  xx
           xx  xx        xx    xx  xx  xxxxx       xx    xx    xx  xx
        xxxxx  xx        xx    xx  xx  xx  xx   xxxxx     xx   xxxxxx
       xx  xx  xx  xx    xx    xx  xx  xx  xx  xx  xx      xx  xx
       xx  xx  xx  xx    xx    xx xx   xx  xx  xx  xx  xx  xx  xx
        xxxxx   xxxx   xxxxxx  xxxx    xxxxx    xxxxx   xxxx    xxxx
        H      o      M      e                P      a      G      e


Configuração de modem HSF
Conexant (Rockwell)
-------------------------+
                         |
-------------------------+--------------------------------------------------

por Roberto Janny T. J. (krivilli) <rj@crovax.zzn.com>

1. Uma Visão Geral:

Winmodems podem ser uma dor de cabeça, e ainda mais: nem
são "modems" verdadeiros! O uso de módulos binários
não oferece qualquer suporte formal, portanto, se você tiver
problemas estes ficam por sua própria conta e risco. Mas você
já deveria saber disso :)

A história é a seguinte: um dia desses, resolvi tirar do velho
baú um modem que eu já não utilizava fazia um bom tempo.
Era um desses (PCI) que não tinham suporte no Linux: o Winmodem
Conexant (Rockwell) HSF.

Então empreendi uma busca pela rede e descobri informações
bem interessantes: que existem drivers (controladores de dispositivo) para este
modem. Não exatamente para este modem, mas que funciona também
para ele.

Parece que os "modems" Conexant (Rockwell) HSF funcionam com os drivers
(disponíveis apenas como binários) fornecidos pela Olitec, e é possível
usar esses drivers com os kernels 2.2.14, 2.2.16 e 2.2.17. Algum tempo
atrás, a Olitec disponibilizou um driver (apenas binário) para os
seus "modems".

2. AVISO Primeiro:

Espero que essas informações sejam, de algum modo, úteis
para aqueles que possuam um desses "modems". Mas não reclame comigo se
nada funcionar, e evite mandar e-mails dizendo algo do tipo "Como eu consigo
fazer meu winmodem funcionar...". Não me responsabilizo por nada que
acontecer ao seu computador, à sua casa, etc...

3. AVISO Segundo:

Já vou alertando: aqueles que seguem estreitamente os ideais da
filosofia GNU não se sentirão confortáveis com essa
solução, pois o drivers são proprietários (hum...)!
Disponíveis apenas como binários. A melhor coisa seria comprar um
modem de verdade, e tudo estaria resolvido, certo? Nem para todos do mundo
real. Eu também levo assaz seriamente tudo que corresponde ao Free
Software, ao movimento OpenSource e ao GNU, mas por utilizar esse
procedimento (mesmo que seja temporário; logo que conseguir um cable
modem externo, tudo volta para o seu devido lugar, ou melhor, para o velho
baú :) ), não me considero um herege completo.

3. Obtendo algumas informações no Windows. Mas nada muito doloroso, espero :)

Você pode obter essas informações de duas maneiras:

	 - Clique em "Iniciar/Configurações/Painel de Controle",
	   então clique em "Sistema". Clique na guia "Gerenciador de
	   Dispositivos"; depois dê um clique duplo na entrada "HSFMODEM";
	   dê outro clique duplo em "Rockwell PCI Modem Enumerator";
	   novamente um clique duplo, então vá até a guia
	   "Recursos": anote os dados ali presentes (IRQ e intervalo de
	   memória) para o posterior uso na identificação de
       mais informações no Linux.

	 - Você também pode obter essa informações (no
	   Windows 98), a partir de um prompt (DOS) aberto, com o comando:

		C:\> hwinfo /ui

4. Baixando os Drivers:

Pode-se baixar os drivers direto do site http://www.olitec.com/linux.html.
Neste exemplo, utilizou-se o pacote HSF_V1.01.02_K2.2.14-5.0.tar.

Veja que baixei o driver para a versão do o meu kernel (2.2.14). Tenha
certeza de ter o suporte PPP habilitado no kernel (CONFIG_PPP=y). O
carregador de módulos do kernel também deve estar habilitado
(CONFIG_KMOD=y). Você precisa desse último para
módulos comprimidos, pois estes não podem ser compilados dentro
do kernel.

5. Instalação & Configuração:

Descompacte o driver:

# tar -xzvf HSF_V1_01_02_K2_2_14-5_0.tar

Isso criará um novo diretório PCI_56K_V2. Entre nesse
diretório e abra o arquivo ins_all. No final desse arquivo
existem 10 linhas referentes ao insmod. Iremos forçar a
inserção dos módulos adicionando a opção
"f". As linhas deveriam parecer com algo como isso:

insmod -mf fsks_mod.o >> modem.map
insmod -mf tones_mod.o >> modem.map
insmod -mf v34module.o >> modem.map
insmod -mf v90_mod.o >> modem.map
insmod -mf fbks_mod.o >> modem.map
insmod -mf mod_octopus.o >> modem.map
insmod -mf mod_basic2.o >> modem.map
insmod -mf mod_dev_mgr.o >> modem.map
insmod -mf mod_session_ctrl.o >> modem.map
insmod -mf myserial.o >> modem.map

Existem mais duas linhas do insmod acima. Adicione também a
opção "f".

Em seguida rode o seguinte comando (finalmente, é aqui que você
vai usar aquelas informações pegas no Windows):

# cat /proc/pci | less

De posse daqueles números pegos anteriormente, procure, na saída
gerada pelo comando acima, por entradas semelhantes: em Device id e em
Vendor id. Então os anote. No meu caso, isso é o que eu
procurava:

Bus  0, device  15, function  0:
Non-VGA device: Unknown vendor Unknown device (rev 1).
Vendor id=127a. Device id=2005.
Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.
Latency=64
Non-prefetchable 32 bit memory at 0xe4000000 [0xe4000000].
I/O at 0x6800 [0x6801].

Agora abra o arquivo lin_hsf.inf e insira a seguintes linhas abaixo do campo [Generic]:

%HSFModem% = ModemX, PCI\VEN_XXXX&DEV_YYYY&SUBSYS_YYYYXXXX

Substitua o 'XXXX'; pelo seu Vendor id e o 'YYYY'; pelo seu
Device id.

Após a etapa acima descrita, na linha de comando rode o seguinte:

# ./hsf_linstall.pl
# ./ins_all

Verifique se os módulos estão carregados através do
comando lsmod. Se os módulos estão carregados mas
você recebeu um 'core dumped', eles não irão funcionar.
Inicie o minicon e veja se o modem responde aos comandos; disque um
número. Se tudo estiver certo, estaremos quase terminando.

Você também pode inserir o seguinte em seu
/etc/modules.conf (para uso posterior):

alias ppp-compress-21  bsd_comp
alias ppp-compress-24  ppp_deflate
alias ppp-compress-26  ppp_deflate

Lembre-se que na primeira tentativa de discar (pode-se utilizar o programa
wvdial para fazer a sua conexão com o seu provedor de internet) o modem
pode estar ocupado. Então tente outra vez. Certas mensagens de erro que
podem aparecer no /var/log/messages sempre acontecem. Alguns ponteiros
de memória podem não ser encontrados, mas mesmo assim ele
funciona.

É possível que a string de inicialização padrão do wvdial trave o sistema. Pode-se altera-la para ATX1.

6. Desinstalação:

O seguinte comando deve resolver:

# ./rm_all

FAQ

1. Consegui instalar e configurar normalmente o modem Conexant SoftK56 PCI, bem
como comunicar com o modem via comandos AT (através do minicom, por
exemplo). No entanto não consigo discar qualquer número. Quanto
tento conectar-me a interne com o kppp, obtenho a mensagem "NODIALTONE".
Qual o problema?

Experimente aumentar o número de tentativas de discagem para 5.
Você também pode tentar a seguinte string de
inicialização:

AT&FE1V1S0=0X3&C1&D1&D2+MR=2;+DR=1;+ER=1;W0

A provável razão de você não estar conseguindo
tom para discagem é porque o driver está configurado para o
sistema de telefonia francesa.

2. Consegui fazer o modem discar usando o driver da Olitec, mas
não fiu capaz de me conectar ao meu ISP. Ele disca o número de
conexão, aceita a chamada, mas depois nada ocorre. E após algum
tempo recebo o erro "NOCARRIER". Qual é o motivo desse problema?

Pode ser problema com o seu ISP. Tente conectar mais algumas vezes, ou tente
outra vez mais tarde.

3. Quando executo o script de instalação, obtenho um erro a
respeito do hfs_install.log. Quando verifico o arquivo log de
instalação diz que o arquivo inf está faltando e
está presente no mesmo diretório. Por que eu estou tendo este
problema? Existe algum diretório no qual eu devo proceder a
instalação?

Verifique se o arquivo lin_hsf.inf está editado corretamente, conforme descrito acima.

Bibliografia:

  - http://www.mandrakeforum.com
  - http://linmodems.org
  - http://www.olitec.com/linux.html
  - http://www.808hi.com/56k/rockhcf.htm