Boot from nvme SSD on VIM3 Pro


I recently bought a VIM3 and I’ve been trying to boot from an NVME SSD and I haven’t had any luck. The SSD shows up in ubuntu and everything works okay there. I tried flashing an image to the SSD but nothing happened, then I upgraded u-boot to this one and tried the nvme command on the boot screen but no drive is detected there.

I haven’t been able to find any relevant documentation on this topic for the vim3, has anyone got this working?

Hello @hyphop

Any suggestions?


Well I kept trying for a while and kind of got it to work, basically what I did was to set a new env variable in u-boot to enable the NVME drive and change the bootcmd env variable to execute the script in that env variable.

For anyone interested in the future this is how I did it:

Restart the board and press the space key to stop the boot process then run the following command:

setenv enable_nvme "run boot_pci_enum; run nvme_init; nvme scan;"

then I changed the bootcmd env variable using:

setenv bootcmd "run enable_nvme; run distro_bootcmd;"

then save the environment by running:


power off the board (can also use the reset button):

kbi poweroff

And that’s all, after that it will boot from the nvme drive, you can write any sd image to the SSD and it will boot, in my case, I tested it with Manjaro and Ubuntu, and seems to work fine.


one and tried the nvme command on the boot screen but no drive is detected there.

may be your local copy is old ? need refresh / update it or …

no need to change uboot env its works without modification (tested on my side many times) - if u still miss it plz provide full uboot log and i can clarify your situation

we have 4 options: write mainline uboot to

    │ Krescue - advanced                      │
    │ ┌────↑(-)─────────────────────────────┐ │
    │ │   2  Mount. USB/SD dumps Storage    │ │
    │ │   3  Switch DISK / RAM Storage      │ │
    │ │   4  Umount USB/SD dumps Storage    │ │
    │ │   5  Format SD dumps Storage        │ │
    │ │   6  Format USB dumps Storage       │ │
    │ │   7  Erase SPI Flash                │ │
    │ │   8  eMMC storage                   │ │
    │ │   9  USB OTG Storage mode           │ │
    │ │   a  USB OTG Network mode           │ │
    │ │   b  USB OTG Storage + Net          │ │
    │ │   c  USB OTG Disable                │ │
    │ │   d  Reset device to default mode   │ │
    │ │   e  Stop Update service            │ │
    │ │   f  Experimental                   │ │
    │ └─────────────────────────────100%────┘ │

│ Krescue - experimental                                  │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 1   Back                                            │ │
│ │ 2   Show Krescue U-Boot meta info                   │ │
│ │ 3   Show SYS U-Boot meta info                       │ │
│ │ 4   Show EMMC U-Boot meta info                      │ │
│ │ 5   Show SPI U-Boot meta info                       │ │
│ │ 6   Show SD U-Boot meta info                        │ │
│ │ 7   Copy U-Boot from Krescue to EMMC                │ │
│ │ 8   Copy U-Boot from Krescue to EMMC and boot areas │ │
│ │ 9   Clean protected eMMC Boot Areas                 │ │
│ │ a   Chek online last U-Boot meta                    │ │
│ │ b   Update/Write U-Boot by online to SPI-Flash      │ │
│ │ c   Update/Write U-Boot by online to EMMC           │ │
│ └────↓(+)─────────────────────────────────────75%─────┘ │
│                                                         │
1 Like

Another easy way by Krescue online scripts

Hi @hyphop , thanks for your answer, I saw there is an update from just after I posted this lol, tried that one and it works, but a weird thing started to happen, whenever I boot from the nvme SSD I get a weird glitch when anything is being written to the drive. (This also happened with the old one).

This is a video of what is happening:

At first, I thought it was a hardware issue (emi or something like that), but then I tried booting from the emmc and writing something to the SSD and it didn’t happen.

As an example, Ubuntu always loads everything from the emmc, but the boot process can start from the nvme if it has the ubuntu image flashed into it (or if it has the right boot partition). If the boot process starts from the nvme then that weird glitch starts to happen, if it starts from the emmc it doesn’t.

This is booting from the emmc:

Regarding the U-boot logs, how can I get those? I’m very new to this :rofl:

Today’s nightly build
(at the bottom of this page)

include those fixes: