# Configuration for building a coreboot ROM that works in # the qemu emulator in graphical mode thanks to FBWhiptail # This version requires a supported HOTP Security dongle (Nitrokey Pro/Storage or Librem Key) # # TPM can be used with a qemu software TPM (TIS, 2.0). export CONFIG_COREBOOT=y export CONFIG_COREBOOT_VERSION=4.22.01 export CONFIG_LINUX_VERSION=5.10.5 CONFIG_COREBOOT_CONFIG=config/coreboot-qemu-tpm2.config CONFIG_LINUX_CONFIG=config/linux-qemu.config #Enable only one RESTRICTED/BASIC boot modes below to test them manually (we cannot inject config under QEMU (no internal flashing) #export CONFIG_RESTRICTED_BOOT=y #export CONFIG_BASIC=y #Enable HAVE_GPG_KEY_BACKUP to test GPG key backup drive (we cannot inject config under QEMU (no internal flashing)) #export CONFIG_HAVE_GPG_KEY_BACKUP=y #Enable DEBUG output export CONFIG_DEBUG_OUTPUT=y export CONFIG_ENABLE_FUNCTION_TRACING_OUTPUT=y #Enable TPM2 pcap output under /tmp export CONFIG_TPM2_CAPTURE_PCAP=y #On-demand hardware support (modules.cpio) CONFIG_LINUX_USB=y CONFIG_LINUX_E1000=y #CONFIG_MOBILE_TETHERING=y #Modules packed into tools.cpio ifeq "$(CONFIG_UROOT)" "y" CONFIG_BUSYBOX=n else CONFIG_CRYPTSETUP2=y CONFIG_FLASHROM=y CONFIG_FLASHTOOLS=y CONFIG_GPG2=y CONFIG_KEXEC=y CONFIG_UTIL_LINUX=y CONFIG_LVM2=y CONFIG_MBEDTLS=y CONFIG_PCIUTILS=y #Runtime tools to write to EC/MSR CONFIG_IOTOOLS=y CONFIG_MSRTOOLS=y #Remote attestation support # TPM2 requirements CONFIG_TPM2_TSS=y CONFIG_OPENSSL=y #Remote Attestation common tools CONFIG_POPT=y CONFIG_QRENCODE=y CONFIG_TPMTOTP=y #HOTP based remote attestation for supported USB Security dongle #With/Without TPM support CONFIG_HOTPKEY=y #Nitrokey Storage admin tool (deprecated) #CONFIG_NKSTORECLI=n #GUI Support #FBWhiptail based (Graphical): CONFIG_CAIRO=y CONFIG_FBWHIPTAIL=y #text-based init (generic-init and gui-init) #CONFIG_NEWT=y #CONFIG_SLANG=y #Additional tools (tools.cpio): #SSH server (requires ethernet drivers, eg: CONFIG_LINUX_E1000E) CONFIG_DROPBEAR=y endif #Runtime on-demand additional hardware support (modules.cpio) export CONFIG_LINUX_USB_COMPANION_CONTROLLER=y #Runtime configuration #Automatically boot if HOTP is valid export CONFIG_AUTO_BOOT_TIMEOUT=5 #TPM2 requirements export CONFIG_TPM2_TOOLS=y export CONFIG_PRIMARY_KEY_TYPE=ecc #TPM1 requirements #export CONFIG_TPM=y export CONFIG_BOOTSCRIPT=/bin/gui-init #text-based original init: #export CONFIG_BOOTSCRIPT=/bin/generic-init export CONFIG_BOOT_REQ_HASH=n export CONFIG_BOOT_REQ_ROLLBACK=n export CONFIG_BOOT_RECOVERY_SERIAL="/dev/ttyS0" export CONFIG_BOOT_KERNEL_ADD="console=ttyS0 console=tty systemd.zram=0" export CONFIG_BOOT_KERNEL_REMOVE="quiet rhgb splash" export CONFIG_BOOT_DEV="/dev/vda1" export CONFIG_BOARD_NAME="qemu-coreboot-fbwhiptail-tpm2-hotp" BOARD_TARGETS := qemu