[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problems running Guix System initrd on an i.MX6 ARM board
From: |
Maxim Cournoyer |
Subject: |
Re: Problems running Guix System initrd on an i.MX6 ARM board |
Date: |
Mon, 27 Feb 2023 20:47:09 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) |
Hello!
Efraim Flashner <efraim@flashner.co.il> writes:
> On Mon, Dec 12, 2022 at 10:40:50PM -0500, Maxim Cournoyer wrote:
>> Hi Guix!
>>
>> I've been trying for some time to run Guix System on an ARM board (a
>> TS-7970 with an i.MX6 Cortex A9 CPU). I wanted to cross-compile the
>> image for speed and efficiency, and stumbled upon some problems on the
>> way, such as https://issues.guix.gnu.org/44924, fixed on core-updates.
[...]
>> The initrd now runs, but it fails with the following error:
>>
>> --8<---------------cut here---------------start------------->8---
>> [ 8.448448] ALSA device list:
>> [ 8.451472] #0: On-board Codec
>> [ 8.454768] #1: imx-hdmi-soc
>> [ 8.461095] Freeing unused kernel memory: 1024K (80e00000 - 80f00000)
>> GC Warning: pthread_getattr_np or pthread_attr_getstack failed for main
>> thread
>> GC Warning: Couldn't read /proc/stat
>> [ 8.481168] mmc0: new SDIO card at address 0001
>> Welcome, this is GNU's early boot Guile.
>> Use 'gnu.repl' for an initrd REPL.
>>
>> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
>> Throw to key `record-abi-mismatch-error' with args `(abi-check "~a: record
>> ABI mismatch; recompilation needed" (#<record-type <file-system>>) ())'.
>>
>> Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
>> GNU Guile 3.0.8
>> Copyright (C) 1995-2021 Free Software Foundation, Inc.
>>
>> Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
>> This program is free software, and you are welcome to redistribute it
>> under certain conditions; type `,show c' for details.
>>
>> Enter `,help' for help.
>> scheme@(guile-user)>
>> --8<---------------cut here---------------end--------------->8---
>>
>> The .go modules appear to be correctly cross-compiled for
>> arm-linux-gnueabihf (they run fine on the same target using a different
>> OS that I can boot with).
>>
>> Ideas?
>
> Perhaps you'll need to compile more with guile-3.0-latest. If it's not
> too much I suppose you could try moving guile-3.0-latest to guile-3.0.
> Otherwise I guess you'll need to find where <file-system> is being
> compiled and replace that guile-3.0 with guile-3.0-latest too, and then
> see where the next failure is.
I've tried that on master, with the following patch applied:
--8<---------------cut here---------------start------------->8---
1 file changed, 17 insertions(+), 31 deletions(-)
gnu/packages/guile.scm | 48 +++++++++++++++++-------------------------------
modified gnu/packages/guile.scm
@@ -310,15 +310,15 @@ (define-public guile-3.0
(package
(inherit guile-2.2)
(name "guile")
- (version "3.0.7")
+ (version "3.0.9")
(source (origin
(inherit (package-source guile-2.2))
- (patches '()) ; We no longer need the patches.
+ (patches '()) ;no longer needed
(uri (string-append "mirror://gnu/guile/guile-"
version ".tar.xz"))
(sha256
(base32
- "1dwiwsrpm4f96alfnz6wibq378242z4f16vsxgy1n9r00v3qczgm"))
+ "03bm1mnfc9kkg2ls942a0js7bxrdzmcffgrgg6anwdmjfan2a9hs"))
;; Replace the snippet because the oom-test still
;; fails on some 32-bit architectures.
(snippet '(begin
@@ -334,6 +334,11 @@ (define-public guile-3.0
(delete "gmp" "libltdl")))
(arguments
(substitute-keyword-arguments (package-arguments guile-2.0)
+ ;; Guile 3.0.9 is bit-reproducible when built in parallel, thanks to
+ ;; its multi-stage build process for cross-module inlining, except when
+ ;; cross-compiling.
+ ((#:parallel-build? _ #f)
+ (not (%current-target-system)))
((#:configure-flags flags ''())
;; XXX: JIT-enabled Guile crashes in obscure ways on GNU/Hurd.
`(cons* ,@(if (hurd-target?)
@@ -365,19 +370,19 @@ (define-public guile-3.0
(lambda _
;; Upstream knows about suggested solution.
;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214
- (substitute* "bootstrap/Makefile.in"
+ ;;
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977223#46
+ (substitute* "stage0/Makefile.in"
(("^GUILE_OPTIMIZATIONS.*")
"GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives
-Ocps\n")))))
'())
,@(if (or (target-ppc32?)
(target-riscv64?))
- `((add-after 'unpack 'skip-failing-fdes-test
- (lambda _
- ;; ERROR: ((system-error "seek" "~A" ("Bad file
descriptor") (9)))
- (substitute* "test-suite/tests/ports.test"
- (("fdes not closed\"" all) (string-append all "(exit
77)")))
- #t)))
- '())))))
+ `((add-after 'unpack 'skip-failing-fdes-test
+ (lambda _
+ ;; ERROR: ((system-error "seek" "~A" ("Bad file
descriptor") (9)))
+ (substitute* "test-suite/tests/ports.test"
+ (("fdes not closed\"" all) (string-append all "(exit
77)"))))))
+ '())))))
(native-search-paths
(list (search-path-specification
@@ -398,26 +403,7 @@ (define-public guile-3.0-latest
version ".tar.xz"))
(sha256
(base32
- "03bm1mnfc9kkg2ls942a0js7bxrdzmcffgrgg6anwdmjfan2a9hs"))))
- (arguments
- (substitute-keyword-arguments (package-arguments guile-3.0)
- ;; Guile 3.0.9 is bit-reproducible when built in parallel, thanks to
- ;; its multi-stage build process for cross-module inlining, except when
- ;; cross-compiling.
- ((#:parallel-build? _ #f)
- (not (%current-target-system)))
- ((#:phases phases)
- `(modify-phases ,phases
- ,@(if (target-ppc32?)
- `((replace 'adjust-bootstrap-flags
- (lambda _
- ;; Upstream knows about suggested solution.
- ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214
- ;;
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977223#46
- (substitute* "stage0/Makefile.in"
- (("^GUILE_OPTIMIZATIONS.*")
- "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives
-Ocps\n")))))
- '())))))))
+ "03bm1mnfc9kkg2ls942a0js7bxrdzmcffgrgg6anwdmjfan2a9hs"))))))
;;; The symbol guile-3.0/fixed should be used when guile-3.0 needs fixes
;;; (security or else) and this deprecation could be removed.
--8<---------------cut here---------------end--------------->8---
Unfortunately after rebuilding the world, the situation is unchanged:
--8<---------------cut here---------------start------------->8---
[ 2.887460] can: raw protocol
[ 2.887469] can: broadcast manager protocol
[ 2.887481] can: netlink gateway - max_hops=1
[ 2.887931] Key type dns_resolver registered
[ 2.893941] ThumbEE CPU extension supported.
[ 2.946659] Registering SWP/SWPB emulation handler
[ 2.952239] Loading compiled-in X.509 certificates
[ 2.957525] zswap: loaded using pool lzo/zbud
[ 2.970069] ata1: SATA link down (SStatus 0 SControl 300)
[ 2.975623] ahci-imx 2200000.sata: no device found, disabling link.
[ 2.981907] ahci-imx 2200000.sata: pass ahci_imx..hotplug=1 to enable hotplug
[ 3.012850] mmc1: new high speed SDHC card at address 59b4
[ 3.020229] mmcblk1: mmc1:59b4 USD 7.51 GiB
[ 3.029086] mmcblk1: p1
[ 3.366035] mmc2: new DDR MMC card at address 0001
[ 3.372617] mmcblk2: mmc2:0001 MMC04G 3.60 GiB
[ 3.383743] mmcblk2boot0: mmc2:0001 MMC04G 16.0 MiB
[ 3.391245] mmcblk2boot1: mmc2:0001 MMC04G 16.0 MiB
[ 3.398194] mmcblk2rpmb: mmc2:0001 MMC04G 128 KiB, chardev (236:0)
[ 3.601340] mxs_phy 20c9000.usbphy: Data pin can't make good contact.
[ 3.612016] imx_usb 2184200.usb: No over current polarity defined
[ 3.623526] ci_hdrc ci_hdrc.1: EHCI Host Controller
[ 3.628468] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
[ 3.665367] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
[ 3.672464] hub 1-0:1.0: USB hub found
[ 3.676376] hub 1-0:1.0: 1 port detected
[ 3.685422] imx_thermal 20c8000.anatop:tempmon: Extended Commercial CPU
temperature grade - max:105C critical:100C passive:95C
[ 3.706165] Freeing unused kernel image (initmem) memory: 2048K
[ 3.735853] Run /init as init process
GC Warning: pthread_getattr_np or pthread_attr_getstack failed for main thread
GC Warning: Couldn't read /proc/stat
[ 3.985294] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[ 4.186425] hub 1-1:1.0: USB hub found
[ 4.190308] hub 1-1:1.0: 4 ports detected
Welcome, this is GNU's early boot Guile.
Use 'gnu.repl' for an initrd REPL.
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Throw to key `record-abi-mismatch-error' with args `(abi-check "~a: record ABI
mismatch; recompilation needed" (#<record-type <file-system>>) ())'.
Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
GNU Guile 3.0.9
Copyright (C) 1995-2023 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guile-user)> [ 13.932250] platform regulator_wlan_vmmc: deferred
probe pending
,bt
In gnu/build/linux-boot.scm:
554:14 1 (_)
In ice-9/boot-9.scm:
1685:16 0 (raise-exception _ #:continuable? _)
scheme@(guile-user)> [ 320.255299] random: crng init done
--8<---------------cut here---------------end--------------->8---
I'm out of ideas for now.
--
Thanks,
Maxim
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: Problems running Guix System initrd on an i.MX6 ARM board,
Maxim Cournoyer <=