[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