diff options
-rwxr-xr-x | config-db/slxconfig-demuxer | 3 | ||||
-rw-r--r-- | initramfs/OpenSLX/MakeInitRamFS/Engine.pm | 7 | ||||
-rw-r--r-- | os-plugins/OpenSLX/OSPlugin/Base.pm | 10 | ||||
-rw-r--r-- | os-plugins/plugins/theme/OpenSLX/OSPlugin/theme.pm | 22 |
4 files changed, 42 insertions, 0 deletions
diff --git a/config-db/slxconfig-demuxer b/config-db/slxconfig-demuxer index e4b418fa..c25153f1 100755 --- a/config-db/slxconfig-demuxer +++ b/config-db/slxconfig-demuxer @@ -540,6 +540,9 @@ sub makeInitRamFS my $makeInitRamFSEngine = OpenSLX::MakeInitRamFS::Engine->new($params); $makeInitRamFSEngine->execute($option{dryRun}); + # copy back kernel-params, as they might have been changed (by plugins) + $info->{kernel_params} = $makeInitRamFSEngine->{'kernel-params'}; + return; } diff --git a/initramfs/OpenSLX/MakeInitRamFS/Engine.pm b/initramfs/OpenSLX/MakeInitRamFS/Engine.pm index efbcb585..cbd5ff5a 100644 --- a/initramfs/OpenSLX/MakeInitRamFS/Engine.pm +++ b/initramfs/OpenSLX/MakeInitRamFS/Engine.pm @@ -687,6 +687,13 @@ sub _handlePlugins } my $plugin = OpenSLX::OSPlugin::Roster->getPlugin($pluginName); next if !$plugin; + my @suggestedKernelParams + = $plugin->suggestAdditionalKernelParams($self->{'kernel-params'}); + if (@suggestedKernelParams) { + $self->{'kernel-params'} + .= ($self->{'kernel-params'} ? ' ' : '') + . join ' ', @suggestedKernelParams; + } $plugin->copyRequiredFilesIntoInitramfs( $self->{'build-path'}, $self->{attrs}, $self ); diff --git a/os-plugins/OpenSLX/OSPlugin/Base.pm b/os-plugins/OpenSLX/OSPlugin/Base.pm index 4b370375..0f601704 100644 --- a/os-plugins/OpenSLX/OSPlugin/Base.pm +++ b/os-plugins/OpenSLX/OSPlugin/Base.pm @@ -129,6 +129,16 @@ sub postRemovalPhase my $pluginTempPath = shift; } +sub suggestAdditionalKernelParams +{ # called by config-demuxer in order to give the plugin a chance to add + # any kernel params it requires. + # In order to do so, the plugin should analyse the contents of the + # given string ('kernel-params') and return a list of additional params + # that it would like to see added. + my $self = shift; + my $kernelParams = shift; +} + sub copyRequiredFilesIntoInitramfs { # called by config-demuxer in order to give the plugin a chance to copy # all required files from the vendor-OS into the initramfs. diff --git a/os-plugins/plugins/theme/OpenSLX/OSPlugin/theme.pm b/os-plugins/plugins/theme/OpenSLX/OSPlugin/theme.pm index 7de608af..a00cd8a2 100644 --- a/os-plugins/plugins/theme/OpenSLX/OSPlugin/theme.pm +++ b/os-plugins/plugins/theme/OpenSLX/OSPlugin/theme.pm @@ -111,6 +111,28 @@ sub getAttrInfo }; } +sub suggestAdditionalKernelParams +{ + my $self = shift; + my $kernelParams = shift; + + my @suggestedParams; + + # add vga=0x317 unless explicit vga-mode is already set + if ($kernelParams !~ m{\bvga=}) { + vlog(1, "theme-plugin: adding kernel-param vga=0x317"); + push @suggestedParams, 'vga=0x317'; + } + + # add quiet, if not already set + if ($kernelParams !~ m{\bquiet\b}) { + vlog(1, "theme-plugin: adding kernel-param quiet"); + push @suggestedParams, 'quiet'; + } + + return @suggestedParams; +} + sub copyRequiredFilesIntoInitramfs { my $self = shift; |