NixOS RISC-V | 234 Members | |
| NixOS on RISC-V https://wiki.nixos.org/wiki/RISC-V https://pad.lassul.us/NixOS-riscv64-linux https://github.com/orgs/NixOS/teams/risc-v | 69 Servers |
| Sender | Message | Time |
|---|---|---|
| 25 Mar 2024 | ||
| Steven Keuchel: Another question. One can download the edk2 firmware from here: https://github.com/sophgo/sophgo-edk2/actions/runs/8262095841 | 18:07:08 | |
| Does it matter which device tree file I download that is mentioned here? https://github.com/sophgo/sophgo-edk2 | 18:07:31 | |
| I mean what version of mango-milkv-pioneer.dtb I use? | 18:07:42 | |
| Does this need to match up with the Linux kernel or is this used by the efi firmware? | 18:08:28 | |
In reply to @joerg:thalheim.ioThe Linux kernel tree has its own DTBs, but IIRC it can use the DTB provided by EFI, so doesn't it depend on what parameters you're passing the kernel? | 20:26:04 | |
| Ok. Does this mean I can include a DTB from a recent linux kernel build when flashing the firmware? | 20:27:08 | |
| That might fix issues that are caused by bugs in the DTB, but I assume the older kernel will ignore any devices it doesn't recognise (or functionality might be reduced if the DTB has a fallback driver). | 20:32:15 | |
| 26 Mar 2024 | ||
| Mic92: I find that in the recent revisions of the 6.1, 6.6 and 6.8 branches of the pioneer you can simply use any of the dtbs with any of the kernels. | 00:40:53 | |
| in the past there have been incompatible updates, in particular for the serial console driver | 00:41:09 | |
| the dtb that was preflashed (at least on my board) is too outdated for recent kernels. | 00:42:14 | |
how do flakes with packages (not overlays) work when you're building for a system that doesn't have a short name? e.g. { config = "riscv64-unknown-linux-gnu"; gcc = { arch = "rv64imac"; abi = "lp64"; }; } | 23:34:30 | |
| 27 Mar 2024 | ||
| cross-compiled nixos using a mix of instructions from yesteday. built ubootQemuRiscv64SMode and used that with qemu to boot it. got halfway into stage 1 before failing to mount the root device. hacked extlinux.conf to add rdinit=/nix/store/.../bin/hush (do people care about the <100 bytes that adding a /bin/sh symlink to the initramfs would add?) allowed me to debug that, discovered that the pci_host_generic module was missing. added to boot.initrd.availableKernelModules. failed to log in. added a users block. success! | 02:22:02 | |
| 02:24:01 | ||
In reply to @sorear:matrix.orgoh nice that you figured most of this out, for future reference there are a bunch of options that the initrd script takes to help debug with problems https://nixos.org/manual/nixos/stable/#sec-boot-problems | 11:38:50 | |
| in particular boot.shell_on_fail is probably the one you were looking for | 11:39:08 | |
| maybe | 18:12:07 | |
| still thinking the symlink would be useful (it was surprising to me that there wasn't a symlink, given that nixos installs always have one); doesn't affect security since the shell path isn't secret | 18:17:29 | |
| 28 Mar 2024 | ||
| ok so as far as i understand it, ghc doesn't support cross-compilation, ( pending PR merge ), so you need to do an emulated build, but also as far as i can tell, flakes doesn't support doing an emulated build ?? | 00:36:10 | |
| * ok so as far as i understand it, ghc doesn't support cross-compilation, ( pending PR merge ), so you need to do an emulated build, but also as far as i can tell, flakes doesn't support doing an emulated build ? | 00:36:20 | |
In reply to @hive:the-apothecary.club Flakes support binfmt emulation. The issue is that Nixpkgs doesn't know how to bootstrap GHC on RISC-V, because it doesn't know where to get a binary for GHC. | 00:36:58 | |
| Your options are either:
| 00:38:13 | |
| so even with an emulated build, it still doesn't bootstrap successfully ? | 00:39:25 | |
| (As the creator of the PR, I'm sorry I haven't yet found the time to get the PR merged.) | 00:39:27 | |
| i understand | 00:39:40 | |
In reply to @hive:the-apothecary.club Nixpkgs doesn't even evaluate, because it doesn't know where to find the RISC-V bootstrap binary. See for yourself: | 00:41:36 | |
| ah ok | 00:41:47 | |
| When building GHC from source, here's what Nixpkgs does:
(It is also possible to use the bindist directly, but AFAIK users rarely do that.) | 00:43:52 | |
| If you need help getting GHC working on RISC-V or you want to improve on my GHC cross-compilation PR, feel free to ask. | 00:45:47 | |
| i would love to help your PR get merged | 00:51:31 | |
| 01:51:39 | ||