How to ssh to qemu emulated aarch64 NixOS?

Huh. So is that from an x86 NixOS in both cases?

Yes just a quick test with the config of my notebook to see if there maybe is a general problem.

The problem for the ethernet might be this one here:

I looked at the issue from 虎游 @hu60.cn about the dwc2 problem, and it looks like the issue there is that he/she is using a modular kernel, but the root disk image does not contain any modules for that kernel. It looks like at least cdc_ether.ko and cdc_subset.ko are needed for the ethernet to work. I checked that by using the 2020-08-20-raspios-buster image that is referenced on the page where they downloaded that kernel, and with that the network comes up.

When I build my Raspi Flake I can see the files in the result.
However I’m not good enough to know if they are in the image provided by NixOS.

As for the keyboard issue I found out that it seems to be working without a problem in the uboot menu but then failes at a later stage.
And with these parameters you don’t have to search for the bus number:
-usb -device usb-mouse -device usb-kbd \

I tried this project and it works just fine (SSH and keyboard) and the qemu command looks very similar to yours.

I’m going to test the parameters to see if the help but doubt it.
My guess is more that we need a different NixOS image for this.
Edit: I replaced the images from the repo with the kernel and image from NixOS and get the same behavior.

The same working behavior (as with the repo’s original image)? Or the same non-working behavior (as with the NixOS image)?

The same non-working behavior.

Not too surprising, as I noted here I have no problems with a Raspberry Pi OS image.

Right, I seem to be having a hard time reading :sweat_smile:
Well at least we got the same behavior :slight_smile:
I’m currently trying to build my config as an image and see if that boots.

1 Like

Well and that didn’t work either.
I reckon I’m now as lost as you are.
Maybe @samueldr knows if the problem from the qemu Gitlab repository is related?

nix build .#images.raspi
error: builder for '/nix/store/9rm1hqc9d3paphpx8pmfzw3i1bc5wla2-linux-5.15.32-1.20220331-modules-shrunk.drv' failed with exit code 1;
       last 10 log lines:
       >   copying dependency: /nix/store/zmpsqch7hz0zkjgg1fjcpr3f7vf1dzi3-linux-5.15.32-1.20220331-modules/lib/modules/5.15.32/kernel/drivers/message/fusion/mptscsih.ko.xz
       >   copying dependency: /nix/store/zmpsqch7hz0zkjgg1fjcpr3f7vf1dzi3-linux-5.15.32-1.20220331-modules/lib/modules/5.15.32/kernel/drivers/message/fusion/mptspi.ko.xz
       > root module: vmxnet3
       >   copying dependency: /nix/store/zmpsqch7hz0zkjgg1fjcpr3f7vf1dzi3-linux-5.15.32-1.20220331-modules/lib/modules/5.15.32/kernel/drivers/net/vmxnet3/vmxnet3.ko.xz
       > root module: vsock
       >   copying dependency: /nix/store/zmpsqch7hz0zkjgg1fjcpr3f7vf1dzi3-linux-5.15.32-1.20220331-modules/lib/modules/5.15.32/kernel/net/vmw_vsock/vsock.ko.xz
       > root module: simplefb
       >   builtin dependency: simplefb
       > root module: sun4i-drm
       > modprobe: FATAL: Module sun4i-drm not found in directory /nix/store/zmpsqch7hz0zkjgg1fjcpr3f7vf1dzi3-linux-5.15.32-1.20220331-modules/lib/modules/5.15.32
       For full logs, run 'nix log /nix/store/9rm1hqc9d3paphpx8pmfzw3i1bc5wla2-linux-5.15.32-1.20220331-modules-shrunk.drv'.
