Clarification on Debian/Armbian install?

I see that there are four different links for Armbian installers.

  1. This first one is not relevant because I want to install to EMMC:
    khadas docs - /vim3/BootFromExtMedia

  2. Here is another link which is not relevant because I want a server install:
    khadas forum - /debian-for-vim3/8098

  3. There are third party links to Armbian on this page:
    khadas docs - /firmware/Vim3Firmware
    Which links to here:
    It looks like the one I want is Armbian_20.02.0-rc1.037_Aml-s9xxx_buster_current_5.5.0-rc6_20200205.img.xz if I want a server install with a version of Debian I recognize.
    How is this to be installed? From Android? From USB Tool? From krescue? USB boot? Micro SD boot?

  4. This page has been aggressively mentioned as well:
    This page is confusing.
    Example1- /extlinux/extlinux.conf “is now used” but “u-boot.ext file is needed on amlogic”-a contradiction
    Example2- “Before launching on Amlogic, you must copy or rename one of the existing files “u-boot-*” to “u-boot.ext””. - Too confusing, I don’t understand. Where is the file?
    Example3 - “if universal multi-upload has not yet been activated on this device, you need to activate it once.” What is that? How do I know it is activated? After this procedure is Linux installed or do I have to do something else?
    Example4 - “My recommend that you perform a clean installation in eMMC. Be sure to make a full backup of eMMC before installing it in eMMC” - How do I do all this stuff? Is it necessary really?
    Example5 - “Download and write the desired version of the u-boot file to SD card. Configure the DTB and the launch string (APPEND) in (uEnv.txt) for the desired model\platform.” - This is getting seriously complicated here.

It looks like link 3 might be the simplest route but link 4 seems to be the most “official” way going forward.

One more question I have is “suspend” likely to work in Armbian? This is the key feature for me.

In the meantime I will continue trying to debloat the Ubuntu server I have installed on the device right now.

system suspend ?
why wouldn’t it not work ?

about Debian

just 3 simple steps


git clone
cd fenix


VENDOR=Amlogic \
CHIP=S912 \
LINUX=mainline \
UBOOT=mainline \
BUILD_TYPE=release \


u can chouse easiest way from next examples

  • just copy this image to krescue sd dump partition and write it after to emmc from krescue menu
  • direct ethernet write curl krescue.lan/shell/write | sh -s - build/images/VIM2_Debian-server-buster_Linux-5.9-rc2_arm64_SD-USB_V0.9.3-200907.xz
  • direct usb net write curl | sh -s - build/images/VIM2_Debian-server-buster_Linux-5.9-rc2_arm64_SD-USB_V0.9.3-200907.xz
  • i can continue if somebody need other ways … :wink:

more info :

1 Like

Thanks. I was hoping to avoid doing the fenix thing. That is guaranteed to fail somewhere. The build computer has to be setup correctly for compiling, it has to be updated, it has to be modern enough to not take several days, it will need lots of RAM etc. It seems like a questionable option really but I will certainly try it anyway and let you know how it goes.

As for suspend, I have never had it work on any laptop, desktop, tablet, or sbc running linux before at any time. So having suspend working within the ubuntu server was like a miracle to me. I did have to disable the power-off on power button press or otherwise the system would shutdown when pressing the power button thereby conflicting with the suspend functionality.

Does anyone know how the files in link 3 are supposed to be used?

@Jason_25 you don’t need a linux computer to compile Fenix Debian builds…

I am sure suspend works, I have used it in Debian, but it is in software, the powerbutton is not linked to it…

we can compile it for u :wink:

Github Fenix building ? :smile:

I gave fenix a try on a Debian laptop. It said the build environment was unsupported and to use Ubuntu. I see there is something about Docker on the documentation page for fenix. I have not used that. Don’t know if it is best to try to use that or install an Ubuntu virtual machine or something.

As for suspend, for me, as listed in the Vim3 beginner’s guide, quick pressing the power button wakes the device up or powers the device up. But it also shuts the device down in Linux by default like quick pressing the power button on a desktop computer. If you disable this shutdown with button functionality, the suspend functionality works as intended: when you write mem to /sys/power/state the device will suspend, when you quick press power the device will awaken.

wait one day i will build all debian images and upload to

@hyphop I think @numbqq did a build for debian just 4 days ago…

I was suprisingly able to build a debian image with docker and fenix last night.

I found out a few things about Docker. You need docker-ce 17.09 or earlier if you are building without systemd on at least on a Devuan 1.0 system. You also need a kernel newer than 4.8 to use the binfmt_misc kernel module successfully on the host system to compile. So the old SBC development laptop did not work.

I then tried on a newer laptop that was better for compiling anyway running a much newer kernel. It did go through with no errors what so ever.

Now I am just faced with writing the image. I looked at the readme on github and am still trying to figure it out. With my device the ethernet port is sort of blocked. Can you use USB ethernet? How does the “USB net” firmware upload option work?

After looking at this some more I have further questions.

This fenix image can only be written by krescue?
krescue can only be booted from micro sd?

My micro sd slot is sort of blocked also.

Another question: can you just write this image with the usb tool? I am familiar with that. I feel I am so close but so far.

I am currently attempting to burn the image with USB burning tool since I do not know any better. But before I do hdmi resolution needs to be manually set. I have been unable to mount the img in order to edit files. kpartx is showing one partition only all attempts to mount it have failed. Because I am unable to set HDMI resolution I am unable to continue on this mission which may or may not work with the USB tool and may or may not work with the image I have built.

I have started a new thread and will come back to this one when I have a solution for editing the image files.

its simple raw compressed image can be writed to any destination by any software

another variant just write debian image to sd and after start from sd - do next command

$ sudo emmc-install 


My micro sd slot is sort of blocked also.

what problem - just unblock your sd slot ))))) (i think its was block by HDMI connector its solved easy just cut your connector if it super huge


PS: we still have another variants if we dont wont to use SD card its mega-script
which can help direct write krescue system to your emmc under any system

curl | sh -s - 

Debian images

1 Like

Thanks for posting those images first of all. I will try those if I fail with the one I built.

Nice trimming job on that connector. I have to do stuff like that a lot to slim homemade devices down.

My slot is blocked by lots of wires because I built a mobile device with the VIM3.

I am still debating whether I should try flashing on this VIM3 or use the next one I have being shipped to me. I suppose I will try the usb tool to flash first since I am more familiar with that.

amlogic usb burn software - not usefully for this images ;)!

Hello, maybe you could use one of these to get access to the slot again.

The delay in this forum software is unbelievable sometimes.

Anyway the usb tool seemed to work, but I did not enter the correct uuid in env.txt.

How did you handle that in the official ubuntu image? I did not have to edit uuids with that.

After building a new image with an edited UUID it boots up!

The USB tool appears to have written the image fine. I used the USB tool to flash Ubuntu and to flash the bootloader after accidentally flashing the VIM3L image back when I first got the VIM. I am using the Windows version of the tool and it works great by the way. I used default settings. The only time I had problems with it was when I had errors pertaining to flashing the wrong image.

I was able to find the UUID of my EMMC from the rescue prompt with blkid. I manually transfered this to the build laptop where I edited the UUID of env.txt in the rootfs image and then rebuilt the main image. I still do not understand why I am having to edit the UUID though.

Currently I am having to reflash.

Why in the world does the board support package software have a dependency on systemd? I noticed that was going to be removed along with systemd and once I rebooted I had a soft brick.

I rebuilt the board support package without the dependency on systemd or network-manager but the board still does not reboot after the board support package is removed along with systemd and I then install my modified board support package. The next step would be to try to modify the board support package before the image is built.

I now know why the board support package requires systemd. This is because there are a bunch of systemd scripts that setup things like the HDMI resolution at a low level. It is troubling that many features of the board appear to require systemd. It makes me wonder how other SBCs I have tried have been able to avoid that. I thought I had Debian with systemd removed on my Odroid C0 boards but maybe not. One way would obviously be to use a distribution that does not use systemd. I don’t like the use of systemd here but I am not in a position to do anything about it currently.

I am interested in using debian10 server on my VIM1 and my two VIM3L,
I will report my result here soon… :upside_down_face: