Community Armbian 21.02.3 MAINLINE Image For Khadas VIM3 Pro arm64 Native - WITH HDMI AUDIO!

This is the second of two different, but similar Armbian desktop images I am sharing for the Khadas VIM3. This one is arm64 native, with a kernel compiler environment. This is an alternative to the hybrid armhf/arm64 image announced here, a̶n̶d̶ ̶s̶u̶i̶t̶a̶b̶l̶e̶ ̶f̶o̶r̶ ̶m̶o̶s̶t̶ ̶u̶s̶e̶s̶ ̶t̶h̶a̶t̶ ̶d̶o̶n̶’̶t̶ ̶r̶e̶q̶u̶i̶r̶e̶ ̶a̶u̶d̶i̶o̶ ̶o̶u̶t̶p̶u̶t̶ ̶t̶h̶o̶u̶g̶h̶ ̶H̶D̶M̶I̶ FIXED.

Again, I’d like to thank the individual efforts by @Spikerguy and help from @jtremblant for my earlier TwisterOS image, which provided many of the configurations to make this functional. Additional credit goes to lanefu, a contributor on the Armbian forums, for his valuable information on the Armbian firstboot mechanisms.

Please feel free to offer input and feedback for possible improvements, and to use this as a possible basis for your own unofficial community efforts.

Community Armbian arm64 Image for Khadas VIM3 Pro, Single Board Computer.


This is a clean system Image of Armbian 21.02.3, derived from the Armbian supported image for the ODroid N2+ SBC, using the Meson64 current Armbian Linux kernel images, prepared for the Khadas VIM3 SBC. Selective configuration items are derived from the Khadas Fenix build tool, tested to interoperate with Armbian.

The image is tuned for Amlogic A311D SOC, including support for the native G12 audio device, NOW WITH HDMI audio output, and the Khadas cooling-fan implementation, with a minimum of changes to installed software baselines.

This is a fully native ARM64 image, with the inclusion of Linux headers and C compiler environment. It is suited to building custom kernel modules, etc. for use in the Armbian image for Khadas VIM3 that I provided with a 32-bit package environment.

The image includes a mainline uBoot, prepared with the Khadas Fenix tools specifically for VIM3.

This Armbian image is partitioned with an MBR as a single EXT4 root FS, and 8192 beginning sectors of unpartitioned space for the uBoot loader. This image layout is not compatible with the Khadas kRescue installer or Amlogic USB Tool, and may not be fully compatible with imaging tools intended for use with Raspberry Pi SBCs.

-N̶O̶T̶E̶:̶ ̶A̶u̶d̶i̶o̶ ̶o̶u̶t̶p̶u̶t̶ ̶v̶i̶a̶ ̶t̶h̶e̶ ̶V̶I̶M̶3̶ ̶H̶D̶M̶I̶ ̶c̶o̶n̶n̶e̶c̶t̶o̶r̶ ̶i̶s̶ ̶n̶o̶t̶ ̶f̶u̶n̶c̶t̶i̶o̶n̶a̶l̶.̶ ̶T̶h̶i̶s̶ ̶i̶s̶ ̶a̶ ̶p̶r̶o̶b̶l̶e̶m̶ ̶w̶i̶t̶h̶ ̶t̶h̶e̶ ̶a̶u̶d̶i̶o̶ ̶s̶t̶a̶c̶k̶ ̶i̶n̶ ̶6̶4̶-̶b̶i̶t̶ ̶D̶e̶b̶i̶a̶n̶ ̶a̶n̶d̶ ̶U̶b̶u̶n̶t̶u̶ ̶d̶i̶s̶t̶r̶i̶b̶u̶t̶i̶o̶n̶s̶ ̶f̶o̶r̶ ̶t̶h̶e̶ ̶V̶I̶M̶3̶ ̶a̶n̶d̶ ̶o̶t̶h̶e̶r̶ ̶A̶m̶l̶o̶g̶i̶c̶ ̶A̶3̶1̶1̶D̶ ̶S̶O̶C̶ ̶s̶y̶s̶t̶e̶m̶s̶.̶ ̶I̶f̶ ̶y̶o̶u̶ ̶r̶e̶q̶u̶i̶r̶e̶ ̶e̶a̶s̶y̶ ̶a̶u̶d̶i̶o̶ ̶o̶u̶t̶p̶u̶t̶,̶ ̶I̶ ̶h̶a̶v̶e̶ ̶a̶n̶ ̶[̶A̶r̶m̶b̶i̶a̶n̶ ̶3̶2̶-̶b̶i̶t̶,̶ ̶a̶r̶m̶h̶f̶ ̶i̶m̶a̶g̶e̶ ̶f̶o̶r̶ ̶t̶h̶e̶ ̶V̶I̶M̶3̶]̶(̶h̶t̶t̶p̶s̶:̶/̶/̶f̶o̶r̶u̶m̶.̶k̶h̶a̶d̶a̶s̶.̶c̶o̶m̶/̶t̶/̶c̶o̶m̶m̶u̶n̶i̶t̶y̶-̶a̶r̶m̶b̶i̶a̶n̶-̶2̶1̶-̶0̶2̶-̶3̶-̶i̶m̶a̶g̶e̶-̶f̶o̶r̶-̶k̶h̶a̶d̶a̶s̶-̶v̶i̶m̶3̶-̶p̶r̶o̶-̶w̶i̶t̶h̶-̶3̶2̶-̶b̶i̶t̶-̶u̶s̶e̶r̶s̶p̶a̶c̶e̶/̶)̶ ̶t̶h̶a̶t̶ ̶u̶s̶e̶s̶ ̶t̶h̶e̶ ̶s̶a̶m̶e̶ ̶6̶4̶-̶b̶i̶t̶ ̶k̶e̶r̶n̶e̶l̶ ̶a̶s̶ ̶t̶h̶i̶s̶ ̶a̶r̶m̶6̶4̶ ̶s̶y̶s̶t̶e̶m̶.̶ ̶O̶f̶ ̶c̶o̶u̶r̶s̶e̶ ̶h̶i̶n̶t̶s̶ ̶h̶e̶r̶e̶ ̶f̶r̶o̶m̶ ̶o̶t̶h̶e̶r̶ ̶m̶a̶i̶n̶t̶a̶i̶n̶e̶r̶s̶,̶ ̶b̶u̶i̶l̶d̶e̶r̶s̶ ̶a̶n̶d̶ ̶u̶s̶e̶r̶s̶ ̶a̶r̶e̶ ̶w̶e̶l̶c̶o̶m̶e̶!̶
Audio output now working for HDMI.

Compatible installation methods are described below.

How to Install:


The image is ready-to-write, for SD-card or USB media, providing a live, running system. This is dependent on having a multi-boot capable uBoot from Khadas is present on the VIM3 eMMC, or that the eMMC is blank. uBoot may be current and capable on your VIM3.


Begin by download the image.xz file and corresponding .md5 files for validation from the links:


Alternative .torrent transfer:


Downloaded images may be verified with the hash in the provided .md5 file

Armbian provide guidance on transferring the downloaded image.xz to an SD card. You may already have a preferred method. During testing, all of my images were transferred to removable media with the standard Gnome Disks utility, included with many Linux distributions.

Khadas have similar, brief instructions that also describe USB flash drives:

At this point, you should have an SD card or USB flash drive, that inserted in your VIM3, will boot Armbian into “first boot” setup when powered on.

If booting is not successful from your external media after following Armbian and Khadas guidance, it’s likely that your VIM3 has an incompatible uBoot on the built-in eMMC. This can be updated.
Khadas offer a guide to install the latest uBoot with their “krescue” recovery tool:

