summaryrefslogtreecommitdiff
path: root/src/conf_mode
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2025-04-15 20:47:09 +0200
committerChristian Breunig <christian@breunig.cc>2025-04-15 20:55:03 +0200
commit3fe5f8fb95a444ecb5b8489736a2e33419746f93 (patch)
tree99f41e42672fba3d94b3eaf25196ee7ce8c3d530 /src/conf_mode
parenta0861b6b44c3a7cfbbefa2e8187443f06028a360 (diff)
downloadvyos-1x-3fe5f8fb95a444ecb5b8489736a2e33419746f93.tar.gz
vyos-1x-3fe5f8fb95a444ecb5b8489736a2e33419746f93.zip
grub: T7327: honor "system option kernel" settings during image upgrade
When performing an image upgrade and Linux Kernel command-line option that should be passed via GRUB to the Linux Kernel are missing on the first boot. This is because when generating the GRUB command-line via the op-mode scripts the CLI nodes defining the options are not honored. This commit re-implements the code-path in op-mode which generates the strings passed via GRUB to the Linux Kernel command-line. NOTE: If (for a yet unknown reason) a Kernel command-line option string changes during a major - or minor - upgrade of the Linux Kernel, we will need to adapt that logic and possibly call a helper from within the NEW updated image rootfs. Thus we can ship future information back into the past like the "Grays Sports Almanac" from Back to the Future Part II.
Diffstat (limited to 'src/conf_mode')
-rwxr-xr-xsrc/conf_mode/system_option.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/conf_mode/system_option.py b/src/conf_mode/system_option.py
index 064a1aa91..b45a9d8a6 100755
--- a/src/conf_mode/system_option.py
+++ b/src/conf_mode/system_option.py
@@ -122,6 +122,10 @@ def generate(options):
render(ssh_config, 'system/ssh_config.j2', options)
render(usb_autosuspend, 'system/40_usb_autosuspend.j2', options)
+ # XXX: This code path and if statements must be kept in sync with the Kernel
+ # option handling in image_installer.py:get_cli_kernel_options(). This
+ # occurance is used for having the appropriate options passed to GRUB
+ # when re-configuring options on the CLI.
cmdline_options = []
if 'kernel' in options:
if 'disable_mitigations' in options['kernel']:
@@ -131,8 +135,7 @@ def generate(options):
if 'amd_pstate_driver' in options['kernel']:
mode = options['kernel']['amd_pstate_driver']
cmdline_options.append(
- f'initcall_blacklist=acpi_cpufreq_init amd_pstate={mode}'
- )
+ f'initcall_blacklist=acpi_cpufreq_init amd_pstate={mode}')
grub_util.update_kernel_cmdline_options(' '.join(cmdline_options))
return None