Fosse qual fosse o sistema operativo sempre gostei de ter no desktop a informação do sistema em background… um must have!
Comece por instalar a aplicação,
Faça o download do ficheiro de configuração,
na linha de comandos anterior substitua "pi" por "pi-star" se instalou sobre o pi-star, ver pi-star +GUI, packet e aplicações desktop
Note que, esta aplicação utiliza recursos diversos entre eles o comando "top" e usa cerca de 12% de um dos core. Para reduzir o impacto no aquecimento e consumo, depois de instalado edite o ficheiro ".conkyrc" e modifique a linha "update_interval 0.5" de acordo com as suas preferências...
A utilização do CPU é linear,
0.5s - 12% CPU 1s - 6% CPU 2s - 3% CPU
Para iniciar agora a aplicação no boot do sistema temos de criar 2 ficheiros, o primeiro para atrasar o script de shell durante 4 segundos, o segundo para permitir que o lxdesktop inicie o script de shell,
Este bem poderia ser o primeiro post do site já que, daqui fui construindo todos os outros projectos...
Há uns meses atrás comecei este projecto. Sempre fui adepto de "all in one", nas impressoras, nos rádios, nos gadgets, até nos canivetes suíços! Compreendo quem prefira um rádio para HF, outro para VHF e UHF, mas eu gosto deles com tudo! Este projecto é para os que gostam de "tudo na mesma caixa"!
Há uns meses, nem sabia o que era um Raspberry Pi até que me rendi... comprei um zero com wireless, experimentei o 3B + e depois comprei um 4. Foi com o mesmo entusiasmo com que recebi o meu ZX81 ou o Spectrum em 1982, mas com tecnologia mais recente e capaz de um projecto deste tipo! - Era o computador que faltava na minha estação de rádio! Sem ventoinhas, logo sem barulho, a 5V ou facilmente alimentado a partir de 12V e, o Raspberry 4 com uma capacidade de processamento suficiente para correr um sem número de aplicações em simultâneo! Estas características maravilharam-me...
Tudo começou quando adquiri o meu rádio D-Star, instalei num Pi zero W o software pi-star, num computador antigo a correr linux, apenas linha de comandos, o linbpq para packet e APRS e depois precisava de outro brincar com modos digitais... Eram muitos computadores, todos ligados, a consumir energia 24 horas por dia! Não, tinha de haver outra solução. A solução passava por um computador, todos os sistemas e software a correr ali... Pretendia ainda uma solução alimentada a 12V, de modo a poder alimenta-lo a baterias e criar sistemas de alimentação redundante.
A solução era mesmo um Raspberry Pi!
Fiz teste num 3B + de um amigo. Percebi que tinha de instalar primeiro o pi-star, a última versão "buster" do debian, disponível para download no site deste excelente projeto. O pi-star tem uma excelente característica, depois do arranque o sistema entra em modo read-only, e apesar de o podermos pôr em read-write, tudo está feito para que volte a read-only no instante seguinte! Era um quebra cabeças e o primeiro problema a resolver! Todos os posts anteriores foram o caminho a percorrer para chegar até aqui e resumem a minha experiência em Pi.
Se quiser ter os modos digitais, o propósito de ter instalado o core do pi-star, terá de adquirir uma pequena placa de RF, chamada MMDVM hotspot. Encontra-se facilmente no eBay e a minha custou cerca de 15€ mais despesas de envio.
As instruções seguintes mostra como o fazer.
No final deste projecto, com algumas horas e muita paciência, fica com um Raspberry Pi (recomendo o 4, com 2 ou mais Gb de RAM) com,
pi-star, para modos digitais (D-Star, DMR, YSF...)
packet e APRS no linbpq + (Hamlib, Direwolf, Xastir, Linpac)
recepção de WSPR com uma simples RTL-SDR v3
FLRig e FLDigi
WSJT-X
JTDX
GridTracker (Display connections on a map)
JS8CALL
CQRLOG + TQSL (Advanced Ham Radio Logbook)
GPredict (Sat-Tracking)
QSSTV (Slow Scan Televison)
GQRX (SDR)
FreeDV (Digital Voice)
VOACAP (Propagation Prediction)
Chirp (Programming transceivers)
Qtel (Echolink Client)
WSPR with RTL-SDR v3
VNC server para acesso externo (tablet, telefone ou computador)
Que tal? 🙂
Instruções
Não há fórmulas mágicas, os bons projecto levam tempo! Precisa tempo e paciência, sobre tudo se não tem muita experiência com sistemas operativos linux em linha de comandos. No entanto tentei tanto neste como nos posts anteriores criar instruções para que fosse apenas copiar e colar... Neste projecto, e porque não sou o autor de tudo, deixo links para outros sites, para os siga e instale tudo pela ordem que sugiro.
Comecemos por instalar o pi-star
Faça o download e siga as instruções para o seu sistema operativo. A instalação do pi-star não é opcional já que este projecto se baseia nele, que inclui o último sistema operativo "buster" à data em que escrevo este artigo.
Depois vamos instalar o interface gráfico GUI. Sim, vai ter uma consola gráfica, mas toda a instalação corre praticamente em linha de comandos.
Depois de instalado o pi-star, identifique a sua versão. Terá de habilitar o SSH, configurar o acesso à network ou, ligar um monitor, teclado e rato. Abra uma janela terminal, ou aceda por SSH e faça,
...dá-lhe algumas informações sobre a versão, processador e hardware Para conhecer qual o sistema operativo, pelo nome que conhecemos digite,
ou, digite o comando "lsb_release -a". Actualize agora o seu sistema já instalado,
O pi-star, foi desenhado com propósito único, e será necessário instalar diversos componentes: software, plugins de terceiros e livrarias de código; de modo a dotá-lo de todo o software para o nosso projecto.
Instale a componente de configuração do Raspberry Pi, que facilitará muito qualquer configuração de rede, hardware, serviços, etc...
Ambiente gráfico de janelas
Agora vamos instalar o X ou interface gráfico GUI. Passo simples. Depois já terá acesso ao sistema pelo interface gráfico de janelas que lhe será mais familiar...
A partir deste momento, pode aceder já por teclado e rato, ligando um monitor à porta HDMI do Pi. Habilite o VNC, para lhe permitir aceder remotamente, se não pretender como eu, ligar o monitor. Na linha de comandos ainda, faça,
7 Advanced Options A5 Resolution …seleccione o modo à sua escolha, no meu caso escolhi uma das configurações 16:9 Faça "Ok", "Ok" de novo, "Finish", "Yes" vamos fazer um reboot…
Agora já se pode ligar por VNC. Antes de fazer reboot, pode também habilitar o "auto-login" no sistema de janelas. Volte ao "raspi-config" e siga os menus "Boot option"->"Desktop / CLI"->"Desktop autologin". Algumas instruções que li sugeriram também instalar o xinit. Considere-o para já como opção,
Para conhecer o endereço IP do seu Pi, faça
Identifique a sua ligação de rede, instale o VNC Desktop no seu computador e já pode aceder confortavelmente ao seu Pi, pelo sistema gráfico de janelas. Note que, a partir do momento que tem acesso ao interface gráfico pode abrir ali uma janela terminal e executar todos os comandos que se seguem... Eu continuo ligado por SSH.
Porque o pi-star é muito robusto, quase à prova de desligar a alimentação quando e sempre que quiser sem qualquer cuidado em particular, tem também um firewall onde é preciso permitir o acesso externo. Nada complicado. Crie o ficheiro ipv4.fw que será lido pelo sistema e adicione estas regras ao iptables, firewall linux,
Grave, CTRL + x, "yes" e volte à linha de comandos.
Nota: esta lista de regras tem sido actualizada ao longo do projecto embora nem sempre seja referido nos diversos posts. Sempre que uma aplicação ou serviço necessita de comunicar para fora, ou receber dados, temos de abrir a porta respectiva!
Configurei já as portas 5900 e 5901 para acesso por VNC, a 8010 para acesso por telnet ao linbpq, a 9123 o acesso web à consola do linbpq e a 10093 para transferência de mensagens entre nodes, também para o linbpq. Para aplicar estas regras,
Configurar o pi-star em mode read-write permanente
Descobrir onde o pi-star re-escrevia as instruções de read-write para read-only deu algum trabalho, muitos ficheiros abertos e re-escritos, novas instalações, pesquisas na web, frustração e umas boas horas. Vamos começar.
Temos de substituir todas as instruções que montam o sistema como leitura apenas, para leitura e escrita, isto é de "ro /" por "rw /". Comecemos pelas regras na montagem das partições,
Igualmente importante, edite o ficheiro /etc/rc.local e comente com "#" a última linha onde aparece a expressão,
ou melhor, não a comente e altere-a para,
na directoria /var/www, fazemos o login como root,
Verificamos quantas entradas existem, com o user root,
Trocamos todos os "ro /" por "rw /". Para evitar erros copie a seguinte expressão como root,
E, verificamos que já não existe nenhum "ro /" por substituir. O output deve ser vazio!
"exit" sai do user root. Em cada actualização do pi-star bem sucedida devemos correr estes 3 últimos comandos "find..."! É natural que, durante o update surjam mensagens como: "os seguintes ficheiros foram modificados..." Ignore e, volte a fazer os procedimentos descritos anteriormente.
Vamos editar ainda os seguintes ficheiros e substituir todas as entradas de "ro /" por "rw /"
Renomear os seguintes ficheiros, por exemplo para _[ficheiro]
Existem mais alguns ficheiros encontrados em /usr/local/sbin, /usr/sbin e /usr/bin mas não detectei nada que provocasse o sistema a voltar a read-only.
Notas: 1. Ao tentar actualizar agora o pi-star deve aparecer-lhe uma mensagem com esta,
Starting Services… Done Updates complete, sleeping for a few seconds before making the disk Read-Only mount: /: mount point is busy. Finished
O que é normal visto que o sistema é read-write. Não há problema.
2. Recentemente dei que o meu raspberry entrava em modo "halt" todas as noites à hora que executava o cron.daily O problema manifestava-se quando corria no script "powersave" a instrução "tvservice -o" que desliga o port HDMI. Desabilite esta linha, editando o ficheiro /etc/cron.daily/powersave e comentando a instrução com "#", #/opt/vc/bin/tvservice -o
Um tópico pouco documentado e que por isso merece algum destaque. Instale a aplicação para gestão de menus,
Mesmo com esta grande ajuda prepare-se para ter problemas imprevistos, de atalhos que desaparecem, alteração da ordem dos menus e atalhos… enfim, algo que a comunidade raspberry/debian terá de dar atenção no futuro.
Vamos criar uma pasta no menu de aplicações chamado "Digital Modes"... Os menus são criados em /etc/xdg/menus/applications-merged/ e, obedecem à estrutura seguinte,
Depois terá de ir a /usr/share/desktop-directories/ e criar um ficheiro com as traduções, localização do icon em /usr/share/pixmaps/
[Desktop Entry]
Name[en_CA]=Digital Modes
Name[en_GB]=Digital Modes
Name[es]=Digital Modes
Name[pt]=Digital Modes
Name[pt_BR]=Digital Modes
Name=Digital Modes
Comment[en_CA]=Digital Communication Modes
Comment[en_GB]=Digital Communication Modes
Comment[es]=Digital Communication Modes
Comment[pt]=Digital Communication Modes
Comment[pt_BR]=Digital Communication Modes
Comment=Digital Communication Modes
TRANSLATORS: Don't translate this text (this is icon name)
Icon=digitalmodes.png
Type=Directory
A seguir é necessário editar cada um dos atalhos que se encontram no menu e identificá-los numa destas directorias,
Neste exemplo, editamos o atalho do programa GridTracker, que ficará dentro da pasta "Digital Modes",
Uma ideia simples e que permitirá receber spots de WSPR (Weak Signal Propagation Reporter Network) e registá-los na rede, utilizando apenas um dongle USB, o RTL-SDR v3 RTL2832U, um raspberry pi 2 B+ ou superior, em linha de comandos.
O modo WSPR utiliza uma largura de banda de 6Hz numa transmissão durante 110,6s. A duração de cada tom é de 0,6827s com um desvio máximo de 1Hz. Permite assim a escuta de sinais até -30dB! Esta técnica pode ser utilizada também em testes de comunicação EME sem grandes antenas ou recursos especiais…
Depois de ter construído o kit da qrp-labs Ultimate3S para o envio de beacons em "whisper" fiquei com a sensação de não estar a contribuir para a comunidade também com a recepção e registo de spots na http://wsprnet.org
Para isso era necessário uma solução que se revelasse barata, sem a necessidade de um receptor por cada banda, ou a utilização de equipamento caro e redundante aos rádios de HF que por cá tenho. Teria de ser um sistema autónomo!
Finalmente encontrei algumas páginas a falarem sobre o tema e experimentei. Apesar de só ouvir sinais fortes, fica a ideia… Pode ser que alguns de vós façam algumas experiências e consigamos este projecto, do qual me limitei a traduzir do nosso colega VK6FLAB, Onno Benschop, e testar.
Não me vou perder em detalhes, de como instalar o sistema operativo, configurar acessos por SSH ou a rede wireless, fi-lo noutros posts mais antigos e há muita documentação online.
Não demora mais que 15 minutos a configurar tudo…
Instalar o software WSPR
Segue o conjunto de instruções que deve executar,
Configurar o dongle RTL-SDR
Se já tiver ligado o dongle ao raspberry, desligue-o e aguarde uns 10s. Execute as seguintes instruções na linha de comandos,
Ligue agora o seu dongle RTL-SDR…
Primeiros testes
Para reduzir consumos desnecessários, supondo que tem acesso ao raspberry por SSH, desligue o port HDMI, evita também algum ruído fundamental eliminar na escuta de sinais fracos,
Execute a aplicação rtlsdr-wsprd substituindo na expressão seguinte o seu indicativo e o QRA locator com 4 ou 6 digitos,
Os parametros possíveis são,
-f dial frequency [(,k,M) Hz], check http://wsprnet.org/ for freq. -c your callsign (12 chars max) -l your locator grid (6 chars max)
Receiver extra options: -g gain [0-49] (default: 29) -a auto gain (default: off) -o frequency offset (default: 0) -p crystal correction factor (ppm) (default: 0) -u upconverter (default: 0, example: 125M) -d direct dampling [0,1,2] (default: 0, 1 for I input, 2 for Q input) -n max iterations (default: 0 = infinite loop) -i device index (in case of multiple receivers, default: 0)
Decoder extra options: -H use the hash table (could caught signal 11 on RPi) -Q quick mode, doesn't dig deep for weak signals -S single pass mode, no subtraction (same as original wsprd)
Nota final: é muito importante que o seu raspberry pi tenha a data e hora rigorosamente certas, pois o protocolo WSPR começa ao minuto exacto e prolonga-se por cerca de 2 minutos mais.
Se pretender pode automatizar o processo. Onno criou 3 simples scripts para o fazer. Se fizer login com o user "pi" devem ser guardados nas directorias indicadas no nome de cada um deles.
Cada frequência é lida aleatoriamente e escutada por 15 minutos. Pode eliminar frequências para as quais não tem antena, ou utilizar uma antena activa de banda larga.
Ao escrever o parametro "ADEVICE plughw:x,y" no ficheiro de configuração do direwolf, deve substituir x e y de acordo com a identificação das placas no sistema, por exemplo,
x - card 0 y - device 0
Ficará então "ADEVICE plughw:0,0" para a primeira placa. E,
x - card 1 y - device 0
"ADEVICE plughw:1,0" para a segunda placa.
Para testar cada placa substitua x e y na expressão,
Nesta data o projecto direwolf vai na sua versão 1.6 D e suporta FX.25
Trata-se do protocolo AX.25 perfeitamente compatível com compressão de erros, útil sobretudo em comunicações de packet em HF.
Para dispormos desta característica devemos instalar esta versão de desenvolvimento. Siga os passos seguintes,
Após instalada a nova versão, chamo o direwolf com a seguinte linha,
As opções a seguir dizem respeito a,
-X - número de check bytes -d - as opções de debug, optei por x -t 0 - evita que ao chamar o direwolf o ecrã cintile -c - local onde se encontra o ficheiro de configuração para esta placa de som, bauds, PTT entre outras definições -l (L minúsculo) - onde será guardo o log
Quadro com opções de debug
Um exemplo do output com a função de debug -d x
FX.25: Matched correlation tag 0x05 with 6 bit errors. Expecting 223 data & 32 check bytes.
FX.25: Matched correlation tag 0x05 with 0 bit errors. Expecting 223 data & 32 check bytes.
FX.25: Matched correlation tag 0x05 with 0 bit errors. Expecting 223 data & 32 check bytes.
FX.25: FEC complete with no errors.
FX.25: FEC complete with no errors.
FX.25: FEC complete, fixed 13 errors in byte positions: 11 19 65 73 74 92 116 117 132 138 143 144 192
FX.25: Matched correlation tag 0x06 with 1 bit errors. Expecting 128 data & 32 check bytes.
FX.25: Matched correlation tag 0x06 with 1 bit errors. Expecting 128 data & 32 check bytes.
FX.25: Matched correlation tag 0x06 with 1 bit errors. Expecting 128 data & 32 check bytes.
FX.25: Matched correlation tag 0x06 with 1 bit errors. Expecting 128 data & 32 check bytes.
FX.25: FEC complete with no errors.
FX.25: FEC complete with no errors.
FX.25: FEC complete with no errors.
FX.25: FEC complete, fixed 1 errors in byte positions: 97
O modo de FX.25 é automático e utilizado pela aplicação quando detecta erros na recepção.
Este modo é mais lento do que o protocolo AX.25 mas com melhor rendimento em comunicações a grande distância onde existe ruído, como as bandas de HF.
A estação que transmite define o número de check bytes a utilizar.
Melhorias do FX.25 em APRS
Um exemplo no envio de 1000 pacotes de APRS onde se introduz uma taxa de erro, controlada, e no final da transmissão contam-se os pacotes recebidos correctamente,
Melhorias do FX.25 em packet radio
O modo de ligação utiliza os mesmos pacotes de AX.25, mas de uma maneira diferente. Em vez de transmitir broadcasting, isto é para todos como o APRS, é utilizado na comunicação entre duas estações específicas. O TNC que escuta atribui números de sequência aos pacotes recebidos. O receptor reconhece o que foi recebido e solicita o preenchimento de pacotes ausentes, isto é, com erro.
Este teste utiliza 100 pacotes, cada um com 128 bytes de informação. A quantidade total de dados da transferência, dividida pelo tempo decorrido, fornecerá uma taxa de transferência efectiva, medida em bytes por segundo neste exemplo. À medida que a taxa de erro aumenta, são necessárias mais tentativas e a taxa de transferência diminui. Nalgum momento, o receptor simplesmente desiste antes de chegar ao fim. Damos aqui uma pontuação de 0.
Pode ser interessante ter acesso à linha de comandos linux da máquina onde está instalada a aplicação linbpq, no entanto é uma falha de segurança grave, nomeadamente se o acesso for feito por rádio frequência, onde comandos e senhas vão em texto simples e por isso são facilmente visíveis.
Exemplos de utilização da linha de comandos a partir do packet:
verificar recursos da máquina: mem; top; df; du…
alterar pequenas configurações
verificar ligações de rede: ping; whois; telnet; nmap…
estabelecer ligação a outros servidores ou à internet das coisas
Volto a referir que é uma falha grave, não só o acesso por TCP/IP mas mais ainda por RF!
Configurações
Nas configurações do linbpq, em bpq32.cfg, na porta de telnet deve incluir o comando
CMDPORT=nnn 23
"nnn" representa o número da porta que já possa existir e está configurada para outras aplicações, por exemplo o DX Cluster. Se não existir acrescente apenas CMDPORT=23.
O acesso às diversas portas faz-se pela variável HOST descrita a seguir. Por exemplo, neste caso, HOST 1, representa a porta "nnn", HOST 2, a nossa porta 23.
no meu caso,
PORT
PORTNUM=2 ; Optional but sets port number if stated
ID=telnet server
DRIVER=Telnet
CONFIG
CMS=1
CMSCALL=CT1EBQ
CMSPASS=USVAWV
LOGGING=1
DisconnectOnClose=1
TCPPORT=8010
FBBPORT=8011 6300
HTTPPORT=9123
CMDPORT=7300 23
LOGINPROMPT=callsign:
PASSWORDPROMPT=password:
MAXSESSIONS=100
CTEXT=Welcome to CT1EBQ's telnet server.\nPress ? For list of commands\n
USER=ct1ebq,[password],CT1EBQ,,SYSOP
USER=ANON,pass
ENDPORT
Depois devemos adicionar uma linha às aplicações,
APPLICATION 1,LINUX,C 2 HOST 1 S
Onde,
1 - pode ser um número sequencial e representa o id da aplicação
LINUX - o comando a ser chamado
C 2 - o "PORTNUM=2" de telnet, conforme o exemplo acima
HOST 1 - a porta 23, sendo o HOST 0, a porta 7300 neste exemplo
S - para que a aplicação regresse ao "node" ao invés de fechar a ligação telnet do packet
Para que tudo isto funcione deve instalar o servidor de telnet na mesma máquina onde corre o linbpq. No raspberry pi,
e, criar o seu utilizador em linux e atribuir uma password
Edite o ficheiro de configuração do BPQ, escrevendo na consola terminal,
Na configuração do port Telnet acrescente a linha CMDPORT=7300 ou adiciona o port 7300 na linha já existente,
CMDPORT=23 63000 7300
Na secção Applications acrescente a linha,
APPLICATION 4,DX,C 2 HOST 0 S,CT1EBQ-9,EBQDXC
onde,
4 é o número de série, isto é, a aplicação 4
DX o nome com que aparece na linha de comandos do BPQ
C 2 HOST 0 S para a ligação telnet no port 2
CT1EBQ-9 o indicativo e SSID para ligação directa por RF ao DX Cluster
EBQDXC é o alias da ligação
Agora no terminal linux, edite os seguintes ficheiro e acrescente no final as linhas seguintes em cada um deles. Grave e saia, com CTRL+S, CTRL+X
Agora, no final deste projecto, e se começou por ler o artigo pi-star +GUI, packet e aplicações desktop vamos ter um computador, tão simples quanto um raspberry pi, com pi-star e modem MMDVM, servidor de APRS e packet radio, com quantas bandas e modos, quantas as placas de som instaladas com um node de DX Cluster!
Actualmente este projecto está a funcionar ininterruptamente e faz parte da estação de CT1EBQ, com packet a 300, 1200 e 9600 bauds, em HF, VHF e SatGate, UHF para comunicações mais rápidas e ARDOP em 14.1035 MHz LSB.
O DX Cluster é uma rede de computadores dedicada que partilha informação dos seus utilizadores sobre a actividade de DX. Estes computadores na rede têm o nome de “nós” ou nodes em inglês. Os nodes interligam-se por rádio ou sobre a Internet, por AX.25 ou telnet, formando um cluster.
Este serviço, suportado por rádio amadores ou clubes, mantêm a rede funcional, difundindo as estações de amador a fazerem DX em tempo real.
Nesta rede a informação é chamada de spot, uma linha com o indicativo de quem chama, ou coloca o spot na rede, a frequência de DX, a estação de amador com quem estabelece contacto, uma mensagem curta de 30 caracteres e a hora de envio do spot.
Tem inúmeros filtros que permitem a quem se liga a um node do cluster receber por exemplo spots de uma ou várias bandas, de indicativos “CT”, por modos digitais como o RTTY ou CW, entre outros…
No contexto deste projecto o DX Cluster é uma opção, e talvez a mais difícil de configurar. Para fazer parte de um cluster é necessário solicitar a outro provedor autorização para fazer parte da rede, já que, haverá tráfego constante a difundir entre os membros do cluster.
Em Portugal podem-no solicitar a CS5SEL.
Mãos à obra!
Comecemos por instalar algumas ferramentas essenciais para a instalação do DX Cluster também conhecido por Spider.
Instale o wget, para download de ficheiros na linha de comandos ou modo terminal,
Git é a ferramenta que lhe permite descarregar o DX Spider e futuras actualizações,
Criemos um link para a directoria de instalação. Por coerência com o software anteriormente instalado, optei por o fazer em /usr/local/bin/
Procede-se à instalação de algumas livrarias de perl,
Cria-se a directoria de instalação e descarrega-se o spider,
Atribuíem-se permissões a directorias e ficheiros. Neste projecto o utilizador é "pi-star", mude-o de acordo com a sua instalação
Configuração,
Edite o ficheiro DXVars.pm e siga as instruções que se encontram nos comentários das linhas.
Edite o ficheiro Listeners.pm e remova o caracter # na linha onde é configurada a porta de ligação.
Configure o cluster com o seu indicativo,
Vamos criar a base de dados,
...este comando pode demorar alguns minutos.
Compilamos o software para o nosso sistema operativo,
E, vamos agora iniciar o nosso programa,
ou, daqui para a frente,
"&" no fim da linha abre o programa em background. Se não o utilizar abra outra janela terminal e faça login no sistema como sysop, o seu indicativo,
Agora, na consola execute os comandos,
> load/usbd > set/node [indicativo do node] > connect [ficheiro de ligação com o mesmo nome]
Estes comandos são memorizados pelo sistema, não sendo necessário escrever-los cada vez que se liga ou inicia o programa. Proteja a sua conta escrevendo na consola,
set/password [your callsign] [your password]
Para sair da consola e fechar o spider, faça "B", "quit" ou "shutdown".
Para entrar como sysop na consola, escreva "sysop". Supondo que a sua password era "abcdef", o sistema pergunta-lhe "05223" que corresponde às letras da sua password "afccd".
Para interligar o DX Cluster com o linbpq, identifique as linhas seguintes no ficheiro de configuração bpq32.cfg e descomente-as ou escreva,
CMDPORT 7300;
no port de telnet, no meu caso nas configurações do portnum=2, e, a linha seguinte geralmente no final do ficheiro de configuração
APPLICATION 1,DX,C 2 HOST 0
assumindo que a porta de ligação telnet é a porta 2.
Iniciar o DX Cluster no arranque do sistema
Crie o ficheiro de arranque,
Copie e cole o seguinte conteúdo corrigindo o utilizador e caminhos,
[Unit]
Description=Dxspider DXCluster service
After=network.target
[Service]
Type=simple
User=pi-star
Group=pi-star
WorkingDirectory=/usr/local/bin/spider
ExecStart=/bin/bash -c "/usr/bin/perl -w /spider/perl/cluster.pl" pi-star > /dev/tty3
Comment out line below for logging everything to /var/log/messages
StandardOutput=null
Restart=always
[Install]
WantedBy=multi-user.target
Atribua permissões de execução ao ficheiro,
e, active o serviço
Agora inicie o serviço escrevendo,
Para verificar se o serviço se encontra a correr faça,
ao qual o sistema deverá responder,
● spider.service - Dxspider DXCluster service
Loaded: loaded (/etc/systemd/system/spider.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-09-08 22:00:46 WEST; 8min ago
Main PID: 2215 (perl)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/spider.service
└─2215 /usr/bin/perl -w /spider/perl/cluster.pl
Sep 08 22:00:46 pi-star systemd[1]: Started Dxspider DXCluster service.
Ligue-se a outros nodes de DX ou, estableça um cluster com outros nodes de DX.
Ligar-se a outros…
Contacte uma estação de amador que faça parte do DX Cluster e peça-lhe se se pode ligar a ele para fazer crescer o cluster na sua área.
Crie um script para cada nova estação que venha a fazer parte do seu cluster em ./connect/[callsign] Supondo que se pretende ligar a CT1EBQ-9. Crie o ficheiro /spider/connect/ct1ebq-9
Ao criar um cluster com CT1EBQ-9 teria de acrescentar a linha, "set/spider ct1ebq-9" e apagar as restantes com indicativos que não fazem parte da sua rede. Recorde que, é apenas um exemplo.
Depois devemos adicionar também cada indicativo ao crontab do DX Cluster, em /spider/local_cmd/crontab Um vez mais deixo-lhe o meu exemplo para que tudo faça sentido,
# check every 10 minutes to see if ct1ebq-9 is connected and if not
# start a connect job going
0,10,20,30,40,50 * * * * start_connect('cs5sel-5') unless connected('cs5sel-5')
0,10,20,30,40,50 * * * * start_connect('pe1rrr-9') unless connected('pe1rrr-9')
0,10,20,30,40,50 * * * * start_connect('k3chb-2') unless connected('k3chb-2')
USDB Update
31 5 * * 6 spawn('cd /tmp; wget -q ftp://ftp.w1nr.net/usdbraw.gz; /usr/local/bin/spider/perl/create_usdb.pl /tmp/usdbraw.gz; rm -f /tmp/usdbraw.gz')
45 5 * * 6 run_cmd('load/usdb')
No seu caso apagava as linhas com os indicativos que não fazem parte da sua rede e acrescentaria, 0,10,20,30,40,50 * * * * start_connect('ct1ebq-9') unless connected('ct1ebq-9')
Ligue outros...
Agora vamos permitir a ligação de outros nodes ao nosso DX Cluster.
É muito simples, apenas tem de abrir a consola, no terminal ou por telnet ligando-se com o seu indicativo. Faça,
...e, agora crie o novo utilizador, por exemplo, de modo a que ct1ebq-9 se ligue também à sua estação,
set/password ct1ebq-9 [password]
[password] é uma string com letras, números ou outros caracteres aceites pelo sistema.
Ainda na consola, utilize o comando "spoof" para atribuir o nome e locator ao novo node,
Para instruções do comando spoof faça "help spoof" na consola do DX Cluster. Para sair escreva B e Enter. Por favor informe-me que pretende ligar-se ao cluster através de mim e envie-me,
o seu URL e o port do DX Cluster, habitualmente o 7300
o seu indicativo para o cluster, callsign e SSID
e a password que atribuiu a ct1ebq-9
o seu nome
o seu QRA locator
Muito grato ao Red, PE1RRR pela sua ajuda na compilação destes dados em como criar um cluster de DX. Hoje dia 4 de Maio de 2024, Red passou a silente key, descansa em paz meu amigo...
Esta foi a explicação que lhe permite saber como configurar tudo desde o princípio... Mas se quiser fazer a instalação sem se preocupar com estas configurações pode utilizar o script descrito nesta página ou, para fazer a actualização de uma instalação existente siga este link...
O linbpq, versão linux do BPQ32 para windows, foi e continua a ser desenvolvido desde os anos 90 até aos dias de hoje, por John Wiseman de indicativo G8BPQ. Responde activamente a questões em Groups.io
Para instalar o linbpq vou manter a mesma estrutura de dados em /usr/local/bin/. Vamos começar por descarregar o programa e as páginas de HTML para acesso por browser...
Copie um outro ficheiro de configuração do linBPQ, com o nome de bpq32.cfg para o directório de instalação; no meu caso /usr/local/bin/linbpq/ e reproduza neste ficheiro as alterações necessárias à ligação do BPQ32 com o Direwolf. Para facilitar descarregue este exemplo que, utilizei na minha configuração depois de substituir algumas expressões (instruções no próprio ficheiro).
Veja o exemplo a seguir para a configuração dos PORTS de RF,
;****** PORT 3 Direwolf 300-baud ******
PORT
PORTNUM=1 ; Port number
ID=HF Packet 300-baud ; PORTS command text
TYPE=ASYNC ; RS232 connection
IPADDR=127.0.0.1 ; DIREWOLF
TCPPORT=8001 ; DIREWOLF
SPEED=19200
CHANNEL=A ; TNC channel
MAXFRAME=4 ; Max outstanding frames
FRACK=5000 ; Level 2 timeout (ms)
RESPTIME=200 ; Level 2 delayed ACK (ms)
RETRIES=10 ; Level 2 max retries
PACLEN=236 ; Max packet length (bytes)
TXDELAY=300 ; Transmit keyup delay (ms)
SLOTTIME=100 ; CMSA interval timer (ms)
TXTAIL=30
PERSIST=63 ; Persistence (256/(# transmissions-1)
DIGIFLAG=1 ; Allow Digipeat on this port
ENDPORT
;****** PORT 4 Direwolf 1200-baud ******
PORT
PORTNUM=2 ; Port number
ID=VHF Packet 1200-baud ; PORTS command text
TYPE=ASYNC ; RS232 connection
IPADDR=127.0.0.1 ; DIREWOLF
TCPPORT=8003 ; DIREWOLF
SPEED=19200
CHANNEL=A ; TNC channel
MAXFRAME=1 ; Max outstanding frames
FRACK=5000 ; Level 2 timeout (ms)
RESPTIME=40 ; Level 2 delayed ACK (ms)
RETRIES=10 ; Level 2 max retries
PACLEN=236 ; Max packet length (bytes)
TXDELAY=100 ; Transmit keyup delay (ms)
SLOTTIME=100 ; CMSA interval timer (ms)
TXTAIL=30
PERSIST=63 ; Persistence (256/(# transmissions-1)
DIGIFLAG=1 ; Allow Digipeat on this port
ENDPORT
Guarde o ficheiro de configuração como bpq32.cfg no directório do linbpq. Inicie o direwolf, se estiver a usar algum equipamento de RF, como descrito anteriormente. Abra uma nova janela de terminal e inicie o linbpq,
O linBPQ deve ligar-se ao Direwolf por localhost através da porta 8001 ou 8003 de acordo com as configurações que definiu.
Quando corre o linbpq pela primeira vez, este cria uma série de outros ficheiros e pastas...
Aceder ao BPQ
Pode aceder ao BPQ de 3 formas, por:
RF, ligando-se através de um TNC
telnet, desde uma janela terminal
browser, onde vamos acabar por fazer algumas configurações
por RF
Ligue outro rádio na mesma frequência e, se tem um TNC2, escreva,
cmd: C [indicativo]
por telnet
Se nas suas configurações do linbpq definiu a porta 8010 na instrução "TCPPORT=8010", abra uma janela terminal e escreva,
Consulte o artigo Manual de Packet para mais informações e opções disponíveis na ligação por RF e telnet.
Nota: num computador com Microsoft Windows 10 terá de instalar o programa telnet.
por browser
Abrindo uma janela no seu browser preferido e escrevendo no campo de endereços: http://[endereço IP do raspberry pi]:9123 caso tenha definido como eu no config do bpq a instrução "HTTPPORT=9123"
As primeiras configurações devem ser feitas através de browser. Pelo browser é-lhe possível re-escrever o bpq32.cfg, depois de autenticado como sysop.
Ao entrar no BPQ a página deve ser semelhante a esta,
As configurações de Node e APRS são feitas todas dentro do ficheiro de configuração - o bpq32.cfg Mas para configurar a BBS temos de as fazer por browser. Siga o link "Mail Mgmt", faça o login como sysop, que definiu na instrução do PORT 2, para telnet, como "USER=[CALSIGN login],[password],[CALSIGN],,SYSOP", excluindo os parêntesis rectos,
Siga o link "Configuration", e preencha os campos de acordo com a figura e com o seu indicativo,
Vamos ao menu "Users" e preenchemos os dados que conhecemos, seguindo o exemplo,
Para começar a receber tráfego e mensagens na sua BBS, terá de estabelecer ligação com outra BBS na rede. As mensagens entre BBS podem ser difundidas em ax.25 pela Internet ou caso esta se encontre indisponível, por RF.
Solicite ao sysop de outra BBS que se encontre ligada à rede de packet que configure o encaminhamento de mensagens para a sua BBS, adicionando as seguintes linhas no ficheiro de configuração bpq32.cfg Na secção "BROADCAST NODES",
MAP CT1EBQ node.ct1ebq.com UDP 10093 B
(uma vez mais substitua na linha acima o seu indicativo, a ligação ou endereço IP, se for fixo, ou por um DNS dinâmico)
No seu ficheiro de configuração, e na mesma secção deve acrescentar a linha,
MAP CQ0PCV-8 node.arlc.pt UDP 10093 B
(novamente, faça as substituições necessárias...)
Na secção "ROUTES" acrescente a linha,
CQ0PCV-8,193,1
onde CQ0PCV-8 é a BBS que, no meu exemplo, me entrega as mensagens.
Para enviar mensagens da sua BBS para outra BBS ou pBBS, neste caso a sua estação deve fazer o envio de tráfego, configure a opção "Forwarding", conforme a figura, procedendo às alterações necessárias...
Explore todas as potencialidades do BPQ, navegando nas páginas da sua BBS e consultando os manuais online de John Wiseman, G8BPQ
Iniciar o linbpq no arranque
Comece por criar um script para chamar o linbpq, por exemplo no mesmo directório de instalação do linbpq,
atribua permissões de execução ao runbpq.sh
A seguir crie o ficheiro para arranque do serviço escrevendo