TV Box RK322X - MXQ Pro 5G 4K

Antes de começar, as seguintes leituras são recomendadas:
- IFSP firma protocolo de intenções com Receita Federal: https://www.ifsp.edu.br/noticias/3902-ifsp-firma-protocolo-de-intencoes-com-receita-federal
- IFSP e Receita entregam 420 microcomputadores a escolas: https://www.ifsp.edu.br/conemac/17-ultimas-noticias/2994-parceria-entre-ifsp-e-receita-federal-entrega-420-microcomputadores-a-escolas

Este documento é um rascunho. As pesquisas relacionadas a este equipamento ainda estão sendo realizadas.

Até o momento, não foi possível descobrir como fazer boot por cartão SD nos dispositivos entregues ao IFSP São João da Boa Vista. As ações abaixo tratam de fazer a atualização direta via cabo USB.

 

 

Conhecendo a placa

A placa contém na parte integrada:

  • chipset Rockchip RK3229/RK322A;
  • memória RAM de 1GB;
  • memória flash da Samsung de 8GB para armazenamento;
  • módulo wireless;
  • módulo Ethernet.

placa_tvbox_mxq_pro_5g.png

Nos detalhes externos há:

  • 1 leitor de cartão SD;
  • 4 portas USB;
  • 1 conector P2 para saída de som;
  • 1 conector P2 para microfone;
  • 1 porta HDMI;
  • 1 porta Ethernet;
  • 1 jack para energia 5V;
  • 1 botão de ação localizado atrás do conector P2 de áudio.

 

Conectando a um PC

Atenção: o cabo confeccionado nas instruções abaixo não é padronizado. Jamais utilize-o para tentar conectar outros dispositivos USB-A.

Para fazer a conexão a um computador é necessário um cabo USB-A para USB-A (macho-macho). Este cabo pode ser montado utilizando 2 cabos normais USB-A de quaisquer dispositivos antigos e construindo-o com a pinagem replicada, isto é, o pino de um lado de uma cabo deve-se ligar ao mesmo pino do outro. Normalmente, você poderá confeccionar este novo cabo apenas unindo os condutores pela cor, porém deve-se tomar o cuidado pois nem sempre tais cabos seguem um padrão (antes de ligar a placa, faça um teste nas pontas do novo cabo com um multímetro ou utilize cabos idênticos na confecção).

A conexão a um computador é feita através da porta USB da TV Box que fica isolada das outras. 

 

 

 

Ligação

Quando ligar a placa ao computador, não ligue-a na fonte. A porta USB do computador fornecerá a energia necessária para ligá-la. 

image-1690748417948.png

Se o dispositivo estiver funcionando normalmente, ao ligar a conexão USB apenas servirá para o fornecimento de energia. O sistema operacional carregado ainda poderá utilizar a conexão desta porta para outras finalidades (como o modo depuração que há no sistema operacional Android).

 

Programas

Há diversos programas para subir novos firmwares e sistemas operacionais para a placa. Para Linux, a ferramenta rkdeveloptool é utilizada. Em Windows, a ferramenta pode ser encontrada com o nome de AndroidTool, mas possui as mesmas funcionalidades. A grande diferença entre as versões é que em Windows a ferramenta possui uma interface gráfica amigável. Em Linux, é necessário utilizar o terminal.

Para instalar o rkdeveloptool em Debian, a ferramenta está disponível diretamente via repositórios. Para obtê-lo, basta executar como root: apt install rkdeveloptool .

Para instalar o rkdeveloptool em Ubuntu, os repositórios do Debian podem ser utilizados para baixar o rkdeveloptool:

echo "deb http://deb.debian.org/debian bookworm main non-free-firmware" > /etc/apt/sources.list.d/debian.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6ED0E7B82643E131
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F8D2585B8783D481
apt update
apt install -y rkdeveloptool

Caso queira instalar o rkdeveloptool em Linux compilando diretamente do código-fonte, clique aqui para ler as instruções oficiais.

Para instalar em Windows, baixe o AndroidTool clicando aqui e extraia o arquivo compactado para uma pasta qualquer.

Trabalhando em outros modos de operação

A placa funciona em 3 modos:

  • Modo NORMAL: funcionamento padrão (carrega o sistema operacional);
  • Modo LOADER: carrega apenas o firmware (utilizado para subir um novo sistema operacional);
  • Modo MASKROM: carrega o firmware mínimo somente-leitura gravado de fábrica (é carregado quando o firmware principal está corrompido ou inválido). É um modo emergencial utilizado para subir um novo firmware.

