Você está na página 1de 20

[TUTORIAL] AZBox HD (linux) com Dongle + reshare de SKS

Pessoal,

é possível usar dongle com AZBox HD.

Isso depois de muita pesquisa, tentativa e erro, compilando e testando várias


coisas que se encontram na web, e com a ajuda de vários users que estavam
pesquisando e passando-nos informações bem como dando força.
Fomos juntando o quebra-cabeça até que deu certo.

Por enquanto existem dois esquemas (dois plugins):

A) TwinCAS = Módulo que usa a API OpenXCAS e o protocolo Twin para se


comunicar com Dongles

B) Twin2cs = Módulo que usa protocolo Twin para se comunicar com Dongles e
serve para CAMs clientes, como por exemplo a MultiCAS.
Com ele dá pra fazer reshare de SKS usando tanto no próprio AZBox HD quanto em
outros receptores clientes que possuam conexão de rede.

Obs.: para quem somente quer usar dongle no AZBox HD, o mais recomenado é o
plugin TwinCAS.

Segue abaixo tutoriais para se usar um dos dois esquemas (plugins) no AZBox HD
(linux).

*** Requisitos:
================
1-ABox HD com CPU MIPSEL Sigma8634 e SO Linux (Ultra, Elite, Premium,
Premium+)

2-Adaptador USB-Serial RS232 com chipset pl2303 como o da foto abaixo:


Foto daptador usbserial com chipset pl2303

Ou

Adaptador USB-Serial RS232 com chipset FTDI como o da foto abaixo:


(vantagem que adaptador com chipset FTDI já tem driver instalado por padrão no
firmware dos AZBox HD)
3-Dongle (protocolo Twin) (I-Box, New-I-Box, PC30, xzlink sat, smart1, smart2,
COA-3, Pro-One, SMBox SM1, etc.)

4-Pacote com os arquivos (estão na sessão de cada um dos plugins logo abaixo)

5-Antena apontada pra o 15W ku E antena apontada para 61w ku e/ou 70w ku
e/ou 43w ku (esse último por enquanto com dongle Smart2 mas com freezes). Ou
seja, a antena deve ser apontada para o sat o qual o dongle usado pode abrir.

***A) O esquema com TwinCAS funciona


assim:
A-1) Instalação do TwinCAS:
=========================
Plugin TwinCAS (CAM que usa API OpenXCAS + Protocolo Twin puro).

Para o TwinCAS -> use o pacote da versão mais atual a seguir:

>>> AQUI - Plugin TwinCAS 1.02 for AZBox HD MIPSEL


sigma8634 + driver pl2303 <<<
Essa versão é pra azbox hd (Premium, Elite, Ultra) usar dongle (smart, smart2, i-
box, SM1, etc.) conectado ao STB através do uso de um adaptador usbserial com
chipset pl2303.

O pacote está preparado para modo de instalção por plugin. Ou seja, descompatar
o .zip e colocar os arquivos Camd.lst e twincas_1.02.tar.gz em um pendrive por
exemplo e instalar assim como se instala outros módulos OpenXCAS.

Após instalar, deve existir um pasta /EMU/OpenXCAS/twincas com os arquivos


openxcas.conf, twincas, pl2303.ko, azdongletest e install2303.sh.
Através do MAZ ou Telnet, verificar se os atributos do arquivo install2303.sh e
twincas que se encontram nessa pasta, estão com definição 755.

- Instalação do Driver para adaptador USB-Serial PL2303


A partir da versão 1.00 o driver pode ser instalado somente ao se iniciar o TwinCAS
pelo controle remoto a primeira vez e logo depois, desligar o STB (botão traseiro) e
religá-lo. (para isso o parâmetro -i deve ser usado ao iniciar o TwinCAS - verificar o
arquivo openxcas.conf no diretório do módulo)

Se não funcionar após reiniciar o STB, pode-se instalar o driver manualmente,


conectando-se por telnet ou MAZ ao STB e executar 2 comandos da seguinte
forma:
Código:
chmod 755 /EMU/OpenXCAS/twincas/install2303.sh
/EMU/OpenXCAS/twincas/install2303.sh

Obs.: Após instalar o driver com os comandos acima, deve-se REINICIAR o receptor
(desligar/ligar na chave traseira).

Após reiniciar o receptor, pode-se verificar se está ok, executando o seguinte


comando:
Código:
AZBox[twincas]$ dmesg | grep 2303
#tem que aparecer uma linha como essa:
#usb 1-2.2: pl2303 converter now attached to ttyUSB0

Obs.: Esse instalador do driver pl2303 precisa ser executado somente na primeira
vez, depois somente se fizer atualização de firmware ou recovery.

* Parâmetros de configuração do TwinCAS:

No arquivo /EMU/OpenXCAS/openxcas.conf tem um linha de argumentos de


inicialização do módulo, podendo-se tentar fazer ajustes para ver se melhoram
questões de travadinhas, se acontecerem.

Segue abaixo a lista de parâmetros do twincas que podem ser usadas tanto por
linha de comando (telnet), quanto por configuração no openxcas.conf (quando se
inincia pelo controle remoto).

O mesmo help abaixo sobre os parâmetros pode ser obtido com o comando:
Código:
AZBox[twincas]$ /EMU/OpenXCAS/twincas/twincas -h
twincas version v1.02 - The Twin CAM for AZBox HD

twincas [-p<dispositivoserial>] [-d<intervalotentativas>] [-t<tentativas>] [-


w<tempoantesdeenviarparaserial>] [-r<tempoanteslerserial>] [-v] [-l] [-
f<arquivolog>] [-m] [-x] [-o] [-b<tempoesperadobuffer>] [-
q<numvezesverificarbuffer>] [-h] [-n<modulename>] [-i] [-c]

Os argumentos são:

