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.
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.
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.
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/
rk3399 and hdmi logo: https://github.com/rockchip-linux/u-boot/issues/42
https://github.com/rockchip-linux/u-boot/issues?q=
Gravando um novo firmware
TO-DO:
Gravando um novo sistema operacional
TO-DO:
Referências
- Documentação oficial do RockChip sobre boot:
https://opensource.rock-chips.com/wiki_Boot_option - https://forum.armbian.com/topic/12656-csc-armbian-for-rk322x-tv-boxes/
- https://imola.armbian.com/dl/rk322x-box/archive/
- https://github.com/rockchip-linux/rkbin/tree/master/bin/rk32
- http://rockchip.wikidot.com/how-to-enter-rockusb-maskrom-mode
- Fix Your Slow Rockchip Android Box by Installing a New Firmware (Tested on MXQ Pro 4K 5G) Eng Sub: https://www.youtube.com/watch?v=47QD9kBBdyk
- Cabo USB x USB Macho:
https://www.youtube.com/watch?v=7-wLGx6YA5w - Como instalar firmware na TV Box:
https://www.youtube.com/watch?v=U7KHzBfOXYk - Instalando Linux em TV Box com RK322X!:
https://www.youtube.com/watch?v=R0zjwQG2iE4 - https://forum.xda-developers.com/t/tool-imgrepackerrk-rockchips-firmware-images-unpacker-packer.2257331/
- https://opensource.rock-chips.com/wiki_Rkdeveloptool
- https://github.com/rockchip-linux/rkdeveloptool/issues/13
- https://github.com/ilmich/rkflashtool/
- https://wiki.radxa.com/RockpiN10/dev/usb-install
- COMO SAIR DO MODO MASKROM - ROCKCHIP TV BOX:
https://www.youtube.com/watch?v=vqc4-Jc2nwc - Desbrickando TV BOX MXq Pro 4k 5G, RK3228A (Unbrick) placa R29_5G_LP3_V1.2:
https://www.youtube.com/watch?v=1Vxl2GVP2ho - TV BOX MASKROM SOLUÇÃO DEFINITIVA QUALQUER TVBOX MXQ
https://www.youtube.com/watch?v=lgfkFnXBXlg - Um guia para realizar uma compilação Linux:
https://wiki.t-firefly.com/en/ROC-RK3568-PC/linux_compile.html - Um usuário do fórum Armbian que possui o hardware idêntico ao que foi fornecido ao campus: https://forum.armbian.com/topic/12656-csc-armbian-for-rk322x-tv-boxes/?do=findComment&comment=117962
- Rockchip RK3229 Datasheet:
https://rockchip.fr/RK3229%20datasheet%20V1.2.pdf - Intro to Hardware Reversing: Finding a UART and getting a shell:
https://www.youtube.com/watch?v=ZmZuKA-Rst0 - Hacker's Guide to UART Root Shells:
https://www.youtube.com/watch?v=01mw0oTHwxg - Conheça as piores placas de tvbox mxq pro ou mx9
https://www.youtube.com/watch?v=zCFzkr_o9-s - COMO FAZER BACKUP DO SEU TV BOX - ROCKCHIP
https://www.youtube.com/watch?v=AhrbnEFczGc - Especificação com base no nome "hx322x_box"
https://specdevice.com/showspec.php?id=e4ca-0382-0033-c5870033c587 - CRIE SEU PRÓPRIO LINUX - TV Box
https://www.youtube.com/watch?v=8Ch7nUBiQa0
Coletânea de arquivos obtidos: https://app.sbv.ifsp.edu.br/instaladores/tvbox/
No Comments