- Tutorial on how to setup a desktop environment on Arch Linux Arm, specifically for the Raspberry Pi 3*
- Any questions on the steps can be left on a comment, or checking the Arch Wiki
- Newer kernel versions are being tested, as well as Wayland instead of X
- If you have questions or errors, leave a comment! - moral-g
Cooler Master's Pi Case 40 is a relatively nice case for the Raspberry Pi 4. It would've been nicer if they hadn't made it impossible to use HATs by swapping the GPIO header rows & misleading backers, stating the pinout would be fixed during the campaign & changing their tune after funding closed, but it's pretty nice otherwise.
It has a built-in GPIO soft power button, for which they have a GUI tool available on GitHub that is pretty horrifically bloated. It lets you set actions to trigger from a few different press events, apply some pretty mediocre preconfigured overclocking profiles, and monitor frequency/temperature.
| /* | |
| * This document is provided to the public domain under the | |
| * terms of the Creative Commons CC0 public domain license | |
| */ | |
| How to boot Arch Linux ARM in QEMU (patched for M1) | |
| Prerequisites: | |
| QEMU - patched for M1 processors - patches: https://github.com/utmapp/qemu |
Most embedded devices use a read-only root filesystem. This can make them more resilient to unexpected shutdowns that could otherwise cause data corruption. Depending on your application, you might consider your Pi to be an embedded system. This can also help with some issues that can come from SD card unreliability.
Full instructions and explanations are obtained from this link but you can run these commands directly. I modified some of the instructions for personal convenience.
Login with default username and password: (ArchLinux Arm: alarm, alarm, Raspbian: pi, raspberry)
nano /etc/ssh/sshd_config
| /** | |
| * Convert a `Map` to a standard | |
| * JS object recursively. | |
| * | |
| * @param {Map} map to convert. | |
| * @returns {Object} converted object. | |
| */ | |
| function map_to_object(map) { | |
| const out = Object.create(null) | |
| map.forEach((value, key) => { |
| function logClass(target: any) { | |
| // save a reference to the original constructor | |
| var original = target; | |
| // a utility function to generate instances of a class | |
| function construct(constructor, args) { | |
| var c : any = function () { | |
| return constructor.apply(this, args); | |
| } |