Email or username:

Password:

Forgot your password?
Janneke

The 64bit Guix hurd64-qcow2 image boots in QEMU!

#GNU #Guix #Hurd

Screenshot of EXWM, black on white with two horizontally split windows.  The left window, called *shell*, shows:

10:08:35 janneke@dundal:~/src/guix/hurd64-team 
$ gl
c16e1926ed (HEAD -> hurd64-team) REMOVEME gnu: system: examples: bare-hurd.tmpl: Use noide.
b4ac049902 REMOVEME gnu: system: examples: bare-hurd.tmpl: Use console=com0.
4d2ce22f65 (hurd-team) gnu: mig: Update to v1.8+git20231217.
10:08:40 janneke@dundal:~/src/guix/hurd64-team 
$ ./pre-inst-env guix system image --image-type=hurd64-qcow2 gnu/system/examples/bare-hurd.tmpl
/gnu/store/...-disk-image
10:08:53 janneke@dundal:~/src/guix/hurd64-team 
$ ssh root@childhurd1


  This is the GNU Hurd.  Welcome.
root@guixygnu ~# uname -a
GNU guixygnu 0.9 GNU-Mach 1.8/Hurd-0.9 x86_64 GNU

the right window, called *geert*, shows:

09:57:57 janneke@dundal:~/var/geert 
$ guix shell qemu@7 -- qemu-system-x86_64 --machine q35 -m 4096 --enable-kvm --device rtl8139,netdev=net0 --netdev user,id=net0,hostfwd=tcp:0.0.0.0:11022-:2222 --snapshot --no-reboot --device virtio-serial-pci --nographic --serial mon:stdio --hda /gnu/store/...-disk-image

Welcome to GRUB!

4 multiboot modules
task loaded: pci-arbiter
task loaded: rumpdisk
task loaded: ext2fs
task loaded: exec
start pci-arbiter: pci rumpdisk
Starting /gnu/store/...-system/rc...
Welcome, this is GNU's early boot Guile.
Linking /hurd from /gnu/store/...-system/profile/hurd...
making '/gnu/store/...-system' the current system...
8 comments
Janneke

@bugaevc yeah! It took me quite a while to figure out a nice way to use gcc-14 for the Hurd while keeping the default (currently at gcc-11), avoiding a world rebuild (and probably worse, many subsequent package breakages that would need to be addressed).

It also took some time to figure out why my cross-built executables kept segfaulting, in the end just some tags were missing from upstream (and I hadn't carefully looked at which versions #debian was using).

Also, even the 20240825 debian image does not boot with qemu-8.2.2 (the default in Guix) for me.

Very thankful for all the kind help that I got, again!

@bugaevc yeah! It took me quite a while to figure out a nice way to use gcc-14 for the Hurd while keeping the default (currently at gcc-11), avoiding a world rebuild (and probably worse, many subsequent package breakages that would need to be addressed).

It also took some time to figure out why my cross-built executables kept segfaulting, in the end just some tags were missing from upstream (and I hadn't carefully looked at which versions #debian was using).

M. Grégoire

@janneke
Wonderful! What are you planning to do next, if I may ask?

@bugaevc

Janneke

@mpjgregoire @bugaevc Thanks!

Well, first the installer support for Hurd needs to be merged (<issues.guix.gnu.org/73927>), then this needs to be merged and then there's going to be a blog post.

The obvious next step is a 64bit childhurd service and setting up 64bit chidlhurds on the build farm.

Then, I'm hoping for the awesome Hurd hackers to produce a working rumpnet, and get Hurd to boot on something newer than the X60 (<todon.nl/@janneke/110451493405>).

M. Grégoire

@janneke
The blog post is very important: people underestimate the degree to which the Hurd works and is progressing. But you don't want anyone to get the idea it's ready to be the OS on their main computer either.

@bugaevc

Go Up