Subject: Re: bug#20757: "unable to fork" on armhf

From: Mark H Weaver <[email-masked]>
Date: Sun, 07 Jun 2015 17:46:18 -0400

Efraim Flashner <[email-masked]> writes:

> I have an armhf marsboard that I'm trying to run guix on top of debian. I
> started by flashing a debian wheezy image, stripping out most of the
> packages, and upgrading to jessie. I installed using the 0.8.2 armhf binary.
> `guix pull` failed with the error "unable to fork: Invalid argument", and
> likewise `guix build hello` also failed.

This is probably because your kernel lacks the necessary features to
create the build containers needed by guix-daemon.  The above error is
printed if the 'clone' system call fails when invoked with the following
flags:

  CLONE_NEWPID | CLONE_NEWNS | CLONE_NEWIPC | CLONE_NEWUTS

You need PID namespaces, private mount namespaces, private network
namespaces, IPC namespaces, and UTS namespaces.  You will also need
CONFIG_DEVPTS_MULTIPLE_INSTANCES.

We should document this better, but I guess you need at least the
following options enabled in your kernel build-time configuration:

CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y

     Mark