Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ and this project adheres to

### Fixed

- #\[[5074](https://github.com/firecracker-microvm/firecracker/pull/5074)\] Fix
the `SendCtrlAltDel` command not working for ACPI-enabled guest kernels, by
dropping the i8042.nopnp argument from the default kernel command line
Firecracker constructs.

## [1.11.0]

### Added
Expand Down
5 changes: 2 additions & 3 deletions src/vmm/src/vmm_config/boot_source.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,9 @@ use serde::{Deserialize, Serialize};
/// - `8250.nr_uarts=0` disable 8250 serial interface;
/// - `i8042.noaux` do not probe the i8042 controller for an attached mouse (save boot time);
/// - `i8042.nomux` do not probe i8042 for a multiplexing controller (save boot time);
/// - `i8042.nopnp` do not use ACPIPnP to discover KBD/AUX controllers (save boot time);
/// - `i8042.dumbkbd` do not attempt to control kbd state via the i8042 (save boot time).
pub const DEFAULT_KERNEL_CMDLINE: &str = "reboot=k panic=1 pci=off nomodule 8250.nr_uarts=0 \
i8042.noaux i8042.nomux i8042.nopnp i8042.dumbkbd";
pub const DEFAULT_KERNEL_CMDLINE: &str =
"reboot=k panic=1 pci=off nomodule 8250.nr_uarts=0 i8042.noaux i8042.nomux i8042.dumbkbd";

/// Strongly typed data structure used to configure the boot source of the
/// microvm.
Expand Down
14 changes: 2 additions & 12 deletions tests/integration_tests/functional/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -767,24 +767,14 @@ def test_send_ctrl_alt_del(uvm_plain_any):
test_microvm.spawn()

test_microvm.basic_config()
test_microvm.add_net_iface()
test_microvm.start()

# Wait around for the guest to boot up and initialize the user space
time.sleep(2)

test_microvm.api.actions.put(action_type="SendCtrlAltDel")

firecracker_pid = test_microvm.firecracker_pid

# If everything goes as expected, the guest OS will issue a reboot,
# causing Firecracker to exit.
# waitpid should block until the Firecracker process has exited. If
# it has already exited by the time we call waitpid, WNOHANG causes
# waitpid to raise a ChildProcessError exception.
try:
os.waitpid(firecracker_pid, os.WNOHANG)
except ChildProcessError:
pass
test_microvm.mark_killed()


def _drive_patch(test_microvm, io_engine):
Expand Down