Código:
-d<n>
define delay antes de tentar encontrar nova CW diferente da última lida do
dongle até o máximo de tentativas definida com -t. O <n> pode ser 0 a qualquer
número, mas não defina valores muito altos (manter abaixo de 2000000=2 seg).
Tenha cuidado. (use em conjunto com -t)

-t<n>
Define o número máximo de tentativas para tentar encontrar CW diferente da
última lida dentro da função twin_get_key function antes de retnornar "key not
found". Veja a nota acima, para definir <n> (não defina valores muito altos)
cuidado o tempo total de looping dentro dessas tentativas será o valor de -t x
o valor de -d (ex.: -t25 e -d100000 = 25 x 100000 = 2500000 microsegundos =
2.5 segundos tentando ler nova CW do dongle antes de retornar. Recomendao que
o valor total não passe de 10000000 = 10seg). Use em conjunto com -d.

-w<n>
Define um delay antes de enviar comando para o dispositivo pela serial.
Novamente, tenha cuidado em não definir valores muito altos para <n>, pois o
tempo vai se adicionar aos demais dentro do looping de tentativas se for o
caso.

-r<n>
Define um delay antes de ler a porta serial do dispositivo. Novamente, tenha
cuidado em não definir valores muito altos para <n>, pois o tempo vai se
adicionar aos demais dentro do looping de tentativas se for o caso.

-p<x>
Define o nome do arquivo <x> que é o dispotivo da porta serial onde o dongle
está conectado (Default=/dev/ttyUSB0).

-v
Define modo verbose (mostra menssagens na tela - útil somente quando iniciar o
twincas em terminal telnet).

-l
Habilita escrever mensagens num arquivo de log (arquivo de log - default é
/tmp/twincas.log). É a melhor maneira de debugar o funcionamento do programa
quando se inicia o twincas pelo controle remoto (pode-se então usar por
exemplo o comando: tail -f /tmp/twincas.log no terminal telnet para
acompanhar as mensagens escritas no log).
Tenha cuidado para não encher o filesystem com o log. Só habilite quando
realmente for debugar algo. O sistema como um todo fica mais lento quando
gerando log e principalmente quando acompanhando através do comando tail.

-f<x>
Define um arquivo de log diferente (se usar, defina <x> com todo o caminho do
arquivo ex.: /tmp/logfile.log).

-m
Desabilita o processamento de EMM filtes (Altamente recomendado usar -m. O
default, se não usar -m, é habilitado).

-x
Define que a função openxcas_get_message use o parâmetro interno wait=FALSE
(default é TRUE, se não usar -x).

-o
Define openxcas_debug_message_onoff, default é off, se usar -o muda para on.

-q<n>
<n>=número máximo de tentativas para verificar o buffer antes de ler da porta
serial (use em conjunto com -b)

-b<n>
<n>=tempo de espera antes de verificar o buffer da porta serial (use em
conjunto com -q)

-c
habilita abrir/fechar porta serial a cada leitura do dongle (não recomendado)

-n<modulename>
<modulename> = nome que se dá ao módulo em tempo de execução. Se não definir o
nome padrão é "twincas". Esse parâmetro serve para executar mais de um plugin
twincas.

-i
diretiva que diz para o twincas instalar o driver pl2303 ao iniciar (executa o
script /EMU/OpenXCAS/twincas/install2303.sh ao iniciar)
Se não estiver instalado ainda, ele instala e é necessário rebootar o STB.
Após fazer isso, é aconselhável não usar o flag -i. Se já estiver instalado,
ele tenta instalar novamente e logo inicia o módulo.

-h
mostra help
Obs.:
Todos os valores para se definir um delay devem ser considerados em
microsegundos (ou seja 1000000 microseg = 1 seg)
Todos os valores default para delay e número de tentativas são 0 dentro do
programa se não forem especificados os parâmetros.

Parâmetros que se aplicam aos dongles como I-Box, Pro-One, entre outros:
Código:
argument = -d500000 -t20 -ntwincas -r0 -w0 -m -x -q20 -b20000 -i

Parâmetros que se aplicam aos dongles smart2 (70, 61), smbox sm1, smart1, pc-
40:
Código:
argument = -d280000 -t35 -ntwincas -m -x -q20 -b20000 -r50000 -w0 -i

Parâmetros que se aplicar para rodar com smart2 no 43w:


Código:
#argument = -d10000 -t100 -ntwincas -m -x -q20 -b20000 -r10000 -w900000 -i

Após instalar, pare todas os demais módulos e inicie o TwinCAS pelo controle
remoto.

É isso, se tudo deu certo, a partir daí é aproveitar...

A-2) Histórico de versões do TwinCAS


==============================

A seguir lista de versões já disponibilizadas:


Plugin Versão 0.01
Versão inicial funcional com freezes.

Plugin Versão 0.02


Adicionados parâmetros para ajustes de delays que pudessem minimizar os freezes e travamentos (-d -t -w -r -
p -m -x -o)
Os principais são o -m que desabilita processamento de EMM, o -d e -t que servem para gerar ciclo de -t
tentativas com intervalo de -d microsegundos e o -p que possibilita escolher a porta serial onde está conectado
o dongle.
Adicionados também o parâmetros para gerar logs (-v -l e -f).

Plugin Versão 0.03


Basicamente igual a v0.02 só que retirado todo o código que gerava logs (nem chamava função) para ver se
diminuiria processamento e consequentemente os freezes.

Plugin Versão 0.04


Ajustes para tratamento de alguns retornos de CW nulas de alguns dongles como SMBox SM1, Smarts 1 e 2:
Adicionado o tratamento de quando o módulo recebe CWs nulas como valores tipo: 11 11 11 11 11..., 55 55 55
55 55 55 55..., 00 00 00 00 00 00 00...

Plugin Versão 0.05


Ajustes para dongles como i-box principalmente:
Adicionado controle do buffer de leitura da porta serial. Dongles como i-box estavam gerando bytes a mais de
retorno.
Adicionados parâmetros de delay e ciclos para controle de leitura do buffer (-b e -q)
Adicionado parâmetro para abrir e fechar porta a cada leitura do dongle (-c) (não recomendado)
Adicionado parâmetro de help (-h)

Plugin Versão 0.06


TwinCAS v0.06 Source Code
Essa versão não tem mudanças muito significativas, somente ajustes (melhorias) no codigo fonte (formatação,
estrutura, variaveis), além de ter retirado partes que não precisavam, para disponibilizar o código fonte
melhorado para programadores que queiram se aventurar. Também adicionei um medidor de tempo (aparece
no log) para o looping de leitura do dongle, retirei o arquivo Key.bin que aparentemente não há necessidade, e
ajustei o "=" que estava faltando na linha "argument" no arquivo openxcas.conf.

Plugin Versão 1.00


TwinCAS 1.00 Source Code
Versão final 1.00. Essa versão apresenta a possibilidade de instalar o driver pl2303 diretamente pelo módulo
twincas através do argumento -i. Essa versão também apresenta melhoria para troca de channel, se estiver no
meio da busca (lendo dongle), recebe mensagem da API OpenXCAS e interrompe o loop de busca, iniciando a
busca para o novo channel escolhido.
(ps. Se logo no início ao se mudar de channel, ficar "pipocando", muda novamente para outro e volta, que
provavelmente estabiliza - pode ser uma falta de sincronia nesses casos entre o módulo TwinCAS e a API).

Plugin Versão 1.01


suporte melhorado para 43 com smart2.
No arquivo openxcas.conf tem uma linha comentada com # que tem os parâmetros que estou usando nos
testes para o 43 com smart2.
Para mudar parametros, pode-se comentar a linha atual com um # no início da linha e retirar o sinal # do início
da outra que se quer usar.

Plugin Versão 1.02


Essa versão permite instalação duplicada (mas executa-se somente uma de cada vez). Para isso foi incluído o
argumento -n<nomeCAM>. Ou seja, pode-se criar outro diretorio do twincas com outro nome, e muda-se o
nome do executável (por ex. twincas2), passando esse nome por parametro com o -n. Tem que colocar esse
nome no /EMU/OpenXCAS/module.seq manualmente.
Obs.: Para essa versão essa opção é mais para teste mesmo, uma solução melhor poderia ser um arquivo de
conf que tivesse a lista de configurações por SAT, e o programa automaticamente se ajustaria pelos parametros
conforme o SAT usado.
Essa versão do twincas tenta usar /dev/ttyUSB0 ao iniciar, se nao estiver disponivel, tenta /dev/ttyUSB1,
automaticamente, e só depois se não conseguir nenhuma das duas, tenta abrir a porta do parâmetro -p.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

***B) O esquema com TWIN2CS funciona


assim:
STB Linux (ex. AZBox Elite HD) <--> CAM Newcamd Client (ex. multicas,
mgcamd) <--> TWIN2CS <--> Adaptador USBSerial PL2303 <--> Dongle (ex. I-
Box, PC30, xzlinksat)

B-1) Como chegamos lá com o twin2cs:


===================================
Achamos um código fonte de dois programas para linux que fazem a conversão do
protocolo TWIN para Newcamd ou CCCam.
Primeiro fiz testes com uma versão para PC x86 numa máquina virtual com o
Dongle conectado à porta serial do micro.
Configurei o programa e configurei o Multicas para se conectar pela rede nele, e ...
FUNCIONOU bem.

Depois compilei o programa para azbox hd. Achei o driver para o adaptador
usbserial e instalei no deco. Fiz as configurações mas não funcionou com o smart1
que tinha.
Nesse mesmo tempo o Walterteresina que tem um I-Box fazia os testes com os
arquivos que enviei pra ele, e foi então que ele trouxe a notícia que funcionou e
muito bem.
No momento, com a versão 1.02, já está funcionando com smart1, smart2, new i-
box, xzlinksat, pc-30, SMBox SM1, etc.

PS. O programa que estamos usando no momento chama-se twin2cs que faz a
conversão TWIN<->Newcamd.
Já o programa twiner (do mesmo autor) faz o que o twin2cs faz só que tem suporte
ainda para CCCam e tem uma configuração diferente de delay para eliminar
problemas de freezes.

Sendo que o programa central que faz isso tudo acontecer, o TWIN2CS, pode ainda
servir para outros decos na rede se conectarem por protocolo newcamd, fazendo o
reshare do SKS (testato com um S810).

Bem, chega de papo e vamos ao tuto!!!!

B-2) Requisitos:
===============
A lista de requisitos está descrita no início desse post.

Pacote com os arquivos: (agora é o mesmo tanto para método de instalação de


plugin ou para totalmente manual)
>>> AQUI - Plugin Twin2cs AZBox HD Mipsel 1.01 + driver
pl2303 <<<

B-3) Instrucões de instalacão - método 1: por Plugin


==============================================

EDITADO: Ajustado o plugin - Funcionando (se não conseguir, siga o método 2 -


manual)
Vou falar aqui como instalar o plugin por pendrive.

Após descompactar o arquivo .zip baixado do link citado acima no item II.4, copie
os arquivos Camd.lst e twin2cs.tar.gz para a raiz (/) de um pendrive formatado em
fat32.

Coloque o pendrive na porta USB do receptor.

### I - Instalação do plugin twin2cs ###

Pelo controle remoto selecionar:

Código:
Home Menu -> Plugins -> OpenXCAS -> Obter Executavel -> Instalar da USB ->
twin2cs.tar.gz -> ok

Depois aperte exit até voltar ao menu "Configuração de Camd".

