My experience with vim3l

I receive my vim3l so i create this topic to share my experience.

So first i have to ask this to you khadas : Are you taking your clients for turkey ?

Honestly… I don’t think you tried half the systems img files in your repo before release them. I understand they are auto generate by some tools, but you can at least try to boot them to see if they are not broken, it’s not like you have many hardware to try them and it’s 5 min per img…

Anyway, first i start krescue and try debian (both server and minimal) and ubuntu 20.4 img (server), with 5.9 kernel. These img are booting, but no keyboard (usb not working), no internet whatsoever from cable or wifi, and the image from hdmi is strange, instead of black it’s blue saturated, so text is nearly impossible to read. Hell !
There is a few ubuntu img with 5.5 kernel to find. Well… they just don’t boot. The only thing that boot is the ubuntu 18.04 img and the very first 20.04 img with 4.9 kernel. I install the last one, and then i tried to compile mpd, because i want a minimal server setup to run mpd, so i’d prefer to have the last mpd version. Impossible to compile mpd because ffmpeg libraries are broken somehow :

I tried again to find a working debian img, i don’t know maybe ffmpeg version in debian’s repo is not broken, but there is only this 5.9 version that doesn’t at all, i just try it…

The only other img i tried is volumio. It is working fine but i don’t want it.

I would prefer running arch or manjaro, but i couldn’t find any img with minimal / server option. Honestly you need to put more care in your systems, because it’s really boring to have such issues, there is not only corelec and kodi in life !


Hello! I would not lump everything together, you correctly noted that coreelec works well, but this is what the coreelec community is doing, including for vim boards.

I think there are enough people here who will be happy to help you solve your problems!

IIRC, the images on the Krescue should be a copy of the image made with the timestamp, 200530, and yes many users, Including myself have been facing issues, the simplest fix for it, it to update the image using the instructions given on the latest 200814…

khadas@Khadas:~$ sudo apt update
khadas@Khadas:~$ sudo apt full-upgrade
khadas@Khadas:~$ sudo do-fenix-full-upgrade
khadas@Khadas:~$ sync
khadas@Khadas:~$ sudo reboot

since the keyboard does not work you need to SSH into the device via a PC or phone, and execute the same…

If you have the legacy uboot installed in the system and you are running mainline kernel image, this is to be expected, you will be given options to change the uboot within Krescue, at that time select the appropriate uboot for the respective image…

for Mainline, use mainline uboot,
for Legacy, use Legacy uboot… etc.

I hope this helps solve your problem, if you have any other further queries please do not hesitate to ask, for every problem, there is a definite solution

Stay safe & Good day!

I don’t think its Khadas fault as I think most image are functional but it needs certain environment to make it work example you said all mainline images are not working thats right coz you much be trying to boot it over a BSP uboot on emmc.

Yes that’s one of the issues thats stopping me from working on Vim3L as the green screen issue is caused by the BsP uboot in emmc.

I’ve finally decided to get a Manjaro image with Mainline Uboot as I couldn’t find a way to get it to work over android bsp uboot.

I will prepare a working Mainline Manjaro image by this weekend and share it with you for testing if thats fine with you.

Mainline images will only boot after you erase the emmc of Bsp uboot.

Haha good point but currently these boards are aimed to be used as HTPC while we at Manjaro try to make it more of a Desktop experience.

Good detailed experience and Thanks for sharing it so we know that there are people who are interested in having pure stable linux use case for such boards.


Here is a patch to fix the green screen issue with android uboot to bootup mainline kernel.

If you use mainline uboot to bootup mainline kernel , you need pass osd12 to kernel.

If you use legacy kernel to bootup mainline kernel, you don’t need to pass to kernel .


Thanks Ill try to use this patch with bsp uboot while my plan to get mainline images for all the vims too.


Thank you for your support, i appreciate that you try to solve my problems.

Historically i never liked the sbc word, i always been a “pc users”, a linux one i must say, because all in this sbc world seems complicated to me. Everything is unstable, complicated, obscure. You try an img file that is suppose to be working and it doesn’t for a reason i don’t understand, etc… It reminds me the state of x86’s linux 15 years ago, making worse by the fact that unlike x86 it’s impossible to build a generic img for arm, you need a specific img for every system so it’s entirely up to the manufacturer to provide the img, and it’s usually a big mess.

