In this review of Khadas VIM1S SBC, we’ll install Ubuntu 22.04, and report our experience testing the performance such as memory speed and eMMC flash performance, and 3D graphics capabilities.
Installing Ubuntu 22.04 on Khadas VIM1S
Just like Khadas VIM4 and Edge2, the Khadas VIM1S SBC ships with the OOWOW firmware that allows easy installation of operating systems by downloading the images, and flashing them directly to the eMMC flash. You need just to connect a monitor and a USB keyboard and have an Internet connection through either LAN or Wi-Fi. Let’s start by installing Ubuntu 22.04 on Khadas VIM1S together.
If no OS is installed, OOWOW will boot automatically, but if there’s already another OS installed, you can press and hold the Function button, press the Reset button, and release the Function button. After a few seconds, the OOWOW Wizard as shown in the picture below should show up. If an Ethernet cable is not connected, we can select Network to configure Wi-Fi as the installation process requires downloading an image from Khadas servers.
After selecting Ubuntu 22.04 with GNOME, we can see the image file has a size of 781.1 MB, and we can select Download to proceed.
Once the download is complete, OOWOW will flash the image to the eMMC of the VIM1S SBC. We can then reboot the device and will be greeted with the Ubuntu login screen with the default username and password both being “khadas”.
System information
We can check the information of the system by installing and running the inxi program.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
khadas@Khadas:~$ inxi -Fc0 System: Host: Khadas Kernel: 5.4.180 aarch64 bits: 64 Console: pty pts/1 Distro: Ubuntu 22.04.1 LTS (Jammy Jellyfish) Machine: Type: ARM System: Khadas VIM1S serial: 01000027a0 CPU: Info: quad core model: N/A variant: cortex-a55 bits: 64 type: MCP Speed (MHz): avg: 2004 min/max: 100/2004 cores: 1: 2004 2: 2004 3: 2004 4: 2004 Graphics: Device-1: amhdmitx-sc2 driver: amhdmitx v: N/A Device-2: vpu-s4 driver: vpu v: N/A Display: server: X.org v: 1.21.1.3 with: Xwayland v: 22.1.1 driver: gpu: meson,meson-vpu note: X driver n/a tty: 120x30 resolution: 1920x1080 Message: GL data unavailable in console. Try -G --display Audio: Device-1: audio- driver: aml_audio_controller Device-2: snd-iomap driver: auge_snd_iomap Device-3: sc2-audio-clocks driver: audio_clocks Device-4: t5-audio-ddr-manager driver: audio_ddr_manager Device-5: sm1-snd-pdm driver: snd_pdm Device-6: audio-pinctrl driver: pinctrl_audio Device-7: tm2-revb-snd-spdif-a driver: snd_spdif Device-8: tm2-revb-snd-spdif-b driver: snd_spdif Device-9: t5-snd-tdma driver: snd_tdm Device-10: t5-snd-tdmb driver: snd_tdm Device-11: t5-snd-tdmc driver: snd_tdm Device-12: amhdmitx-sc2 driver: amhdmitx Device-13: audio_data driver: audio_data_debug Device-14: vdac-s4 driver: aml_vdac Sound Server-1: ALSA v: k5.4.180 running: yes Sound Server-2: PulseAudio v: 15.99.1 running: yes Sound Server-3: PipeWire v: 0.3.48 running: yes Network: Device-1: meson-axg-dwmac driver: meson8b_dwmac IF: eth0 state: down mac: c8:63:14:71:19:26 Device-2: aml-wifi driver: aml_wifi IF-ID-1: dummy0 state: down mac: 2a:c3:3b:d7:50:19 IF-ID-2: ip6_vti0 state: down mac: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 IF-ID-3: ip6tnl0 state: down mac: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 IF-ID-4: ip_vti0 state: down mac: 00:00:00:00 IF-ID-5: wlan0 state: up mac: 08:fb:ea:e0:57:e2 IF-ID-6: wlan1 state: dormant mac: 0a:fb:ea:e0:57:e2 Bluetooth: Device-1: meson-uart driver: meson_uart Report: hciconfig ID: hci0 state: up address: 08:FB:EA:E0:57:E3 bt-v: 3.0 Drives: Local Storage: total: 14.56 GiB used: 3.46 GiB (23.7%) ID-1: /dev/mmcblk0 model: AJTD4R size: 14.56 GiB Partition: ID-1: / size: 13.88 GiB used: 3.42 GiB (24.6%) fs: ext4 dev: /dev/mmcblk0p2 ID-2: /boot size: 216.5 MiB used: 40.6 MiB (18.8%) fs: ext4 dev: /dev/mmcblk0p1 Swap: ID-1: swap-1 type: zram size: 248.6 MiB used: 3.8 MiB (1.5%) dev: /dev/zram1 ID-2: swap-2 type: zram size: 248.6 MiB used: 3.7 MiB (1.5%) dev: /dev/zram2 ID-3: swap-3 type: zram size: 248.6 MiB used: 3.6 MiB (1.4%) dev: /dev/zram3 ID-4: swap-4 type: zram size: 248.6 MiB used: 3.6 MiB (1.4%) dev: /dev/zram4 Sensors: System Temperatures: cpu: 55.6 C mobo: N/A Fan Speeds (RPM): N/A Info: Processes: 221 Uptime: 14m Memory: 1.94 GiB used: 994.8 MiB (50.0%) Init: systemd runlevel: 5 Shell: Bash inxi: 3.3.13 |
The program says the Khadas VIM1S comes with a quad-core Cortex-A55 processor, but the Amlogic S905Y4 should be a quad-core Cortex-A35 CPU instead. The rest of the information looks correct with a 2.0 GHz CPU clock, 2GB RAM, 16GB eMMC storage, and information about Ethernet, Wi-Fi, and Bluetooth connectivity.
General user experience
We’ve tested Khadas VIM1S as a general personal computer doing tasks such as playing YouTube videos, editing documents in LibreOffice, and checking mail with the Thunderbird program. The platform can run a single program fine in most cases, but it is limited by its 2GB of RAM and if we open several programs, the performance degrades severely. But for instance, just watching YouTube videos in the web browser is fine and without lag.
Khadas VIM1S benchmarks
We benchmarked the Khadas VIM1S board with the sbc-bench script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
sbc-bench v0.9.9 Khadas VIM1S (Fri, 30 Dec 2022 03:05:56 +0000) Distributor ID: Ubuntu Description: Ubuntu 22.04.1 LTS Release: 22.04 Codename: jammy /usr/bin/gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0 Uptime: 03:05:57 up 22 min, 3 users, load average: 2.80, 2.48, 2.02, 55.3°C, 318492929 Linux 5.4.180 (Khadas) 12/30/22 _aarch64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 4.80 4.83 2.60 0.37 0.00 87.40 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd mmcblk0 25.01 840.31 535.15 0.00 1136030 723472 0 zram1 1.64 1.30 5.25 0.00 1752 7092 0 zram2 1.58 1.17 5.13 0.00 1584 6936 0 zram3 1.64 1.27 5.31 0.00 1720 7172 0 zram4 1.62 1.34 5.15 0.00 1808 6960 0 total used free shared buff/cache available Mem: 1.9Gi 900Mi 739Mi 39Mi 348Mi 1.0Gi Swap: 994Mi 26Mi 967Mi Filename Type Size Used Priority /dev/zram1 partition 254548 7012 5 /dev/zram2 partition 254548 6908 5 /dev/zram3 partition 254548 6744 5 /dev/zram4 partition 254548 6728 5 ########################################################################## standard memcpy : 1788.8 MB/s (3.0%) standard memset : 6641.3 MB/s (0.5%) ########################################################################## Executing benchmark twice on cluster 0 (Cortex-A35) OpenSSL 3.0.2, built on 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022) type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 104048.69k 276328.87k 467554.99k 570403.50k 609241.77k 610402.30k aes-128-cbc 103994.82k 276264.55k 467546.37k 570353.66k 609151.66k 612128.09k aes-192-cbc 99226.74k 250335.53k 401643.86k 476429.31k 503630.51k 505309.87k aes-192-cbc 99558.82k 250865.26k 401821.18k 476466.52k 503685.12k 505610.24k aes-256-cbc 96251.24k 232209.15k 356753.83k 414650.03k 435085.31k 436753.75k aes-256-cbc 95773.99k 231606.61k 356500.22k 414618.62k 435194.54k 436622.68k ########################################################################## Executing benchmark single-threaded on cpu0 (Cortex-A35) 7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,4 CPUs LE) LE CPU Freq: - 64000000 64000000 - - - - - - RAM size: 1988 MB, # CPU hardware threads: 4 RAM usage: 435 MB, # Benchmark threads: 1 Compressing | Decompressing Dict Speed Usage R/U Rating | Speed Usage R/U Rating KiB/s % MIPS MIPS | KiB/s % MIPS MIPS 22: 914 97 913 889 | 16596 98 1444 1417 23: 861 97 901 878 | 16284 98 1437 1410 24: 825 97 911 888 | 15965 98 1429 1402 25: 777 97 912 888 | 15563 98 1413 1385 ---------------------------------- | ------------------------------ Avr: 97 909 886 | 98 1431 1403 Tot: 98 1170 1145 ########################################################################## Executing benchmark 3 times multi-threaded on CPUs 0-3 7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,4 CPUs LE) LE CPU Freq: - - - - - - - - - RAM size: 1988 MB, # CPU hardware threads: 4 RAM usage: 882 MB, # Benchmark threads: 4 Compressing | Decompressing Dict Speed Usage R/U Rating | Speed Usage R/U Rating KiB/s % MIPS MIPS | KiB/s % MIPS MIPS 22: 2573 323 775 2503 | 57959 353 1402 4945 23: 2216 299 756 2259 | 62993 388 1404 5451 24: 2508 347 778 2697 | 61895 390 1395 5434 25: 2430 355 782 2775 | 60531 391 1378 5387 ---------------------------------- | ------------------------------ Avr: 331 773 2559 | 380 1395 5304 Tot: 356 1084 3931 7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,4 CPUs LE) LE CPU Freq: 64000000 - - - - - - - - RAM size: 1988 MB, # CPU hardware threads: 4 RAM usage: 882 MB, # Benchmark threads: 4 Compressing | Decompressing Dict Speed Usage R/U Rating | Speed Usage R/U Rating KiB/s % MIPS MIPS | KiB/s % MIPS MIPS 22: 2614 326 780 2543 | 64575 390 1411 5509 23: 2556 338 770 2605 | 62459 385 1404 5404 24: 2522 348 778 2713 | 61730 388 1395 5419 25: 2481 362 784 2834 | 59954 387 1379 5336 ---------------------------------- | ------------------------------ Avr: 344 778 2673 | 388 1397 5417 Tot: 366 1087 4045 7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,4 CPUs LE) LE CPU Freq: - - - - - - - - - RAM size: 1988 MB, # CPU hardware threads: 4 RAM usage: 882 MB, # Benchmark threads: 4 Compressing | Decompressing Dict Speed Usage R/U Rating | Speed Usage R/U Rating KiB/s % MIPS MIPS | KiB/s % MIPS MIPS 22: 2623 328 779 2553 | 63339 383 1411 5404 23: 2555 338 769 2604 | 63140 389 1404 5463 24: 2505 348 775 2694 | 61706 388 1395 5417 25: 2486 362 784 2838 | 60349 390 1379 5371 ---------------------------------- | ------------------------------ Avr: 344 777 2672 | 387 1397 5414 Tot: 366 1087 4043 Compression: 2559,2673,2672 Decompression: 5304,5417,5414 Total: 3931,4045,4043 ########################################################################## Testing maximum cpufreq again, still under full load. System health now: Time CPU load %cpu %sys %usr %nice %io %irq Temp 03:24:27: 2004MHz 6.04 98% 1% 95% 0% 0% 1% 64.0°C Checking cpufreq OPP (Cortex-A35): Cpufreq OPP: 2004 Measured: 1991 (1992.103/1991.863/1990.951) ########################################################################## Hardware sensors: soc_thermal-virtual-0 temp1: +58.8 C (crit = +105.0 C) ########################################################################## |
memcpy, memset, and 7-zip compression results are quite lower than the ones for Raspberry Pi 4 or ODROID-N2+ boards, but it should be expected for a Cortex-A35 system.
3D graphics acceleration
The glxinfo command reports llvmpipe device is used showing a lack of 3D graphics acceleration, and this is confirmed when running glmark2-es2 program.
Video decoding on Khadas VIM1S
We tried to play a 4K YouTube video in the Chromium browser. The playback was not interrupted, but the CPU usage is quite higher will all 4 cores busy during decoding, albeit not at 100%.
Support for AV1 codec in Amlogic S905Y4 may have helped.
eMMC performance test
We used iozone program to test the eMMC flash performance.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
Iozone: Performance Test of File I/O Version $Revision: 3.489 $ Compiled for 64 bit mode. Build: linux Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins Al Slater, Scott Rhine, Mike Wisner, Ken Goss Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR, Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner, Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone, Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root, Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer, Vangel Bojaxhi, Ben England, Vikentsi Lapa, Alexey Skidanov, Sudhir Kumar. Run began: Fri Dec 30 03:53:04 2022 Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 1024000 kB Record Size 4 kB Record Size 16 kB Record Size 512 kB Record Size 1024 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 1000M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 4 29080 37570 30200 30131 25586 21600 1024000 16 56105 51410 81985 82154 72750 40332 1024000 512 56264 51528 214313 214018 190245 40417 1024000 1024 56106 56363 214178 213688 193687 38012 1024000 16384 54221 51254 201717 201569 200527 52177 iozone test complete. |
The performance is pretty good with a sequential read speed of 201.717 MB/s and a sequential write speed of 54 MB/s.
Network Performance Test
Network performance was tested with Ookla using an access point from AIS. Wi-Fi is quite good, and Ethernet can perform at full capacity because the VIM1S board only comes with a 10/100M Ethernet port.
Wi-Fi
1 2 3 4 5 6 7 8 9 10 11 |
Speedtest by Ookla Server: AIS Fibre - Bangkok (id: 36978) ISP: AIS Fibre Idle Latency: 3.19 ms (jitter: 0.16ms, low: 3.10ms, high: 3.41ms) Download: 223.48 Mbps (data used: 114.5 MB) 267.44 ms (jitter: 73.21ms, low: 6.48ms, high: 857.56ms) Upload: 187.76 Mbps (data used: 190.5 MB) 26.11 ms (jitter: 9.12ms, low: 9.73ms, high: 70.84ms) Packet Loss: 0.0% Result URL: https://www.speedtest.net/result/c/a1d4c9ef-2bce-432e-ac29-997cbba1e4b8 |
Ethernet
1 2 3 4 5 6 7 8 9 10 11 |
Speedtest by Ookla Server: AIS - Bangkok (id: 42479) ISP: AIS Fibre Idle Latency: 2.15 ms (jitter: 0.16ms, low: 2.10ms, high: 2.46ms) Download: 94.63 Mbps (data used: 75.9 MB) 144.77 ms (jitter: 48.78ms, low: 4.89ms, high: 256.57ms) Upload: 94.58 Mbps (data used: 42.6 MB) 8.69 ms (jitter: 0.84ms, low: 6.94ms, high: 15.42ms) Packet Loss: 0.0% Result URL: https://www.speedtest.net/result/c/caf0b966-adc5-4837-b933-ae9723257090 |
Conclusion
Our experience running Ubuntu 20.04 on the Khadas VIM1S board was pretty good and the system is power efficient generating little heat. But considering the $64 price tag, the 2GB RAM is on the low side, and only having a Fast Ethernet is disappointing for a board launched in 2022. The OOWOW firmware is a positive point as it makes installing the OS really easy for newbies.
I would like to thank Khadas for sending us the VIM1S for review. The Khadas VIM1S can be purchased on the Khadas store for $64.90 with 2GB RAM and 16GB eMMC flash. We’ll continue our review with Android 11 soon.
CNXSoft: This review is a translation of the review in Thai first published on CNX Software Thailand by Arnon.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
I guess for any 3d capabilities one should try Armbian, not Ubuntu.
The Ubuntu image appears to be using Wayland. I’ve asked the reviewer to try glmark2-es-wayland. I’ll update the post if it works. Armbian is also Ubuntu, and the images provided by Khadas are usually good.
> The program says the Khadas VIM1S comes with a quad-core Cortex-A55 processor, but the Amlogic S905Y4 should be a quad-core Cortex-A35 CPU instead.
Maybe Amlogic didn’t remember what cores they were supposed to put in it, sometimes they already don’t remember what frequency they wrote in the datasheet 🙂
A simple “cat /proc/cpuinfo” will tell the truth, with the CPU part (d05 would indicate A55, d04 would indicate A35).
CoreELEC-VIM1S:~ # cat /proc/cpuinfo processor : 0 BogoMIPS : 48.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x1 CPU part : 0xd04 CPU revision : 0 processor : 1 BogoMIPS : 48.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x1 CPU part : 0xd04 CPU revision : 0 processor : 2 BogoMIPS : 48.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid CPU implementer : 0x41 CPU architecture: 8… Read more »
OK thanks so it’s clearly an A35, and the “inxi” program seems to fall back to A55 when it doesn’t know.
I checked the Spec. of S905Y4 and found that it’s ethernet controller only support 10/100M ethernet. What’s the reason of not using S905X4 instead?
Have you asked Khadas?
Just want to discuss from an objective point of view
CoreElec guys summarize the software support situation for SC2 (S905X4/S905C2) as ‘shit in a can’. Which pretty much explains why there doesn’t exist a single device with this SoC targeting Linux.
This was true 1 year back. But today CoreELEC supports S905X4.
Interesting. Which kernel version is CE using with SC2?
4.9.269 and 5.4.125 – if I’m not mistaken both are Android based kernels
Both are Android vendor kernels for sure 🙂
4.9 is now EOL and latest LTS version was 4.9.336 from few weeks ago. And 5.4.125 would probably indicate S905X4 being covered by same Amlogic SDK as S4 and T7.
EOL: at least video playback works perfectly 🙂
And yes: 5.4.125 is used for S4 (S905Y4, S905W2) and T7 (A311D2).
Most likely just the BOM cost hence the final price. Amlogic is one of the vendors who purposely cripple some of their low-end products to make sure the middle range continues to sell. There’s nothing wrong with that, most vendors do this. But if that CPU allows to reduce the board’s price by $5 maybe Khadas found that it was worth being used. I personally think they should stay with middle- and high-end products only, and leave the low-end ones to TV-box vendors on aliexpress, since they will require as much support effort (if not more) on their side, but… Read more »
> with much lower margins
I don’t think Khadas has a single product with low margins… and wrt efforts choosing the S905Y4 over S905X4 made kinda sense since S4 (S905Y4/S805X2/S905W2) shares BSP with T7 (A311D2) so Khadas basically deals with same software stack for VIM4 and VIM1S (both started at 5.4.125 and are now at 5.4.180 which of course is a joke due to a smelly BSP kernel forward ported since ages).
I’m just thinking that a diff between amlogic and rockchip kernels of the exact same version is probably larger than the whole kernel 🙂