Is is possible to run vim3 off of an external ssd drive? (u-boot mainline is not working)

Hi All,

Stuck with an issue I was running vim3 off of image: VIM3_Ubuntu-server-bionic_Linux-5.5-rc2_arm64_SD-USB_V0.8.2-20200103.img on a sd card.

Was running it for a few weeks and had it set up and running exactly as I had wanted it. But then realized I needed to migrate that running SD image to a bigger storage system. I so cloned/burned the bootable SD-USB sd card image to a new .img snapshot and then burned the new image to a 250 gb 970 ev0 Plus nvme m.2. usb drive.

When I tried to boot vim3 off of the backup .img on a nvme m.2 usb drive, I got a slew of errors when I did the power/reset key combination for update (Keys mode (Side-Buttons)) and rebooted.

In short is what I’m trying to do burning a SD-USB image to a usb ssd drive (nvme m.2) possible or just a waste of time?

u can write this image to EMMC plz read next link how-to

Fenix, docker build, debian buster, krescue

after system start from EMMC

if u still need more space u can use any external storages and mount it to /home or other places

Hi hyphop,

Just to be clear, I want to boot entirely off of the usb ssd drive (nvme m.2) entirely instead of the previous bootable SD-USB burn image. Is that possible?

I followed the instructions on the link you posted:

sudo dd bs=1M of=/dev/sdb if=kh-node3-03-26-2020.img status=progress, unfortunately the emmc ran out of space.

The only image . . . the only image which I’ve been able to boot successfully from a usb ssd drive is AltLinux with the current official documentation and instructions given. I’d stick with it but unfortunately it is labeled as unstable but (ironically) it appears to be more stable, more thoroughly tested than 95% of the other images recommended in the Khadas vim3 docs:

Just extremely frustrating that the quality of the other images seem to be in a alpha stage or build.

Hello @biohumans

Can you please advice how did you try the manjaro img?

As I am maintaining the Official Manjaro img, I would like to know why did it fail to boot.

Your details feedback would be appreciated.

Maybe you tried a very old img or didn’t flash it correctly.
Here is the latest released image link.
Official Manjaro
Only Kde and Xfceis maintained. Flash this img file to sd card or usb drive using etcher.
Insert it in the vim3 activate multiboot.
It will load into OEM installer and ask for login details.

Ssd will have to be formatted according to the img other wise it will never work.

Hope this will help.

1 Like

input image must be less than destination storage !!!

  1. u can write this image to emmc
    i hope 32G - 64G its enough for any base system
  2. if u need more space
    just mount extrenal storages to /home or other dirs , edit fstab as needed

i think internal emmc is best choice for system base

BUT if u still need store whole system on external storage

just write UBOOT to emmc only which can boot your system from SD / USB / …


Thanks for your reply, I took a break for a bit went outside to be more clear headed and repeated the steps from the docs. I was able to get Manjaro to boot and install (update key combo). But now it’s just the system restarts which are proving very unpredictable to me. I’ll see if I can find a screenshot of a boot log for your analysis


I’ tried to mount / to the usb drive in fstab but it’s being ignored.

the partition I’m trying to load is /dev/sda2 a mirror copy / partition of what is on the sd card used to boot the system.

I’m afraid that has proven not to be true in my case. SD yes, USB external devices no.

because it totally wrong ! system can mount / rootfs only on kernel boot stage or initramfs

its very easy to fix ! plz wait i will try solve it

Hi @biohumans,
If you installed Manjaro using krescue image then updating the system breaks it due to wrong package of boot.
Easy fix right now is to access the boot partition and edit uEnv and enter vim3 dtb instead of vim1 dtb which was replace as vim1 boot package was used in that image.

Once you have the system running.
Just uninstall the vim1 boot package and install vim3 package using the following commands.

sudo pacman -R boot-vim1
sudo pacman -S boot-vim3

Also we changed our repository mirrors. As we have many mirrors now due to the merger of Arm aarch64 repo with x86_64.

Please follow this thread.




Hi, just following up, is there a fix for /VIM3_Ubuntu-server-bionic_Linux-5.5-rc2_arm64_SD-USB_V0.8.2-20200103.7z to boot off usb devices?

mainline uboot cant bootup from usb for VIM3 VIM3L
we try make a patch for uboot

PS: legacy uboot still can boot system from USB


Do you have a link to the legacy uboot I can download? the downloads link for vim3 uboot is completely empty .

U can try write any system to emmc with legacy uboot and use it for next bootup from USB its more easy
For example write coreelec krescue image to emmc this one can boot your system from usb

But u can get green screen for mainline kernel if kernel without patch


How can I burn the VIM3.COREELEC.9.2.1.emmc.kresq** directly to emmc partition? I don’t want to have to go through the krescure wizard. I downloaded a copy of VIM3.COREELEC.9.2.1.emmc.kresq file and I just want to be able to burn the VIM3.COREELEC.9.2.1.emmc.kresq file to emmc directly like a regular *.img file or .bin. Can I convert it to *.img or *.bin?

I don’t want to have to go through the krescure wizard

whats wrong?

  1. not possible
  2. another questions how can u write image to emmc ? which software prefer?


Followed your original suggestion and booted off sd card with fstab setting mount points (home,bin etc.) to the external USB ssd nvme.v2 drive. With the fstab settings below, it boots up just fine for the most part, except my resolvconf appears to be broken (can’t access internet, even though I have a valid ip).

I’m also getting a peculiar error during boot:

Current fstab settings I’m using on my sd card using VIM3_Ubuntu-server-bionic_Linux-5.5-rc2_arm64_SD-USB_V0.8.2-20200103:

fstab at for better readability.

UUID=4b6a2d32-cd63-491b-92a8-b48c721fc07b is sd card rootfs
UUID=E036-D8F5 is sd card boot partition

/dev/sda2 /rootfs ext4 defaults,auto,rw,nofail,x-gvfs-show 0 0
#tmpfs /tmp tmpfs defaults,nosuid 0 1
tmpfs /rootfs/tmp tmpfs defaults,nosuid 0 1
UUID=4b6a2d32-cd63-491b-92a8-b48c721fc07b / ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro,x-gvfs-show 0 2
UUID=E036-D8F5 /boot vfat defaults 0 3
/dev/sda2 /rootfs ext4 defaults,auto,rw,nofail,x-gvfs-show 0 4
/rootfs/home /home ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 5
/rootfs/bin /bin ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 6
/rootfs/cdrom /cdrom auto defaults,auto,bind,rw,nofail,x-gvfs-show 0 7
/rootfs/dev /dev ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 8
/rootfs/etc /etc ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 9
/rootfs/lib /lib ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 10
/rootfs/lib64 /lib64 ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 11
/rootfs/lost+found /lost+found ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 12
/rootfs/media /media auto defaults,auto,bind,rw,nofail,x-gvfs-show 0 13
#/rootfs/mnt /mnt ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 14
/rootfs/opt /opt ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 15
/rootfs/proc /proc auto defaults,auto,bind,rw,nofail,x-gvfs-show 0 16
/rootfs/root /root ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 17
/rootfs/run /run ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 18
/rootfs/sbin /sbin ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 19
/rootfs/snap /snap ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 20
/rootfs/srv /srv auto defaults,auto,bind,rw,nofail,x-gvfs-show 0 21
/rootfs/sys /sys auto defaults,auto,bind,rw,nofail,x-gvfs-show 0 22
/rootfs/usr /usr ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 23
/rootfs/var /var auto defaults,auto,bind,rw,nofail,x-gvfs-show 0 24

Using VIM3.COREELEC.9.2.1.emmc.kresq did not work.
U-boot mainline did not work.
U-boot legacy download is harder to find than big foot.

Found a workable solution.

For others out there struggling trying to find a workable solution and skip the frustration and time wasting:

For other users out there struggling to get an external usb ssd device to work with vim3.

Use your sd card as the bootloader but point your rootfs to your usb external device similar to below

  1. External usb device /dev/sda2 is mounted to /rootfs, you can mount all your external device mount points but for brevity just going up to /home.

/dev/sda2 /rootfs ext4 defaults,auto,rw,nofail,x-gvfs-show 0 0
/rootfs/tmpfs /tmp tmpfs defaults,bind,auto,rw,nosuid 0 1
#tmpfs /tmp tmpfs defaults,nosuid 0 0
UUID=4b6a2d32-cd63-491b-92a8-b48c721fc07b / ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro,x-gvfs-show 0 2
UUID=E036-D8F5 /boot vfat defaults 0 3
/rootfs/home /home ext4 defaults,auto,bind,rw,nofail,x-gvfs-show 0 4

  1. On your external device in /etc/fstab
    Comment out everything in the file.

  2. Reboot your vim3 with your usb external

    • Now your vim3 will reboot but it will be certainly slower than normal. Maybe 10+ minutes