So i stayed away from the sbc universe for years but kept an distant eye on it. I finally decide to give it a serious try and build a mpd server only because kde’s phonon and my hifi dac are somehow incompatible.

The point of my first post is that as user it’s just too damn complicated to have things to work. Sure there is solution but “you need to know” the tricks, when in fact you should run the img and it should work. Also as i said i blame khadas to push untested img to it’s repo… it’s not serious at all. Keep the unstable imb for testers or give serious instruction of how to make them work. I wasn’t aware at all of these history of u-boot and i read the beginner doc…
A readme.txt inside the repo that explain to update the u-boot before try to use the last img is not hard to do…

Also to answer Electr1, internet do not work so i couldn’t ssh either. In fact at boot the debian img tried to set the wifi and cable ethernet several times and return a [FAILED]. So i couldn’t ssh and couldn’t use my keyboard, so i couldn’t do anything.

If you can provide a minimal manjaro img without desktop environment, i would happily test it to build my mpd server :slight_smile:


So… i lost more time trying to make my board working as i want and my opinion of arm and sbc thing won’t change…

These thing are a well of time and interest.

So i burn krescue again to a sd card and tried to download uboot mainline as you said. For an unknown reason krescue do not want to connect to my cable ethernet network this time, when it did without problem the previous time i used it. I tried several time, reboot, burn it again and again, try to download it again, i changed my ethernet cable even if it was perfectly working the last time (who knows…). Then i tried to connect to the wifi, it had hard (very hard) time to discover my network and when it finally discover it had (very…) hard time to connect. Then i tried to download uboot and the few MB were SSSSLLLLOOOWWW as a nightmare to download. And in fact it stop download several times because the connection was probably lost, all that for a 4mb files, i am happy with my 1gb/s connection… Anyway, i tried to reboot several time and for an unknown reason the ethernet finally work after a hour trying and trying again. I flash uboot and then install debian 5.9rc2 minimal at normal speed. I still don’t understand but let’s continue…

I start it, this time my keyboard was recognize and no green screen. I try a sudo apt update and no update was available. Keyboard is in qwerty so tried a loadkeys fr, and it said it cannot find fr. So i start a ssh session from my computer, then i try a sudo apt search command. For an unknown reason this command that is very fast in ubuntu is now SSSLLLOOOOWWW as hell, sudo apt search mpd for exemple and you need at least 45 min (i think i wasn’t patient enough) to go between 50 and 100% at the “Full text search”… hell…

So i start to download the dependency to compile mpd. I mean what i ask is not the end of the work, to have the dependency to download mpd and mympd, and a version of ffmpeg and it’s dev lib that are not broken. But when i start to compile mpd it said my boost version “1.67” is known to be bugged and i need a newer version. Considering i need nearly one hour for a sudo apt search command you could understand that i am very happy now. I start the sudo apt search boost 40 min ago and here i am :slight_smile:

khadas@Khadas:~$ apt search boost
Sorting… Done
Full Text Search… 91%

I think this device will drive me to insanity.

Two others things…

First alsa seems to be broken in the debian repo. My usb dac is not recognize, i see it with lsusb but it’s not in aplay -l list. It seems the usb audio driver is not loaded, so i did :

khadas@Khadas:~$ sudo modprobe snd-usb-audio
modprobe: FATAL: Module snd-usb-audio not found in directory /lib/modules/5.9.0-rc2

khadas@Khadas:~$ sudo modinfo soundcore
modinfo: ERROR: Module soundcore not found.

So the usb driver is not loaded in the kernel and worse it’s not there. A sudo search alsa (i love this command now…) return that there is no alsa-lib, alsa-driver or alsa-firmware in the repo :

a2jmidid/stable 8~dfsg0-3 arm64
Daemon for exposing legacy ALSA MIDI in JACK MIDI systems

aconnectgui/stable 0.9.0rc2-1-10 arm64
graphical ALSA sequencer connection manager

alsa-firmware-loaders/stable 1.1.7-1 arm64
ALSA software loaders for specific hardware