Tecnicamente, os dispositivos Rockchip não podem ser bloqueados (bricked). Se o flash interno não contiver um sistema inicializável, eles sempre inicializarão a partir do cartão SD. Se, por algum motivo, o sistema inicializável no flash interno estiver corrompido ou não conseguir inicializar corretamente, você sempre poderá forçar o modo MASKROM encurtando o pino do relógio eMMC no PCB. 

Pinos para entrar em MASKROM em chipset da TV Box RK322x

 

O computador deverá ter os drivers necessários para que que você possa trabalhar nos modos LOADER ou MASKROM. Sem os drivers, caso haja um sistema operacional Android instalado, a ação padrão de pressionar o botão ao ligar é de reiniciar o dispositivo para as configurações de fábrica.

Para baixar os drivers da Rockchip para Windows, clique aqui. Em Ubuntu, não houve necessidade de instalar drivers.

Tendo os drivers instalados, antes de ligar a placa deve-se segurar o botão que está atrás de um dos conectores P2 de áudio, e finalmente conectar o cabo USB.

Abra o AndroidTool. Se tudo ocorreu corretamente, o programa irá exibir, na parte inferior, a mensagem de que o dispositivo foi encontrado em modo LOADER.

Entendendo o AndroidTool

Ao ligar o dispositivo no modo normal, podemos notar (pela saída HDMI) que é carregado um sistema operacional Android com funcionalidades de multimidia.

 

Ao ligar o dispositivo segurando o botão interno acessível pela saída SPDIF, o dispositivo entra no modo LOADER (nenhuma imagem na saída HDMI é gerada). Com o AndroidTool aberto, indo na aba "Avançado", podemos obter mais informações do dispositivo clicando nos botões "(Info)":

(Info) FlashID :

(Info) Flash :

(Info) Chipset :

(Info) Capacidade :

 

Voltando na aba inicial "Imagem" e clicando no botão "Analisar partições" podemos observar o conteúdo da memória Flash:

 

Firmware/imagem original

 

 

Estrutura da imagem original

 

  Descrição
uboot https://en.wikipedia.org/wiki/Das_U-Boot
trust  
misc ???
baseparamer ???
resource ???
kernel Kernel Linux
boot Igual ao initrd (https://pt.wikipedia.org/wiki/Initrd )
recovery ???
backup ???
cache Partição para cache do Android
metadata ???
kpanic ???
system Partição para os arquivos do Sistema Operacional
userdata Partição para os arquivos do usuário

 

Backup da imagem

Até o momento, não foi possível fazer o backup do firmware original para entender como funciona a estrutura lógica do dispositivo. O programa AndroidTool gera erro.
O tutorial utilizado é esse: "COMO FAZER BACKUP DO SEU TV BOX - ROCKCHIP": https://www.youtube.com/watch?v=AhrbnEFczGc

 

 

UART

Rascunho para depuração serial

 

RK3228A

AA15: GPIO1_B1/UART0_TX/GMAC_TXD0_M1

Y15: GPIO1_B0/UART0_RX/GMAC_TXD1_M1

 

RK3229

 

T18: GPIO2_D2/UART0_TX

Y17: GPIO2_D3/UART0_RX

 

 

Funcionamento do sistema

 

TO-DO: entender U-boot

https://en.wikipedia.org/wiki/Das_U-Boot

https://www.edivaldobrito.com.br/u-boot-agora-permite-iniciar-o-linux-a-partir-de-um-servidor-http/

https://unix.stackexchange.com/questions/703518/defining-console-port-in-arm-kernel-image

Tutorial: Introduction to the Embedded Boot Loader U-boot - Behan Webster, Converse in Code: https://www.youtube.com/watch?v=INWghYZH3hI

[4/4] rockchip: Enable HDMI output on rk3399 board w/ HDMI: https://patchwork.kernel.org/project/linux-rockchip/patch/20200123162845.10651-5-jagan@amarulasolutions.com/

https://github.com/rockchip-linux/u-boot/issues?q=

 

 

 

Gravando um novo firmware

TO-DO: 

 

Gravando um novo sistema operacional

TO-DO:

 

 

Referências

 

 

Coletânea de arquivos obtidos: https://app.sbv.ifsp.edu.br/instaladores/tvbox/