I didn't have much luck when I tried to build for my pine64. Also with
similar issues. I'll share the diff I have but mine hung at the same
place, when it was using QEMU to build the image.

-- 
Efraim Flashner   <[email protected]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index a5d9fefa62..aa2418f495 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -30,6 +30,7 @@
   #:use-module (gnu build install)
   #:use-module (gnu system uuid)
   #:use-module (guix records)
+  #:use-module (guix utils)
   #:use-module ((guix combinators) #:select (fold2))
   #:use-module (ice-9 format)
   #:use-module (ice-9 match)
@@ -81,6 +82,7 @@
                            linux initrd
                            make-disk-image?
                            single-file-output?
+                           target-arm?
                            target-arm32?
                            (disk-image-size (* 100 (expt 2 20)))
                            (disk-image-format "qcow2")
@@ -100,14 +102,16 @@ the #:references-graphs parameter of 'derivation'."
   (define arch-specific-flags
     `(;; On ARM, a machine has to be specified. Use "virt" machine to avoid
       ;; hardware limits imposed by other machines.
-      ,@(if target-arm32? '("-M" "virt") '())
+      ;,@(if target-arm? '("-M" "virt") '())
+      "-M" "virt"
 
       ;; Only enable kvm if we see /dev/kvm exists.  This allows users without
       ;; hardware virtualization to still use these commands.  KVM support is
       ;; still buggy on some ARM32 boards. Do not use it even if available.
       ,@(if (and (file-exists? "/dev/kvm")
-                 (not target-arm32?))
-            '("-enable-kvm")
+                 (not target-arm?))
+            ;'("-enable-kvm")
+            '()
             '())
 
       ;; Pass "panic=1" so that the guest dies upon error.
@@ -117,11 +121,11 @@ the #:references-graphs parameter of 'derivation'."
                       ;; The serial port name differs between emulated
                       ;; architectures/machines.
                       " console="
-                      (if target-arm32? "ttyAMA0" "ttyS0"))
+                      (if target-arm? "ttyAMA0" "ttyS0"))
 
       ;; NIC is not supported on ARM "virt" machine, so use a user mode
       ;; network stack instead.
-      ,@(if target-arm32?
+      ,@(if target-arm?
             '("-device" "virtio-net-pci,netdev=mynet"
               "-netdev" "user,id=mynet")
             '("-net" "nic,model=virtio"))))
diff --git a/guix/utils.scm b/guix/utils.scm
index 1f99c5b3f5..c1eeff7b07 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -78,6 +78,7 @@
             package-name->name+version
             target-mingw?
             target-arm32?
+            target-arm?
             target-64bit?
             version-compare
             version>?
@@ -494,6 +495,10 @@ a character other than '@'."
 (define (target-arm32?)
   (string-prefix? "arm" (or (%current-target-system) (%current-system))))
 
+(define (target-arm?)
+  (let ((system (or (%current-target-system) (%current-system))))
+    (any (cut string-prefix? <> system) '("armhf" "aarch64"))))
+
 (define (target-64bit?)
   (let ((system (or (%current-target-system) (%current-system))))
     (any (cut string-prefix? <> system) '("x86_64" "aarch64" "mips64" 
"ppc64"))))

Attachment: signature.asc
Description: PGP signature

Reply via email to