4 ms·
That "occasional weird problem" is because systemd is not designed to be used with other software. While you technically still have the choice to roll your own
by blueflow 2y ago
That "occasional weird problem" is because systemd is not designed to be used with other software. While you technically still have the choice to roll your own non-systemd initramfs, it will be an uphill battle.
- noncoml 2y agoNot uphill at all; try buildroot
- jcalvinowens 2y ago> That "occasional weird problem" is because systemd is not designed to be used with other software. That's not true, systemd has an explicitly documented and supported initrd interface: https://systemd.io/INITRD_INTERFACE/ https://systemd.io/INITRD_INTERFACE/ It's actually really easy, there's rarely a reason for the initrd to be more complex than a single 50-line busybox script on an embedded device with built-in drivers.
- blueflow 2y ago"really easy" except for the hotplug events that don't get to systemd and cause your problem.
- jcalvinowens 2y agoI got an immediate answer with a solution from the upstream developer when I asked about it: I can't imagine how that could have been easier to solve. And it was also trivial to hack around by leaving the entry out of fstab and mounting it in a script.
- blucaz 2y agoDebian, Ubuntu and all derivatives thereof use initramfs-tools, which does not use systemd in the initrd, and things work just fine
- bmicraft 2y agoUbuntu is literally trying to replace it with dracut as we speak.
- helloka 2y agohttps://dracut-ng.github.io/dracut-ng/developer/compatability.html#_dependencies https://dracut-ng.github.io/dracut-ng/developer/compatabilit... Dracut is used both in Void Linux and on Alpine without systemd and with busybox. It even runs continuous integration with musl based containers.
- blueflow 2y agoAlpine uses mkinitfs per default, tho.
- binkHN 2y agoNot an uphill battle at all; Void Linux does this by default and has for many years.
- blueflow 2y agoVoid Linux dropped systemd because it wouldn't work with a different libc than glibc. Which i would add as next point in my systemd lock-in list.
- chasil 2y agoThe embedded people will naturally look at busybox. I saw it running on a credit card scanner at Old Navy a few years ago. It has an init: $ /home/busybox-1.35 init --help BusyBox v1.35.0 (2022-01-17 19:57:02 CET) multi-call binary. Usage: init Init is the first process started during boot. It never exits. It (re)spawns children according to /etc/inittab. Signals: HUP: reload /etc/inittab TSTP: stop respawning until CONT QUIT: re-exec another init USR1/TERM/USR2/INT: run halt/reboot/poweroff/Ctrl-Alt-Del script On an embedded system, that will be a strong contender for pid 1.
- blueflow 2y agoThis is what Alpine Linux use, Alpine also uses OpenRC for service startup.