[prev in list] [next in list] [prev in thread] [next in thread] 

List:       hurd-bug
Subject:    Re: boot guixsd
From:       Ricardo Wurmus <rekado () elephly ! net>
Date:       2018-03-03 9:31:43
Message-ID: 877eqtmrnk.fsf () elephly ! net
[Download RAW message or body]


Hi Rene,

> I'm reviewing how GNU GuixSD/Linux boot,
> 
> $ cat /proc/cmdline
> BOOT_IMAGE=/gnu/store/jnww66749r8ck6l2rwgvpzzbnazs0392-linux-libre-4.15.5/bzImage \
> --root=root --system=/gnu/store/qcia33hqzi6md3q18frs16piis6xxy9i-system \
> --load=/gnu/store/qcia33hqzi6md3q18frs16piis6xxy9i-system/boot 
> To perform the activation is done as a parameter through the scheme file \
> '/var/guix/profiles/system/boot'. 
> In GNU Hurd as a workaround I add the lines to the '/libexec/rc' file:
> --
> echo running GuixSD boot ..
> guile -s /var/guix/profiles/system/boot
> --
> 
> After loading GNU Mach and GNU Hurd it shows:
> --
> In unknown file:
> ?: 9 [apply-smob/1 #<catch-closure 1a3920>]
> In ice-9/boot-9.scm:
> 66: 8 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
> 432: 7 [eval # #]
> In ice-9/boot-9.scm:
> 2412: 6 [save-module-excursion #<procedure 1b4ce0 at ice-9/boot-9.scm:4084:3 ()>
> ]
> 4089: 5 [#<procedure 1b4ce0 at ice-9/boot-9.scm:4084:3 ()>]
> In /var/guix/profiles/system/boot:
> 1: 4 [#<procedure 223900 ()>]
> In unknown file:
> ?: 3 [primitive-load "/gnu/store/rjp22rca3gv8lrrbb9j4sry9i3n1bvlp-activate"]
> In ice-9/eval.scm:
> 432: 2 [eval # ()]
> In /gnu/store/6dvydkcda77dxkpbn5jsj4vsmr19gb7v-module-import/gnu/build/activatio
> n.scm:
> 449: 1 [activate-current-system #f]
> In unknown file:
> ?: 0 [symlink #f "/run/current-system.new"]
> 
> ERROR: In procedure symlink:
> ERROR: Wrong type (expecting string): #f

This shows that "activate-current-system" from the (gnu build
activation) module is given #f, when actually it should be given a
string containing the location of the system in the store.

For reconfiguration the new system can be specified with the
GUIX_NEW_SYSTEM environment variable.  You may need to set this
environment variable before booting.

The problem here is that the default system is either whatever
GUIX_NEW_SYSTEM holds or the result of evaluating "(boot-time-system)",
which is Linux-specific:

--8<---------------cut here---------------start------------->8---
(define (boot-time-system)
  "Return the '--system' argument passed on the kernel command line."
  (find-long-option "--system" (linux-command-line)))
--8<---------------cut here---------------end--------------->8---

We should adjust this procedure to do the right thing when we didn't
boot Linux.

Hope this helps!

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic