@fangis It is not a good idea to cut the stack trace in the middle when you want to do debug. Also put the log in a "spoiler" section to make easier to read the thread.
@mattmar I don't understand the part about the usb adapter: if are you using it to program the sdcard on the PC then it does not matter. If you're using it on the box, then it won't work.
Also I don't understand what does not boot: the multitool or the armbian image?
AIDA is not useful, as usual we need the serial output and photos of the board.
@TU-Student the reason why we often write .. read the first post .. is because someone has already wasted time and health trying to make everything work.
The reason why some boxes do not boot from the sd card is because there is an old bootloader or one that does not activate the sd controller at the boot stage (often vendor's choice).
So if you are unlucky, and multitool/armbian doesn't boot, the safest way is to delete the internal memory because in this mode (maskrom) the soc activates the sd card and starts the OS from there (99.9999999% of the time)
If you need a backup (of a system that for me is unusable) you can use the USB OTG cable method (with tools like rkdeveloptool or my fork of rkflashtool)
@fangis strange, the 6051p I think is the best supported chip. what's your problem?!
I'm not writing to ask for help, but only to share my experience, and to thank @jock for his work in allowing us to use linux with these boxes.
My board is an android tv with soc rk3229/NAND/DDR3/Wifi SSV6051p which I'm using as a network appliance (pihole - simple nas - network web server).
I followed the instructions in the first post and understood that the NAND is not supported, I preferred to empty it to avoid old bootloader problems and installed armbian bookworm on the SD card.
The rest is linux... I installed the software I needed and now the box provides services for my home network without any problems (and I reused hardware that otherwise would have gone in the trash).
Thanks again @jock and of course the armbian community
I recently purchased a cheap TV Box apparently based on RK3228A (chip marking) or RK3229 (Android boot log, shown in Recovery menu). I tried booting Multitool on it, but it even refuses to boot it (red LED, no HDMI output). I do not know where UART pins are and I have currently no scope to probe.
Should Multitool run even when eMMC/NAND is not cleared according to the first post? Also other images (LibreELEC) do not boot.
Board is marked as "MXQ_R2B_LP3_V2.62_220225", the housing is marked as "Q96 Max 4K Ultra HD" and it has round corners.
It claims to be Android 10, but in reality is Android 7
It's no secret indeed, but the armbian image has been engineered NOT to work that way on purpose because I did not wanted anything to do with existing old/buggy/limited bootloaders, miniloaders, trusts or whatever...
That's mostly because the cheapest models are usually chinese crap where costs are cut as much as possible, and you get no warranty of any kind.
These are toys that at most cost 3$ of materials to manufacturers and they sell them at 25$ and, for 90% of people, they are cheap trash that sometimes work, sometimes don't.
I think back some decade ago, when the tv boxes have appeared,
then you could buy some box that actually matched the description. they often also had that cool usb drive appearance.
But then now they are really popular, especially some models. here I think the
most famous is that mxq pro box. So now when you buy it it's a real lottery,
it can be anything. especially because now the sellers want to advertise a 64 bit cpu and sell something worse.
I was trying to boot linux for rk33xx and failing, only understood what was going on when I installed a terminal emulator
and then saw user rk322x.
here I tested a sdcard image on my parents mxq pro box, and for basic tasks it's fine.
Chromium basic browsing
libreoffice
etc!
And of course all the command-line programs and servers will work fine too.
From what I read tx9 should have an amlogic cpu, so no wonder why some of them aren't booting ?
I do not more tried because I don't know if device that I already have is useful to connect to UART. Moreover, even if somebody confirm that is useful, I don't know how connect UART on the 329q -1 board to that interface (it's better post a photo because with electronic I'm noob).
However I'm not interested to use Android TV 7 current firmware ... because when I want use acestream I cannnot use my smartphone as bluetooth keyboard to insert link.
@fabiobassa
I will try to get a USB TTL converter and give you a serial log but it will take time, as I dont have the neccesarry stuff to do it myself and I cant get one so easily online where I live.
What I meant to say was that I took photos with my camera and took note of all chip descriptions.
I can confirm its a real RK3229 and I already managed to boot LibreELEC 10 thanks to "ilmich" here: https://forum.libreelec.tv/thread/25236-unofficial-rk3228-rk3229-libreelec-10-x-builds/?postID=177599#post177599 that fixed it.
I also tried to boot several armbian images, even legacy ones, and same beahavior as multitool, black screen (stand by) and no blinking leds.
I also tried to scan my network to see if multitool booted but had no display and no, it doesnt how (of course my DHCP is working and cable plugged on ethernet port).
Tried with tootchpick, no toothpick, tried both holes, it doesnt show anything on screen, only blue led on.
@fangis
I read the post by "hexdump" and its really complicated for me at the moment, I need to learn more. Thats why I wanted to test armbian on this device so I can "play" with linux.
Something else: I dont know why my profle is still "Validating"... and cant post more than 1 post a day and cant change my avatar... Some help would be welcome.
No request this time, just another success story, at least partial !
I managed to run multitool on a mxq pro tv box.
Now I will try to edit this image to make a linux image working from
the sd card, my parents still like too much their laggy android to delete it, hehe.
Installing linux on mini pcs is so useful, I have done it on many different ones.. Im curious on what people here are doing with their desktops and servers !
ok, all the best, greetings from Brazil, and thanks everyone for the work and research
here are some images of the board ... i think i just fried a serial to usb converter while testing the three copper pins on the back side a few minutes ago ... in general: the box is booting perfectly fine, its just that it hangs / shuts down or whatever exactly one minute after the box was powered up for any kind of image i try (libreelec, armbian) ... i also tried to extract the trust.img via rkdeveloptool from emmc (rkdeveloptool rl 0x4000 0x2000 rl-0x4000-0x2000.out) and wrote it to the proper position on the sd card (dd if=rl-0x4000-0x2000.out of=/dev/sdx bs=512 seek=12288) but it did not make any difference in the end ...
update: the offset for writing it to the sd card was wrong above - here are the proper commands and now the box is working fine
rkdeveloptool rl 0x4000 0x2000 rl-0x4000-0x2000.out
dd if=rl-0x4000-0x2000.out of=/dev/sdx bs=512 seek=24576
but if the board looks familiar to you and you know where the serial port connectors are, i would still be interested to know that ...
@hexdump
In my case study ( and I own many different boards)I always found a uart somewhere, maybe little copper pads but always I found a uart for debugging
if you post a photo of your board up/down maybe we can identify them
I can confirm that the buildings from @jock are working fine and never happened that boots and hangs: if boot it works, otherwise no boot occurs, because of 1) wrong ddr settings 2) wrong trust OS but this is easily debugged by uart
we can summarise 3 BIG categories of boards:
3228 ddr 2 ( NO dinamic frequency scaling of ddr speed DMC)
3228 ddr 3 ( DMC is working fine)
3229 ( well exactly even here ddr2 and ddr3 but.... let's assume newer 3229 have only ddr3)
3229images will not boot on 3228 because different trst OS (thanks @knaerzche for all those USEFULL infos)
and yes if on the original emmc/nand is present the loader and some other little stuffs then the board looks for uboot on sd , without touching the internal process and the boot occurs from external SD
@jock - i think at least on newer rk3229 boxes (with a newer boot loader) you seem to be able to boot from sd card without having to erase the emmc content. i just did an experiment on my r394k rk3229 box: i took your ubuntu image and later took the root fs from it, then dd'ed the first 16mb (boot stuff) from a working libreelec build (https://github.com/knaerzche/LibreELEC.tv/releases/tag/RK322x-le92-0bca75f and https://forum.libreelec.tv/thread/21117-unoffical-le-9-2-images-for-rk3229-rk3228/?pageNo=1) to a fresh sd card, created a partition on it starting at sector 32768 (to not overwrite the boot stuff), made that active in fdisk (not sure if this is really required for u-boot to search for its extlinux there), created an ext4 fs on it, rsynced your image root fs to it, created an /extlinux/extlinux.conf with the following content:
TIMEOUT 30
DEFAULT rk3229
MENU TITLE rk3229 boot options
LABEL rk3229
MENU LABEL rk3229 kernel
LINUX ../boot/vmlinuz-4.4.189-rk322x
FDT ../boot/dtb-4.4.189-rk322x/rk3229-r329q.dtb
INITRD ../boot/initrd.img-4.4.189-rk322x
APPEND earlyprintk root=UUID=<put-your-root-fs-uuid-here> console=ttyS2,115200n8 console=tty0 rootwait rootfstype=ext4 consoleblank=0 loglevel=8
adjusted the root fs uuid accordingly, put the sd card into the box and powered it on ... and it booted fine from the sd card although the android on the internal emmc is still there. i noticed something similar on a rk3318 box too: the rockchip bootloader initial stages seem to load a u-boot.img from the sd card if there is one there (i think it was at sector 16384 offset) and i think this is how it works here: emmc boot loader starts with its first stage and sees that there is a u-boot.img stage on the sd-card and starts this one and from there it goes on.
with my box the system boots to a login prompt and then i think tries to start x11 - there it seems to hang and the keyboard got dead (num lock which is working fine during boot does not respond anymore - i tried all usb ports etc., mouse is still fine though, i.e. it got power still and its led was on) so that i cannot switch back to the console. i tried to disable the x11 startup on the root fs of the image but failed - do you know a quick way to disable it directly on the filesystem? do you have an idea why the system locks up? sadly this box does not seem to have serial console connectors
is your kernel supposed to work on rk3228a too? if yes, then i might give it a try on my mk809iv as well ...
a lot of thanks for your work on getting armbian working on those boxes and best wishes - hexdump
DISCLAIMERS (PLEASE READ):
Everything you can find in this thread (binaries, texts, code snippets, etc...) are provided AS-IS and are not part of official Armbian project. For this reason not people from Armbian project nor myself are responsible for misuse or loss of functionality of hardware.
THIS POST explains very well the troubles with TV Boxes and why they are not suitable for everyone
Please don't ask about support or assistance in other non-community forums nor in the official Armbian github repository, instead post your questions in this thread, in the TV Boxes forum section (hardware related) or in the Peer-to-peer support section (general linux/software related).
Following the recent thread on LibreElec forum about an unofficial image for rk3229 devices, I would like to make public the work made by me and @fabiobassa about bringing rk322x support to armbian.
The project is now in -> mainline Armbian <- development fork -> here <-
This first page and the last 3 or 4 pages of the thread are enough to get up to date with recent developments.
Many useful experiences are scattered through the thread, but the most important things are collected here in the first page, so please read it carefully!
Mainline kernel is fully supported and will receive most support in the future. Legacy kernel 4.4 is deprecated, but is kept around only for special purposes.
What works:
Should boot and work flawlessy on all boards with RK3228a, RK3228b and RK3229, with either DDR2 and DDR3 memories.
Mainline u-boot
Proprietary OPTEE provided as Trusted Execution Environment (needed for DRAM frequency scaling)
All 4 cores are working
Ethernet
Serial UART (configured at 115200 bps, not 1.5Mbps!)
Thermals, CPU and DRAM frequency scaling
OTG USB 2.0 port (also as boot device!)
EHCI/OHCI USB 2.0 ports
MMC subsystem (including eMMC, SD and sdio devices)
Hardware video acceleration
NAND is available only on legacy kernel. To fully boot from NAND, use the Multitool and its steP-nand installation (instructions are below)
Various WIFI over SDIO are supported (SSV6051P, SSV6256P, ESP8089, Realtek chips, etc...), ssv6256p driver is available only on legacy kernel
Full GPU acceleration
U-boot boot order priority: first the sdcard, then the USB OTG port and eventually the internal eMMC; you can install u-boot (and the whole system) in the internal eMMC and u-boot will always check for images on external sdcard/USB first.
Unbrick:
Technically, rockchip devices cannot be bricked. If the internal flash does not contain a bootable system, they will always boot from the sdcard. If, for a reason, the bootable system on the internal flash is corrupted or is unable to boot correctly, you can always force the maskrom mode shorting the eMMC clock pin on the PCB. Here there is the procedure, but you can also google around if you get stuck on a faulty bootloader, the technique is pretty simple and requires a simple screwdriver.
There are however some unfortunate cases (expecially newer boards) where shorting the eMMC clock pin is difficult or impossibile, like eMMC or eMCP BGA chips with no exposed pins. In those cases pay double attention when burning something on the internal eMMC/eMCP and always test first the image from the sdcard to be sure it works before burning anything on eMMC/eMCP.
Some useful links with pins, pads or procedures for some boards:
Generic procedure for boards with non-BGA eMMC
MXQPRO_V71 - eMCP
H20 - eMCP
ZQ01 - eMCP
NAND vs eMMC vs eMCP difference:
RK3228 and RK3229 tv boxes comes with three different flash memory chips: eMMC, NAND and eMCP.
It does not depend upon the market name of the tv box and neither the internal board; manufacturers put whatever they find cheaper when they buy the components.
NAND chip is just the non-volatile memory
eMMC chip contains both the non-volatile memory plus a controller.
eMCP chip contains the non-volatile memory, a controller for the non-volatile memory (like eMMC), but also contains a bank of DDR SDRAM memory on the same physical chip.
The difference is very important, because eMMC and eMCP are far easier to support at various levels: the controller deals with the physical characteristics of the non-volatile memory, so the software has no to deal with.
NAND chips instead are harder to support, because the software is required to deal with the physical characteristics and non-standard things that depends upon the NAND manufacturer.
If you have a NAND chips you're unlucky because mainline kernel currently cannot access it, but also because you need special care and instructions explained later.
You can discover if you have a NAND, eMMC or eMCP chip looking on the board are reading the signature on the flash memory chip.
The Multitool (see later) also can detect which chip you have onboard: the program will warn you at startup if you have a NAND chip.
NAND bootloader upgrade:
IMPORTANT: don't do this is you have an eMMC or eMCP; skip this paragraph if you are unsure too!
For very expert people who are having issues when (re)booting images, there is the chance to upgrade the bootloader on NAND.
The NAND bootloader is nothing else than a regular idbloader (see official rockchip documentation) but contains some bits to correctly access the data on your flash memory.
Upgrading requires to erase the existing flash content, in the worst case will require you to follow the Unbrick procedure above or restore an older but more compatible bootloader.
If you are not mentally ready to overcome possible further issues, don't do this!
The detailed instructions and the binaries are available at this post
Multimedia:
Mainline kernel: 3D acceleration is provided by Lima driver and is already enabled. Hardware video decoding: https://forum.armbian.com/topic/19258-testing-hardware-video-decoding-rockchip-allwinner/
Deprecated legacy kernel: multimedia features, like OpenGL/OpenGL ES acceleration, hardware accelerated Kodi, ffmpeg and mpv you can take a look to this post
An effective tutorial from @Hai Nguyen on how to configure a box as a hi-quality music player using an USB audio card, and controlling it via remote control is available in this post
Brief explanation about kernel naming:
current kernel is the mainline LTS kernel version, most maintained and tested. This is the suggested version for production devices. If you don't know what to pick, pick this.
legacy kernel (version 4.4) is provided by manufacturer; it is deprecated, unmaintained and not suggested.
edge kernel is the development mainline kernel version, with experimental features and drivers; usually stable but perhaps suitable for production devices.
You can switch from one kernel flavour to another using armbian-config or manually via apt.
Installation (via SD card):
Building:
You can build your own image follow the common steps to build armbian for other tv boxes devices: when you are in the moment to choose the target board, switch to CSC/TVB/EOL boards and select "rk322x-box" from the list.
Download prebuilt images from the following links:
Archive builds (GPG-signed) - https://imola.armbian.com/dl/rk322x-box/archive/
SUGGESTED - Nightly built from trunk each week by Armbian servers (GPG-signed) - https://github.com/armbian/community
Old images provided by me (unsigned and outdated) - https://users.armbian.com/jock/rk322x/armbian/stable
Archived/older images:
https://armbian.hosthatch.com/archive/rk322x-box/archive/
Multitool:
The Multitool is a small but powerful tool to do quick backup/restore of internal flash, but also burn images and general system rescue and maintenance via terminal or SSH.
Compressed images will be uncompressed on fly.
Multitool - A small but powerful image for RK322x TV Box maintenance (instructions to access via network here)
Quick installation instructions on eMMC:
Build or download your preferred Armbian image and a copy of the Multitool;
Burn the Multitool on an SD card; once done, place the Armbian image in images folder of the SD card NTFS partition;
Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears;
OPTIONAL: you can do a backup of the existing firmware with "Backup flash" menu option;
Choose "Burn image to flash" from the menu, then select the destination device (usually mmcblk2) and the image to burn;
Wait for the process to complete, then choose "Shutdown" from main menu;
Unplug the power cord and the SD card, then replug the power cord;
Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt.
On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user
Run sudo rk322x-config and select your board characteristics to enable leds, wifi chips, high-speed eMMC, etc...
Run sudo armbian-config to configure timezone, locales and other personal options
Congratulations, Armbian is now installed and configured!
Despite the procedure above is simple and reliable, I always recommend to first test that your device boots Armbian images from SD Card.
Due to the really large hardware variety, there is the rare chance that the images proposed here may not boot. If a bad image is burned in eMMC, the box may not boot anymore forcing you to follow the unbrick section at the top of this post.
Quick installation instructions on NAND:
Build or download your preferred Armbian image and a copy of the Multitool;
Burn the Multitool on an SD card; once done, place the Armbian legacy kernel image in images folder of the SD card NTFS partition;
Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears;
OPTIONAL: you can do a backup of the existing firmware with "Backup flash" menu option;
Choose "Burn Armbian image via steP-nand" from the menu, then select the destination device (usually rknand0) and the image to burn;
Wait for the process to complete, then choose "Shutdown" from main menu;
Unplug the power cord and the SD card, then replug the power cord;
Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt.
On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user
Run sudo rk322x-config and select your board characteristics to enable leds, wifi chips, etc...
Run armbian-config to configure timezone, locales and other personal options
Congratulations, Armbian is now installed!
Alternative: you can install the bootloader in NAND and let it boot from SD Card or USB:
Download a copy of the Multitool and burn it on an SD card;
Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears;
RECOMMENDED: make a backup of the existing firmware with "Backup flash" menu option;
Choose "Install Jump Start for Armbian" menu option: the Jump Start uses the internal NAND to boot from external SD Card or external USB Stick;
Follow the general instructions to boot from SD Card below, skip the first erase eMMC step.
Quick installation instructions to boot from SD Card:
If you are already running Armbian from eMMC, skip to the next step. Instead if you are running the original firmware you need to first erase the internal eMMC; to do so download the Multitool, burn it on an SD Card, plug the SD Card and power the TV Box. Use "Backup flash" if you want to do a backup of the existing firmware, then choose "Erase flash" menu option.
Build or download your preferred Armbian image;
Uncompress and burn the Armbian image on the SD Card;
Plug the SD Card in the TV Box and power it on;
Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt;
On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user
Run sudo rk322x-config and select your board characteristics to enable leds, wifi chips, high-speed eMMC or NAND, etc...
Run armbian-config to configure timezone, locales and other personal options, or also to transfer the SD Card installation to internal eMMC;
Congratulations, Armbian is running from SD Card!
A note about boot device order:
With Armbian also comes mainline U-boot. If you install Armbian or just the bootloader in the eMMC or the Jump Start on internal NAND, the bootloader will look for valid bootable images in this order:
External SD Card
External USB Stick in OTG Port
Internal eMMC
Installation (without SD card, board with eMMC)
If you have no sd card slot and your board has an eMMC, you can burn the armbian image directly on the internal eMMC using rkdeveloptool and a male-to-male USB cable:
Download your preferred Armbian image from Armbian download page and decompress it.
Download the rk322x bootloader: rk322x_loader_v1.10.238_256.bin
Download a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository.
Unplug the power cord from the tv box
Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack
Plug the other end of the USB Male-to-male cable into an USB port of your computer
If everything went well, run lsusb: you should see a device with ID 2207:320b
Run sudo rkdeveloptool rd 3 (if this fails don't worry and proceed to next step)
Run sudo rkdeveloptool db rk322x_loader_v1.10.238_256.bin
Run sudo rkdeveloptool wl 0x0 image.img (change image.img this with the real Armbian image filename)
Unplug the power cord
Done!
Installation (without SD card, board with NAND)
If you are in the unfortunate case you can't use an SD card for installation and your board has a NAND chip, you still have an option to use the quick Multitool installation steps via USB.
Obtain a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository.
Unplug the power cord from the tv box
Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack
Plug the other end of the USB Male-to-male cable into an USB port of your computer
If everyting went well, using lsusb you should see a device with ID 2207:320b
Run sudo rkdeveloptool wl 0x4000 u-boot-main.img (download u-boot-main.img.xz , don't forget to decompress it!)
Unplug the power cord
Now you can follow the instructions on how to install on eMMC/NAND via SD card, just use instead an USB stick to do all the operations and plug it into the USB OTG port. Once you reboot, USB OTG port will be used as a boot device.
NOTE: NAND users without SD slot may be unhappy to know that it will be difficult to do extra maintenance with Multitool in case something breaks in the installed Armbian system: installing u-boot-main.img makes the installed system unbootable because it is missing the NAND driver.
Alternative backup, restore and erase flash for EXPERTS:
These backup, restore and erase flash procedures are for experts only. They are kept here mostly for reference, since the Multitool is perfectly able to do same from a very comfy interface and is the suggested way to do maintenance.
Backup:
Obtain a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository. If you prefer, you can compile it yourself from the sources available at official rockchip repository
Unplug the power cord from the tv box
Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack
Plug the other end of the USB Male-to-male cable into an USB port of your computer
If everyting went well, using lsusb you should see a device with ID 2207:320b
change directory and move into rkbin/tools directory, run ./rkdeveloptool rfi then take note of the FLASH SIZE megabytes (my eMMC is 8Gb, rkdeveloptool reports 7393 megabytes)
run ./rkdeveloptool rl 0x0 $((FLASH_SIZE * 2048)) backup.data (change FLASH_SIZE with the value you obtained the step before)
once done, the internal eMMC is backed up to backup.data file
Restore: first we have to restore the original bootloader, then restore the original firmware.
Running rkdeveloptool with these switches will accomplish both the jobs:
./rkdeveloptool db rk322x_loader_v1.10.238_256.bin
Downloading bootloader succeeded.
./rkdeveloptool ul rk322x_loader_v1.10.238_256.bin
Upgrading loader succeeded.
./rkdeveloptool wl 0x0 backup.data
Write LBA from file (100%)
Download here:
Erase the flash memory: clearing the internal eMMC/NAND memory makes the SoC look for external SD Card as first boot option.
If there isn't any suitable SD Card, the SoC enters maskrom mode, which can then be used for full eMMC/NAND access using rkdeveloptool. This is perfectly fine if your box has an eMMC flash memory.
NOTE: In case you have a NAND flash memory this option is however discouraged. The original bootloader contains some special parameters to correctly access the data. Clearing the flash memory will probably garbage the NAND data and restoring the bootloader may require some special instructions.
Obtain a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository. If you prefer, you can compile it yourself from the sources available at official rockchip repository
Unplug the power cord from the board
Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack
Plug the other end of the USB Male-to-male cable into an USB port of your computer
If everyting went well, using lsusb you should see a device with ID 2207:320b
run ./rkdeveloptool ef and wait a few seconds
once done, the internal eMMC is erased and the device will boot from the sdcard from now on
Partecipation and debugging:
If you want to partecipate or need help debugging issues, do not hesitate to share your experience with the installation procedure of the boxes.
In case of issues and missed support, provide as many as possible of these things is very useful to try and bring support for an unsupported board:
some photos of both sides of the board. Details of the eMMC, DDR and Wifi chips are very useful!
upload the device tree binary (dtb) of your device. We can understand a lot of things of the hardware from that small piece of data; and alternative is a link to the original firmware (you can do a full backup with the Multitool);
dmesg and other logs (use armbianmonitor -u that automatically collects and uploads the logs online)
attach a serial converter to the device and provide the output of the serial port;
Critics, suggestions and contributions are welcome!
Credits:
@fabiobassa for his ideas, inspiration, great generosity in giving the boards for development and testing. The project of bringing rk322x into armbian would not have begun without his support!
Justin Swartz, for his work and research to bring mainline linux on rk3229 (repository here)
@knaerzche for his great contribution to libreelec support and mainline patches
@Alex83 for his patience in testing the NAND bootloader upgrade procedure on his board
@Jason Duhamell for his generous donation that allowed researching eMCP boards and esp8089 wifi chip
The trust os of the original firmware is very old, but yet I don't know the reason why the trust os from the multitool is acting weird. Unfortunately that piece of code is a closed binary blob and I don't know what it is actually doing.
I arranged another multitool with a different trust os. It is not guaranteed to work, but you may try: https://drive.google.com/file/d/1b0BOwdr0J6XxYDyn1HfprtmBPhMHIfnV/view?usp=share_link