Escolha "Ativação e Prioridades" selecione "twin2cs" e aperte botao Vermelho para


aumentar a prioridade até ele ser o primeiro da lista. Saia do menu, vá para TV.

Configure os dados conforme necessário nos arquivos twin2cs.cfg e


twin2cs.channelinfo que estão no diretório /PLUGINS/OpenXCAS/twin2cs
(a seguir um exemplo de arquivo twin2cs.cfg, para configurar o arquivo
twin2cs.channelinfo pode ver mais abaixo no item V as regras)

Exemplo de twin2cs.cfg
Código:
SERIAL: /dev/ttyUSB0

KEY: 01 02 03 04 05 06 07 08 09 10 11 12 13 14
PORT: 25000

CAID: 1802
PROVIDERS: 101 102 106 2311 3311 000000

USER: user1 pass1


USER: user2 pass2
USER: teste teste

Configure uma conexão cliente Newcamd (no Multicas por exemplo) para se
conectar ao twin2cs usando os dados de usuário, senha, deskey, porta conforme
definidos no arquivo twin2cs.cfg acima citado. O hostname pode ser 127.0.0.1 que
é o endereço local do STB.

Tela de exemplo de conexão do Multicas - Newcamd - Twin2cs (local no azbox)

Pode retirar o pendrive do receptor e conectar o adaptador usbserial com chipset


pl2303 e o dongle conecato a ele. Ligue o dongle.

### II - instalação do driver para adaptador usb-serial


pl2303 ###

Por telnet (use MAZ ou putty), execute o seguinte comando para instalar o módulo
do driver para o adaptador usbserial com chipset pl2303:

Código:
/EMU/OpenXCAS/twin2cs/install.sh

Obs.: Observe as letras maiúsculas e minúsculas.

Reinicie o receptor.

Após reinicar, inicie o twin2cs por controle remoto mesmo (botão >>| - seleciona a
CAM twin2cs - botão azul - para ficar sem o sinal # no início do nome da CAM).
Depois o cliente newcamd que você configurou (Multicas por exemplo)
Certifique-se de não ter mais nenhuma CAM (Cheops por exemplo), e nem outro
server configurado no cliente Newcamd para ter certeza que vai abrir pelo dongle.

Vá para um canal que sabe que o dongle está abrindo e veja se abrirá ou não.

DICA(1):
Para ter certeza que o driver pl2303 carregou, pode executar:
Código:
dmesg | grep 2303

ou
Código:
lsmod

e verificar se o driver foi carregado e em que porta ele está referenciado (ex.
ttyUSB0, isso se vê através do comando dmesg)

* Essa parte descrita na sessão "II" só é necessária fazer uma vez. Feita uma vez,
até se fazer um "format area", o driver deverá sempre carregar automaticamente
quando reiniciar o receptor.

B-4) Instruções para instalação - método 2: Totalmente


manual
==================================================
====

------------------------------------------------------------
EDITADO 1: Além do tutorial que está descrito aqui para esse método (manual), o
Walter nos presenteou com um tutorial com mais detalhes. Segue o link:
>>> Tutorial mais detalhado por Walterteresina <<<
Pode seguir o método manual pelo pacote do Walter, mas pode estar desatualizado
por causa das versões dos arquivos usados.
------------------------------------------------------------
EDITADO 2: Agora que o plugin está funcionando, atualizei o método manual para
se usar o mesmo pacote do plugin, evitando a necessidade de se manter 2 pacotes
de arquivos para os 2 métodos.
------------------------------------------------------------

A seguir o tutorial do método 2 (atualizado usando o mesmo pacote de arquivos do


método plugin):

Conecte o dongle no adaptador usbserial ;


Conecte o adaptador usbserial numa porta USB do AZBox (melhor usar um cabo
extensor USB) ;
Conecte no AZBox HD por telnet ou SSH e cria um diretório por exemplo
/EMU/OpenXCAS/twin2cs:

Código:
mkdir /EMU/OpenXCAS/twin2cs

Depois copiar os arquivos (descompactados até o último nível) do pacote que fez
download acima no item II.4 para esse diretório que foi criado. (Eu uso o winscp
pra isso, mas podem usar o MAZ ou o Filezila).

Os arquivos são:
Código:
azdongletest
install.sh
openxcas.conf
pl2303.ko
readme.txt
S98pl2303
twin2cs
twin2cs.cfg
twin2cs.channelinfo
Agora pode-se carregar o driver para o adaptador usbserial via telnet:

Código:
cd /EMU/OpenXCAS/twin2cs
insmod /MMP/modules/2.6.15/usbserial.ko
insmod pl2303.ko

A primeira linha acima, pode não ser necessária pois o módulo usbserial.ko pode já
estar carregado, mas por precaução, execute.

Após instalar o driver, deve-se achar a porta serial que ele foi instalado. Para isso
faça o seguinte:

Código:
AZBox[twin2cs]$ dmesg | grep 2303
...
pl2303 1-2.2:1.0: pl2303 converter detected
usb 1-2.2: pl2303 converter now attached to ttyUSB0
usbcore: registered new driver pl2303
drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver
...

Pode usar também o comando "lsmod" para verificar a lista de módulos carregados
e ver se o pl2303 aparece listado.
Código:
AZBox[twin2cs]$ lsmod
Module Size Used by Tainted: P
pl2303 24592 0 - Live 0xc8ab2000
cdfs 30144 0 - Live 0xc8a91000
sr_mod 16944 0 - Live 0xc8a81000
cdrom 43184 1 sr_mod, Live 0xc89ca000
ftdi_sio 32704 0 - Live 0xc898b000
usbserial 30432 2 pl2303,ftdi_sio, Live 0xc8997000
sckernel 32720 0 - Live 0xc89c1000
em8xxx 2522832 6 - Live 0xc8cf3000
llad 128416 17 em8xxx, Live 0xc89a0000
rt3070sta 654000 1 - Live 0xc89d9000
rt61 297392 0 - Live 0xc80a7000
ehci_hcd 39120 0 - Live 0xc809c000
uhci_hcd 37280 0 - Live 0xc8015000

Identifique a porta, como no meu caso (em vermelho na lista do comando dmesg
acima) está usando a ttyUSB0.

Agora, edite o arquivo twin2cs.cfg, alterando os dados conforme for necessário.


Verifique os valores definidos, principalmente o parâmetro SERIAL: seja o mesmo
que identificou no passo anterior.

O meu arquivo twin2cs.cfg está assim:


Código:
SERIAL: /dev/ttyUSB0

KEY: 01 02 03 04 05 06 07 08 09 10 11 12 13 14
PORT: 25000

CAID: 1802
PROVIDERS: 101 102 106 000000

USER: user1 pass1


USER: user2 pass2
USER: teste teste

Depois edite o arquivo twin2cs.channelinfo se necessário.


Esse arquivo deve conter a lista das flores que se deseja abrir.
O arquivo que está no pacote já tem a lista para o 61W e para o 70W (pode estar
desatualizado devido às constantes mudanças).
Para adicionar linhas nesse arquivo tem um formato padrão como está explicado no
item V mais abaixo.

Após configurar os arquivos, deve-se copiá-los para /var/etc. Esse diretório não
existe no AZBox HD quando se liga ele, então via telnet estando dentro do diretório
onde estão os arquivos (/EMU/OpenXCAS/twin2cs) e pode se iniciar o programa:

Código:
cd /EMU/OpenXCAS/twin2cs
mkdir /var/etc
cp twin2cs.c* /var/etc
./twin2cs

O programa vai iniciar e tem que reportar algo assim:

Código:
[04:07:17.685] twin2cs - by basssem, dvbcrypt#.gmail.com
[04:07:17.686] twin2cs Mipsel version 1.01
[04:07:17.687] config: parsing file '/var/etc/twin2cs.cfg'
[04:07:17.688] *caid 1802
[04:07:17.688] *prov 0 = 000101
[04:07:17.688] *prov 1 = 000102
[04:07:17.689] *prov 2 = 000106
[04:07:17.689] *prov 3 = 000000
[04:07:17.689] config: parsing file '/var/etc/twin2cs.channelinfo'
[04:07:24.041] Serial port '/dev/ttyUSB0' opened.
[04:07:24.052] newcamd server started on port 25000
[04:07:25.258] entering main loop...

Configure um cliente Newcamd (Multicas por ex.) no AZBox HD para se conectar ao


serviço twin2cs. (configure o cliente com os dados que configurou o twin2cs.cfg, é
claro)
Inicie a CAM Newcamd cliente e você verá informações de conexão e mensagens de
ECM sendo realizadas.

Tela postada pelo user Walterteresina funcionando (Multicas conectado ao twin2cs


versão 1.00 no Premium)

DICA(2): Pode-se usar do artifício já usado no método 1 para instalação automática


do driver usbserial a cada vez que religar o STB.
Para isso, siga a sessão "II" do método 1 (item B-3) acima descrito.
Para finalizar, e fazer com que a instalação feita manualmente se comporte
exatamente como plugin, ou seja, possa iniciar e parar pelo controle remoto assim
como qualquer outra CAM no OpenXCAS, basta editar o arquivo
/EMU/OpenXCAS/module.seq e inserir a linha com "twin2cs" como a seguir:

Código:
twin2cs
MultiCAS
#CheopsCAS
#newcs
#mgcamd

PS: nesse exemplo eu tenho outros plugins (newcs, mgcamd, cheops), depende de
quais você tenha instalado, o que importa é adicionar a linha do twin2cs e deixá-lo
na primeira linha de preferência (questão de prioridade, inicia primeiro que os
demais).

Bem, de quebra, esse programa/plugin twin2cs serve também para conectar outros
decos que podem se conectar via rede no AZBox HD onde está o Dongle, ou seja,
reshare de SKS.

B-5) Configuração do arquivo twin2cs.channelinfo


==========================================

A seguir uma explicação de como deve ser o arquivo twin2cs.channelinfo se


precisarem ou quiserem entender. Para quem quiser, deixo a disposição o arquivo
já com dados do 43w, 61w e 70w (3 arquivos zipados - tem que renomear o
arquivo que for usar para twin2cs.channelinfo e colocá-lo no diretório /var/etc)
[b] >>> Arquivos channelinfo para 43w, 61w e 70w gerados em 06/10/2011 <<<
[b]

Sintaxe:

caid(2 bytes): providerid(3bytes):sid(2bytes):sat position(2 bytes):freq do canal(2


bytes) "Descricao/nome"

Regras:

Todos os valores devem ser escritos em hexadecimal. Portanto se souber os valores


em decimal, use a calculadora do windows em modo científico e converta de
decimal para hexadecimal.

Para satélites de posição East (Leste) a formula é:


0 + graus_da_posição_do_satelite, depois adiciona-se um 0 (zero) à DIREITA do
resultado.

Para satélites de posição West (Oeste - que é nosso caso aqui no Brasil) a fórmula
é: 360 - graus_da_posição_do_satélite, depois adiciona-se um 0 (zero) à DIREITA
do resultado, ou seja para o 61 é 360 - 61 = 299 em decimal

Depois adicionando-se um zero ao final do número (2990), e converte-se para


hexadecimal: 2990 em decimal é 0BAE em hexadecimal. Deve-se adicionar zero a
ESQUERDA se o resultado tiver menos de 4 algarismos até completar os 4
algarismos em hexadecimal (para esclarecer mais ainda, cada conjunto de 2
algarismos em hexadecimal formam os dois bytes comentados na sintaxe acima).

Exemplo:

Esporteve1 que tem sid=339 do sat 61w (caid 1802) seria:

CAID=1802 : PROVIDER=000000 : SID=0153 : Pos Sat=61w => 360-61 = 299


=> 2990 => 0BAE : Freq=11135 => 2B7F + uma descrição entre aspas

Então a linha exata no arquivo ficaria assim:

Código:
1802:000000:0153:0BAE:2B7F "Sporteveuno"

É dessa forma que se faz manualmente a configuração do twin2cs.channelinfo, mas


o melhor é usar um arquivo pronto é claro. No pacote tem um arquivo (se não me
engano para o 61W), mas pode ser necessário alterar algum valor, pois com as
mudanças seguidas de TPs etc., pode estar um pouco desatualizado. Se alguém
puder postar um arquivo compelto atualizado com o 70w e 61w, seria muito bom.

C) Resultado de testes relatados por alguns users


============================================

Dongle Programa STB/PC Forma Resultado Usuário


usado testada

Azsmart twin2cs Premium local freezes gordon


1.00 + STB+pl2303

COA-3 twin2cs Premium local travadas sandro_colorad


1.01 STB+pl2303 o

I-Box twiner_ppc Dreambox local na não nixon


porta serial funcionou

I-Box twiner_x86 2 STBs biglinux 4.2 perfeito bip

I-Box twin2cs Elite local freezes spyw2


1.00 STB+pl2303

I-Box twin2cs Premium local travadas gravatasufoca


1.01 STB+pl2303

I-Box twin2cs Premium local não drac


1.00 + STB+pl2303 funcionou

new I- twin2cs Premium local quadriculada walterteresina


Box 1.01 STB+pl2303 s

new I- twincas 1.02 Premium local perfeito walterteresina


Box STB+pl2303
new I- twin2cs Premium local freezes luizaum
Box 1.01 STB+pl2303

PC30 twin2cs Elite local funcionou sammer


1.01 STB+pl2303

Pro-One twin2cs Premium local freezes luizaum


1.01 STB+pl2303

Pro-One twincas 1.02 Elite local pefeito valted


STB+pl2303

Pro-One twin2cs Elite NS- pefeito valted


1.02a k330+pl230
3 NAS

Smart1 twin2cs Elite local freezes leandrpf


1.01 STB+pl2303

Smart1 twin2cs Elite local perfeito leandrpf


1.02a STB+pl2303

smart1 twin2cs Premium local travadas sandro_colorad


1.01 STB+pl2303 o

Smart1 twin2cs_x8 VM Elite freezes leandrpf


6 Ubuntu remotamente
rede

Smart1 twin2cs Premium local freezes gordon


1.00 + STB+pl2303

Smart2 twin2cs Elite local freezes leandrpf


1.01 STB+pl2303

Smart2 twin2cs Elite local perfeito leandrpf


1.02a STB+pl2303

Smart2 twin2cs Elite local travadas spyw2


1.00 STB+pl2303

Smart2 twin2cs Premium local freezes drac


1.00 + STB+pl2303

Smart2 twin2cs Elite local freezes pescador767


1.00 STB+pl2303

smart2 twin2cs Premium local travadas sandro_colorad


1.01 STB+pl2303 o
smart2 twincas 1.01 Ultra HD local perfeito bionic
STB+pl2303

smart2 twincas 1.02 Elite local perfeito rennato


STB+pl2303

Smart2 twincas 1.02 Elite local perfeito leandrpf


STB+pl2303

Smart2 twin2cs_x8 2 STBs VM perfeito wmzi


6 Ubuntu+csp

SMBOX twin2cs Elite local perfeito leandrpf


SM1 1.02a STB+pl2303

XZLink- twin2cs_x8 2 STBs VM perfeito wmzi


2 6 Ubuntu+csp

XZLink- twin2cs Elite local travadas eliasja


2 1.00 STB+pl2303

** Se alguém testar com outros dongles, decos, formas, por favor postar nesse
tópico para que atualize essa lista (todos agradecem)

D) TO DO
=========

1-Fazer testes com o twiner que é o outro programa com suporte a CCCam e com
parâmetro de delay para evitar freezes e, melhorar também o twin2cs

2-Programar um dispositivo (que foi onde começamos eu, Walter e o user prd do
outro fórum a pesquisar sobre essa possibilidade, principalmente depois do user
Duduangra ter perguntado se era possível usar o premium em SKS)

3-Desenvolver/melhorar emulador para Windows e/ou Linux em PC (o PRD está


nessa linha programando em Delphi) eu também estou fazendo com Visual Basic.

4-Desenvolver CAM independente (da API OpenXCAS) com acesso direto ao


protocolo twin (baseando em codigos fontes de outras CAMs de código aberto)
(pesquise no Google por "emu-pack-sources.rar")

5-Usar pthreads no twincas na função que lê do dongle.

6-Ajustar código e compilar twin2cs para Win32 puro

7-Melhorar/fazer interface gráfica para ajustes de parâmetros do twincas


diretamente no STB

8-Melhorar/fazer plugin para instalação do driver pl2303 (ou um control center para
twincas e twin2cs)

9-Fazer um vídeo mostrando instalação e utilização dos plugins


10-Compilar para Enigma 2 (tanto Dream quanto AZHD)

E) Agradecimentos e considerações finais


=====================================
Finalmente e não menos importante os agradecimentos ...

ao user vegeku90 moderador de outro forum internacional que postou o drive


pl2303 para AZBox HD
ao user rsancho1 que encontrou os fontes e nos avisou
ao user Walterteresina que, acho que foi o primeiro user no mundo a conseguir
usar um dongle no AZBox HD e foi primordial nos seus testes até funcionar.
ao user AMERICAGUI por testar incansavelmente a versão funcional para i-box.
aos users valted, yugto, prd, gravatasufoca, will20, emersonsantos, luizaum,
sammer, elsonsat1, milton prates, carlosdias68, entre vários outros que de uma
forma ou outra contribuiram para o desenvolvimento do TwinCAS.
ao user cuervo por repassar as informações adiante.
e principalmente ao Basssem, autor dos códigos fontes dos programas twin2cs e do
twiner que estavam no repositório dvbcrypt.com

F) Extras
=========

F-1) Programa Dongle Comm Test: (para Windows x86)


=========================================
Durante nossas pesquisas e estudo dos protocolos (twin e newcamd), desenvolvi
um testador de dongles em VB6.
O programa executando num PC com windows e dongle conectado à porta serial,
faz requisições e mostra as respostas da comunicação pelo protocolo twin.

Quem quiser testar, pode baixá-lo AQUI

Uma imagem do programa v0.2 em ação: (ele não faz nada mais do que testar a
comunicação, não é emulador)

Para executar o programa, é necessário ter o arquivo >>twin_cache.cfg<<< na


pasta c:\temp do seu PC.

F-2) Kit de desenvolvimento para azbox HD:


================================
Montei um pacote e coloquei no 4shared. Lá tem um txt onde tento explicar o
básico pra montar um ambiente de cross compiling para nossos decos. Eu escrevi
conforme encontrei dicas que achei na web e também baseado no que fiz aqui para
montar meu ambiente. Pode estar desatualizado, pois fiz com ubuntu 9.04.
Pra quem quiser se aventurar, segue o link:
>>> Kit de desenvolvimento para os AZBox HD <<<

F-3) Dongle Comm test para azbox: (para azbox hd linux mipsel smp8634)
==================================================
===
Na mesma linha do DongleTestV03 para windows, disponibilizo essa versão beta
para executar direto no azbox, com objetivo unico e exclusivo de fazer testes de
conexão com dongle conectado ao azbox.
>>>download aqui do azdongletest para azboxhd<<<

Copiar o arquivo para o azbox, dar permissão de execução 755.


Executá-lo por telnet (executar na pasta onde ele foi copiado - as últimas versões
do twincas instalam o programa no mesmo diretório do plugin).

Código:
Sintaxe: azdongletest [-pport] [-bbaudrate] [-tn_tries] [-ddelaytry] [-
rdelayread] [-wdelaywrite] [-ssid] [-lsatlatitude] [-ffrequency]

-t = max tentativas
-d = delay p/ cada tentativa
-r = delay antes de ler da serial
-w = delay antes de escrever na serial (microsegundos 1seg = 1000000
microsegundos)
-p = serial device (geralmente /dev/ttyalgumacoisa
-b = define velocidade (baud rate) da porta serial
-s = SID do canal (no exmeplo acima é bobosp 70w)
-l = satelite latitude negativo para oeste e positivo para leste, ou seja, no
caso de 70.0w fica -700
-f = frequencia do canal (com 3 zeros no final no caso dos TPs do 70w ou do
61w)

Ex.:
azdongletest -p/dev/ttyUSB0 -b115200 -t50 -d100000 -r0 -s855 -l-610 -f10808000

Ao executar o comando do exemplo acima, o programa enviará 50 requisições com


intervalo de 100000 microsegundos (=100ms) para o dongle conectado à porta
/dev/ttyUSB0 do azbox com baud rate de 115200. Zero microsegundos de de delay
tanto para ler do dongle após enviar cada requisição. Sid=855 Sat=61w e
freq=10808.

É uma versão inicial de teste. Não espere muito do programa :)


Obs.: Se o programa não terminar a execução, por não receber respostas do
dongle, pode-se teclar <Ctrl>+<C> pará-lo.

F-4) Programa gerador de lista de canais para azbox hd linux mipsel


smp8634 (azexpch)
==================================================
============

Como prometido, eis o programa batizado de azexpch (exportador de channel list


para azbox hd) para TESTES (v0.01 beta):

>>AZEXPCH para AZBox HD<<

Para que serve?


Para gerar arquivo com lista de channels tipo twin2cs.channelinfo, twin_cache.cfg
(fausto) ou cccam.channelinfo (CSP) a partir do arquivo de channels do azbox hd
(/DISK2/all_channel.dat).

Só serve para executar em azbox hd (linux).


Copiar o arquivo para o deco e via telnet dar permissão 755 e executá-lo como os
exemplos abaixo:

Para Help:
Código:
chmod 755 azexpch
./azexpch -h

A seguir a lista de parametros obtida com o argumento -h:


Código:
AZBox[~]$ ./azchexp -h

azexpch version 0.01 - The Channel Export for AZBox HD

azexpch [-n<netid>] [-f<formatid>] [-t<chtype>] [-a<caid>] [-p<providerid>] [-


s<satpos>] [-d] [-l] [-c] [-h]

Os argumentos são:

-n<n> n = network id - for instance -n182 (get netid using -l)


if <n> is zero or not defined, all networks will be listed
-f<n> n = format id values are: 0-Normal, 1-twin2cs.channelinfo, 2-
fausto twin_cache.cfg, 3-cccam.channelinfo (CSP f.e.)
-t<n> n = channel type values are: 0-all types, 257-TV, 258-Radio
-a<x> x = the caid (used if format need it, like format 1 or 2)
-p<x> x = provider id (used if need it, like format 1 or 2)
-s<n> n = sat latitude position. - for west and + for east position.
f.e. 70.0w = -700
-d = force to print details
-l = list networks
-c = list channels
-h = print this help

Obs.: -c ou -l devem ser usados sempre por último da lista de parâmetros usados,
e sempre: ou um, ou outro, não os dois ao mesmo tempo.

Para listar Networks: (primeiro deve-se descobrir qual o network id que está
referenciado no arquivo all_channels.dat do seu STB)
Código:
./azexpch -l