Logging in:
On successful booting, Armbian will begin several one-time tasks, including expansion of the root filesystem for all available space on the installed target media, and creation of a new user account. This is expected to take several minutes before settling, so be patient and don’t interrupt the process.

ROOT PASSWORD: 1234 (Changed on first boot, this is the Armbian standard configuration)

USERNAME: (Configured on first boot)

PASSWORD: (Configured on first boot)

After successfully booting and initially configuring Armbian on your VIM3, the system can be transferred to the onboard 32GB eMMC storage from this running SD or USB image. Transfer of the system from SD/USB media (mmcblk1 / sda) to the VIM3 eMMC (mmcblk2) has ben tested, through use of the Armbian “nand-sata-install” tool, provided in the image.


Announcement on the Armbian Forums:

With further testing, HDMI AUDIO NOW WORKS in arm64 image build!

Heads up! @jtremblant of the TwisterOS project, and a great systems guy, just informed me that HDMI audio output now works out-of-the-box for pure arm64 builds!
This was not true of earlier test builds. I suspect that I did not track a change, copying /var/lib/alsa/asound.state from my armhf build. These correct settings for ALSA mixer seem to be a likely solution.

Users of Fenix Ubuntu on VIM3 may want to verify if this solves audio issues, along with my other configuration details found here:

₩₳ł₮ł₦₲ ₣ØⱤ ₮ⱧɆ ₲ł₣₮ Ø₣ ₴ØɄ₦Đ ₳₦Đ Vł₴łØ₦
— Jeremiah


Excellent job with Community Armbian Image here. I guess now have a perfect excuse to get another Vim3 Pro to have a dedicated Vim3 for each OS, that will make it easier to “track” both developments simultaneously. :smiley:

I wish Vim3 was less expensive and have a larger eMMC storage option available(128Gb) or a removable eMMC slot. :innocent:


Thanks for the boost, man.

I did 100% of the imaging work for this with my VIM3 TwisterOS installation, and included tools. xz isn’t the fastest, and you can kill it by piling on threads!

It’s great though, for dropping into a simple loop device for quick file changes, or a fully operating chroot to manage packages. Scrubbing histories, logs with identifying information and authentication artifacts is easier this way too - without trips back and forth between the board and an Intel workstation.


Fast lightning booting from USB3, even with a cheap Sandisk Ultra 32Gb USB stick. Much better performance than any other OS I’ve tried on Vim3 Pro so far and I’ve tried them all. I also tested it with a Sandisk Extreme Pro USB 3.2 and general performance speed and responsiveness level was unbelievable.
To boot from USB3, make sure to have latest mainline u-boot and “set port mode to USB” under Krescue "KBI configuration".
I tested it with TwisterOS Armbian installed on eMMC and Ubuntu Focal 5.12 Panfrost installed on eMMC as well.
It’s running fully overclocked by default, same as TwisterOS Armbian. Will run some stress tests to make sure it’s fully stable at high clock speeds.
Fan Script is working great out-of-the-box.
Enjoy it gentleman. Looking good, working awesome so far.

  • Despite the fact custom armbian build is using llvmpipe and 3.1 Mesa 20.2.6 but no Panfrost, youtube video reproduction was decent and graphics performance on desktop was pretty snappy.
  • HDMI audio works out-of-the-box

This is a great report, man. You’re my first independent validation. Really, I’m glad you got a clean firstrun experience, out-of-the-box.
This is the same kernel in the TwisterOS image, when you update from repo. Everything else of consideration is the Armbian build for Odroid N2+, with my finessing configurations for fan and audio.

WAIT! You got HDMI audio, on the full 64-bit? Or with armhf version of the image?
I can’t make HDMI audio work on arm64 mainstream Fenix - Ubuntu Focal or Debian Buster. I’m not alone!