alsa-oss/stable 1.1.8-1 arm64
ALSA wrapper for OSS applications

alsa-tools/stable 1.1.7-1 arm64
Console based ALSA utilities for specific hardware

alsa-tools-gui/stable 1.1.7-1 arm64
GUI based ALSA utilities for specific hardware

alsa-utils/stable,now 1.1.8-2 arm64 [installed]
Utilities for configuring and using ALSA

alsamixergui/stable 0.9.0rc2-1-10 arm64
graphical soundcard mixer for ALSA soundcard driver

alsaplayer-alsa/stable 0.99.81-2 arm64
alsaplayer output module for ALSA

alsaplayer-common/stable 0.99.81-2 arm64
audio player (common files)

alsaplayer-daemon/stable 0.99.81-2 arm64
alsaplayer daemon

alsaplayer-gtk/stable 0.99.81-2 arm64
alsaplayer gtk interface

alsaplayer-jack/stable 0.99.81-2 arm64
alsaplayer output module for JACK

alsaplayer-nas/stable 0.99.81-2 arm64
alsaplayer output module for NAS

alsaplayer-oss/stable 0.99.81-2 arm64
alsaplayer output module for OSS

alsaplayer-text/stable 0.99.81-2 arm64
alsaplayer text interface

alsaplayer-xosd/stable 0.99.81-2 arm64
alsaplayer XOSD display module

ams/stable 2.1.1-1.1+b1 arm64
Realtime modular synthesizer for ALSA

apulse/stable 0.1.12-2 arm64
PulseAudio emulation for ALSA

aseqjoy/stable 0.0.2-1 arm64
Joystick to ALSA MIDI Sequencer Converter

balsa/stable 2.5.6-2+deb10u1 arm64
e-mail client for GNOME

So it seems i cannot do anything else than compile alsa myself, i just won’t do it…

Another thing, for unknown reason the system try to download some files boot.scr.uimg or pxelinux.cfg/something
It take ages because the dowload time out, i cannot properly close my system and it’s often at boot.

So as debian is obviously unusable. I switch back to ubuntu and i must say i am not disappointed… As i am on the latest u-boot i tried the 5.9 rc2 ubuntu emmc that i flash with krescue.
This thing is a mess, maybe the same level as debian. I cannot find alsa package and my dac is not recognize, which is strange because i have no problem when i install the first 20.04 img with 4.9 kernel. I just don’t understand who made the packaging for this, because there is obviously huge problem with these two distro, or i guess i miss something again…

No more alsa firmware, lib and plugings, only outdated version of alsa utils and tools. I don’t understand… Also the cable ethernet fail at startup, i need to unplug and plug the cable again. Worse, this distro take AGES to boot, maybe 15 min…

Honestly when i purchase that board i was worried, all my experience with sbc ended like this…

Yes… one more thing, i also tried to activate the wake on lan yesterday. Of course it didn’t work, the doc say i must this command :
kbi trigger wol w 1

and this to check
kbi trigger wol w r

kbi just answer this :

kbi - Khadas Bootloader Instructions sub-system

kbi [function] [mode] [write|read]

kbi version - read version information
kbi usid - read usid information
kbi adc - read adc value
kbi powerstate - read power on state
kbi poweroff - power off device
kbi ethmac - read ethernet mac address

kbi led [systemoff|systemon] w <off|on|breathe|heartbeat> - set blue led mode
kbi led [systemoff|systemon] r - read blue led mode

kbi bootmode w <emmc|spi> - set bootmode to emmc or spi
kbi bootmode r - read current bootmode

kbi trigger [wol|rtc|ir|dcin|key|gpio] w <0|1> - disable/enable boot trigger
kbi trigger [wol|rtc|ir|dcin|key|gpio] r - read mode of a boot trigger

I tried other kbi command to be sure i didn’t do something wrong, but it worked.

if you need these modules you need to get Fenix, modify the kernel modules defconfigs and rebuild the image…,

Then you should be able to modprobe the required module successfully :slightly_smiling_face:

you mean i need to do all that to have a working alsa, with standard usb audio :face_with_symbols_over_mouth:

Honestly this is a joke, i really hate the sbc world.

1 Like

