Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sys-kernel/bootengine: fix systemd-vconsole-setup for systemd 255 #1684

Closed
wants to merge 2 commits into from

Conversation

ader1990
Copy link
Contributor

Use #1679 for fixing the upcoming systemd 255 upgrade.

Required-by: #1679

  • Changelog entries added in the respective changelog/ directory (user-facing change, bug fix, security fix, update)
  • Inspected CI output for image differences: /boot and /usr size, packages, list files for any missing binaries, kernel modules, config files, kernel modules, etc.

@ader1990
Copy link
Contributor Author

Firstly, let's run the CI to get the size of the kernel / initrd / image without any changes. To be logged here.
Secondly, let's run the CI to get the size of the kernel / initrd / image with the dracut i18n. To be logged here.
Thirdly, if the size increase is beyond an acceptable threshold, to create a special dracut module in bootengine that has only the loadkeys binary, run the CI. To be logged here.

Copy link

github-actions bot commented Feb 21, 2024

Use PR flatcar/bootengine#87

Signed-off-by: Adrian Vladu <avladu@cloudbasesolutions.com>
@ader1990
Copy link
Contributor Author

size of the kernel / initrd / image without any changes vanilla

@ader1990
Copy link
Contributor Author

ader1990 commented Feb 21, 2024

size of the kernel / initrd / image with dracut module i18n
i8n

Difference versus vanilla of the vmlinuz is 1MB increase.

@pothos
Copy link
Member

pothos commented Feb 21, 2024

Thanks for the numbers, 1MB is quite a lot for the initrd - we reduced the initrd size with many tricks already and I think we need one more here by only inserting the required binary instead of the whole internationalization module.

@ader1990
Copy link
Contributor Author

Thanks for the numbers, 1MB is quite a lot for the initrd - we reduced the initrd size with many tricks already and I think we need one more here by only inserting the required binary instead of the whole internationalization module.

I looked on the systemd / dracut issues related to this topic, and the amount of discussion / code change is quite high -> systemd/systemd#6689, systemd/systemd#15479, systemd/systemd@e019ea7, systemd/systemd@a6f3a7e, dracutdevs/dracut#797.

If we go with a non-standard way, we will probably open the gates for random bugs / behaviour during the initrd stage.

Testing under way for the non-standard implementation: ader1990/bootengine@a92ce96

@ader1990
Copy link
Contributor Author

Thanks for the numbers, 1MB is quite a lot for the initrd - we reduced the initrd size with many tricks already and I think we need one more here by only inserting the required binary instead of the whole internationalization module.

I looked on the systemd / dracut issues related to this topic, and the amount of discussion / code change is quite high -> systemd/systemd#6689, systemd/systemd#15479, systemd/systemd@e019ea7, systemd/systemd@a6f3a7e, dracutdevs/dracut#797.

If we go with a non-standard way, we will probably open the gates for random bugs / behaviour during the initrd stage.

Testing under way for the non-standard implementation: ader1990/bootengine@a92ce96

I tried with the stripped down version of the i18n dracut module, using this HEAD ader1990/bootengine@9f37ee5. The loadkeys binary was succesfully installed in the initrd, but the execution of the binary failed with localhost systemd-vconsole-setup[254]: loadkeys: Unable to open file: us: No such file or directory. Which means basically that the definition of the https://github.com/dracutdevs/dracut/blob/master/modules.d/10i18n/module-setup.sh has to match really closely with the stripped down version, leading to basically reusing the same dracut module but with the overhead in the future of maintaining it.

At this moment, I can only suggest to use the upstream version of the dracut module, the one that is properly tested to work with systemd.

@ader1990
Copy link
Contributor Author

Closing PR, systemd 255 will use the i18n dracut module directly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants