NixOS RISC-V | 238 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 | ||
| if you think the directions you just gave me are intelligible, you understand it much better than i do | 16:12:44 | |
| Do ask then :) | 16:13:39 | |
| I have a working setup based on this with custom uboot and kernel for real hw, also a working qemu setup for userspace testing | 16:14:56 | |
| C908 w/ RVV 1.0. Working on new kernel at the moment. | 16:16:53 | |
In reply to @sorear:matrix.orgOkay this might be helpful if you don't understand flakes... Use this to understand how you can cross compile an armv7l sd-image from any host arch, but do it for riscv64. Then, replace sd-image-aarch64.nix with sd-image-riscv64-qemu.nix. | 16:17:07 | |
In reply to @thefossguy:matrix.orgthis looks very helpful, it was extremely unclear from the nixos manual whether it was possible to override anything in the standard configurations | 16:22:04 | |
In reply to @root:0x1.stI may ask about this later if any of it is nontrivial for nix-language or nixpkgs reasons | 16:22:50 | |
| fyi, I may not reply after a few hours since it's 22:00 here; will reply to your questions (if any) in the morning | 16:23:22 | |
| 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 | |