It seems the previous ubuntu img are built without stupidity, alsa seems to be integrated.

I start a 5.7-rc7 img and flash it to emmc, but as debian and ubuntu 5.9 img i cannot boot because i get this endlessly :

TFTP server; out address is
Filename ‘boot.scr.uimg’
Load address: 0x1000000(…)
Loading TTTTT (…)

Then it’s some pxelinux.cfg files…

This doesn’t make any sense to me, it seems related to u-boot. It seems it try to download these files but cannot so i wait endlessly. I try to flash uboot again from krescue but it doesn’t change the problem.

So, i install the 5.7 img and update it. When i reboot the system it is working a few times, then i am stuck on the “pxelinux” infinite loop thing. After some research pxelinux seems to be a way to boot from the network. I suppose my vim3l try to boot from pxelinux because the normal boot get corrupted somehow. Maybe it could be a problem with my emmc ?
Also where can i find a legacy u-boot, i don’t had this problem with ubuntu 4.9 you said i need a legacy uboot for this, but it’s not in dl.khadas anywhere.

if u can show boot log from UART its will be more usefull :wink:

I can show you some screenshot.

1 Like

looks like something wrong with eMMC

  1. try to start Krescue from sd and check you eMMC
  2. can try install same ubuntu via Krescue

if problem happens again - remove all usb devices - maybe try other power supply
check again - if it will be same - its eMMC problem

I already try to install both from krescue and sd, problem is the same. However i don’t think this is a emmc hardware problem, it happens with debian 5.9 and ubuntu 5.9 and 5.5. With ubuntu 4.9 the problem do not happens.

So i ask again, could you upload or give me a link to legacy uboot, i don’t find it anywhere and with “mainline uboot” i cannot connect a monitor with ubuntu 4.9 kernel, the monitor is working at boot but once the kernel is loading screen do not work.

Another problem… i activate wake on lan on krescue, but wake on lan do not work at all and i’d really like to have this function. My ifconfig give this :

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet netmask broadcast
inet6 fe80::bbc2:d549:1ad6:3585 prefixlen 64 scopeid 0x20
inet6 2a01:cb19:8075:de00:484a:4b64:f479:1143 prefixlen 64 scopeid 0x0
inet6 2a01:cb19:8075:de00:1daa:dfd6:c8df:3a71 prefixlen 64 scopeid 0x0
ether c8:63:14:70:cc:15 txqueuelen 1000 (Ethernet)
RX packets 468 bytes 363526 (363.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 248 bytes 48204 (48.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 13

So i try every possible command :
wakeonlan c8:63:14:70:cc:15
wakeonlan -i c8:63:14:70:cc:15
wakeonlan -i C8:63:14:70:CC:15

But nothing happens… This is strange because the port diode in my ethernet switch is still on when the vim is power off, so i suppose the ethernet adapter work and wait for wake on lan function. Also try with my android phone instead of my pc and it’s not working.

Edit : i made a few more digging. Wake on lan is enable in krescue / kbi but not in ubuntu, i follow this guide : :
sudo ethtool eth0 | egrep “^[[:blank:]]*Wake-on: (g|d)”
[sudo] password for khadas:
Wake-on: d

So i tried :
sudo ethtool -s eth0 wol g
Which indeed activate it. :
sudo ethtool eth0 | egrep “^[[:blank:]]*Wake-on: (g|d)”
Wake-on: g

So i shutdown and still no wake on lan. I power on and i check, wake on lan is on “d” state again. Ubuntu article give two solution for this, add /sbin/ethtool -s eth0 wol g to /etc/rc.local
Or add up ethtool -s eth0 wol g to /etc/network/interfaces

I tried the second option and it didn’t do anything, wake on lan is still “d” after restart. For the first solution i hesitate because there is this line in etc/rc.local :


[ -f /sys/class/wol/enable ] && chmod 0660 /sys/class/wol/enable

1 Like

If the whole purpose is to just run mpd, then why not run it under openwrt ( basement of krescue) instead of trying all sort of unstable combinations of uboot , kernel and linuxes?
And get ready to rebuild by hand anything that does not exist in repo or is too old to your taste :meat_on_bone:

u right last openwrt have very fresh mpd