Create test suite based on qemu + qmp #45

Open
opened 2025-03-24 17:03:03 +00:00 by anton · 2 comments
Owner

This is to make it easier to test Airgap functionality.

Tools used:

This is to make it easier to test Airgap functionality. Tools used: * [qemu.qmp py lib](https://pypi.org/project/qemu.qmp/) * [qemu-ga](https://wiki.qemu.org/Features/GuestAgent) * [bats](https://github.com/bats-core/bats-core)
Author
Owner

Turns out we don't really need the py library, and bats is enough. Currently putting together a harness for running tests.

Turns out we don't really need the py library, and bats is enough. Currently putting together a harness for running tests.
Author
Owner

I had to modify the linux kernel for airgap os:

activated the following flags:

CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=y

modified config file (using menuconfig)

diff --git a/packages/user/linux/airgap.config b/packages/user/linux/airgap.config
index 520896d1..e6b696cc 100644
--- a/packages/user/linux/airgap.config
+++ b/packages/user/linux/airgap.config
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 6.7.0 Kernel Configuration
+# Linux/x86 6.6.0 Kernel Configuration
 #
 CONFIG_CC_VERSION_TEXT="gcc (Debian 12.2.0-14) 12.2.0"
 CONFIG_CC_IS_GCC=y
@@ -217,7 +217,6 @@ CONFIG_PERF_EVENTS=y
 # Kexec and crash features
 #
 # CONFIG_KEXEC is not set
-# CONFIG_KEXEC_FILE is not set
 # CONFIG_CRASH_DUMP is not set
 # end of Kexec and crash features
 # end of General setup
@@ -346,8 +345,6 @@ CONFIG_HZ_250=y
 # CONFIG_HZ_1000 is not set
 CONFIG_HZ=250
 CONFIG_ARCH_SUPPORTS_KEXEC=y
-CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y
-CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y
 CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y
 CONFIG_ARCH_SUPPORTS_KEXEC_SIG_FORCE=y
 CONFIG_ARCH_SUPPORTS_KEXEC_BZIMAGE_VERIFY_SIG=y
@@ -726,9 +723,9 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
 CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_MEMORY_BALLOON=y
 # CONFIG_COMPACTION is not set
-# CONFIG_PAGE_REPORTING is not set
-CONFIG_PCP_BATCH_SCALE_MAX=5
+CONFIG_PAGE_REPORTING=y
 CONFIG_PHYS_ADDR_T_64BIT=y
 # CONFIG_KSM is not set
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
@@ -982,11 +979,6 @@ CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
 # CONFIG_EFI_COCO_SECRET is not set
 # end of EFI (Extensible Firmware Interface) Support
 
-#
-# Qualcomm firmware drivers
-#
-# end of Qualcomm firmware drivers
-
 #
 # Tegra firmware driver
 #
@@ -1059,6 +1051,7 @@ CONFIG_TIFM_7XX1=y
 # EEPROM support
 #
 # CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_LEGACY is not set
 # CONFIG_EEPROM_MAX6875 is not set
 # CONFIG_EEPROM_93CX6 is not set
 # CONFIG_EEPROM_IDT_89HPESX is not set
@@ -1585,6 +1578,7 @@ CONFIG_POWER_SUPPLY=y
 # CONFIG_BATTERY_SBS is not set
 # CONFIG_CHARGER_SBS is not set
 # CONFIG_BATTERY_BQ27XXX is not set
+# CONFIG_BATTERY_MAX17040 is not set
 # CONFIG_BATTERY_MAX17042 is not set
 # CONFIG_CHARGER_MAX8903 is not set
 # CONFIG_CHARGER_LP8727 is not set
@@ -1596,7 +1590,6 @@ CONFIG_POWER_SUPPLY=y
 # CONFIG_BATTERY_RT5033 is not set
 # CONFIG_CHARGER_BD99954 is not set
 # CONFIG_BATTERY_UG3105 is not set
-# CONFIG_FUEL_GAUGE_MM8013 is not set
 # CONFIG_HWMON is not set
 CONFIG_THERMAL=y
 # CONFIG_THERMAL_NETLINK is not set
@@ -1816,7 +1809,6 @@ CONFIG_VIDEO_CAMERA_SENSOR=y
 # CONFIG_VIDEO_IMX355 is not set
 # CONFIG_VIDEO_MT9M001 is not set
 # CONFIG_VIDEO_MT9M111 is not set
-# CONFIG_VIDEO_MT9M114 is not set
 # CONFIG_VIDEO_MT9P031 is not set
 # CONFIG_VIDEO_MT9T112 is not set
 # CONFIG_VIDEO_MT9V011 is not set
@@ -2040,7 +2032,6 @@ CONFIG_FB_CFB_FILLRECT=y
 CONFIG_FB_CFB_COPYAREA=y
 CONFIG_FB_CFB_IMAGEBLIT=y
 # CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_IOMEM_FOPS=y
 CONFIG_FB_IOMEM_HELPERS=y
 # CONFIG_FB_MODE_HELPERS is not set
 # CONFIG_FB_TILEBLITTING is not set
@@ -2206,7 +2197,6 @@ CONFIG_USB_COMMON=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB=y
 CONFIG_USB_PCI=y
-CONFIG_USB_PCI_AMD=y
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
 #
@@ -2313,7 +2303,6 @@ CONFIG_USB_STORAGE=y
 # CONFIG_USB_IDMOUSE is not set
 # CONFIG_USB_APPLEDISPLAY is not set
 # CONFIG_APPLE_MFI_FASTCHARGE is not set
-# CONFIG_USB_LJCA is not set
 # CONFIG_USB_SISUSBVGA is not set
 # CONFIG_USB_LD is not set
 # CONFIG_USB_TRANCEVIBRATOR is not set
@@ -2352,7 +2341,6 @@ CONFIG_TYPEC=y
 # CONFIG_TYPEC_MUX_GPIO_SBU is not set
 # CONFIG_TYPEC_MUX_PI3USB30532 is not set
 # CONFIG_TYPEC_MUX_NB7VPQ904M is not set
-# CONFIG_TYPEC_MUX_PTN36502 is not set
 # end of USB Type-C Multiplexer/DeMultiplexer Switch support
 
 #
@@ -2414,7 +2402,14 @@ CONFIG_RTC_MC146818_LIB=y
 # CONFIG_VIRT_DRIVERS is not set
 CONFIG_VIRTIO_ANCHOR=y
 CONFIG_VIRTIO=y
-# CONFIG_VIRTIO_MENU is not set
+CONFIG_VIRTIO_PCI_LIB=y
+CONFIG_VIRTIO_PCI_LIB_LEGACY=y
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_BALLOON=y
+CONFIG_VIRTIO_INPUT=y
+# CONFIG_VIRTIO_MMIO is not set
 # CONFIG_VDPA is not set
 # CONFIG_VHOST_MENU is not set
 
@@ -2509,31 +2504,6 @@ CONFIG_PCC=y
 # end of Xilinx SoC drivers
 # end of SOC (System On Chip) specific Drivers
 
-#
-# PM Domains
-#
-
-#
-# Amlogic PM Domains
-#
-# end of Amlogic PM Domains
-
-#
-# Broadcom PM Domains
-#
-# end of Broadcom PM Domains
-
-#
-# i.MX PM Domains
-#
-# end of i.MX PM Domains
-
-#
-# Qualcomm PM Domains
-#
-# end of Qualcomm PM Domains
-# end of PM Domains
-
 # CONFIG_PM_DEVFREQ is not set
 # CONFIG_EXTCON is not set
 # CONFIG_MEMORY is not set
@@ -2630,7 +2600,6 @@ CONFIG_FS_MBCACHE=y
 # CONFIG_BTRFS_FS is not set
 # CONFIG_NILFS2_FS is not set
 # CONFIG_F2FS_FS is not set
-# CONFIG_BCACHEFS_FS is not set
 # CONFIG_EXPORTFS_BLOCK_OPS is not set
 CONFIG_FILE_LOCKING=y
 # CONFIG_FS_ENCRYPTION is not set
@@ -3071,11 +3040,8 @@ CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
 CONFIG_ARCH_HAS_COPY_MC=y
 CONFIG_ARCH_STACKWALK=y
 CONFIG_SBITMAP=y
-# CONFIG_LWQ_TEST is not set
 # end of Library routines
 
-CONFIG_FIRMWARE_TABLE=y
-
 #
 # Kernel hacking
 #
@@ -3237,6 +3203,8 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y
 # CONFIG_DEBUG_MAPLE_TREE is not set
 # end of Debug kernel data structures
 
+# CONFIG_DEBUG_CREDENTIALS is not set
+
 #
 # RCU Debugging
 #

I had to modify the linux kernel for airgap os: activated the following flags: ``` CONFIG_VIRTIO_MENU=y CONFIG_VIRTIO_PCI=y ``` modified config file (using `menuconfig`) ``` diff --git a/packages/user/linux/airgap.config b/packages/user/linux/airgap.config index 520896d1..e6b696cc 100644 --- a/packages/user/linux/airgap.config +++ b/packages/user/linux/airgap.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.7.0 Kernel Configuration +# Linux/x86 6.6.0 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Debian 12.2.0-14) 12.2.0" CONFIG_CC_IS_GCC=y @@ -217,7 +217,6 @@ CONFIG_PERF_EVENTS=y # Kexec and crash features # # CONFIG_KEXEC is not set -# CONFIG_KEXEC_FILE is not set # CONFIG_CRASH_DUMP is not set # end of Kexec and crash features # end of General setup @@ -346,8 +345,6 @@ CONFIG_HZ_250=y # CONFIG_HZ_1000 is not set CONFIG_HZ=250 CONFIG_ARCH_SUPPORTS_KEXEC=y -CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y -CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y CONFIG_ARCH_SUPPORTS_KEXEC_SIG_FORCE=y CONFIG_ARCH_SUPPORTS_KEXEC_BZIMAGE_VERIFY_SIG=y @@ -726,9 +723,9 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_MEMORY_BALLOON=y # CONFIG_COMPACTION is not set -# CONFIG_PAGE_REPORTING is not set -CONFIG_PCP_BATCH_SCALE_MAX=5 +CONFIG_PAGE_REPORTING=y CONFIG_PHYS_ADDR_T_64BIT=y # CONFIG_KSM is not set CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 @@ -982,11 +979,6 @@ CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y # CONFIG_EFI_COCO_SECRET is not set # end of EFI (Extensible Firmware Interface) Support -# -# Qualcomm firmware drivers -# -# end of Qualcomm firmware drivers - # # Tegra firmware driver # @@ -1059,6 +1051,7 @@ CONFIG_TIFM_7XX1=y # EEPROM support # # CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_LEGACY is not set # CONFIG_EEPROM_MAX6875 is not set # CONFIG_EEPROM_93CX6 is not set # CONFIG_EEPROM_IDT_89HPESX is not set @@ -1585,6 +1578,7 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_SBS is not set # CONFIG_CHARGER_SBS is not set # CONFIG_BATTERY_BQ27XXX is not set +# CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_LP8727 is not set @@ -1596,7 +1590,6 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_RT5033 is not set # CONFIG_CHARGER_BD99954 is not set # CONFIG_BATTERY_UG3105 is not set -# CONFIG_FUEL_GAUGE_MM8013 is not set # CONFIG_HWMON is not set CONFIG_THERMAL=y # CONFIG_THERMAL_NETLINK is not set @@ -1816,7 +1809,6 @@ CONFIG_VIDEO_CAMERA_SENSOR=y # CONFIG_VIDEO_IMX355 is not set # CONFIG_VIDEO_MT9M001 is not set # CONFIG_VIDEO_MT9M111 is not set -# CONFIG_VIDEO_MT9M114 is not set # CONFIG_VIDEO_MT9P031 is not set # CONFIG_VIDEO_MT9T112 is not set # CONFIG_VIDEO_MT9V011 is not set @@ -2040,7 +2032,6 @@ CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_FOREIGN_ENDIAN is not set -CONFIG_FB_IOMEM_FOPS=y CONFIG_FB_IOMEM_HELPERS=y # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set @@ -2206,7 +2197,6 @@ CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y CONFIG_USB_PCI=y -CONFIG_USB_PCI_AMD=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # @@ -2313,7 +2303,6 @@ CONFIG_USB_STORAGE=y # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_APPLEDISPLAY is not set # CONFIG_APPLE_MFI_FASTCHARGE is not set -# CONFIG_USB_LJCA is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set @@ -2352,7 +2341,6 @@ CONFIG_TYPEC=y # CONFIG_TYPEC_MUX_GPIO_SBU is not set # CONFIG_TYPEC_MUX_PI3USB30532 is not set # CONFIG_TYPEC_MUX_NB7VPQ904M is not set -# CONFIG_TYPEC_MUX_PTN36502 is not set # end of USB Type-C Multiplexer/DeMultiplexer Switch support # @@ -2414,7 +2402,14 @@ CONFIG_RTC_MC146818_LIB=y # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO_ANCHOR=y CONFIG_VIRTIO=y -# CONFIG_VIRTIO_MENU is not set +CONFIG_VIRTIO_PCI_LIB=y +CONFIG_VIRTIO_PCI_LIB_LEGACY=y +CONFIG_VIRTIO_MENU=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_INPUT=y +# CONFIG_VIRTIO_MMIO is not set # CONFIG_VDPA is not set # CONFIG_VHOST_MENU is not set @@ -2509,31 +2504,6 @@ CONFIG_PCC=y # end of Xilinx SoC drivers # end of SOC (System On Chip) specific Drivers -# -# PM Domains -# - -# -# Amlogic PM Domains -# -# end of Amlogic PM Domains - -# -# Broadcom PM Domains -# -# end of Broadcom PM Domains - -# -# i.MX PM Domains -# -# end of i.MX PM Domains - -# -# Qualcomm PM Domains -# -# end of Qualcomm PM Domains -# end of PM Domains - # CONFIG_PM_DEVFREQ is not set # CONFIG_EXTCON is not set # CONFIG_MEMORY is not set @@ -2630,7 +2600,6 @@ CONFIG_FS_MBCACHE=y # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set # CONFIG_F2FS_FS is not set -# CONFIG_BCACHEFS_FS is not set # CONFIG_EXPORTFS_BLOCK_OPS is not set CONFIG_FILE_LOCKING=y # CONFIG_FS_ENCRYPTION is not set @@ -3071,11 +3040,8 @@ CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y CONFIG_ARCH_HAS_COPY_MC=y CONFIG_ARCH_STACKWALK=y CONFIG_SBITMAP=y -# CONFIG_LWQ_TEST is not set # end of Library routines -CONFIG_FIRMWARE_TABLE=y - # # Kernel hacking # @@ -3237,6 +3203,8 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_DEBUG_MAPLE_TREE is not set # end of Debug kernel data structures +# CONFIG_DEBUG_CREDENTIALS is not set + # # RCU Debugging # ```
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: public/airgap#45
No description provided.