quarta-feira, 25 de janeiro de 2017

Gestão do firmware do MD380/390/RT3/RT8 Parte III

Preparação da solução máquina virtual

Descarregue o Virtual Box e o VirtualBox Oracle VM VirtualBox Extension Pack de https://www.virtualbox.org/wiki/Downloads

Descarregue a imagem de sistema operativo do colega KD4Z em https://drive.google.com/file/d/0Bwoi2MrlPb3vVEt3Ym4tVHF3SDQ/view?usp=sharing (caso der erro, confirmar no site do colega qual o novo link, tentarei no entanto manter este post atualizado).

Instale o VirtualBox e não o inicie (tire o visto), concordando com qualquer questão que ele apresente, nomeadamente de instalação de um driver.
Instale o VirtualBox Extension Pack.
Reinicie o computador.
Abra o Oracle VirtualBox.
Vamos a File, Import Appliance.
Procure o local onde guardou a imagem do sistema operativo e siga os passos (Next - Import) .
Assim que terminar a máquina virtual já está acessível para arranque.
Pressionamos Settings e confirmamos que em Network está configurado como NAT e que abrindo o Advanced está como PCnet-FAST III (Am79C).
Acedemos a Shared Folders e apagamos o C:\Temp.
Pressionamos OK.

Atualizar um rádio

Abrimos o Oracle VM VirtualBox.
Selecionamos com o botão esquerdo do rato a máquina virtual TYT e pressionamos START.
Minimizamos a janela do Oracle VM VirtualBox e deixamos a da máquina virtual aberta.
Para desligar, usar SEMPRE o menu Machine, ACPI Shutdown e nunca a cruz no canto!

Como indica no ecrã, temos quatro comandos principais nesta máquina virtual:

glv – Get Latest Version (descarrega a última versão do firmware do Travis do repositório e prepara-a para instalação, tanto para modelos com GPS como sem)

flash – Carrega o último firmware para os MD380, RT3, MD390 e RT8 (sem gps)

flashgps – Carrega o último firmware para os MD390 e RT8 (com gps)

flashdb – Carrega a última versão da base de dados users.csv para dentro dos rádios (limitado aos rádios com esta capacidade)

Temos ainda a possibilidade de consultar IDs na base de dados DMR-Marc com o script lookup. Pode ser usado o callsign, ID, cidade ou até nome. Exemplos:

lookup 2683062
lookup cs7agh
loopup Paulo,Portugal


O procedimento de utilização da máquina virtual tem a mesma base que o da pen drive. Segue o exemplo para um MD380/RT3:

Iniciar a máquina virtual.
Ligar o rádio em modo bootloader (PTT+botão superior e ligar).
Escrever glv e pressionar ENTER, aguardar que termine sem erros.
Escrever flash e pressionar ENTER.
Quando terminar o processo, deixar o rádio ligado ao computador mas desligar/ligar o mesmo normalmente.
Escrever flashdb e pressionar ENTER.
Quando terminar e reiniciar sozinho, desligar o rádio do computador e do cabo (ativar users.csv no menu MD380Tools do rádio caso seja a primeira vez que executam o processo!)

Recomendo acederem ao menu View, Scale Factor e ajustar ao vosso gosto a “resolução” da máquina virtual. Habitualmente 150% é uma boa escala.

Manutenção da máquina virtual

Desde a v3.0 (utilizada neste workshop), o colega KD4Z colocou no script glv um comando para se atualizar automaticamente i.e. anteriormente em cada nova atualização teríamos de seguir os procedimentos que vimos nos passos anteriores, descarregar e importar uma nova máquina virtual. Agora esta máquina terá updates a cada glv que se execute, caso existam, não é necessário descarregar tudo outra vez.

Por vezes, a Oracle lança atualizações do VirtualBox. Executem com base no vosso próprio conhecimento de tecnologias. Embora não tenha tido qualquer problema desde que descobri a solução, existem relatos de cabos que deixam de ser reconhecidos quando é atualizado o VirtualBox para determinada versão, tendo depois de se retirar e reinstalar o seu driver. Nunca me aconteceu, nem a centenas de utilizadores mas, dizem que o seguro morreu de velho. Desde que esteja a funcionar, não precisam de atualizar o VirtualBox.


NOTA IMPORTANTE

Este workshop foi dado com base nas primeiras versões da V3.0.x
Hoje (25/01/2017) já está disponível a 3.08 que permite algumas coisas adicionais como mudar a lingua para Português, tradução aqui do vosso caríssimo (portanto sabem para onde enviar as reclamações).

Para passar a máquina virtual para Português, como explicado no post que fiz há uns dias, executem os seguintes comandos no ecrã principal:

glv
touch lang.pt 
menu

Para voltar ao inglês:

rm lang.pt
menu

Gestão do firmware do MD380/390/RT3/RT8 Parte II

Preparação do Sistema Operativo - Solução Pen drive de arranque

Escolher uma Pendrive com pelo menos 8GB de espaço, de preferência a mais rápida e fiável que encontrem.
Descarregar o Universal USB Installer: https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/ (botão azul que diz "Download UUI" e o número da versão).
Guardar o programa para o ambiente de trabalho.
Descarregar uma versão de Linux “levezinha” à vossa escolha como o Lubuntu: http://lubuntu.me/
Para maior compatibilidade, utilizar sempre versões 32 bits (intel x86).
Ter em atenção se a versão escolhida permite a criação de um ficheiro de modo “persistente” (https://www.pendrivelinux.com/what-is-persistent-linux/).
Guardar o ficheiro ISO para o ambiente de trabalho e não o abrir!

Desligar discos externos, pendrives e cartões de memória do computador (ver nota abaixo).
Colocar a pendrive no computador.
Aceder ao ambiente de trabalho.
Abrir o programa Universal-USB-Installer.
Irá aparecer um aviso do UAC (user access control) do Windows, ele necessita de permissões de administração para executar tarefas como formatar a pendrive, aceitar.
Concordar com a licença (I Agree).

Realizar os seguintes passos:
1- Procurar Lubuntu na caixa de listagem
2- Pressionar o botão Browse, procurar o Ambiente de Trabalho do computador e selecionar o ficheiro que descarregamos com a imagem do sistema operativo
3- Escolher na caixa de listagem a nossa pendrive (se fizeram o que foi indicado acima, deverá ser a única que aparece)
4- Colocar um visto em Format drive
5- Deslocar a barra de "Set a Persistant file size for storing changes" até ao final (direita)
Se não permitir é porque a distribuição escolhida não serve para este processo (não suporta modo persistente).
Pressionar Create e confirmar com SIM no ecrã de resumo
Aguardar que o processo termine (o ecrã de criação do ficheiro persistente demora algum tempo!), fechar o programa e remover a pendrive em segurança

Colocar a pendrive num portátil ou computador fixo.
Ligar o computador e pressionar rapidamente ESC, F10 ou F12 (mediante o computador) para aceder ao menu de arranque da máquina (poderá estar bloqueado pelo fabricante) - não vou detalhar esta questão porque depende de caso para caso, procurem informação no site do fabricante.
Procurar e seleccionar na lista o USB Storage Device ou o nome do fabricante da pendrive (depende da pen drive utilizada).
Selecionar a primeira opção, Try Lubuntu without installing.

No Lubuntu (como no Windows) terão um menu com os programas no canto inferior esquerdo e alguns ícones junto ao relógio no canto inferior direito.
Agora, temos algumas operações para realizar. Vamos pressionar o ícone da rede (dois quadrados com um traço a uni-los). Quem ligou por cabo, salte as próximas linhas até ao final desta secção.
Escolham a vossa rede sem fios de casa ou hotspot 3G/4G caso possuam um (útil caso utilizem a pendrive em computadores fora de casa).
Coloquem um visto em "Show Password" para auxiliar. Uma vez que o teclado está em americano, terão de perceber onde estão as teclas corretas caso a vossa senha tenha caracteres especiais (# $ % / ou outros).
Escrevam a vossa chave de acesso e pressionem Connect.
Deverá aparecer uma mensagem no canto superior direito a informar que estão ligados com sucesso. Caso tal não aconteça ou diga algum erro, tentem despistar o problema de ligação à rede antes de avançar pois necessitamos de Internet nos próximos passos.

Agora que temos rede e dado que o sistema em testes vem por omissão em inglês e com teclado americano como já referido, vamos mudar para Português para facilitar a tarefa daqui para a frente.

Vamos aceder ao menu (canto inferior esquerdo), Preferences e Language Support.
Pressionem Install no aviso que aparece e aguardem que termine, ele volta ao ecrã que estavam de Language Support.
Quando terminar, carreguem em "Install/Remove Languages...", procurem na lista o "Portuguese", coloquem um visto a seguir ao texto e pressionem "Apply".
Voltaram ao Language Support mas já com o Português instalado, vamos então aplica-lo ao sistema. Procurem o nosso idioma na lista que vêm agora, o Português será o último (deslocando o rato para cima da lista, aparece a barra do lado direito para a movimentar).
Vamos arrastar o Português para o topo da lista e pressionar Apply System-Wide.
No separador Regional Formats, vamos mudar a primeira caixa de listagem para Português (Portugal) e pressionar Apply System-Wide.
Pressionem Close.
Reiniciem o computador (Menu principal, Logout, Reboot).

Repitam os passos para arrancar o computador a partir do Lubuntu da pendrive.
Selecionar a primeira opção, Try Lubuntu.
Assim que entrar, o sistema irá perguntar se desejamos atualizar os nomes das pastas do sistema para o novo idioma, pressionem "Atualizar os nomes".
Confirmamos portanto que o sistema já está em Português e está a guardar as alterações na pendrive, só falta o teclado.

Vamos pressionar com o botão direito do rato em cima da área do relógio e:
Adicionar/remover itens ao painel
Botão Adicionar
Escolher Gestor de esquemas de teclado e pressionar Adicionar
Pressionar Fechar

Ganhámos um novo ícone junto ao relógio, o do idioma do teclado. Vamos mudar o idioma para português:
Botão direito do rato em cima da bandeira dos Estados Unidos junto ao relógio, "Definições de "Gestor de esquemas de teclado""
Tirar o visto de "Manter esquemas do sistema"
Do lado esquerdo, em Esquemas do teclado, pressionar Adicionar
Procurar e selecionar Portuguese seguido de Ok
Selecionar a bandeira de Portugal e pressionar o botão Acima. Vão reparar que a bandeira no canto junto ao relógio mudou para a portuguesa.
Pressionem Fechar.
Já temos a nossa pendrive com o sistema a guardar as alterações, ligada a uma (ou mais) redes sem fios e em Português.

Manutenção do Sistema Operativo da Pen Drive (Opcional)

Ao contrário do Windows, o Linux não se atualiza sozinho, para o fazer temos de executar alguns passos. Eu, pessoalmente, prefiro fazê-lo pela linha de comandos, ferramenta que vamos utilizar também para programar os rádios.

Vamos aceder ao menu no canto inferior esquerdo, Ferramentas de Sistema, pressionar o botão direito do rato em cima de "LXTerminal" e escolher "Adicionar ao ambiente de trabalho"
Vamos pressionar duas vezes em cima do icone que acabámos de criar e executar os seguintes comandos um de cada vez seguidos de Enter ou S (sim) e Enter se necessário

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get autoclean
sudo apt-get autoremove

Estes comandos são opcionais como é óbvio, a pendrive funcionará bem sem os correrem mas também poderá ficar mais rápida ou com suporte para mais tipos de hardware caso o façam. 

O Dist-Upgrade poderá demorar algum tempo caso exista alguma atualização grande para fazer, variando o tempo do tamanho, velocidade da porta USB e acima de tudo da qualidade da pendrive.

Criar plataforma de atualização dos rádio

Estes passos só são seguidos uma vez, atenção aos espaços e aos traços nos comandos, principalmente o terceiro. Uma das partes do comando que fica dividido na formatação do blog é: libnewlib-arm-none-eabi
Se algo der erro, voltem atrás e comparem a linha, é comum tirar ou acrescentar um espaço sem querer.

Vamos aceder à linha de comandos abrindo o programa "LXTerminal" e executar os seguintes comandos seguidos de Enter (confirmar com S e Enter quando pedido):
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install git gcc-arm-none-eabi binutils-arm-none-eabi python-usb libnewlib-arm-none-eabi make curl
git clone https://github.com/travisgoodspeed/md380tools.git
cd md380tools
sudo cp 99-md380.rules /etc/udev/rules.d/

Podemos fechar o LXTerminal, a pen drive está preparada para ser utilizada.

Atualizar um rádio

Processo a executar em qualquer computador que a pen drive arranque normalmente:

Arrancar com o sistema operativo da pen drive.
Ligar o rádio ao computador em modo bootloader (pressionar PTT e botão superior, ligar o rádio com ambos pressionados).
Confirmar que estamos ligados a uma rede wifi já guardada ou por cabo, caso contrário ligar agora a uma rede wifi da zona ou hotspot.
Aceder à linha de comandos abrindo o programa LXTerminal e executar os seguintes comandos:

cd m380tools
git pull

Para rádios sem GPS, executar de seguida "make flash" e pressionar Enter
Para rádios com GPS, executar "make flash_S13" e pressionar Enter

Aguardar que o processo conclua e diga para reiniciar o rádio. Desligar o rádio no botão e voltar a ligar mas normalmente, deixando o cabo ligado ao computador. Executar o seguinte comando no LXTerminal:

make updatedb flashdb

Assim que o rádio reiniciar sozinho, desligar o cabo do computador e está pronto a utilizar.
Lembrar de confirmar se a opção UsersCSV está ativa no menu MD380Tools, principalmente se for um rádio que foi atualizado para este tipo de firmware pela primeira vez.

Gestão do firmware do MD380/390/RT3/RT8 Parte I

Transcrição do Workshop dado a 07/01/2017 pela A.R.L.A.

 Métodos de atualização de firmware


Dual Boot
Implica dedicar uma partição e/ou espaço em disco para ambos os sistemas operativos mas permite ter dois sistemas operativos e correr em ambos os programas que necessitamos, nomeadamente para modos digitais, programação ou outros.

Cygwin (https://www.cygwin.com/)
Implica “martelar” o driver do rádio através do utilitário Zadig impossibilitando a sua correta utilização com o CPS sem reverter o driver mas permite utilizar uma pequena camada Linux no nosso próprio Windows.

(Pressionar o nome de cada uma das soluções abaixo para aceder ao tutorial)

Implica ter uma pendrive rápida e dedicada a esta tarefa mas permite a utilização do nosso próprio "sistema operativo" em qualquer computador, seja para atualizar rádios ou outros (segurança).

Implica instalar o programa para correr máquinas virtuais e depende do hardware mas permite correr um sistema operativo completo autónomo dentro da nossa máquina Windows do dia a dia (dependente do suporte de hardware).

Firmware/Codeplug

Firmware – “Sistema operativo” do rádio
  • Faz a ponte entre hardware e utilizador
  • Permite alterar o funcionamento do rádio
  • É o que define tudo o que vemos no ecrã, os menus, etc.
Codeplug – Ficheiro de configuração do rádio
  • Permite ao rádio funcionar no meio digital (não tem vfo, necessita sempre de programação)
  • É como enviamos para o rádio as memórias, definições de botões, etc

Atualizar o firmware não altera o codeplug e alterar o codeplug não mexe com o firmware!


Custom Firmware

Criado por utilizadores em sistema "open source" e com contribuições da comunidade.
Contém novas funcionalidades (promíscuos/netmon/users.csv).
Corrige alguns bugfixes.
Pode adicionar (e adiciona) novas features (DTMF, luminosidade, novos modos, VFO, etc), o limite está nas capacidades do hardware e na memória do equipamento. Está em vista inclusive a criação de línguas adicionais para os menus.

Algumas funcionalidades do firmware "MD380Tools"

Opções no Menu Utilities, MD380Tools:
3. Date format – quando alterado para Alt. Status, o rádio deixa de mostrar a data/hora e passa a mostrar o indicativo/TG da última pessoa escutada no ecrã principal
4. UsersCSV – quando se utiliza o ficheiro users.csv e caso esteja ativo, carrega a informação deste ficheiro para mostrar os IDs dos mais de cinquenta mil utilizadores da rede digital em vez de utilizar os contactos carregados via codeplug para a memória interna (limitado habitualmente a 1000)
6. Promiscuous – quando ativo, seja qual for o TG que a pessoa utilize, desde que seja no mesmo time slot, vocês vão ouvir; é importante utilizar a opção 3 acima ativa em conjunto com a 6 caso queiram responder para mais facilmente identificar o chamador e o TG
7. Edit DMR-ID – permite alterar o ID do utilizador; deixa de ser necessário recorrer a um computador e ao software para alterá-lo como em casos de empréstimo do rádio
8. Mic Bargraph – mostra um pequeno gráfico que nos permite ajustar o tom da voz e a nossa distância do rádio para que esteja perfeito para a rede digital
13. DevOnly! – Com esta opção ativa, temos acesso a uma série de funcionalidades que são disponibilizadas para testes. Qualquer problema com uma delas e basta desligar/ligar o rádio, aceder ao menu e desativar o DevOnly! Quando a opção está ligada, se pressionarmos algumas teclas do teclado temos acesso a:
  • 3. Muda temporariamente o TG do rádio para o do “last heard”
  • 4. Mostra as últimas 10 estações ouvidas, hora e TG
  • 5. Limpa o ecrã da tecla 4
  • 7. Sair
  • 8. Mostra um ecrã de diagnósticos (canal atual, zona, TG, valor RSSI, etc). Se estivermos numa memória com scan ativo, é possível ver na 3ª linha os canais a passar.
  • 9. Mostra o segundo ecrã de diagnósticos (power, frequências TX e RX, color code, time slice e TG)
Estas opções mudam de tempo a tempo, esta informação hoje de manhã pode estar correta mas à tarde mudar. Atenção às alterações, não se assustem.

Links utéis:

Repositório do Travis Goodspeed - https://github.com/travisgoodspeed/md380tools
Site do Lubuntu - http://lubuntu.net/
Alternativa ao Lubuntu - https://www.linuxmint.com/edition.php?id=221
Universal USB Installer - https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/
Firmware original do rádio - http://www.va3xpr.net/programming-software-firmware/
Site alternativo - http://www.retevis.com/index.php/programming_software
Firmware do Travis já compilado para Windows - https://pd0zry.nl/md380-fw/?C=M;O=D
DMR Portugal - http://dmr-portugal.org/?page_id=94
Repositório do KD4Z - https://github.com/KD4Z/md380tools-vm
DMR-Marc WW Net - http://dmrworldwidenet.blogspot.pt/
Brandmeister Portugal Wiki - https://bm.pd0zry.nl/index.php/Portugal
Contact Manager - http://n0gsg.no-ip.org/contact-manager/
Codeplug Editor - http://www.miklor.com/MD380/380-CPEditor.php

FAQ:

Quando devo atualizar o meu rádio?
Quando quiser. Pode controlar por aqui https://github.com/travisgoodspeed/md380tools/graphs/commit-activity a quantidade de atualizações realizadas ao repositório onde cada commit é uma alteração que pode ser uma nova funcionalidade ou uma correção. No link acima podemos confirmar que só entre 30/10 a 05/11 foram feitas 136 alterações.

Devo utilizar o sistema de pen drive ou o de ambiente virtual?
Tanto faz. São ambos práticos e complementam-se. O primeiro permite usar a solução em qualquer lado e hipoteticamente qualquer computador, o segundo permite dentro do nosso Windows, com acesso inclusive ao CPS (software de carregamento do codeplug), fazer todo o processo. Depende realmente das necessidades.

Posso estragar o rádio com este processo?
Pela minha experiência e relatos na Internet, NÃO! O facto de continuarmos a aceder ao bootloader do rádio pelas teclas laterais permite recuperar rádios em que se tenha feito algo mal.
Serão colocados mais dois posts com os dois processos demonstrados no workshop, o da criação de uma pen drive de arranque autonóma e a utilização de uma máquina virtual., separados para mais fácil consulta. As imagens serão colocadas com a brevidade possível embora, para já, ache que o texto estará explicito o suficiente, estando inclusive assim num formato de mais fácil leitura em dispositivos móveis.

segunda-feira, 23 de janeiro de 2017

Português na VM do KD4Z / MD380

Na sequência do trabalho que estive a desenvolver com o colega Warren, já está disponível na v3.07 em versão "beta" o Português como segunda língua na máquina virtual do KD4Z, a MD380Tools-VM:



Para tal, basta executar os seguintes comandos no ecrã principal:

glv
touch lang.pt
menu

Se quiserem reverter ao Inglês, basta executar:

rm lang.pt
menu

No caso de reiniciarem ou desligarem a máquina virtual, o Português vai continuar como língua pré-definida até correrem o comando de remoção.
Numa próxima atualização que o justifique, o Warren vai colocar um menu para as línguas mas com o procedimento acima explicado, podem desde já começar a utilizar o Português.
Qualquer sugestão/alteração é bem vinda, isto é um trabalho em evolução.

Para breve está também o suporte de multi-línguas nos MD380/MD390, estou neste momento a trabalhar com o Travis Goodspeed na tradução do firmware do rádio para que possamos ter o menu do mesmo no nosso bom e velho Português.