Configuring Manjaro ARM for DevTerm CM4

Hey there,

I’m trying my hand at configuring a Manjaro image for my CM4-based DevTerm - I’m in a bit of a loss since there is complete support for A06 Manjaro but us RPi users have to do it from scratch :sweat_smile:

I’m encountering some problems in that regard:

  • Applying the screen modifications stated in Create DevTerm CM4 OS image from scratch · clockworkpi/DevTerm Wiki · GitHub doesn’t seem to make Manjaro use the DevTerm display, so I have to connect it to my TV. I’m very well aware about the differences between Debian and Arch systems but this should work the same way.
    -Manjaro boots and shows the initial configuration dialog on my secondary screen, but neither external keyboards nor mouses work. So I’m currently unable to do anything.

Why would that be, though? Are CPI board’s ports not supported out of the box? Which official packages or firmware would I need to compile and add to the Manjaro image to solve this?

Same thing with the DT keyboard - obviously it’s unusable since I haven’t installed the firmware. External keyboards should work though?

Any help would be thorougly appreciated. I feel like I’m beating around the bush.

Thank you

The internal and external keyboards not working sounds like a USB issue. I have been toying with the idea of using the boot partition and kernel from the official uConsole image to get Fedora running, but im 100% sure it will be a broken mess at first. Just waiting on my hardware so i can try it. You may be able to do something similar with Manjaro?

Hmm, maybe I should be able to compile the official DT kernel and replace it in the Manjaro image. Results may be veeery broken but it might work. I’ll try it out. Thanks

The USB thing is unique to Manjaro though - it works just fine on the official image.

The new main board in the uConsole isn’t the same as in the DevTerm. The power to the USB isn’t on until something turns it on. Without that power, you don’t have even the internal keyboard or trackball.

I wanted to use the CM3 on the uConsole and ran into that.

My understanding may be flawed, so take my incoherent rambling below with a grain of salt.

The config.txt from the boot partition explains to the PI how to start the extra devices on the system (kinda like BIOS on a regular PC) so the Kernel knows they exist and can enable/use them. This file is read by the GPU before the CPU or Linux are even initialized. If that file is missing or the device isnt defined the CM4 just goes through the standard boot process in the EEPROM firmware. So, if the image is missing the entry from config.txt or the kernel doesnt have a driver for the device you get no USB and no internal display.

My idea: Try adding these lines to /boot/config.txt in the Manjaro image when you try using the DevTerm kernel and see if anything works differently (taken from here: Compile Devterm CM4 kernel · clockworkpi/DevTerm Wiki · GitHub )




This is part of the reason that i mentioned just grabbing the entire boot partition and kernel from the official uConsole CM4 image and trying to Frankenstein Fedora into working on that device

Unlike the CM4, the CM3 doesnt have an EEPROM and uses bootcode.bin in the boot partition instead (not sure if this exists in the uConsole CM4 image but idk why they would remove it, please double check). I have a feeling that there are some changes in the DevTerm CM3 images’ config.txt that may remap some pins or something that might help get the CM3 working in the uConsole but i dont have the ability to check at this time. The uConsole CM4 image is just a modified official Raspbian image, so the kernel should already have the CM3 drivers baked in.

I really need to pull down a copy of the official images and look at this stuff more closely when i have a chance… i was waiting until i had mine before i started digging into this kind of stuff more deeply.

Here is some of the stuff i have been reading regarding the CM3/CM4 boot process that gave me these ideas:

1 Like

Thanks for your insights - I might try these out this afternoon. Right now however I’ve decided I have enough time to lose to recompile the Manjaro ARM kernel with the DevTerm patch and see if that works out - my reasoning is that It’s better to begin from a clean slate. I’ll post the results as soon as I have something to show, lol.

I just want to make it work so that I can post a tutorial here or even a compiled image, so that any other person who wants to install Manjaro ARM on their CM4 DevTerm won’t end up crazy like me :laughing:

1 Like

I finally had some time to do some more digging and a lot more reading to see whats going on… The screen, WiFi, and bluetooth Device Tree Overlays are largely the same between the CM3 DevTerm kernel patch (there is no CM4 DevTerm kernel patch I can find) and the CM4 uConsole kernel patch so those should work with your plan, but just about everything else is different. For example the devterm-misc overlay (includes PWM, I2C, UART and other ‘misc’ devices) is hugely different and devterm-pmu also has had some changes. Im not sure how many of these changes are core vs hardware revision related, so please make sure you update us with the results, your testing will help answer several questions!

I suppose i could take a look at one of the cores that is common between the two sets of hardware to see what all needs remapped? Ill try that later.
Edit: today i learned that the R01 and A06 dont boot anything like the RPIs do and this idea failed.

I have a DevTerm with a CM3 and a uConsole with a R-01 in them. My original thought was to plug the CM3 into the uConsole as the main boards are nearly identical. The first thing that I noticed is the USB power is not turned on with the uConsole. Without a module in the uConsole, there is no power to the USB system. In the DevTerm, there is. So the power system overlay is quite different. I also don’t have schematics for version 5 of the main board in the uConsole. Don’t think it has been released yet. The R-01 is really a work in progress and it needs quite a bit of work.