error: 1 dependencies of derivation '/nix/store/qfwf3zkcf5h791gab0lnwzzybgyk8xi5-stage-1-init.sh.drv' failed to build
error: 1 dependencies of derivation '/nix/store/nzqsmvp7gvim681bpxvv3y485gkk9jq1-initrd-linux-5.15.32-1.20220331.drv' failed to build
error: 1 dependencies of derivation '/nix/store/8ywv7haf8b10kys3vx1zkah4gci638m6-nixos-system-raspi-test-22.05.20220623.ccf8bdf.drv' failed to build
error: 1 dependencies of derivation '/nix/store/66irxbxlcgylja92c1ih6dpi1kkj6n96-ext4-fs.img.zst.drv' failed to build
error: 1 dependencies of derivation '/nix/store/wdkjfpf7mbhvldgz0wzs0jk8iqs22sz9-nixos-sd-image-22.05.20220623.ccf8bdf-aarch64-linux.img.drv' failed to build

@lheckemann has some awesome gists: lheckemann’s gists · GitHub

For example, an aarch64 VM that builds and runs from my x86 host, with working keyboard!: nix-build aarch64-vm.nix https://gist.github.com/lheckemann/63c52f2115346e6c9bbc6ecdfde9f43b#file-aarch64-vm-nix

It’s not using the raspi3b machine in qemu though.

Also, one that will probably be helpful for my BTRFS Pi (mis)adventures: https://gist.github.com/lheckemann/f265f155e9e7a7d05028eacfa6e96114

2 Likes

With these (minor) changes, I have a booting aarch64 image that I can ssh into (at 2222). Hooray!

{ pkgsPath ? <nixpkgs> }:
let
  pkgs = import pkgsPath {};
  pkgsAarch64 = import pkgsPath { system = "aarch64-linux"; };

  iso = (pkgsAarch64.nixos {
    imports = [ (pkgsPath + "/nixos/modules/installer/cd-dvd/installation-cd-base.nix") ];
    users.users.root.openssh.authorizedKeys.keyFiles = [(builtins.fetchurl https://github.com/n8henrie.keys)];
  }).config.system.build.isoImage;

  vmScript = pkgs.writeScript "run-nixos-vm" ''
    #!${pkgs.runtimeShell}
    ${pkgs.qemu}/bin/qemu-system-aarch64 \
      -machine virt,gic-version=max \
      -cpu max \
      -m 2G \
      -smp 4 \
      -drive file=$(echo ${iso}/iso/*.iso),format=raw,readonly=on \
      -nic user,hostfwd=tcp::2222-:22 \
      -nographic \
      -bios ${pkgsAarch64.OVMF.fd}/FV/QEMU_EFI.fd
  '';
in vmScript

A few questions and issues:

  • what is this all about? -bios ${pkgsAarch64.OVMF.fd}/FV/QEMU_EFI.fd
  • currently I’m using this to run it: nix-build aarch64-vm.nix && ./result – there’s got to be a better way with nix run or nix-shell --command, right?
  • can I get this working with a raspi3b emulated machine?
  • will this work with KVM so it’s hopefully not so slow?

Oh wow, I didn’t even know I’d made that VM gist. Glad it’s proving useful!

OVMF is a UEFI implementation for virtualised environments. You need some sort of “firmware” for the machine, and this is what provides it.

If you replace writeScript with writeScriptBin, the package will produce a directory containing bin/run-nixos-vm instead of placing the script directly in the store. You can use that with nix-shell -p '(import ./aarch64-vm.nix)' --command "run-nixos-vm", or restructure the whole thing into a flake which you can use with nix run, but I don’t think there’s that much benefit in either of those approaches compared to what you’re doing now.

Not on x86, since KVM relies on the CPU being able to execute the machine code directly. On aarch64 hosts, it can work, but I haven’t tried this myself and don’t know what exactly one might have to do to achieve it (might work without any extra steps, might require some extra command line args for qemu).

1 Like

No luck with networking using this as a template and the raspi3b qemu “machine” (had to change the netdev back to usb-net, which is what works on raspios).

I had to manually copy the iso so that I could (mutably) resize it with qemu-img. With that and the usb-net config (that again works for RaspiOS) I get the same error message as above, and no connectivity:

qemu: Slirp: Failed to send packet, ret: -1 

Darn.

I don’t know about the Raspi3 but the Raspi4 can boot normal UEFI with the correct bootloader.

However for my use case this wouldn’t be really that useful if it works with QEMU because it was broken on an actual Raspi4. So I would be testing something that I don’t really use.

Well maybe this will help others reproduce the issue at least?

I get the same behavior with this when I attempt to ssh in. I also don’t see any boot stuff in the popup window, interestingly.

It does require some mutability to copy the sd-image to a local file and chmod 0640 – qemu apparently won’t boot an sd image without write permissions.

{ pkgsPath ? <nixpkgs> }:
let
  pkgs = import pkgsPath { };
  pkgsAarch64 = import pkgsPath { system = "aarch64-linux"; };

  sdImage = (pkgsAarch64.nixos {
    imports = [
      (pkgsPath + "/nixos/modules/installer/sd-card/sd-image-aarch64-installer.nix")
      (pkgsPath + "/nixos/modules/profiles/qemu-guest.nix")
    ];
    boot.kernelParams = [ "console=tty1" "console=ttyAMA0" "console=ttyS0,115200" ];
    users.users.root.openssh.authorizedKeys.keyFiles = [ (builtins.fetchurl https://github.com/n8henrie.keys) ];
    services.qemuGuest.enable = true;
  }).config.system.build.sdImage.overrideAttrs (oldAttrs: {
    compressImage = false;
  });
  qemuImage = pkgs.stdenv.mkDerivation
    {
      name = "aarch64-qemu.img";
      dontUnpack = true;
      installPhase = ''
        img=./nixos-aarch64.img
        cp ${sdImage}/sd-image/*.img "$img"
        chmod 0640 "$img"
        ${pkgs.qemu}/bin/qemu-img resize -f raw "$img" 4G
        cp "$img" $out
      '';
    };

  vmScript = pkgs.writeScript "run-nixos-vm" ''
    #!${pkgs.runtimeShell}

    img=aarch64-qmu.img
    cp "${qemuImage}" "$img"
    chmod 0640 "$img"

    ${pkgs.qemu}/bin/qemu-system-aarch64 \
      -machine raspi3b \
      -cpu max \
      -m 1G \
      -smp 4 \
      -drive file="$img",format=raw \
      -device usb-net,netdev=net0 \
      -netdev user,id=net0,hostfwd=tcp::2222-:22 \
      -bios ${pkgsAarch64.OVMF.fd}/FV/QEMU_EFI.fd
  '';
in
vmScript

No change with the below:

boot.kernelModules = [ "cdc_ether" "cdc_subset" ];

EDIT: or adding usbnet.

Any news regarding this? I would also like to see this issue resolved.

Hello,

I tried again lately, my experiment is available in this repo:

nix-shell
phx-build echidna
phx-test echidna

The last command is just a shell tool basically reproducing something close to what @n8henrie already posted.

Here are the QEMU console logs:

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 6.1.69 (nixbld@localhost) (aarch64-unknown-linux-gnu-gcc (GCC) 12.3.0, GNU ld (GNU Binutils) 2.40) #1-NixOS SMP Wed Dec 20 16:00:29 UTC 2023
[    0.000000] Machine model: Raspberry Pi 3 Model B
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000038000000, size 64 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x000000003bffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x37e059c0-0x37e08fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x000000003bffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000]   Device   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003bffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003bffffff]
[    0.000000] On node 0, zone DMA: 16384 pages in unavailable ranges
[    0.000000] percpu: Embedded 30 pages/cpu s84008 r8192 d30680 u122880
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 843419
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Fallback order for Node 0: 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 241920
[    0.000000] Policy zone: DMA
[    0.000000] Kernel command line: init=/nix/store/sdgmc8kvlfmrz21n859p0fx83qhbnlxk-nixos-system-echidna-24.05.20231224.b878cb4/init console=ttyS0,115200n8 console=ttyAMA0,115200n8 console=tty0 nohibernate loglevel=7
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] Memory: 828812K/983040K available (20544K kernel code, 5386K rwdata, 18804K rodata, 12032K init, 744K bss, 88692K reserved, 65536K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 66100 entries in 259 pages
[    0.000000] ftrace: allocated 259 pages with 3 groups
[    0.000000] trace event string verifier disabled
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=384 to nr_cpu_ids=4.
[    0.000000]  Rude variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] Root IRQ handler: bcm2836_arm_irqchip_handle_irq
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 62.50MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0x1ffffffffffffff max_cycles: 0x1cd42e208c, max_idle_ns: 881590405314 ns
[    0.000129] sched_clock: 57 bits at 63MHz, resolution 16ns, wraps every 4398046511096ns
[    0.012100] Console: colour dummy device 80x25
[    0.015128] printk: console [tty0] enabled
[    0.018696] Calibrating delay loop (skipped), value calculated using timer frequency.. 125.00 BogoMIPS (lpj=250000)
[    0.018991] pid_max: default: 32768 minimum: 301
[    0.021558] LSM: Security Framework initializing
[    0.022901] landlock: Up and running.
[    0.022962] Yama: becoming mindful.
[    0.023762] LSM support for eBPF active
[    0.027290] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.027410] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.087301] cblist_init_generic: Setting adjustable number of callback queues.
[    0.087401] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.088111] cblist_init_generic: Setting adjustable number of callback queues.
[    0.088176] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.091643] rcu: Hierarchical SRCU implementation.
[    0.091748] rcu:     Max phase no-delay instances is 1000.
[    0.103853] EFI services will not be available.
[    0.106224] smp: Bringing up secondary CPUs ...
[    0.117245] Detected VIPT I-cache on CPU1
[    0.118826] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.129177] Detected VIPT I-cache on CPU2
[    0.129663] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.133346] Detected VIPT I-cache on CPU3
[    0.133833] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.135194] smp: Brought up 1 node, 4 CPUs
[    0.135365] SMP: Total of 4 processors activated.
[    0.135586] CPU features: detected: 32-bit EL0 Support
[    0.135628] CPU features: detected: 32-bit EL1 Support
[    0.135738] CPU features: detected: CRC32 instructions
[    0.139626] CPU: All CPU(s) started at EL2
[    0.139963] alternatives: applying system-wide alternatives
[    0.170314] devtmpfs: initialized
[    0.202013] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.202283] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.210802] pinctrl core: initialized pinctrl subsystem
[    0.227690] DMI not present or invalid.
[    0.241662] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.262149] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.264485] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.265369] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.265887] audit: initializing netlink subsys (disabled)
[    0.269599] audit: type=2000 audit(0.244:1): state=initialized audit_enabled=0 res=1
[    0.276250] thermal_sys: Registered thermal governor 'step_wise'
[    0.276318] thermal_sys: Registered thermal governor 'power_allocator'
[    0.276918] cpuidle: using governor ladder
[    0.277232] cpuidle: using governor menu
[    0.279240] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.281297] ASID allocator initialised with 65536 entries
[    0.288218] Serial: AMBA PL011 UART driver
[    0.336823] KASLR disabled due to lack of seed
[    0.377702] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    0.377801] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[    0.377858] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    0.377884] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[    0.377909] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.377932] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[    0.377956] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    0.377976] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    0.401022] fbcon: Taking over console
[    0.401825] ACPI: Interpreter disabled.
[    0.412544] iommu: Default domain type: Translated
[    0.412669] iommu: DMA domain TLB invalidation policy: strict mode
[    0.415391] SCSI subsystem initialized
[    0.419392] usbcore: registered new interface driver usbfs
[    0.419938] usbcore: registered new interface driver hub
[    0.420313] usbcore: registered new device driver usb
[    0.424728] usb_phy_generic phy: supply vcc not found, using dummy regulator
[    0.426104] usb_phy_generic phy: dummy supplies not allowed for exclusive requests
[    0.430303] pps_core: LinuxPPS API ver. 1 registered
[    0.430373] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.430524] PTP clock support registered
[    0.431277] EDAC MC: Ver: 3.0.0
[    0.440187] FPGA manager framework
[    0.441643] Advanced Linux Sound Architecture Driver Initialized.
[    0.462490] vgaarb: loaded
[    0.468830] clocksource: Switched to clocksource arch_sys_counter
[    0.477354] VFS: Disk quotas dquot_6.6.0
[    0.477681] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.479976] pnp: PnP ACPI: disabled
[    0.533152] NET: Registered PF_INET protocol family
[    0.535262] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.547996] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
[    0.548173] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.548294] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.548745] TCP bind hash table entries: 8192 (order: 6, 262144 bytes, linear)
[    0.549193] TCP: Hash tables configured (established 8192 bind 8192)
[    0.552170] MPTCP token hash table entries: 1024 (order: 2, 24576 bytes, linear)
[    0.552913] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.553264] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.555088] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.559914] RPC: Registered named UNIX socket transport module.
[    0.560032] RPC: Registered udp transport module.
[    0.560067] RPC: Registered tcp transport module.
[    0.560091] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.560206] NET: Registered PF_XDP protocol family
[    0.560652] PCI: CLS 0 bytes, default 64
[    0.567957] Trying to unpack rootfs image as initramfs...
[    0.579720] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.582372] kvm [1]: IPA Size Limit: 40 bits
[    0.603518] kvm [1]: Hyp mode initialized successfully
[    0.612446] Initialise system trusted keyrings
[    0.615782] workingset: timestamp_bits=42 max_order=18 bucket_order=0
[    0.630798] zbud: loaded
[    0.641932] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.646044] NFS: Registering the id_resolver key type
[    0.646609] Key type id_resolver registered
[    0.646689] Key type id_legacy registered
[    0.647310] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.647547] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.648673] 9p: Installing v9fs 9p2000 file system support
[    0.675305] Key type asymmetric registered
[    0.675491] Asymmetric key parser 'x509' registered
[    1.218735] Freeing initrd memory: 10508K
[    1.257787] alg: self-tests for CTR-KDF (hmac(sha256)) passed
[    1.258339] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    1.260202] io scheduler mq-deadline registered
[    1.260346] io scheduler kyber registered
[    1.310301] simple-framebuffer 3c100000.framebuffer: framebuffer at 0x3c100000, 0x12c000 bytes
[    1.310447] simple-framebuffer 3c100000.framebuffer: format=a8r8g8b8, mode=640x480x32, linelength=2560
[    1.316665] Console: switching to colour frame buffer device 80x30
[    1.322636] simple-framebuffer 3c100000.framebuffer: fb0: simplefb registered!
[    1.327524] EINJ: ACPI disabled.
[    1.395370] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.416992] 3f215040.serial: ttyS1 at MMIO 0x3f215040 (irq = 71, base_baud = 50000000) is a 16550
[    1.426557] SuperH (H)SCI(F) driver initialized
[    1.429335] msm_serial: driver initialized
[    1.476156] loop: module loaded
[    1.483685] bcm2835-power bcm2835-power: ASB register ID returned 0x00000000
[    1.489004] megasas: 07.719.03.00-rc1
[    1.510406] tun: Universal TUN/TAP device driver, 1.6
[    1.515983] thunder_xcv, ver 1.0
[    1.517853] thunder_bgx, ver 1.0
[    1.519300] nicpf, ver 1.0
[    1.524771] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    1.527195] hns3: Copyright (c) 2017 Huawei Corporation.
[    1.529276] hclge is initializing
[    1.530816] e1000: Intel(R) PRO/1000 Network Driver
[    1.531996] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    1.533488] e1000e: Intel(R) PRO/1000 Network Driver
[    1.534657] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    1.535945] igb: Intel(R) Gigabit Ethernet Network Driver
[    1.537231] igb: Copyright (c) 2007-2014 Intel Corporation.
[    1.538542] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    1.539699] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    1.542166] sky2: driver version 1.30
[    1.546808] VFIO - User Level meta-driver version: 0.3
[    1.559684] usbcore: registered new interface driver usb-storage
[    1.569874] i2c_dev: i2c /dev entries driver
[    1.586099] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    1.594675] sdhci: Secure Digital Host Controller Interface driver
[    1.596230] sdhci: Copyright(c) Pierre Ossman
[    1.599482] Synopsys Designware Multimedia Card Interface Driver
[    1.603604] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.614161] ledtrig-cpu: registered to indicate activity on CPUs
[    1.623359] hid: raw HID events driver (C) Jiri Kosina
[    1.627137] usbcore: registered new interface driver usbhid
[    1.628362] usbhid: USB HID core driver
[    1.631730] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[    1.652296] drop_monitor: Initializing network drop monitor service
[    1.695472] sdhost-bcm2835 3f202000.mmc: loaded - DMA enabled (>1)
[    1.774049] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.778179] mmc0: new high speed SDHC card at address 4567
[    1.785287] mmcblk0: mmc0:4567 QEMU! 4.00 GiB
[    1.803195] NET: Registered PF_INET6 protocol family
[    1.821552]  mmcblk0: p1 p2
[    1.831552] Segment Routing with IPv6
[    1.833778] In-situ OAM (IOAM) with IPv6
[    1.835902] NET: Registered PF_PACKET protocol family
[    1.840070] 9pnet: Installing 9P2000 support
[    1.841869] Key type dns_resolver registered
[    1.847747] registered taskstats version 1
[    1.851193] Loading compiled-in X.509 certificates
[    1.857186] zswap: loaded using pool lzo/zbud
[    1.862329] Key type .fscrypt registered
[    1.863929] Key type fscrypt-provisioning registered
[    1.925816] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 99, base_baud = 0) is a PL011 rev2
[    1.986049] printk: console [ttyAMA0] enabled
[    1.989573] serial serial0: tty port ttyAMA0 registered
[    1.998841] raspberrypi-firmware soc:firmware: Attached to firmware from 1970-01-05T00:12:17
[    2.006528] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 0 config (0 80)
[    2.009276] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 1 config (0 81)
[    2.011735] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 2 config (0 82)
[    2.014431] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 3 config (0 83)
[    2.017070] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 4 config (0 84)
[    2.019660] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 5 config (0 85)
[    2.022414] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 6 config (0 86)
[    2.025366] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 7 config (0 87)
[    2.029313] uart-pl011 3f201000.serial: Failed to create device link (0x180) with soc:firmware:gpio
[    2.041631] dwc2 3f980000.usb: supply vusb_d not found, using dummy regulator
[    2.043863] dwc2 3f980000.usb: supply vusb_a not found, using dummy regulator
[    2.111982] dwc2 3f980000.usb: dwc2_check_params: Invalid parameter max_packet_count=511
[    2.117599] dwc2 3f980000.usb: dwc2_check_params: Invalid parameter max_transfer_size=65535
[    2.121984] dwc2 3f980000.usb: dwc2_check_params: Invalid parameter host_rx_fifo_size=774
[    2.139684] dwc2 3f980000.usb: DWC OTG Controller
[    2.143038] dwc2 3f980000.usb: new USB bus registered, assigned bus number 1
[    2.147434] dwc2 3f980000.usb: irq 51, io mem 0x3f980000
[    2.170191] hub 1-0:1.0: USB hub found
[    2.172795] hub 1-0:1.0: 1 port detected
[    2.188191] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 1 config (0 81)
[    2.192682] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 1 config (0 81)
[    2.196429] pwrseq_simple: probe of wifi-pwrseq failed with error -5
[    2.201017] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 2 config (0 82)
[    2.205093] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 2 state (0 82)
[    2.208018] leds-gpio: probe of leds failed with error -5
[    2.220803] ALSA device list:
[    2.222993]   No soundcards found.
[    2.364263] Freeing unused kernel memory: 12032K
[    2.374769] Run /init as init process
[    3.775164] device-mapper: ioctl: 4.47.0-ioctl (2022-07-28) initialised: dm-devel@redhat.com
[    8.232937] random: crng init done
[    9.226870] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: none.
[    9.304288] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: none.
[   19.029403] vc4_v3d 3fc00000.v3d: deferred probe timeout, ignoring dependency
[   19.031402] vc4_v3d: probe of 3fc00000.v3d failed with error -110
[   19.036994] vc4_hdmi 3f902000.hdmi: deferred probe timeout, ignoring dependency
[   19.040109] vc4_hdmi: probe of 3f902000.hdmi failed with error -110
[   19.045646] vc4_vec 3f806000.vec: deferred probe timeout, ignoring dependency
[   19.047537] vc4_vec: probe of 3f806000.vec failed with error -110
[   20.989089] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: none.
[   21.011547] booting system configuration /nix/store/sdgmc8kvlfmrz21n859p0fx83qhbnlxk-nixos-system-echidna-24.05.20231224.b878cb4
[   37.496640] EXT4-fs (mmcblk0p2): resizing filesystem from 680051 to 1038848 blocks
[   39.960673] EXT4-fs (mmcblk0p2): resized filesystem to 1038848
[   63.622272] systemd[1]: System time before build time, advancing clock.
[   65.135457] systemd[1]: systemd 254.6 running in system mode (+PAM +AUDIT -SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT -QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK -XKBCOMMON +UTMP -SYSVINIT default-hierarchy=unified)
[   65.148161] systemd[1]: Detected architecture arm64.
[   65.306284] systemd[1]: Hostname set to <echidna>.
[   65.361224] systemd[1]: Initializing machine ID from random generator.
[   66.671819] systemd[1]: bpf-lsm: Failed to link program; assuming BPF LSM is not available
[   70.915132] systemd[1]: Queued start job for default target Multi-User System.
[   71.020506] systemd[1]: Created slice Slice /system/getty.
[   71.044335] systemd[1]: Created slice Slice /system/modprobe.
[   71.063259] systemd[1]: Created slice User and Session Slice.
[   71.073321] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[   71.080134] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[   71.087785] systemd[1]: Reached target Local Encrypted Volumes.
[   71.093455] systemd[1]: Reached target Containers.
[   71.097909] systemd[1]: Reached target Path Units.
[   71.102007] systemd[1]: Reached target Remote File Systems.
[   71.105815] systemd[1]: Reached target Slice Units.
[   71.109583] systemd[1]: Reached target Swaps.
[   71.113309] systemd[1]: Reached target ZFS pool import target.
[   71.142504] systemd[1]: Listening on Process Core Dump Socket.
[   71.150691] systemd[1]: Listening on Journal Socket (/dev/log).
[   71.157238] systemd[1]: Listening on Journal Socket.
[   71.164716] systemd[1]: Listening on Userspace Out-Of-Memory (OOM) Killer Socket.
[   71.177247] systemd[1]: Listening on udev Control Socket.
[   71.183354] systemd[1]: Listening on udev Kernel Socket.
[   71.249089] systemd[1]: Mounting Huge Pages File System...
[   71.337695] systemd[1]: Mounting POSIX Message Queue File System...
[   71.372520] systemd[1]: Mounting Kernel Debug File System...
[   71.500884] systemd[1]: Starting Create List of Static Device Nodes...
[   71.565891] systemd[1]: Starting Load Kernel Module configfs...
[   71.597984] systemd[1]: Starting Load Kernel Module drm...
[   71.630453] systemd[1]: Starting Load Kernel Module efi_pstore...
[   71.669168] systemd[1]: Starting Load Kernel Module fuse...
[   71.702099] systemd[1]: Starting mount-pstore.service...
[   71.740006] systemd[1]: Starting Create SUID/SGID Wrappers...
[   71.762481] systemd[1]: File System Check on Root Device was skipped because of an unmet condition check (ConditionPathIsReadWrite=!/).
[   72.889364] systemd[1]: Starting Journal Service...
[   73.225389] fuse: init (API version 7.37)
[   73.248212] systemd[1]: Starting Load Kernel Modules...
[   73.294768] systemd[1]: Starting Remount Root and Kernel File Systems...
[   73.337370] systemd[1]: Starting Coldplug All udev Devices...
[   73.551381] systemd[1]: Mounted Huge Pages File System.
[   73.561131] systemd[1]: Mounted POSIX Message Queue File System.
[   73.571586] systemd[1]: Mounted Kernel Debug File System.
[   73.587386] systemd[1]: Finished Create List of Static Device Nodes.
[   73.609022] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[   73.622474] systemd[1]: Finished Load Kernel Module configfs.
[   73.776463] systemd[1]: modprobe@drm.service: Deactivated successfully.
[   73.893116] systemd[1]: Finished Load Kernel Module drm.
[   74.025250] systemd[1]: modprobe@efi_pstore.service: Deactivated successfully.
[   74.050021] systemd[1]: Finished Load Kernel Module efi_pstore.
[   74.113806] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[   74.120296] systemd[1]: Finished Load Kernel Module fuse.
[   74.154469] systemd[1]: modprobe@fuse.service: Consumed 1.074s CPU time, no IP traffic.
[   74.289058] systemd-journald[432]: Collecting audit messages is disabled.
[   74.346177] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[   74.409773] systemd[1]: Mounting FUSE Control File System...
[   74.535066] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: none.
[   74.651441] systemd[1]: Mounting Kernel Configuration File System...
[   74.758543] systemd[1]: Starting Create Static Device Nodes in /dev gracefully...
[   74.787338] spl: loading out-of-tree module taints kernel.
[   74.926649] systemd[1]: Finished Remount Root and Kernel File Systems.
[   75.140316] systemd[1]: Starting Load/Save OS Random Seed...
[   75.377704] systemd[1]: Mounted FUSE Control File System.
[   75.386783] systemd[1]: Mounted Kernel Configuration File System.
[   75.661547] systemd[1]: Finished Load/Save OS Random Seed.
[   75.958461] systemd[1]: Finished Create Static Device Nodes in /dev gracefully.
[   76.079123] systemd[1]: Starting Create Static Device Nodes in /dev...
[   76.114510] systemd[1]: Started Journal Service.
[   77.049414] systemd-journald[432]: Received client request to flush runtime journal.
[   78.283067] zfs: module license 'CDDL' taints kernel.
[   78.285448] Disabling lock debugging due to kernel taint
[   79.920921] ZFS: Loaded module v2.2.2-1, ZFS pool version 5000, ZFS filesystem version 5
[   90.706282] 8021q: 802.1Q VLAN Support v1.8
[   93.933965] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   94.166981] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[  100.815350] vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[  101.738537] bcm2835_vchiq 3f00b840.mailbox: failed to set channelbase
[  101.740836] vchiq: could not initialize vchiq platform
[  102.865071] bcm2835-rng 3f104000.rng: hwrng registered
[  103.002798] i2c-bcm2835 3f805000.i2c: Could not read clock-frequency property
[  104.057221] Bluetooth: Core ver 2.22
[  104.060324] NET: Registered PF_BLUETOOTH protocol family
[  104.062084] Bluetooth: HCI device and connection manager initialized
[  104.064864] Bluetooth: HCI socket layer initialized
[  104.066351] Bluetooth: L2CAP socket layer initialized
[  104.068119] Bluetooth: SCO socket layer initialized
[  104.226048] Bluetooth: HCI UART driver ver 2.3
[  104.228106] Bluetooth: HCI UART protocol H4 registered
[  104.230263] Bluetooth: HCI UART protocol BCSP registered
[  104.233445] Bluetooth: HCI UART protocol LL registered
[  104.240066] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 0 config (0 80)
[  104.240332] Bluetooth: HCI UART protocol Broadcom registered
[  104.245647] Bluetooth: HCI UART protocol QCA registered
[  104.247263] Bluetooth: HCI UART protocol Marvell registered
[  104.248200] raspberrypi-exp-gpio soc:firmware:gpio: Failed to get GPIO 0 config (0 80)
[  104.249118] hci_uart_bcm: probe of serial0-0 failed with error -5
[  107.954835] cpu cpu0: Cannot get clock for CPU0
[  107.956922] raspberrypi-cpufreq: probe of raspberrypi-cpufreq failed with error -2
qemu-system-aarch64: Slirp: Failed to send packet, ret: -1
qemu-system-aarch64: Slirp: Failed to send packet, ret: -1
qemu-system-aarch64: Slirp: Failed to send packet, ret: -1
qemu-system-aarch64: Slirp: Failed to send packet, ret: -1

I am also unable to get nor console access neither SSH login.
So, well, no improvement :cry:.

Your link is broken.

You’re right, the markdown renderer had taken the last colon character as part of the URL, it is fixed now.