A partir do comando acima, pode-se identificar qual é a network para o sat que se
deseja gerar o arquivo com a lista.

Para facilitar, pode-se usar o comando grep em conjunto, ex. para achar a network
do passaro 43.0w (-430):
Código:
./azexpch -l | grep 430

Vai gerar algo assim e se acha net_index = 147:


Código:
AZBox[~]$ ./azexpch -l | grep 430
unlink fail!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!: No such file or directory
ERROR: ChannelSDK_LoadNetwork:767 Fail to open '/DISK2/DVBC.dat'
ERROR: ChannelSDK_LoadNetwork:775 Fail to read networks from
'/DISK2/DVBTa.dat'
ERROR: ChannelSDK_LoadNetwork:767 Fail to open '/DISK2/ISDBT.dat'
ERROR: ChannelSDK_LoadNetwork:767 Fail to open '/DISK2/ATSC.dat'
net_index(147) |orbital_pos(-430) |mp_count(27) |INTELSAT 3R, 11|

Para listar channels (-c) do tipo TV (-t257) do passaro 70w (-s-700) ku (-n182) no
formato cccam.channelinfo (-f3), passando parametros CAID com -a1802 e
provider 000000 (-p000000) no arquivo cccam.channelinfo:
Código:
./azexpch -n182 -t257 -f3 -a1802 -p000000 -s-700 -c > cccam.channelinfo

Para listar channels (-c) de todos os tipos (radio e tv - é só não usar o parametro -
t) do passaro 43w (-s-430) ku (-n147) no formato twin2cs.channelinfo (-f1),
passando parametros CAID 0907 e provider = 000000:
Código:
./azexpch -n147 -f1 -a0907 -p000000 -s-430 -c > twin2cs.channelinfo

DICA(3): para se gerar a lista para mais de um sat em um mesmo arquivo, gerar
um de cada vez passando os parametros conforme for para cada um, e depois uni-
los (use a criatividade).

Complicado?? pode ser, mas pra quem não tinha nada ou tinha que gerar "a mão",
já ajuda. :)
E, depois se tudo estiver ok, colocando-o para executar a cada vez que se iniciar o
deco para manter os arquivos do plugin twin2cs atualizados, vai melhorar bastante.

O objetivo agora é ver se mais alguém pode executar e postar resultados aqui para
ver se está tudo ok.

Quem for testar, faça com calma. Leia e tente entender os parametros para que
servem. Como disse, é um programa em fase inicial (beta).

PS.: Esse programa foi feito em cima do código fonte encontrado no AZBoxTVSDK
disponibilizado pelo fabricante.

F-5) Twin2cs em NAS NS-K330


=======================

O valted tem trabalhado em cima de um dispositivo NAS chamado NS-K330. Ele


compilou o fonte do twin2cs para essa plataforma e está funcionando perfeitamente
segundo ele. O dispositivo é um pequeno "microcomputador" que roda linux capaz
de funcionar como um compartilhador de arquivos, e fazer outras coisas mais.
Para mais detalhes do NS-K330 e o que é um NAS, pode dar uma
conferida >>AQUI<<

O valted disponibiliza o >>> projeto twin2cs para NS-K330 AQUI <<< .

F-6) Twin2cs em Dreambox 500


=======================

O PRD tem se dedicado a continuar com o twin2cs para funcionar em Dreambox


500 (PPC). Há relatos dele e de outros usuários já que está funcionando
perfeitamente.
O projeto do PRD (SKS com twin2cs em Dreambox 500) pode ser acompanhado no
tópico >>Dreambox Dm500 SKS Twin Dongle<<
F-7) Twin2cs em Linux x86 (PC ou VM com linux)
===================================

O projeto do Bassem do twin2cs e do twinner era pra linux x86. Vários users aqui
do forum é que compilaram para outras plataformas como NAS ARM, AZBox Mipsel
e Dreambox PPC.
Então, as versões decorrentes que foram evoluídas, também servem para executar
em cima de linux em PC, podendo ser em máquina física ou virtual.

Disponibilizo o twin2cs código fonte e executável para linux x86 nas seguintes
versões:

>>> Twin2cs versão 1.02a <<<


Versão ajustada para trabalhar com 43w - smart2 e outros dongles em outros sats. Também está ajustada para
evitar problema de timeout na conexão a partir de receptores azamerica, entre outros. Não é funcional para
usar com software tipo CSP com mais de um user, por causa da forma como ele obtém informações do dongle
de forma repetitiva até achar CW diferente para evitar freezes quando conectado diretamente ao twin2cs.
Quando conecta o CSP ao twin2cs, com mais de um user no CSP, devido ao modo como ele pega as CW (repete
leitura do dongle até CW diferente) as informações ficam incorretas. Isso tem que ser trabalhado ainda para
não acontecer nessa versão. Não acontece na versão 1.00 e 1.01 com CSP. Também nessa versão é possível
usar diretório diferente do /var/etc para os arquivos de configuração e channelinfo.

>>> Twin2cs versão 1.02 <<<


Versão ajustada para rodar sem freezes (repetição de obtenção de informação do dongle até achar CW
diferente) e para rodar com 43w. Assim como a 1.02a, também não serve para usar com CSP.

Obs.: para rodar twin2cs com 43w, o caid 0907 não funciona quando usando
azamerica, ele passa 0000, então no arquivo twin2cs.channelinfo deve-se ajustar o
caid para 0000.

O twin2cs não consegue ainda atender mais de um CAID na mesma instância que
está executando.

Bem, por enquanto é isso, vamos incorporando informações aqui na medida que for
necessário.
Lembrando, faço por puro hobby e vontade de ver as coisas funcionarem, e
também para aprender.

Enjoy!! Dificuldades, dúvidas, sugestões, resultados de testes, postem ...

Abraço.

Você também pode gostar