!xmLtiCaAJxfhURjrXl:matrix.org

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-v69 Servers

Load older messages


SenderMessageTime
25 Mar 2024
@joerg:thalheim.ioMic92 Steven Keuchel: Another question. One can download the edk2 firmware from here: https://github.com/sophgo/sophgo-edk2/actions/runs/8262095841 18:07:08
@joerg:thalheim.ioMic92Does it matter which device tree file I download that is mentioned here? https://github.com/sophgo/sophgo-edk218:07:31
@joerg:thalheim.ioMic92I mean what version of mango-milkv-pioneer.dtb I use?18:07:42
@joerg:thalheim.ioMic92Does this need to match up with the Linux kernel or is this used by the efi firmware?18:08:28
@alex:tunstall.xyzAlex
In reply to @joerg:thalheim.io
Does this need to match up with the Linux kernel or is this used by the efi firmware?
The 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
@joerg:thalheim.ioMic92Ok. Does this mean I can include a DTB from a recent linux kernel build when flashing the firmware?20:27:08
@alex:tunstall.xyzAlexThat 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
@skeuchel:matrix.orgSteven Keuchel 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
@skeuchel:matrix.orgSteven Keuchelin the past there have been incompatible updates, in particular for the serial console driver00:41:09
@skeuchel:matrix.orgSteven Keuchelthe dtb that was preflashed (at least on my board) is too outdated for recent kernels.00:42:14
@sorear:matrix.orgsorear 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
@sorear:matrix.orgsorearcross-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
@adam:robins.wtfadamcstephens 🐝 left the room.02:24:01
@dramforever:matrix.orgdramforever
In reply to @sorear:matrix.org
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!
oh 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
@dramforever:matrix.orgdramforeverin particular boot.shell_on_fail is probably the one you were looking for11:39:08
@sorear:matrix.orgsorearmaybe18:12:07
@sorear:matrix.orgsorearstill 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 secret18:17:29
28 Mar 2024
@hive:the-apothecary.clubtauok 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
@hive:the-apothecary.clubtau* 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
@alex:tunstall.xyzAlex
In reply to @hive:the-apothecary.club
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 ?

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
@alex:tunstall.xyzAlex

Your options are either:

  1. Find a pre-compiled RISC-V binary for GHC somewhere (e.g. Debian might have one).
  2. Use the unmerged PR to cross-compile a suitable bootstrap binary for GHC.
00:38:13
@hive:the-apothecary.clubtauso even with an emulated build, it still doesn't bootstrap successfully ?00:39:25
@alex:tunstall.xyzAlex(As the creator of the PR, I'm sorry I haven't yet found the time to get the PR merged.)00:39:27
@hive:the-apothecary.clubtaui understand00:39:40
@alex:tunstall.xyzAlex
In reply to @hive:the-apothecary.club
so even with an emulated build, it still doesn't bootstrap successfully ?

Nixpkgs doesn't even evaluate, because it doesn't know where to find the RISC-V bootstrap binary.

See for yourself:

nix-shell -p '(import <nixpkgs> { system = "riscv64-linux"; }).ghc'
00:41:36
@hive:the-apothecary.clubtauah ok00:41:47
@alex:tunstall.xyzAlex

When building GHC from source, here's what Nixpkgs does:

  1. It fetches an appropriate GHC bindist from haskell.org (none exists for RISC-V).
  2. It uses the bindist to compile GHC.

(It is also possible to use the bindist directly, but AFAIK users rarely do that.)

00:43:52
@alex:tunstall.xyzAlexIf 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
@hive:the-apothecary.clubtaui would love to help your PR get merged00:51:31
@hive:the-apothecary.clubtau changed their display name from Dagn Hive to tau.01:51:39

Show newer messages


Back to Room ListRoom Version: 10