Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option to bypass default hardcoded kernelopts #4468

Closed
marmarek opened this issue Nov 3, 2018 · 2 comments
Closed

Add option to bypass default hardcoded kernelopts #4468

marmarek opened this issue Nov 3, 2018 · 2 comments
Labels
C: core P: minor Priority: minor. The lowest priority, below "default." r4.0-dom0-stable T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality.

Comments

@marmarek
Copy link
Member

marmarek commented Nov 3, 2018

By default VM's kernelopts are only added to default hardcoded values. Right now, for Qubes 4.0, this hardcoded part is:

root=/dev/mapper/dmroot ro nomodeset console=hvc0 rd_NO_PLYMOUTH rd.plymouth=0 plymouth.enable=0

This is useful for Linux VMs (especially root=/dev/mapper/dmroot part), but for others it is either useless (Windows), or even harmful (Mirage OS). In some cases, even for Linux it needs some adjustments (nomodeset is harmful for GPU passthrough).

So, it would be useful to have an option to not prepend those options and use only what's set in kernelopts property. But it needs to be done carefully to not break existing installations - if in any case, root=/dev/mapper/dmroot (or other) would be unexpectedly removed, VM will not boot.
I think this can be done with no-default-kernelopts qvm-feature, which would be disabled by default.
Alternative approach would be to remove this hardcoded value from libvirt xml template and move to default kernelopts value, but that is more fragile:

  • existing configurations with modified kernelopts will need to be converted
  • such conversion needs to be done only once!
  • kernelopts value will be quite long and easy to mess it up (either using qvm-prefs, or GUI settings, as it almost never will fit in that window)
@marmarek marmarek added T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality. C: core P: minor Priority: minor. The lowest priority, below "default." labels Nov 3, 2018
@andrewdavidwong andrewdavidwong added this to the Release 4.1 milestone Nov 3, 2018
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2018
Add 'no-default-kernelopts' feature to skip default hardcoded
Linux-specific kernelopts.
This is especially useful for non-Linux VMs (including Mirage OS).

Fixes QubesOS/qubes-issues#4468
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 4, 2018
Add 'no-default-kernelopts' feature to skip default hardcoded
Linux-specific kernelopts.
This is especially useful for non-Linux VMs (including Mirage OS).

Fixes QubesOS/qubes-issues#4468
marmarek added a commit to marmarek/qubes-core-admin that referenced this issue Nov 15, 2018
Add 'no-default-kernelopts' feature to skip default hardcoded
Linux-specific kernelopts.
This is especially useful for non-Linux VMs (including Mirage OS).

Fixes QubesOS/qubes-issues#4468
@qubesos-bot
Copy link

Automated announcement from builder-github

The package qubes-core-dom0-4.0.35-1.fc25 has been pushed to the r4.0 testing repository for dom0.
To test this update, please install it with the following command:

sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing

Changes included in this update

@qubesos-bot
Copy link

Automated announcement from builder-github

The package qubes-core-dom0-4.0.37-1.fc25 has been pushed to the r4.0 stable repository for dom0.
To install this update, please use the standard update command:

sudo qubes-dom0-update

Or update dom0 via Qubes Manager.

Changes included in this update

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: core P: minor Priority: minor. The lowest priority, below "default." r4.0-dom0-stable T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality.
Projects
None yet
Development

No branches or pull requests

3 participants