Cross compiling a kernel takes minutes, deploying the thing on the target machine takes an hour. Most of the time is spent generating the initramfs. Both the build host and the target run Fedora which uses dracut to that end.

It’d be great to build the initramfs along with the kernel. Is that possible with dracut, and if so, how?

EDIT in 2023: Looks like Fedora’s UKI infrastructure will provide this kind of prebuilt, host-independent initramfs at some point in the future, probably even for ARM64 which is the platform on which this question arose in the first place.

  • 1
    Probably not in a reliable way. If your rebuilds are taking an hour, though, you're doing something wrong. Are you rebuilding them in serial or parallel?
    – Bratchley
    Aug 4, 2016 at 15:55
  • If you know your hardware and platform configuration is pretty much uniform across all the nodes, you might just push that down as a separate rpm
    – Bratchley
    Aug 4, 2016 at 15:57
  • @Bratchley the rebuilds are slow due to the system running on an SD card and /lib/modules/$(uname -r) weighing 1.3 GB (the config should be as close to stock Fedora armv7hl). And it’s not parallel on a 1-core machine ;)
    – phg
    Aug 4, 2016 at 16:00
  • If the hardware and config are uniform then I would just build it once and deploy it as an rpm. Possibly including it in your kernel rpm.
    – Bratchley
    Aug 4, 2016 at 16:01
  • @Bratchley it’s not the same kernel each time: different configs, different git revision, …
    – phg
    Aug 5, 2016 at 7:05


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.