Armbian OS – uEnv.ini and extlinux.conf
uEnv.ini and extlinux.conf what are they?
When you set up Armbian on a Android TV box, you need to tell Armbian what drivers/setup to use for the chipset in your box. To do this, we need to match what is called a DTB file to your box’s hardware. After you’ve imaged your card, there are 2 files on the SD card or USB stick we need to edit. uEnv.ini which is in the root of your SD card’s BOOT partition and extlinux.conf which is found in the /extlinux directory.
uEnv.ini takes care of the boot information when you are booting off SD card or USB Stick and the extlinux.conf takes care of the boot sequence if you load the OS onto the internal eMMC/NAND memory (the internal storage memory chip).
So if you boot off external media, you follow the guide Installing to eMMC but HAVEN’T updated the extlinux.conf; then dont expect your system to boot when you remove your SD Card/USB Stick. More than likely your system will just sit at the box’s splash screen. If you have this problem, follow the instructions here for editing the extlinux.conf file after Installing to eMMC.
As such, the best practice is to update BOTH files to ensure you can boot off external SD card/USB stick and internal eMMC (Should you copy the OS over in future).
Editing the files and picking the right DTB
Within these files you will specify a DTB file, from the dtb folder on the BOOT partition.. Your TV Box might be a 905×2 chipset, or an 912 etc, so you need to find the DTB that works for your chipset. Lets say you have an S912 based system, you can look in the DTB folder and you will see various DTB files with 912 in their name, you can try each one of those, one at a time and see which one works, though not all DTB files are labeled as clearly as this. As an example, I have a Beelink GT1 Mini which is based on the 905×2 chipset, and for that unit, the X96 DTB file is recommended, though I only found that out through hunting the forums/finding out what other people had used.
On Windows systems, Id suggest using Notepad++ or a Unix text file editor as the files are stored in Unix text format and Windows Notepad may damage the files in such a way as to affect the boot process working.
In short, look at the Armbian forums to find the best one, or just pick one that you think, list it in the uEnv.ini and extlinux.conf, see if the box will boot (try a different DTB file if not) and see if all the hardware works (Try a different DTB file if not, or some boxes its possible to find there is no bluetooth driver or something. Best to research the Armbian forums first to see what boxes people have success with. (Ill be adding a DTB database on this site in future and will update here when I do).
There is no harm in just trying different DTB files, one at a time. Your box will either boot or not boot and either some or all of the features of your box will work.
If you are just at a stage of testing your booting process from an SD card or USB stick, you only need to edit the uEnv.ini file for now, as your system will boot from that, however, when you find the DTB you want to use, update the extlinux.conf file too, so you can install to emmc/NAND.
What should the files look like
In the below examples, both files should look formatted like shown. The top of the two examples is the DTB.ini and the bottom the extlinux.conf file.
If they dont look/arent formatted like this when you open them, you aren’t using a Unix file editor like Notepad++
In each file you are replacing meson-gxl-s905x-khadas-vim.dtb with the DTB file that closest matches your box.
DONT delete the # out of the extlinux.conf file, its meant to be there.