I downloaded:
Then, it’s arm64 version.
HDMI audio worked every time booting from USB3 on Vim3 Pro with Sandisk Ultra 32Gb and Sandisk Extreme Pro USB 3.2 128Gb. Tested it with a Samsung 75inch QLED 4K TV and Samsung LED 58" 4K TV, both running at 1080p.

  • It does require manual resize partition on first boot.
  • CPU temps fully overclocked were running at moderate/full loads were 43~47 degrees.


  • USB3 boot works as long as a low power USB flash drive(thumb drive preferably) is used:
    Sandisk Ultra 32Gb and 64Gb worked without any issues and boot really fast (4~5seconds)
  • Sandisk Extreme Pro USB 3.2 worked great but takes longer to boot, much longer(10~12 seconds).
  • Samsung T5 External SSD Drive didn’t work for USB3 booting due to power requirements on Vim3 Pro USB3 port which Output Current is limited to 900mA=Output Voltage of 6-10V. Tested it with official 24W PSU (12V/2A) and w/ a 36W PD USB-C PSU(12V/3A)
  • Samsung Evo 970 plus with NVMe enclosures with JMS582 and RTL9210 chipsets didn’t work either, I suspect high power requirements from Samsung drive.

I even tried plugging a powered USB3 hub on Vim3 Pro USB3 port without success.


Interesting. I need to check my Alsa mixer settings. If audio works, it’d be a first!
On SD media, the Armbian resize service works on firstboot. I wonder if this is behaving differently for /dev/sdX than /dev/mmcblkX?

@jtremblant I’ve verified HDMI audio output with a fresh regeneration from the image.xz, on my end. I updated the info for this Khadas forum entry, on the page, and on the announcement in the Armbian forums.


Great works! I have a question: could I install Armbian on PCIE m.2 SSD?
What instructions should be followed for this?
Supported if MIPI-DSI output and Touch input?
Thank you!

1 Like

Thanks for the feedback and update about this running on your VIM3. These responses are my visibility into level of interest, for continuing work on this!

I have to say that you are asking about a scenario that I haven’t tested. In principle, the Armbian nand_sata_install tool should satisfy your SSD case, just as it is supposed to for NVMe storage. @jtremblant is my storage maven, who’s tested so much of this, and might confirm.

Here’s an Armbian thread that supports this proposal:

Also, a nice commercial guide to nand_sata_install from Kobol for their Helios64 NAS, powered by Armbian:

I hope this helps. I look forward to hearing your experience.


Amazing ~~~ Could you please tell me how to build this Armbian-style OS ? I would like to try my X96 Max Plus stb ( s905x3 ) but its uboot is too old to recognize the ext4 boot partition . Is it possible to make the partition as fat ? Regards !

After update the u-boot , I still have no luck to run the image . The updated u-boot , which supports ext4 partition , found s905_autoscript and automatically run it . Is that the expected entrance to the img. ? But the result is not expected :

Starting S905 autoscript…
Unknown command ‘kbi’ - try ‘help’
Unknown command ‘kbi’ - try ‘help’
uboot type: vendor
Scanning mmc 0:1…
Card did not respond to voltage select!
Scanning mmc 0:5…
Card did not respond to voltage select!
Scanning mmc 1:1…
Card did not respond to voltage select!
Scanning mmc 1:5…
Card did not respond to voltage select!
Scanning mmc 2:1…
** No partition table - mmc 2 **
Scanning mmc 2:5…
** No partition table - mmc 2 **
Scanning usb 0:1…
** Unrecognized filesystem type **
Scanning usb 1:1…
Scanning usb 2:1…
Scanning usb 3:1…

Why “** Unrecognized filesystem type **” ? The u-boot can read ext4 format at the usb thumb disc. , what does the error mean on earth ? Regards !

This image is specifically for Vim3 w/ amlogic S922X-B/A311D CPU only. Amlogic S905X3 is currently not supported.

1 Like

Great work man!

Is armbian capable to be used as server, so without X. I only need stable server with docker capabilities.
For the moment Ubuntu server on vim3 pro is quite unstable.

Best regards,