mirror of
https://github.com/linuxboot/heads.git
synced 2024-12-19 21:17:55 +00:00
Inject Heads version string into coreboot LOCALVERSION... (#859)
* config/coreboot-*: drop CONFIG_LOCALVERSION Will be injected as part of the build using $(HEADS_GIT_VERSION) Signed-off-by: Matt DeVillier <matt.devillier@puri.sm> * modules/coreboot: inject $(HEADS_GIT_VERSION) as CONFIG_LOCALVERSION Needed for fwupd to handle board updates Signed-off-by: Matt DeVillier <matt.devillier@puri.sm> * modules/coreboot: override SMBIOS ProductName with $(BOARD) Signed-off-by: Matt DeVillier <matt.devillier@puri.sm> * Use $(BOARD)-$(HEADS_GIT_VERSION) as basis for output filename makes builds uniquely identifiable based on board and version. Signed-off-by: Matt DeVillier <matt.devillier@puri.sm>
This commit is contained in:
parent
b3d01c1962
commit
bd7a945bbb
32
Makefile
32
Makefile
@ -1,3 +1,17 @@
|
|||||||
|
# Need to set CB_OUTPUT_FILE before board .config included so
|
||||||
|
# that target overrides in x230/x430-flash (eg) are properly handled
|
||||||
|
GIT_HASH := $(shell git rev-parse HEAD)
|
||||||
|
GIT_STATUS := $(shell \
|
||||||
|
if git diff --exit-code >/dev/null ; then \
|
||||||
|
echo clean ; \
|
||||||
|
else \
|
||||||
|
echo dirty ; \
|
||||||
|
fi)
|
||||||
|
HEADS_GIT_VERSION := $(shell git describe --tags --dirty)
|
||||||
|
|
||||||
|
CB_OUTPUT_FILE := heads-$(BOARD)-$(HEADS_GIT_VERSION).rom
|
||||||
|
LB_OUTPUT_FILE := linuxboot-$(BOARD)-$(HEADS_GIT_VERSION).rom
|
||||||
|
|
||||||
all:
|
all:
|
||||||
-include .config
|
-include .config
|
||||||
|
|
||||||
@ -100,16 +114,6 @@ include $(CONFIG)
|
|||||||
# Unless otherwise specified, we are building for heads
|
# Unless otherwise specified, we are building for heads
|
||||||
CONFIG_HEADS ?= y
|
CONFIG_HEADS ?= y
|
||||||
|
|
||||||
# Some things want usernames, we use the current checkout
|
|
||||||
# so that they are reproducible
|
|
||||||
GIT_HASH := $(shell git rev-parse HEAD)
|
|
||||||
GIT_STATUS := $(shell \
|
|
||||||
if git diff --exit-code >/dev/null ; then \
|
|
||||||
echo clean ; \
|
|
||||||
else \
|
|
||||||
echo dirty ; \
|
|
||||||
fi)
|
|
||||||
|
|
||||||
# record the build date / git hashes and other files here
|
# record the build date / git hashes and other files here
|
||||||
HASHES := $(build)/$(BOARD)/hashes.txt
|
HASHES := $(build)/$(BOARD)/hashes.txt
|
||||||
|
|
||||||
@ -186,10 +190,10 @@ CROSS_TOOLS := \
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
ifeq "$(CONFIG_COREBOOT)" "y"
|
ifeq ($(CONFIG_COREBOOT), y)
|
||||||
all: $(build)/$(BOARD)/coreboot.rom
|
all: $(build)/$(BOARD)/$(CB_OUTPUT_FILE)
|
||||||
else ifeq "$(CONFIG_LINUXBOOT)" "y"
|
else ifeq ($(CONFIG_LINUXBOOT), y)
|
||||||
all: $(build)/$(BOARD)/linuxboot.rom
|
all: $(build)/$(BOARD)/$(LB_OUTPUT_FILE)
|
||||||
else
|
else
|
||||||
$(error "$(BOARD): neither CONFIG_COREBOOT nor CONFIG_LINUXBOOT is set?")
|
$(error "$(BOARD): neither CONFIG_COREBOOT nor CONFIG_LINUXBOOT is set?")
|
||||||
endif
|
endif
|
||||||
|
@ -48,7 +48,7 @@ export CONFIG_BOOT_DEV="/dev/sda1"
|
|||||||
run:
|
run:
|
||||||
qemu-system-x86_64 \
|
qemu-system-x86_64 \
|
||||||
--machine q35 \
|
--machine q35 \
|
||||||
--bios $(build)/$(BOARD)/coreboot.rom \
|
--bios $(build)/$(BOARD)/$(CB_OUTPUT_FILE) \
|
||||||
-object rng-random,filename=/dev/urandom,id=rng0 \
|
-object rng-random,filename=/dev/urandom,id=rng0 \
|
||||||
-device virtio-rng-pci,rng=rng0 \
|
-device virtio-rng-pci,rng=rng0 \
|
||||||
-netdev user,id=u1 -device e1000,netdev=u1 \
|
-netdev user,id=u1 -device e1000,netdev=u1 \
|
||||||
|
@ -58,7 +58,7 @@ run:
|
|||||||
qemu-system-x86_64 \
|
qemu-system-x86_64 \
|
||||||
--machine q35 \
|
--machine q35 \
|
||||||
--serial /dev/tty \
|
--serial /dev/tty \
|
||||||
--bios $(build)/$(BOARD)/coreboot.rom \
|
--bios $(build)/$(BOARD)/$(CB_OUTPUT_FILE) \
|
||||||
-object rng-random,filename=/dev/urandom,id=rng0 \
|
-object rng-random,filename=/dev/urandom,id=rng0 \
|
||||||
-device virtio-rng-pci,rng=rng0 \
|
-device virtio-rng-pci,rng=rng0 \
|
||||||
-netdev user,id=u1 -device e1000,netdev=u1 \
|
-netdev user,id=u1 -device e1000,netdev=u1 \
|
||||||
|
@ -21,6 +21,6 @@ export CONFIG_FLASHROM_OPTIONS="--force --noverify-all -p internal --ifd --image
|
|||||||
# allow the board to boot into a minimal Heads and read the full
|
# allow the board to boot into a minimal Heads and read the full
|
||||||
# ROM from an external USB media.
|
# ROM from an external USB media.
|
||||||
all: $(build)/$(BOARD)/$(BOARD).rom
|
all: $(build)/$(BOARD)/$(BOARD).rom
|
||||||
$(build)/$(BOARD)/$(BOARD).rom: $(build)/$(BOARD)/coreboot.rom
|
$(build)/$(BOARD)/$(BOARD).rom: $(build)/$(BOARD)/$(CB_OUTPUT_FILE)
|
||||||
dd of=$@ if=$< bs=65536 count=64 skip=128
|
dd of=$@ if=$< bs=65536 count=64 skip=128
|
||||||
sha256sum $@
|
sha256sum $@
|
||||||
|
@ -26,6 +26,6 @@ export CONFIG_FLASHROM_OPTIONS="--force --noverify-all -p internal --ifd --image
|
|||||||
# allow the board to boot into a minimal Heads and read the full
|
# allow the board to boot into a minimal Heads and read the full
|
||||||
# ROM from an external USB media.
|
# ROM from an external USB media.
|
||||||
all: $(build)/$(BOARD)/$(BOARD).rom
|
all: $(build)/$(BOARD)/$(BOARD).rom
|
||||||
$(build)/$(BOARD)/$(BOARD).rom: $(build)/$(BOARD)/coreboot.rom
|
$(build)/$(BOARD)/$(BOARD).rom: $(build)/$(BOARD)/$(CB_OUTPUT_FILE)
|
||||||
dd of=$@ if=$< bs=65536 count=64 skip=128
|
dd of=$@ if=$< bs=65536 count=64 skip=128
|
||||||
sha256sum $@
|
sha256sum $@
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="heads"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
CONFIG_USE_OPTION_TABLE=y
|
CONFIG_USE_OPTION_TABLE=y
|
||||||
# CONFIG_COLLECT_TIMESTAMPS is not set
|
# CONFIG_COLLECT_TIMESTAMPS is not set
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="4.8.1-Purism-1-heads-beta"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
CONFIG_USE_BLOBS=y
|
CONFIG_USE_BLOBS=y
|
||||||
CONFIG_MEASURED_BOOT=y
|
CONFIG_MEASURED_BOOT=y
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="4.8.1-Purism-1-heads-beta"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
CONFIG_USE_BLOBS=y
|
CONFIG_USE_BLOBS=y
|
||||||
CONFIG_MEASURED_BOOT=y
|
CONFIG_MEASURED_BOOT=y
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="4.8.1-Purism-1-heads-beta"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
CONFIG_USE_BLOBS=y
|
CONFIG_USE_BLOBS=y
|
||||||
CONFIG_MEASURED_BOOT=y
|
CONFIG_MEASURED_BOOT=y
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="4.8.1-Purism-1-heads-beta"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
CONFIG_USE_BLOBS=y
|
CONFIG_USE_BLOBS=y
|
||||||
CONFIG_MEASURED_BOOT=y
|
CONFIG_MEASURED_BOOT=y
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="heads"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
CONFIG_CBFS_SIZE=0xC00000
|
CONFIG_CBFS_SIZE=0xC00000
|
||||||
CONFIG_VENDOR_PURISM=y
|
CONFIG_VENDOR_PURISM=y
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="-heads"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
||||||
CONFIG_CBFS_SIZE=0x700000
|
CONFIG_CBFS_SIZE=0x700000
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="-heads"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
||||||
CONFIG_CBFS_SIZE=0x700000
|
CONFIG_CBFS_SIZE=0x700000
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="heads"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
||||||
# CONFIG_COLLECT_TIMESTAMPS is not set
|
# CONFIG_COLLECT_TIMESTAMPS is not set
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="heads"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
||||||
# CONFIG_COLLECT_TIMESTAMPS is not set
|
# CONFIG_COLLECT_TIMESTAMPS is not set
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="heads"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
CONFIG_MEASURED_BOOT=y
|
CONFIG_MEASURED_BOOT=y
|
||||||
CONFIG_VENDOR_LENOVO=y
|
CONFIG_VENDOR_LENOVO=y
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="heads"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
||||||
# CONFIG_COLLECT_TIMESTAMPS is not set
|
# CONFIG_COLLECT_TIMESTAMPS is not set
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="heads"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
# CONFIG_INCLUDE_CONFIG_FILE is not set
|
||||||
# CONFIG_COLLECT_TIMESTAMPS is not set
|
# CONFIG_COLLECT_TIMESTAMPS is not set
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="heads"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
CONFIG_MEASURED_BOOT=y
|
CONFIG_MEASURED_BOOT=y
|
||||||
CONFIG_VENDOR_LENOVO=y
|
CONFIG_VENDOR_LENOVO=y
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
CONFIG_LOCALVERSION="heads"
|
|
||||||
CONFIG_ANY_TOOLCHAIN=y
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
CONFIG_MEASURED_BOOT=y
|
CONFIG_MEASURED_BOOT=y
|
||||||
CONFIG_VENDOR_LENOVO=y
|
CONFIG_VENDOR_LENOVO=y
|
||||||
|
@ -37,6 +37,8 @@ EXTRA_FLAGS := -fdebug-prefix-map=$(pwd)=heads -gno-record-gcc-switches -Wno-err
|
|||||||
coreboot_configure := \
|
coreboot_configure := \
|
||||||
mkdir -p "$(build)/$(coreboot_dir)" \
|
mkdir -p "$(build)/$(coreboot_dir)" \
|
||||||
&& cp "$(pwd)/$(CONFIG_COREBOOT_CONFIG)" "$(build)/$(coreboot_dir)/.config" \
|
&& cp "$(pwd)/$(CONFIG_COREBOOT_CONFIG)" "$(build)/$(coreboot_dir)/.config" \
|
||||||
|
&& echo 'CONFIG_LOCALVERSION="Heads-$(HEADS_GIT_VERSION)"' >> $(build)/$(coreboot_dir)/.config \
|
||||||
|
&& echo 'CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="$(BOARD)"' >> $(build)/$(coreboot_dir)/.config \
|
||||||
&& $(MAKE) olddefconfig \
|
&& $(MAKE) olddefconfig \
|
||||||
-C "$(build)/$(coreboot_base_dir)" \
|
-C "$(build)/$(coreboot_base_dir)" \
|
||||||
obj="$(build)/$(coreboot_dir)" \
|
obj="$(build)/$(coreboot_dir)" \
|
||||||
@ -76,10 +78,12 @@ $(build)/$(coreboot_dir)/.build: \
|
|||||||
$(build)/$(BOARD)/initrd.cpio.xz \
|
$(build)/$(BOARD)/initrd.cpio.xz \
|
||||||
|
|
||||||
# This produces a ROM image that is written with the flashrom program
|
# This produces a ROM image that is written with the flashrom program
|
||||||
$(build)/$(BOARD)/coreboot.rom: $(build)/$(coreboot_dir)/.build
|
ifneq ($(CONFIG_COREBOOT),)
|
||||||
|
$(build)/$(BOARD)/$(CB_OUTPUT_FILE): $(build)/$(coreboot_dir)/.build
|
||||||
"$(build)/$(coreboot_dir)/cbfstool" "$(dir $<)coreboot.rom" print
|
"$(build)/$(coreboot_dir)/cbfstool" "$(dir $<)coreboot.rom" print
|
||||||
$(call do-copy,$(dir $<)coreboot.rom,$@)
|
$(call do-copy,$(dir $<)coreboot.rom,$@)
|
||||||
@touch $@ # update the time stamp
|
@touch $@ # update the time stamp
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# Helpful target for reconfiguring the coreboot target
|
# Helpful target for reconfiguring the coreboot target
|
||||||
|
@ -59,9 +59,11 @@ endif
|
|||||||
linuxboot_output := build/$(linuxboot_board)/linuxboot.rom
|
linuxboot_output := build/$(linuxboot_board)/linuxboot.rom
|
||||||
linuxboot_rom := $(build)/$(linuxboot_dir)/$(linuxboot_output)
|
linuxboot_rom := $(build)/$(linuxboot_dir)/$(linuxboot_output)
|
||||||
|
|
||||||
$(build)/$(BOARD)/linuxboot.rom: $(build)/$(linuxboot_dir)/.build
|
ifneq ($(CONFIG_LINUXBOOT),)
|
||||||
|
$(build)/$(BOARD)/$(LB_OUTPUT_FILE): $(build)/$(linuxboot_dir)/.build
|
||||||
$(call do-copy,$(dir $<)linuxboot.rom,$@)
|
$(call do-copy,$(dir $<)linuxboot.rom,$@)
|
||||||
@touch $@
|
@touch $@
|
||||||
|
endif
|
||||||
|
|
||||||
# Also force a rebuild if any of the input files are updated
|
# Also force a rebuild if any of the input files are updated
|
||||||
$(build)/$(linuxboot_dir)/.build: \
|
$(build)/$(linuxboot_dir)/.build: \
|
||||||
@ -70,7 +72,7 @@ $(build)/$(linuxboot_dir)/.build: \
|
|||||||
$(build)/$(BOARD)/initrd.cpio.xz \
|
$(build)/$(BOARD)/initrd.cpio.xz \
|
||||||
|
|
||||||
|
|
||||||
linuxboot.run: $(build)/$(BOARD)/linuxboot.rom
|
linuxboot.run: $(build)/$(BOARD)/$(LB_OUTPUT_FILE)
|
||||||
$(MAKE) -C $(build)/$(linuxboot_base_dir) \
|
$(MAKE) -C $(build)/$(linuxboot_base_dir) \
|
||||||
BOARD:=$(linuxboot_board) \
|
BOARD:=$(linuxboot_board) \
|
||||||
KERNEL=$(build)/$(BOARD)/bzImage \
|
KERNEL=$(build)/$(BOARD)/bzImage \
|
||||||
|
Loading…
Reference in New Issue
Block a user