summaryrefslogtreecommitdiff
path: root/python/vyos/system/grub_util.py
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2024-01-22 21:01:00 -0600
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2024-01-23 19:11:30 +0000
commit0cf188d74f145cdd859bb1495a2b02f16fca6298 (patch)
tree5f0bcfebfc4f1745ece8e3f7935818128bbaf98e /python/vyos/system/grub_util.py
parent4276133800e9aa5d5fb5a17faad77b185a68c7c3 (diff)
downloadvyos-1x-0cf188d74f145cdd859bb1495a2b02f16fca6298.tar.gz
vyos-1x-0cf188d74f145cdd859bb1495a2b02f16fca6298.zip
image-tools: T5980: add support for configurable kernel boot options
(cherry picked from commit 1b1569d5b88a20994fc65fd529f8103db371bf3f)
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)