Manjaro ARM for the VIM3

As one of the Manjaro ARM devs, I want to let you guys know that we finally succeeded in getting Manjaro ARM running on the Vim 3.

The announcement is on the Manjaro forum.

The KDE and MATE images are only preview/test images, so some things might not work correctly yet. But it’s all mentioned in the release post.
Using the Khadas kernel source, the wifi seems very flaky, bluetooth does not work and we don’t have gpu acceleration.

Since Manjaro ARM is mainly a mainline distro, I want to ask if anyone has a time frame on mainlining Vim 3 support to mainline uboot and mainline linux kernel?

13 Likes

Once @narmstrong is back from vacation I will be asking him to critique the device-tree changes needed for S922X/A311D support in https://github.com/chewitt/linux/commits/narmstrong-5.2-dvfs-rebase-chewitt so that the dts file for VIM3 (and a couple of others) are upstream for 5.4.

WiFi is not supported in mainline, only the out-of-tree DHD driver. BT should work from 5.3 onwards as the device ID’s have been submitted. The vdec code and firmware are upstream for 5.3 as well (only HEVC firmware is missing… still needs work). 10-bit video and HDR etc. are also missing but will be WIP soon hopefully. Stereo audio should be working if you tweak alsa appropriately. See https://github.com/chewitt/LibreELEC.tv/commit/ff69373bdbb07909550127ca81a5b62a42fcdff5 and https://github.com/chewitt/LibreELEC.tv/commit/c902b213dcdc32247338e059c7ada3036bac74a3

I haven’t tried VIM3 on mainline u-boot yet but N2 works using https://github.com/chewitt/LibreELEC.tv/commit/de98d9d815eb43e51c28f0896c117f2e350af5a8 so it’s probably not too much effort. The N2 defconfig is pretty generic so probably works on VIM3 too.

^ all of the above is mostly dependent on Baylibre and LE so it would be great to have some more eyeballs contributing to the process. It would also be good to see Khadas participating in the test and upstreaming of support for their own products. Things happen quicker when manufacturers get involved. The FOSS community will do it for free if you wait long-enough, but we’re never as quick.

10 Likes

That’s awesome. Thanks.
If there’s a patch to add it to the upstream 5.2/5.3 kernel that would be sweet.

We even have issues with this driver. Pretty sure we have the correct firmware, but it has trouble connecting to any networks.

Awesome. 5.3-rc1 is just around the corner!

Would be awesome if that would work on the Vim3 too. :slight_smile:

commits are in https://github.com/chewitt/linux/commits/narmstrong-5.2-dvfs-rebase-chewitt but the list of dependencies is egregiously large at the moment … it will shrink with 5.3 and 5.4 :slight_smile:

Would it be possible to just snatch the commits with vim3 in them and make patches of those?

VIM3 commits in my branch depend on my changes to split device-trees into S922X/A311D, which depends on DVFS changes, which depend on various other bindings and GPIO changes, which depend upon … scroll backwards until you spot the 5.2.1 kernel bump commit, it’s a few pages.

Until much more code gets upstream in 5.3/5.4 you need to use a branch with lots of extra stuff, either one of mine or from @narmstrong https://github.com/superna9999/linux/branches/active … the trick is understanding what the focus of each topic branch is focussed on. If you track over time it becomes clearer. Feel free to ask Q’s in #linux-amlogic on freenode - there’s usually someone doing similar things who can help.

Hi. Are you using the USB3 port? Wifi doesn’t seem to work when the USB3 port is in use with a USB3 device. My experience is that it slows down a lot with a USB2 mouse wifi dongle in it.
The wifi connector is right next to the USB3 port. And USB3 interferences on the 2.4Ghz frequency.
It’s a problem with all SBC’s with USB3 and using wifi dongles + using a USB3 device.

Great news. I’ll try it out.

No. Built in wifi module.

Another question.
Would this branch work with the same uboot as the regular one?

Having built and booted your kernel, I find that uname -a still lists the version as 4.9.179, even though my package is from your 5.2.1 branch and the Version numbers in the Makefile is 5.2.1.

Any idea why that is?

This could be the boot. Ini pointing to the manjaro rootfs while using emmc bootfs.
Do you have Ubuntu with kernel 4.9.179 on emmc?

This person had the exact same issue.

And this explains the issue clearly.

No. My eMMC is empty. I dd’d it all with zero’s.

So I boot from SD card, with a kernel 5.2.1 built. It boots fine. But uname still says it’s kernel 4.9.179-1, even though I used a 5.2.1 source for it.
So I am just wondering. Is the kernel version hardcoded into Uboot or something?
The kernel source I built from is the one linked in this thread, which has:

VERSION = 5
PATCHLEVEL = 2
SUBLEVEL = 1
EXTRAVERSION =
NAME = Bobtail Squid

In the Makefile. Why is this not getting honored?
PS: I have no trouble building kernels for other devices with my PKGBUILD’s that uname picks up fine.

There must still be some uboot left on your emmc and I would even say also some kernel

Emmc is partionned, which partitions did you really blank ?

Get inspiration from this


And then be sure to point to the good dtb file…
Then put it as boot.ini in your boot partition on your SD card once you have flashed it with your own home built firmware (kernel and manjaro)

I might be misunderstanding me.
The system boots fine from SD card. It boots, it works etc.
The issue is that my kernel (built from kernel source 5.2 linked previously in this thread) shows as kernel 4.9.179 by uname, while should, according to the makefile, be version 5.2.1.

I blanked all the partitions/devices listed by lsblk. And if I have no SD card in the device, it does not boot at all. So I am pretty sure, it has nothing on the eMMC.

I fully understand you, I was in the same situation, I solved it since then, by putting a good boot.INI on the SD card, which tells the vim to load all the correct files, especially the kernel 5

But how can it load wrong files, when no such files exists?

Classic mistake. If nothing is started from eMMC, it does not mean that EMMC is empty. This only means that you do not have a working u-boot on the eMMC or there is no necessary data for the root system. There is only one option when there is nothing in the eMMC, run the command “dd if=/dev/zero of=/dev/mmcblkX bs=64Mb” (substitute the eMMC number instead of X, as it is defined in the system).

In principle, there can be no situation, if the MAKEFILE specified kernel 5, get 4.9. The system will simply not build such a kernel.

1 Like

Useful information. Kernel 5 does not see the partitions that are created for Android\Ubuntu (using the specific amlogic partition system) in eMMC (which contains the old kernel 4.9), so you will not see anything when using the standard Linux utilities.

@Strit
Get back to a well known situation: flash your whole emmc with some official (and preferably multiboot compatible) firmware , then the vim should be able to properly start your home built firmware as you expect, until then , good luck if you want to fix everything by yourself