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

Reply via email to