summaryrefslogtreecommitdiff
path: root/python/vyos/system/grub_util.py
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2024-01-30 08:29:58 -0600
committerGitHub <noreply@github.com>2024-01-30 08:29:58 -0600
commit8bd6c24b50a34225763058c1daa28c8a8fe59098 (patch)
tree211c13a3df56abe246d556eaf04d8208d12b5af4 /python/vyos/system/grub_util.py
parent02f7f91e3937f1622ba055847aa96b207d5ba754 (diff)
parent287c3edbac7f308d3240bdec253f0e5103e8eca1 (diff)
downloadvyos-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.py30
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)