| 16 Mar 2026 |
Alex | True, and if necessary one could also try the early console option. | 16:00:56 |
Alex | Is anyone able to build the latest Nixpkgs natively?
My build is failing during xgcc.
checking for suffix of object files... configure: error: in `/build/build/riscv64-unknown-linux-gnu/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
| 16:01:19 |
dramforever | maybe powerline10k | 16:03:42 |
dramforever | * maybe https://github.com/NixOS/nixpkgs/pull/498702 | 16:03:52 |
Alex | I could try the parent of that merge commit.
The only other option is bisecting, which would probably take days/weeks to find the problematic commit. | 16:04:54 |
dramforever | huh, i'd have thought that would have fixed it | 16:06:23 |
Alex | Ah nevermind, my nixpkgs is older, so I should probably try that commit.
dramforever thanks. | 16:06:24 |
dramforever | do you have more logs | 16:06:25 |
eljamm | Download felix86-with-params.log | 16:42:54 |
eljamm | Download felix86.log | 16:42:55 |
eljamm | These are the log files. When I pass those parameters, the test seems like it moves past the backdoor.service part, but it still doesn't seem to be doing much either. It's also pretty slow. | 16:45:30 |
Alex | Oh so you are getting kernel logs even without setting console=....
One of the annoying things about systemd is that it doesn't log anything useful during boot.
Btw the console=... isn't really helping, even if it no longer prints warnings about backdoor.service, because it's still unable to send commands to the VM.
You could I guess try building the driverInteractive version of the test, then inside the interactive prompt run machine.shell_interact() to get a prompt (assuming this doesn't require the backdoor service, which it might).
It's also pretty slow.
I think that's because you're emulating RISC-V using binfmt emulation to run a riscv64-linux build of qEMU to run the test? That sounds to me like you have qEMU running under qEMU. | 18:48:52 |
Alex | Possibly you might just need to wait long enough for backdoor.service to come online.
How long have you given it? | 18:51:47 |
| 17 Mar 2026 |
Alex | Update: it worked, thanks. | 00:22:11 |
eljamm |
You could I guess try building the driverInteractive version of the test, then inside the interactive prompt run machine.shell_interact() to get a prompt (assuming this doesn't require the backdoor service, which it might).
I tried that, but I wasn't able to do anything:
- shell_interact(): same issues and doesn't give return a shell
- ssh backdoor: crashes the VM
It's also pretty slow.
I think that's because you're emulating RISC-V using binfmt emulation to run a riscv64-linux build of qEMU to run the test? That sounds to me like you have qEMU running under qEMU.
When I first read this comment, I thought so as well, but then it got me thinking: why not enable binfmt inside the test itself? So I commented out everything I previously made and did just that. Performance-wise, everything seemed ... fine, actually.
The test fails ofc, because the package wasn't installed. But then I noticed something interesting:
{
# the package works when installed directly
environment.systemPackages = [
pkgs.pkgsCross.riscv64.felix86
];
}
Whereas:
{
# enabling the module, I get the previous issue with `backdoor.service`
programs.felix86.enable = true;
}
Investigating further, I tracked this back to the felix86 boot.binfmt.registrations. More importantly, the logs now actually print something useful:
machine # [ 6.846377] systemd[1]: lastlog2-import.service: Failed to spawn executor: Exec format error
machine # [ 6.852359] systemd[1]: lastlog2-import.service: Failed to spawn 'start' task: Exec format error
machine # [ 6.857462] firewall-start[607]: /nix/store/qhsrmq9784wvy0la4nr62dhgrjwn93sv-firewall-start/bin/firewall-start: line 105: /nix/store/s657hsrj1cknm7c4cbi87f6w7f3mlv11-iptables-1.8.11/bin/iptables: cannot execute binary file: Exec format error
Then everything clicked: my system is x86_64-linux and I'm using binfmt to emulate risc64-linux, but the module also enables emulation in the other direction, after which chaos ensues.
I already suspected this would happen, but I'm glad to actually confirm it. In a way, this kinda means the module's binfmt registration is working and I can just disable it for now in the test.
| 12:52:49 |
eljamm | *
You could I guess try building the driverInteractive version of the test, then inside the interactive prompt run machine.shell_interact() to get a prompt (assuming this doesn't require the backdoor service, which it might).
I tried that, but I wasn't able to do anything:
- shell_interact(): same issues and doesn't return a shell
- ssh backdoor: crashes the VM
It's also pretty slow.
I think that's because you're emulating RISC-V using binfmt emulation to run a riscv64-linux build of qEMU to run the test? That sounds to me like you have qEMU running under qEMU.
When I first read this comment, I thought so as well, but then it got me thinking: why not enable binfmt inside the test itself? So I commented out everything I previously made and did just that. Performance-wise, everything seemed ... fine, actually.
The test fails ofc, because the package wasn't installed. But then I noticed something interesting:
{
# the package works when installed directly
environment.systemPackages = [
pkgs.pkgsCross.riscv64.felix86
];
}
Whereas:
{
# enabling the module, I get the previous issue with `backdoor.service`
programs.felix86.enable = true;
}
Investigating further, I tracked this back to the felix86 boot.binfmt.registrations. More importantly, the logs now actually print something useful:
machine # [ 6.846377] systemd[1]: lastlog2-import.service: Failed to spawn executor: Exec format error
machine # [ 6.852359] systemd[1]: lastlog2-import.service: Failed to spawn 'start' task: Exec format error
machine # [ 6.857462] firewall-start[607]: /nix/store/qhsrmq9784wvy0la4nr62dhgrjwn93sv-firewall-start/bin/firewall-start: line 105: /nix/store/s657hsrj1cknm7c4cbi87f6w7f3mlv11-iptables-1.8.11/bin/iptables: cannot execute binary file: Exec format error
Then everything clicked: my system is x86_64-linux and I'm using binfmt to emulate risc64-linux, but the module also enables emulation in the other direction, after which chaos ensues.
I already suspected this would happen, but I'm glad to actually confirm it. In a way, this kinda means the module's binfmt registration is working and I can just disable it for now in the test.
| 12:54:51 |
| colemickens joined the room. | 19:36:38 |
colemickens | a huge amount of native riscv64-linux builds fail with > /nix/store/shkw4qm9qcw5sc5n1k5jznc83ny02r39-default-builder.sh: line 1: genericBuild: command not found ? bit surprising to me? | 19:36:44 |
colemickens | Not sure if I'm doing something very wrong or not... | 19:54:19 |
| Silvio joined the room. | 21:14:31 |
Alex | Which Nixpkgs commit? | 21:15:56 |
colemickens | I just tried nixos/nixpkgs/nixos-unstable#tmux | 21:28:00 |
colemickens | so 5b2c2d84341b2afb5647081c1386a80d7a8d8605 I suppose | 21:28:17 |
Alex | Try latest master. There is an important change not yet in unstable that might fix the problem. | 21:44:11 |
colemickens | okay, any chance you can link the PR so I can keep an eye on it on https://nixpk.gs? | 21:52:24 |
colemickens | thanks! | 21:52:26 |
Alex | It is https://github.com/NixOS/nixpkgs/pull/498702 (linked earlier by dramforever). | 21:55:06 |
colemickens | that appears to be in nixos-unstable though | 22:18:37 |
colemickens | https://nixpk.gs/pr-tracker.html?pr=498702 | 22:18:42 |
Alex | Oh maybe now it is. It wasn't when I checked yesterday. | 22:18:54 |