-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Feedback: The bootloader is capable of booting NixOS 23.05 with mainline kernel 6.3.X+ #11
Comments
That might be of some interest for @inindev: I am attaching dmesg log shortly after booting NixOS. And a short excerpt which shows that it booted in UEFI mode with device tree passed to the kernel from the bootloader:
|
Is this a path issue? When I have a boot device, the binaries are in the root
The rk3568 is slow on a full kernel. The rk3588 (I use the rock-5b) does the same compile in 40 minutes. |
@inindev I am not using The generic idea is very similar to the one in the link you posted. |
@inindev A bit unrelated question: how is your experience with RK3588? Does it have good enough mainline kernel support to be usable? |
I run mainline (see my repo: https://github.com/inindev/rock-5b) which is basically identical to collabra's: https://gitlab.collabora.com/hardware-enablement/rockchip-3588/linux It is getting there but still rough. I have to use a USB SSD as the pcie nvme is not available yet. The command line is stable and great for fast native compiles. |
@inindev Thanks! I think I will not jump into buying the board yet, but it indeed looks very interesting and promising. |
I will post it here in case someone ends up at this page when searching for this information. Currently, at least starting from NixOS 24.11, it is possible to use the latest mainline NixOS kernel without recompilation. That is the |
I have been successfully running NixOS on my R5S board using the 1.0 release of the bootloader and the corresponding DTB in UEFI mode for a couple of weeks already (I have tested both GRUB and systemd-boot boot managers - both work just fine). I have
/boot
on an SD card used as EFI system partition (ESP), as having it on the eMMC did not work for some reason. The bootloader itself is installed on the eMMC, and thedtb
file is also loaded from a FAT32 partition on eMMC (the partition is marked for boot, too). The OS and most files are on an NVMe drive (SK Hynix P31 Gold, which I recommend for this board due to high power efficiency. Do use thermal pads anyway, though).See here for my adventures regarding that.
I should note that the kernel from the NixOS repo does not support PCI, HDMI, and LEDs on this chip with its default configuration, so the kernel needs to be recompiled with some kernel options changed. It is easy to do on NixOS, but it takes a lot of time (12-14 hours) on the board itself - so it is wise to "pin" the kernel packages version and update it from time to time for now. Still, it runs the mainline kernel which is a big win for these boards.
Thus, the main takeaway snippet (I think I should try to upstream some of these kernel configuration options to avoid kernel recompilations):
Bootstrapping the installation required building a custom UEFI install image for me using
nixos-generators
project (it is easier to do that when u-boot and the DTB file are already on the board's eMMC). You will need the snippet above to build a usable installation image, too.Another takeaway is to run
irqbalance --oneshot
on startup to spread interrupts processing between cores, otherwise it is too easy to overwhelm the first core with interrupts, especially on high network interfaces activity (useirqtop
for monitoring).On NixOS this can be achieved using this snippet:
Additionally to the above, I have the following in my configuration (one may, or may not need that depending on the needs):
I have been running the device as LXC/libvirt/Docker host for weeks now without any issues. Thank you @inindev for your hard work! You made it possible!
The text was updated successfully, but these errors were encountered: