guix-devel
[Top][All Lists]
Advanced

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

Re: wip v2 u-boot support


From: David Craven
Subject: Re: wip v2 u-boot support
Date: Fri, 9 Sep 2016 00:09:57 +0200

Hi Danny,

I'm testing your new u-boot code. I fixed a few bugs, but there is
still some work to do... ;-)

guix system vm u-boot-test.scm --no-grub

This should work without giving any errors and boot (it doesn't matter
that u-boot is built for arm). And after booting there should be the
extlinux.conf file.

Below is a test operating-system and the stuff I've already fixed.

(use-modules (gnu))
(use-package-modules linux u-boot)
(use-service-modules base networking ssh)

(operating-system
  (host-name "beagle-bone-black")
  (timezone "Europe/Zurich")
  (locale "en_US.UTF-8")

  (bootloader (u-boot-configuration
               (u-boot u-boot-beagle-bone-black)))
  (kernel linux-libre) ; linux-libre-beagle-bone-black

  (file-systems
   (cons
    (file-system
      (mount-point "/")
      (type "ext4")
      (title 'label)
      (device "root"))
    %base-file-systems))

  (users
   (cons*
    (user-account
     (name "test")
     (group "users")
     (supplementary-groups '("wheel" "video"))
     (home-directory "/home/test")
     (password "sa5JEXtYx/rm6")) ; Password is pass.
    %base-user-accounts))

  (services
   (cons*
    (dropbear-service)
    (dhcp-client-service)
    %base-services)))

diff --git a/gnu/system.scm b/gnu/system.scm
index 24e4e15..153f7b0 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -733,9 +733,16 @@ listed in OS.  The C library expects to find it under
                                                     "/boot")
                                    (operating-system-kernel-arguments os)))
                            (initrd #~(string-append #$system "/initrd"))))))
-    (grub-configuration-file (operating-system-bootloader os)
-                             store-fs entries
-                             #:old-entries old-entries)))
+
+    (match (operating-system-bootloader os)
+      ((? grub-configuration? config)
+       (grub-configuration-file (operating-system-bootloader os)
+                                store-fs entries
+                                #:old-entries old-entries))
+      ((? u-boot-configuration? config)
+       (u-boot-configuration-file (operating-system-bootloader os)
+                                  store-fs entries
+                                  #:old-entries old-entries)))))

 (define (operating-system-parameters-file os)
   "Return a file that describes the boot parameters of OS.  The primary use of
diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm
index 4c9da8c..c3d2efb 100644
--- a/gnu/system/grub.scm
+++ b/gnu/system/grub.scm
@@ -52,6 +52,7 @@
             grub-configuration-package
             grub-configuration-device

+            <menu-entry>
             menu-entry
             menu-entry?

diff --git a/gnu/system/u-boot.scm b/gnu/system/u-boot.scm
index 00a0165..d56f75e 100644
--- a/gnu/system/u-boot.scm
+++ b/gnu/system/u-boot.scm
@@ -48,10 +48,7 @@
 (define-record-type* <u-boot-configuration>
   u-boot-configuration make-u-boot-configuration
   u-boot-configuration?
-  (board           u-boot-configuration-board)           ; string ;
not optional!
-  (u-boot          u-boot-configuration-u-boot           ; package
-                   (default #f)) ; will actually default to
(make-u-boot-package board)
-  (device          u-boot-configuration-device)        ; string
+  (u-boot          u-boot-configuration-u-boot)        ; package
   (menu-entries    u-boot-configuration-menu-entries   ; list
                    (default '()))
   (default-entry   u-boot-configuration-default-entry  ; integer
@@ -96,7 +93,7 @@ corresponding to old generations of the system."
   FDTDIR .
   APPEND ~a
 ~%"
-                #$label
+                #$label #$label
                 #$linux #$linux-image-name
                 #$initrd
                 (string-join (list address@hidden))))))



reply via email to

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