[FUG-BR] Cyclade PC300

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Quarta Outubro 4 14:16:01 BRT 2006


Evaldo Gardenali wrote:
> Oi
> 
> A Cyclades PC-300 eh descontinuada, pelo que me recordo, e portanto, há pouco (ou nenhum) interesse do fabricante em novos drivers
> 
> Recomendaria a linha Sangoma WANPIPE (sangoma.com) para um melhor suporte, mas não verifiquei se eles suportam FreeBSD.

Suportam sim. Ja tive experiencias com Sangoma S5141 e foi 100%. Outras 
que funcionam muitissimo bem no FreeBSD sao Tahoe e FARSITE. Essa ultima 
bem mais cara, e teoricamente melhor ja que tem co-processador proprio. 
Mas pra mim a avantagem e usar a CPU central, barateando custo hehe.

Sobre a PC300 consegui usa-la no FreeBSD 5.1 (faz tempo portanto), nao 
sei se as mudas da parte do SPPP (que e a que o driver dessa placa mais 
depende) do FreeBSD 5 pro 6 foram grandes suficiente pra estragar o 
esquema, mas veja se voce consegue ai, da seguinte forma.

- Copie os arquivos if_cpc.c e if_cpc.h do diretorio FreeBSD-4/ para 
/usr/src/sys/pci/

- Edite o arquivo /usr/src/sys/conf/files.i386 e coloque no final dele a 
linha:

pci/if_cpc.c                    optional        cpc pci

- Edite o /usr/src/sys/pci/if_cpc.c

Note que nao existe mais o sppp.h do FreeBSD 5.0 pra frente. Entao por 
volta da linha 56 desse arquivo note que:

#include "sppp.h"
#if NSPPP <= 0
#error The device 'cpc' requires sppp.

Entao esse .h vai dar erro e esse "if NSPPP <= 0" sempre sera verdadeiro 
se nao for FreeBSD 4.

Substitua as 3 linhas por

#include <net/if_sppp.h>
#ifndef PP_FR
#define PP_FR 0

Depois la pela linha 75 desse mesmo arquivo substitua:

#include <pci/pcivar.h>

Por:

#include <dev/pci/pcivar.h>

Agora edite o arquivo /usr/src/sys/pci/if_cpc.h

Por vota da linha 59 remova

#include <i386/isa/ic/hd64572.h>

E coloque

#include <dev/ic/hd64572.h>

E um pouco abaixo substitua

#include <i386/isa/ic/falc-lh.h>

Por

#include <dev/ic/falc-lh.h>

Agora edita seu arquivo de conf de kernel e coloque nele:

device sppp
device cpc

E recompile-o normalmente. Mas faca pelo modo tradicional, com config, 
make depend, make, make install e nao via make buildkernel. Nao faz 
diferenca mas vc fica a par de que momento pode dar qualquer problema. 
Se passar do make depend deve passar das outras fases. Se passar do make 
depend e falhar no make eh algum detalhe no FreeBSD 6.

Quando eu tive que fazer isso no FreeBSD 5.0 segui as mudancas do driver

/usr/src/sys/dev/ctau

Especificamente o /usr/src/sys/dev/ctau/if_ct.c e o 
/usr/src/sys/dev/ce/if_ce.c. Isso porque essas placas sincronas da 
Cronyx tinham o codigo praticamente igual (no que diz respeito ao 
sistema operacional) da PC300 da Cyclades. E elas foram devidamente 
portadas pro FreeBSD 5. Ou seja serviu como guia na epoca pra mim e pode 
servir hj tambem. Se der problemas e vc tiver paciencia, nao deve ser 
dificil corrigir a diferenca do 5.0 pro 6.1.

Procure as linhas

#if __FreeBSD_version >= 500000

Como guia.

Note que talvez voce tenha que por

#include "pci.h"

Em algum lugar, porque eu nao me lembro disso na if_ce.c e agora tem 
isso, mas aqui to usando 7.0 entao nao serve de comparacao segura.

Boa sorte, have a good hack! :)

-- 
Patrick Tracanelli

FreeBSD Brasil LTDA.
(31) 3281-9633 / 3281-3547
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd