# Configuration for a W530 running Qubes and other Linux Based OSes (through kexec) # # Includes # - Deactivated+neutered ME and expanded consequent IFD BIOS regions # - Forged 00:DE:AD:C0:FF:EE MAC address (if not extracting gbe.bin from backup with blobs/xx30/extract.sh) # - Note that this MAC address can be modified under build/coreboot-VER/util/bincfg/gbe-82579LM.set # # - Includes Nitrokey/Librem Key HOTP Security dongle remote attestation (in addition to TOTP remote attestation through Qr Code) # This board is designed for a w530 with the K1000M Nvidia Quadro dGPU. Initialization of the dGPU is necessary in order to use an external monitor whether through the in-build VGA or mini-DisplayPort or via the dock. In order to build this the relevant script in the blobs directory must be run (or self-pulled roms placed in that directory) and after building the rom, the nvramtool must be run on the 12MB rom to change the default graphics mode away from integrated-only graphics (see README_vbios in the blobs directory). export CONFIG_COREBOOT=y export CONFIG_COREBOOT_VERSION=4.22.01 export CONFIG_LINUX_VERSION=5.10.5 CONFIG_COREBOOT_CONFIG=config/coreboot-w530-dgpu-K1000m-maximized.config CONFIG_LINUX_CONFIG=config/linux-x230-maximized.config #Additional hardware support CONFIG_LINUX_USB=y CONFIG_LINUX_E1000E=y CONFIG_MOBILE_TETHERING=y CONFIG_CRYPTSETUP2=y CONFIG_FLASHPROG=y CONFIG_FLASHTOOLS=y CONFIG_GPG2=y CONFIG_KEXEC=y CONFIG_UTIL_LINUX=y CONFIG_LVM2=y CONFIG_MBEDTLS=y CONFIG_PCIUTILS=y #platform locking finalization (PR0) CONFIG_IO386=y export CONFIG_FINALIZE_PLATFORM_LOCKING_PRESKYLAKE=y #Remote attestation support #TPM based requirements export CONFIG_TPM=y 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 export CONFIG_AUTO_BOOT_TIMEOUT=5 #Nitrokey Storage admin tool CONFIG_NKSTORECLI=n #GUI Support #Console based Whiptail support(Console based, no FB): #CONFIG_SLANG=y #CONFIG_NEWT=y #FBWhiptail based (Graphical): CONFIG_CAIRO=y CONFIG_FBWHIPTAIL=y #Additional tools: #SSH server (requires ethernet drivers, eg: CONFIG_LINUX_E1000E) CONFIG_DROPBEAR=y export CONFIG_BOOTSCRIPT=/bin/gui-init export CONFIG_BOOT_REQ_HASH=n export CONFIG_BOOT_REQ_ROLLBACK=n export CONFIG_BOOT_KERNEL_ADD="" export CONFIG_BOOT_KERNEL_REMOVE="intel_iommu=on intel_iommu=igfx_off" export CONFIG_BOARD_NAME="Thinkpad W530-dgpu-K1000m-hotp-maximized" export CONFIG_FLASH_OPTIONS="flashprog memory --progress --programmer internal --noverify" # xx30-*-maximized boards require of you initially call one of the # following to have gbe.bin ifd.bin and me.bin # - blobs/xx30/download_clean_me.sh # To download Lenovo original ME binary, neuter+deactivate ME, produce # reduced IFD ME region and expanded BIOS IFD region. # - blobs/xx30/extract.sh # To extract from backuped 8M (bottom SPI) ME binary, GBE and IFD blobs. # Make the Coreboot build depend on the following 3rd party blobs: $(build)/coreboot-$(CONFIG_COREBOOT_VERSION)/$(BOARD)/.build: \ $(pwd)/blobs/xx30/me.bin $(pwd)/blobs/xx30/10de,0ffc.rom $(pwd)/blobs/xx30/8086,0106.rom #Include bits related to ivybridge ME blob download/neutering down to BUP+ROMP BOARD_TARGETS := xx30_me_blobs $(pwd)/blobs/xx30/10de,0ffc.rom: $(pwd)/blobs/xx30/vbios_w530.sh # Generate split 4MB top / 8MB bottom ROMs BOARD_TARGETS += split_8mb4mb