Hello, fellow Guixers!
During the Guix Days, we had the opportunity to discover that many of us are running Guix on various types of hardware. So why not share some success (and failure) stories about using Guix as a distribution or package manager on different devices, such as aarch64 laptops and tablets, mobile phones, Steam Decks, and more? We can not only share stories but also code snippets, including OS or image specifications, to help others get started with Guix on their unique and (probably) weird devices. Happy hacking! ---- I want to start with my own experience. I have a marvelous MNT Pocket Reform with RK3588 [1]. It comes with Debian Linux pre-installed, but my long-term dream was to run the Guix system on it. After one of the Debian updates broke the GDM and rendered the device unusable for me, I decided it was time to take action. I began by attempting to package the bootloader, only to discover that it requires a proprietary blob for the RAM module initialization. While this is unfortunate, as long as we don’t plan to overwrite the stock U-Boot on eMMC, we should be fine. I did spend some time building U-Boot, but that's outside the scope of this note. It was a huge relief when I came across Wilko Meyer’s post on the matter [2]. In this post, Wilko outlines all the necessary steps to run the Guix distribution on the MNT Pocket Reform. From here, in example, I found out that upstream Guix already has the kernel variant for MNT Reform line of products (with all the necessary patches applied) [3]. Here is Wilko's follow-up post with the current state of RK3588 MNT Reform support (I just discovered it while writing this email) [4]. However, be aware of some issues: - 3D acceleration is non-functional on the libre kernel (non-free firmware is required). - The stock WiFi (or WiFi + Bluetooth, if you have the Intel AX210) also requires non-free firmware, so it is not functional. The latest RCORE carrier board for the MNT Pocket Reform has an M.2 E-Key slot, meaning the Intel AX210 could potentially be replaced with something more freedom-friendly. - Framebuffer currently rotated 90 degrees, as kernel option necessary to fix this is not enabled. - Because of previous issue, I recommend you using greetd with sway, they are automatically rotated right (: Here is my greetd configuration to run sway (also got it from Wilko): > (service greetd-service-type > (greetd-configuration > (greeter-supplementary-groups (list "video" "input" "seat")) > (terminals > (list > (greetd-terminal-configuration > (extra-shepherd-requirement '(seatd)) > (terminal-vt "1") > (terminal-switch #t) > (default-session-command > (greetd-gtkgreet-sway-session > (command > (greetd-user-session > (command (file-append dbus "/bin/dbus-run-session")) > (command-args (list (file-append sway "/bin/sway"))) > (xdg-session-type "wayland")))))) > (greetd-terminal-configuration (terminal-vt "2")) > (greetd-terminal-configuration (terminal-vt "3")) > (greetd-terminal-configuration (terminal-vt "4")) > (greetd-terminal-configuration (terminal-vt "5")) > (greetd-terminal-configuration (terminal-vt "6")) > (greetd-terminal-configuration (terminal-vt "7")))))) This configuration also requires adding dbus to system packages list. All in all, I am pretty happy with this setup and now working on packing FEX emulator [5] for the Guix to be able to run x86_64 binaries. 1 - https://shop.mntre.com/products/mnt-pocket-reform 2 - https://me.literatelisp.eu/installing-and-running-guix-system-on-rk3588-mnt-pocket-reform.html 3 - https://codeberg.org/guix/guix/src/commit/1d3d7912d5ee8198e4c7dba2d643aca67d34c854/gnu/packages/linux.scm#L1590 4 - https://me.literatelisp.eu/guix-on-mnt-pocket-reform-whats-still-missing.html 5 - https://github.com/FEX-Emu/FEX
