In short, I have installed Hurd

Posted by

Second article of my Hurd’s project, let’s see how to install GNU-Hurd on my laptop. I have installed GNU-Hurd many times but it’s the first time on real hardware.

Operating system’s choice

The choice for the GNU-Hurd distribution is very low, let’s see what we have.

  • Arch: inactive since June 2018
  • Debian: active
  • Nix: inactive since 2012
  • Guix: no ISO available, only qcow2 images

Let’s go with Debian, the best/only choice available. Debian 11, Bullseye has been released recently and a stable image for GNU-Hurd too. I will go with the DVD image, and run the install from a disk. I don’t think so it’s possible to install it from an USB key.


I put the DVD (RW) in the disk drive and boot from it. The Debian installer starts and I choose the Pseudo-graphical install. The choice of the location is similar to a Debian GNU/Linux install. I create an extra user to avoid using root when not required. For the partitions I will use 75GB for the system and 3GB for the swap, I wish it won’t be used.

The hard drive is slow, so the installation is taking a while. An error is displayed about the random number generator but the installation doesn’t stop.

To be sure of the packages, I don’t use a network mirror. I will need a graphical interface, so I select XFCE as desktop environment. At the end of the installation I remove the DVD and restart the laptop.

First boot

The laptop is starting and Grub appears on the screen and I start booting Debian GNU-Hurd. Some error are displayed but nothing critical. The graphical interface doesn’t appear, instead the command line is prompting me my login and my password.

Good thing, my network interface is working directly but my WiFi interface is not displayed.

$ inetutils-ifconfig 
/dev/eth0 (2):
  inet address
  mtu           1500
  link encap    Ethernet
  hardware addr XX:XX:XX:XX:XX:XX

lo (1):
  inet address
  flags         UP LOOPBACK RUNNING
  mtu           3924
  link encap    Local Loopback

To update the system I remove the disk from the sources.list file, add the sources recommended in one of my previous articles and run the update/upgrade commands. Since the system is based on Debian Unstable, it’s normal that there are a lot of packages who need to be updated.

apt update
apt upgrade

I restart the system and get the same result for the graphical interface. I try to run startx, but the following error appears.

/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server

This is a classic error with GNU-Hurd, but first I’m adding the following line to my .bashrc file to add the system tools to my PATH.

export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin

I set the permissions for Xorg to anybody.

dpkg-reconfigure xserver-xorg-legacy

I try to run startx again, the screen is becoming black and…. it works!

The graphical interface

Under my kid’s eyes, XFCE has showed its self on the screen. The resolution is correct, it’s looking great, except that there is no wallpaper or icons. I’m really surprised, on the top left corner I can modify the volume. If I wait a bit, the screen is turning off, so the energy saving part is more or less working.

The keyboard is working great, the touchpad and the USB mouse too but impossible to see the pointer. It appears when I try to start a software, with an error about the number of process. Most of the software are working, except the web browser.

l visit the logs and see some problems with lightdm, switching to xdm should fix the problem.

apt install -y xdm

After a reboot, I’m getting a graphical interface on boot and my mouse is working directly.

The top of the windows is still missing and I see some errors in the logs in my home folder.

apt install -y pm-utils
xfwm4 -- reload

Now I have the wallpaper, the icons but the other components have disappeared.


I now have a GNU-Hurd system who is working, with a graphical interface. The next step will be to install some software.

Leave a Reply

Your email address will not be published. Required fields are marked *