diff options
author | John Estabrook <jestabro@vyos.io> | 2024-01-30 08:29:58 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-30 08:29:58 -0600 |
commit | 8bd6c24b50a34225763058c1daa28c8a8fe59098 (patch) | |
tree | 211c13a3df56abe246d556eaf04d8208d12b5af4 /python/vyos/system/grub_util.py | |
parent | 02f7f91e3937f1622ba055847aa96b207d5ba754 (diff) | |
parent | 287c3edbac7f308d3240bdec253f0e5103e8eca1 (diff) | |
download | vyos-1x-8bd6c24b50a34225763058c1daa28c8a8fe59098.tar.gz vyos-1x-8bd6c24b50a34225763058c1daa28c8a8fe59098.zip |
Merge pull request #2888 from vyos/mergify/bp/sagitta/pr-2886
system-option: T5979: Add configurable kernel boot options (backport #2886)
Diffstat (limited to 'python/vyos/system/grub_util.py')
-rw-r--r-- | python/vyos/system/grub_util.py | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/python/vyos/system/grub_util.py b/python/vyos/system/grub_util.py index 9e79d41d4..4a3d8795e 100644 --- a/python/vyos/system/grub_util.py +++ b/python/vyos/system/grub_util.py @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with this library. If not, see <http://www.gnu.org/licenses/>. -from vyos.system import disk, grub, compat +from vyos.system import disk, grub, image, compat @compat.grub_cfg_update def set_console_speed(console_speed: str, root_dir: str = '') -> None: @@ -29,6 +29,7 @@ def set_console_speed(console_speed: str, root_dir: str = '') -> None: grub.set_console_speed(console_speed, root_dir) +@image.if_not_live_boot def update_console_speed(console_speed: str, root_dir: str = '') -> None: """Update console_speed if different from current value""" @@ -40,3 +41,30 @@ def update_console_speed(console_speed: str, root_dir: str = '') -> None: console_speed_current = vars_current.get('console_speed', None) if console_speed != console_speed_current: set_console_speed(console_speed, root_dir) + +@compat.grub_cfg_update +def set_kernel_cmdline_options(cmdline_options: str, version: str = '', + root_dir: str = '') -> None: + """Write Kernel CLI cmdline options to GRUB configuration""" + if not root_dir: + root_dir = disk.find_persistence() + + if not version: + version = image.get_running_image() + + grub.set_kernel_cmdline_options(cmdline_options, version, root_dir) + +@image.if_not_live_boot +def update_kernel_cmdline_options(cmdline_options: str, + root_dir: str = '') -> None: + """Update Kernel custom cmdline options""" + if not root_dir: + root_dir = disk.find_persistence() + + version = image.get_running_image() + + boot_opts_current = grub.get_boot_opts(version, root_dir) + boot_opts_proposed = grub.BOOT_OPTS_STEM + f'{version} {cmdline_options}' + + if boot_opts_proposed != boot_opts_current: + set_kernel_cmdline_options(cmdline_options, version, root_dir) |