About the DSI panel init issue: sometimes the display will stay black after booting, which is probably caused by flawed DSI driver/hardware. The display will likely to return normal after a manual reset(blank/unblank, or sleep/wake). This can be automated with more scripts. More details in source code repo.
CM4S is a CM4 variant with CM3 form factor. It’s fully compatible with CM3 from a hardware perspective.
It’s pretty much the same code for CM4S and CM3. EVEYTHING working on a CM3 will also work on a CM4S(including on-board WiFi). The linux package for ArchLinux is updated to 6.6.y(current is 6.6.51). For CM4, the device tree is a bit different. I’ve utilized dtoverlay selection implemented by RPi’s bootloader, so this image is suitable for all known working RPi platforms.
The packaging details changed once, to match the Arch’s(x86_64) style. The config.txt needs some changes(to kernel and initramfs) when migrating to the new kernel package.
No schematics available so I assume the CM4 and CM4S are the same, except the form factor and peripherals(wireless module and GPIOs exposed, to be specific). After all, a SoC is a very compact chip which packs every significant part together.
The source code repo is for people who want to build/update their own kernel, or audit the code.
The scripts and prebuilt packages are made for user convenience and don’t need manually apply the patches.
Your options:
build the kernel using code from source code repo, then
either build the os image/install arch manually or utilizing the scripts
use existing prebuilts and scripts to build the whole os image
The compressed os image is about 800MB(4GB uncompressed). Directly distribute the image involves more security issues(reused keys etc.) so I’m kind of reluctant to do that, though it has no affect on me.
I tried to build it yesterday (learning, first time). It crashed a couple of times and gave up. Monday I’ll give it another go, this just takes foreeveeeeeeeeeer and you know nothing of progress, quite frustrating haha
oooooookay I give up. Here’s a minimal os image for everyone to test. I’D SUGGEST TO BUILD YOUR OWN!
This is a direct link! (or should I add an AD link ) The link is available until I delete the file on the server.
# This one is built in a VM,
# use dd to write it directly to your SD card or mass storage.
https://filehosting.faint.day/uconsole-archlinux-test-20240503.img.zst
I’ll provide NO assistance if the image above is used, unless a supported hardware feature is missing. I’m happy to hear if it’s working on your uConsole though.
Thanks, I will try that. I was looking for that answer before and couldn’t find it. I was fighting with xrandr tho for some reason…
Thanks for the sway tip also, I actually wanted to try it at some point.
I’m really new to “linux” myself (some months now, not sure if even half a year), and having transitioned from Windows from one day to another completely, still I find myself mostly all the time on terminal, so I wanted to make it purely “tty” which is what I basically tried so far. Don’t take my “everything works” as totally accurate (I saw you have some CM check list on GitHub. Mentioning this just in case), as you can see I ran it without environment and with my totally lack of linux knowledge haha
I still want to compile the kernel with patches, as you provided everything to do it, but it’s getting quite difficulty to learn how to do it, as normally every bit of info you find is mostly a “copy paste tutorial” instead of explaining actually what are you doing so far, so I can’t understand a thing I’m doing. I get some errors at the end which just cancels everything out, and I don’t even know how to debug it, so a lot to learn.
I have 5 microSD’s so I’ll just keep one with this img, but still try to compile it myself on another one.
Again, thanks for everything!
EDIT: SO!! I was doing it inside the chrooted system inside the SD reading it from an external USB2 card reader, and yes I just realize now how stupid that was. Trying it now again
You are right. But the only thing concerns me is the wireless connectivity. There’s no other major difference between models(cm4 and cm4s, specifically). If you have successfully setup the WiFi and bluetooth, then everything should work.
I still want to compile the kernel with patches, as you provided everything to do it, but it’s getting quite difficulty to learn how to do it
I have to admit that what I’ve provided may be not suitable for getting started. That’s just a compact(?) solution for Arch users, and I won’t bother to make it generic.
as normally every bit of info you find is mostly a “copy paste tutorial” instead of explaining actually what are you doing so far, so I can’t understand a thing I’m doing.
Maybe you want to get yourself familiar with common linux commands, faster
BTW a few explainations for what I’ve done:
I need drivers that don’t exist in the newer linux/kernel, so I write code and then patches are created naturally.
I need a bootable image, so I need to follow how RPi and uConsole are designed. Thats how to arrange the partitions, modify the configs, etc…
I want a clean and upgradable OS image, so I’d better package everything properly so the package manager can handle everything with no hassel. That’s the same if you’re using Debian or most of other distros.
I want to have firefox’s hardware acceleration feature, so I want to try wayland and vulkan.
Then I am down to only a few choices.
I get some errors at the end which just cancels everything out, and I don’t even know how to debug it, so a lot to learn.
It looks like having a usable OS image is a positive feedback for your linux journey. Have fun then!
I just finished building my own arch following your steps and mixing some knowledge that I’ve got reading yatli’s github aswell. Gotta admit, some steps I was over-complicating myself for some reason, instead of just following what you wrote, but hey, what can I say, I grew loving this brain of mine, for some reason.
WiFi worked right away with your img. I have to try my build now tho. Bluetooth I wanted to try but got distracted with other things. I’ll report you back about it.
About the commands thing, you’re right, but it’s not the actual problem that I find. I mean, I want to know the reasoning etc of why to bind a chroot, or why and when to use this and that, not just remember that “that guide said this command after this one, I’ll always do it like this then”.
And yeah, absolutely! Anything that I can find helps me learn, and you provide a lot!
Oh I forgot. I found that I had to take out the --noconfirm when installing the resulting pkgbuild for the patches, as it defaults to N when uninstalling the “linux-aarch64” (as you mentioned it should). I made a fork of your git (oh God, I hope this is how it works and I didn’t bother anything), then made the changes on the readme, with the comment. Now, as I understand, I could pull a request to make that change to the original repo, in this case yours. This gets reviewed, bla bla… etc. Is this an approximate of how this works, or I just don’t even know where the bullets are coming from?
Sorry for the double post and being so annoying in general, but, I cannot make the bluetooth work for the love of someone. I ended up “learning” how to build it from scratch with your sources (lmao you did everything basically), but bluetooth, no way José. Any idea where could I look?
I’m trying to make a “musical workstation” (sequencers and midi stuff basically), to control other stuff. I was trying out I3 and love the way I can just have 4 or 5 programs running on different desktops and just moving from one to another. I do have Sway on the back of my head as you mentioned it the other day, but I’m not really a big fan of wayland, but I’ll give it a go at some point either way.
About your bluetooth problem: What have you tried to setup bluetooth? Have you ever installed bluez? or read about ArchWiki’s bluetooth page? I have no idea of your current situation. If you are sticking with Arch, then ArchWiki is almost always useful.
About sway or wayland: it’s just personal taste and you only need to choose whatever suits you best. Common DEs like GNOME and KDE supports wayland as well. I choose wayland just because I don’t want to mess with xserver, though it does introduce some problems to X11-only apps.
Yes I did install bluez and everything. I’m kind of “used” to fight against this, as I had similar problems on my actual desktop machine (both with Arch and Manjaro), but I ended up resolving them.
This time time it’s a different arch on a completely different system, and still too new to all this. To me it looks like it doesn’t load the right module / firmware / whatever, as I cannot see any device / breadcrumb anywhere, or even dmesg.
I did built both kernel and the ap patch (which I understand it’s this one I need to use with CM4), in my desktop directly, in qemu env, directly on he uConsole… WiFi always works right away, but BT, never to be seen anywhere.
I made the mistake of not trying it with the img you provided. I will try it later.
On the other side there’s the Debian version that Rex is making. That just works flawless (with some minor things), but ah, I just cannot stand Debian at all D:
As soon as I fix this BT issue, I will try Sway. You giving me the curiosity now!
EDIT: Now that I think of. Manjaro has some ARM builds, even for RPI and such. I tried them on the uConsole, you just need an HDMI cable out because no screen. If I install your kernel on it… should it work? My brain says yes, but I don’t know.