| 29 Jan 2025 |
laurynasp | * What i can share is that my aim is to have as automated setup as i can, hence I am using nixos to run ha in declarative way, and for that reason i picked raspbery pi 4B because it is most compatible with nixos. (I am using 8GB rather than 4GB but that is an orthoganal matter).
However, for my aim of automated/scripted/declarative setup of ha, I have been rather disappoitned, because I was not able to find an easy way to automated onboarding, but that is home-assitant's issue, not nixos modules issue. Still, ha module on nixos on pi 4B is the best i was able discover so far.
| 13:58:49 |
@hexa:lossy.network | 4 vs 8 GB does matter, if you want the rpi to evaluate and rebuild itself | 14:00:23 |
laurynasp | * What i can share is that my aim is to have as automated setup as i can, hence I am using nixos to run ha in declarative way, and for that reason i picked raspbery pi 4B because it is most compatible with nixos. (I am using 8GB rather than 4GB but that is an orthoganal matter).
However, for my aim of automated/scripted/declarative setup of ha, I have been rather disappoitned, because I was not able to find an easy way to automated onboarding, but that is home-assitant's issue, not nixos modules issue. Still, ha module on nixos on pi 4B is the best i was able discover so far.
My guess is that most ppl workaround to "redeployment" of the configs state is via restoring backups
| 14:00:25 |
@hexa:lossy.network | * 4 vs 8 GB does matter, if you want the rpi to evaluate and rebuild itself … aka do automatic upgrades | 14:00:42 |
laurynasp | Good point! Hexa, if deploymetns are build remotely, i.e.g by running nixos-rebuild --target-host user@$NIXOS_INSTALL_TARGET_IP switch --flake .#ha-rpi --use-remote-sudo on my main machine, would 4GB still be an issue? | 14:03:08 |
@hexa:lossy.network | probably not | 14:03:26 |
@hexa:lossy.network | but remember that you need an arm64 builder for that, or do cross builds exclusively | 14:03:46 |
laurynasp | aha, yet another thing that I forgot to document in my setup - ta | 14:04:33 |
kdn | right... I forgot that I wanted to set up mac mini for that... | 14:15:08 |
kdn | would cross-compilation from x86 to rpi4 be significantly longer (I've quite beefy desktop), do you have any materials on how to do that? | 14:16:07 |
@hexa:lossy.network | I haven't | 14:16:56 |
laurynasp | Do you mean "x86_64-linux" or 32-bit system?
My main machine is "x86_64-linux", and on this machine I had add boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; to the config in order to be able to cross-compile for raspberry pi.
In terms of time, first time might take a while (depending on your config could be 10min or whatever), but redeploymetns usually take seconds to a minute, as long as changes don't require the whole univers to be rebuilt.
If it interests you, let me know, and I can share more details
| 15:15:06 |
@hexa:lossy.network | that is not cross, that is emulation | 15:15:27 |
laurynasp | oh... okay | 15:15:42 |
laurynasp | whats the difference? | 15:15:53 |
@hexa:lossy.network | emulation passes native instructions through qemu | 15:16:14 |
@hexa:lossy.network | cross instructs the compiler to compile for another target | 15:16:25 |
@hexa:lossy.network | https://wiki.nixos.org/wiki/Cross_Compiling | 15:16:39 |
laurynasp | I mean, ultimately that does create binaries locally, and once they are copied to pi, the pi can run | 15:16:43 |
@hexa:lossy.network | setting local and cross systems is the way for that | 15:16:52 |
@hexa:lossy.network | and it is much, much faster than emulation | 15:17:03 |
laurynasp | So it means, that the end results (i.e. binaries) are the same, but the whole process is faster compared to emulation.
Or does it mean that the actual binaries produces via emulation would run slower on pi, because those binaries are not as efficient? | 15:19:24 |
mjm | The former | 15:20:01 |
@hexa:lossy.network | they are not the same derivation, so you can't mix and match AIUI | 15:23:04 |
@hexa:lossy.network | but the result of both are native to the target platform | 15:23:14 |
laurynasp | cool, I will put corss-compilation on my to do list, the faster and the cleaner the process, the better. So far, though, the time that it takes to redeploy new system to pi using nixos-rebuild --target-host user@$NIXOS_INSTALL_TARGET_IP switch --flake .#ha-rpi --use-remote-sudo hasn't been a pain. | 15:24:08 |
dotlambda | In reply to @hexa:lossy.network and it is much, much faster than emulation I think that speed difference is negated by the fact that there aren't as many cross compiled packages in the cache | 17:11:26 |
dotlambda | In reply to @robert:funklause.de I've decided against blueprints written in Nix for now: https://github.com/NixOS/nixpkgs/pull/377688 Should I rather turn this into a more generic option called e.g. extraConfigFiles that allows adding files anywhere below configDir? | 17:12:44 |
| 30 Jan 2025 |
| Kira joined the room. | 04:26:07 |
K900 | OK what the hell | 15:28:03 |