help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Guix on 32-bit x86 systems


From: Denis 'GNUtoo' Carikli
Subject: Re: Guix on 32-bit x86 systems
Date: Sun, 17 Apr 2022 03:14:40 +0200

On Tue, 5 Apr 2022 14:43:57 -0700
Andy Tai <atai@atai.org> wrote:

> Hi, I wonder do people recommend running Guix as the primary OS on
> 32-bit x86 systems?  I have some old 32-bit 80x86 (Pentium) PCs that
> were running Fedora and of course Fedora had dropped support for
> 32-bit x86 some time ago.
> 
> I am curious how would Guix work on such hardware.   These old PCs may
> have memory of 4 GB or less.  Would that be an issue for running Guix
> as Guix tries to build software from sources and the build  process
> may not be possible on systems without much RAM.    Thanks for info on
> this
I'm still (mostly) using Parabola i686 on my main computer.

From time to time I boot on Guix, do the updates and try to
configure more things and/or do tests and/or fix things.

When I boot on Guix, I've also a script to chroot in Parabola. So at
least I can still use software that is not packaged in Guix yet, but
I'd prefer having everything integrated like in my Parabola
installation.

And I share some configuration and the home between the two systems to
keep them in sync.

Here's the chroot script:
> #!/bin/sh
> # GPLv3+
> root="/path/to/parabola-i686/mount/directory"
> username=gnutoo
> 
> for d in dev dev/pts dev/shm etc/machine-id proc sys tmp/.X11-unix ;
> do
>     mount | grep " on ${root}/$d" > /dev/null || \
>     mount -o bind /$d ${root}/$d 
> done
> 
> if [ -f ${XAUTHORITY} ] ; then
>     mount | grep " on ${root}/${XAUTHORITY}" > /dev/null || \
>           mount -o bind ${XAUTHORITY} ${root}/${XAUTHORITY}
> fi
> 
> chroot "${root}" /bin/bash --login -c \
>       "sudo XAUTHORITY=${XAUTHORITY} DISPLAY=${DISPLAY} -i -u
> ${username};"

It enables to run graphical applications, and sound probably works too
but I can't use udisksctl in that chroot yet as it expects to talk to a
deamon that is only launched in Guix.

One of the issue I found with Guix on i686 that x86_64 doesn't have is
that the per process address space is limited to 3GiB on GNU/Linux with
an i686 kernel (even with pae and 8GiB of RAM). And it's limited to
4GiB with an x86_64 kenrel and a 32bit userspace.

The issue I had with that is that rust doesn't compile yet under 3GiB
of RAM (but I managed at some point to make it compile under 4GiB with
some help of the people working on mrustc) though. So it might be
possible (with some work) to fix that to get substitute as the
substitute servers have 64bit kenrels, but yet not being able to
compile them yourself on i686.

Though for now for some applications you can remove the depedency on
rust by using the older librsvg that isn't written in rust, however gdm
won't work without rust, so now I use sddm. And some software isn't
available (like iceweasel), so I use the Parabola chroot for that, but
I mainly use it to read the Guix manual offline, so at some point I
might find another browser that is fast enough to do text search in the
complete manual.

But at the end of the day it's more other limitations that are probably
also present in the x86_64 Guix that are preventing me from using Guix
as my main operating system. 

For instance right now I need to launch seatd manually in a screen
before being able to launch sway through sddm as seatd service support
has not been merged yet.

Once booted and logged and so on I can do almost everything I do in
Parabola (as I also have a Parabola chroot) but I often need extra
steps to do many of these things (like using the chroot, or doing the
network setup by hand, etc).

So my main usage of Guix is usually for other things like unit testing
/ integration testing of a library I work on, working arround software
not working or missing in Parabola i686, etc.

Denis.

Attachment: pgp3zFtDjYv2U.pgp
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]