mirror of
https://github.com/linuxboot/heads.git
synced 2024-12-18 20:47:55 +00:00
add x230-nkstorecli board config (#817)
* add x230-nkstorecli board; * add modules: nkstorecli, libnk, libhidapi-libusb * version bump nkstorecli; related minor in libnk * upd. libnk module version bump to 3.6; remove 3.5 patch
This commit is contained in:
parent
85d7e29d18
commit
09ca500d3e
@ -8,7 +8,7 @@ jobs:
|
|||||||
name: Install dependencies
|
name: Install dependencies
|
||||||
command: |
|
command: |
|
||||||
apt update
|
apt update
|
||||||
apt install -y build-essential zlib1g-dev uuid-dev libdigest-sha-perl libelf-dev bc bzip2 bison flex git gnupg iasl m4 nasm patch python wget gnat cpio ccache pkg-config cmake libusb-1.0-0-dev autoconf texinfo ncurses-dev
|
apt install -y build-essential zlib1g-dev uuid-dev libdigest-sha-perl libelf-dev bc bzip2 bison flex git gnupg iasl m4 nasm patch python wget gnat cpio ccache pkg-config cmake libusb-1.0-0-dev autoconf texinfo ncurses-dev doxygen graphviz udev libudev1 libudev-dev automake libtool
|
||||||
- checkout
|
- checkout
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
@ -186,6 +186,24 @@ jobs:
|
|||||||
- store-artifacts:
|
- store-artifacts:
|
||||||
path: build/x230-hotp-verification
|
path: build/x230-hotp-verification
|
||||||
|
|
||||||
|
- run:
|
||||||
|
name: x230-nkstorecli
|
||||||
|
command: |
|
||||||
|
rm -rf build/x230-nkstorecli/* build/log/* && make CPUS=4 \
|
||||||
|
V=1 \
|
||||||
|
BOARD=x230-nkstorecli || (find ./build/ -name "*.log" -type f -mmin -1|while read log; do echo ""; echo '==>' "$log" '<=='; echo ""; cat $log;done; exit 1) \
|
||||||
|
no_output_timeout: 3h
|
||||||
|
- run:
|
||||||
|
name: Ouput x230-nkstorecli hashes
|
||||||
|
command: |
|
||||||
|
cat build/x230-nkstorecli/hashes.txt \
|
||||||
|
- run:
|
||||||
|
name: Archiving build logs for x230-nkstorecli
|
||||||
|
command: |
|
||||||
|
tar zcvf build/x230-nkstorecli/logs.tar.gz build/log/*
|
||||||
|
- store-artifacts:
|
||||||
|
path: build/x230-nkstorecli
|
||||||
|
|
||||||
- run:
|
- run:
|
||||||
name: qemu-coreboot
|
name: qemu-coreboot
|
||||||
command: |
|
command: |
|
||||||
|
1
Makefile
1
Makefile
@ -486,6 +486,7 @@ bin_modules-$(CONFIG_CAIRO) += cairo
|
|||||||
bin_modules-$(CONFIG_FBWHIPTAIL) += fbwhiptail
|
bin_modules-$(CONFIG_FBWHIPTAIL) += fbwhiptail
|
||||||
bin_modules-$(CONFIG_HOTPKEY) += hotp-verification
|
bin_modules-$(CONFIG_HOTPKEY) += hotp-verification
|
||||||
bin_modules-$(CONFIG_MSRTOOLS) += msrtools
|
bin_modules-$(CONFIG_MSRTOOLS) += msrtools
|
||||||
|
bin_modules-$(CONFIG_NKSTORECLI) += nkstorecli
|
||||||
|
|
||||||
$(foreach m, $(bin_modules-y), \
|
$(foreach m, $(bin_modules-y), \
|
||||||
$(call map,initrd_bin_add,$(call bins,$m)) \
|
$(call map,initrd_bin_add,$(call bins,$m)) \
|
||||||
|
53
boards/x230-nkstorecli/x230-nkstorecli.config
Normal file
53
boards/x230-nkstorecli/x230-nkstorecli.config
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# Configuration for a x230-nkstorecli (Nitrokey Storage client + HOTP support)
|
||||||
|
# running Qubes and other OSes
|
||||||
|
# Note that CBFS region is too small. So e1000e (ethernet) and dropbear (ssh client/server) has been disabled.
|
||||||
|
export CONFIG_COREBOOT=y
|
||||||
|
export CONFIG_COREBOOT_VERSION=4.8.1
|
||||||
|
export CONFIG_LINUX_VERSION=4.14.62
|
||||||
|
|
||||||
|
CONFIG_COREBOOT_CONFIG=config/coreboot-x230-nkstorecli.config
|
||||||
|
CONFIG_LINUX_CONFIG=config/linux-x230.config
|
||||||
|
|
||||||
|
CONFIG_CRYPTSETUP=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
|
||||||
|
CONFIG_POPT=y
|
||||||
|
CONFIG_QRENCODE=y
|
||||||
|
CONFIG_TPMTOTP=y
|
||||||
|
CONFIG_DROPBEAR=n
|
||||||
|
CONFIG_NKSTORECLI=y
|
||||||
|
|
||||||
|
#CONFIG_SLANG=y
|
||||||
|
#CONFIG_NEWT=y
|
||||||
|
CONFIG_CAIRO=y
|
||||||
|
CONFIG_FBWHIPTAIL=y
|
||||||
|
CONFIG_HOTPKEY=y
|
||||||
|
|
||||||
|
CONFIG_LINUX_USB=y
|
||||||
|
CONFIG_LINUX_E1000E=n
|
||||||
|
|
||||||
|
export CONFIG_TPM=y
|
||||||
|
export CONFIG_BOOTSCRIPT=/bin/gui-init
|
||||||
|
export CONFIG_BOOT_REQ_HASH=n
|
||||||
|
export CONFIG_BOOT_REQ_ROLLBACK=n
|
||||||
|
export CONFIG_BOOT_KERNEL_ADD="intel_iommu=on intel_iommu=igfx_off"
|
||||||
|
export CONFIG_BOOT_KERNEL_REMOVE="quiet"
|
||||||
|
export CONFIG_BOOT_DEV="/dev/sda1"
|
||||||
|
export CONFIG_BOOT_GUI_MENU_NAME="Thinkpad X230-nkstorecli Heads Boot Menu"
|
||||||
|
export CONFIG_WARNING_BG_COLOR="--background-gradient 0 0 0 150 125 0"
|
||||||
|
export CONFIG_ERROR_BG_COLOR="--background-gradient 0 0 0 150 0 0"
|
||||||
|
export CONFIG_FLASHROM_OPTIONS="--force --noverify-all -p internal --ifd --image bios"
|
||||||
|
|
||||||
|
# This board has two SPI flash chips, an 8 MB that holds the IFD,
|
||||||
|
# the ME image and part of the coreboot image, and a 4 MB one that
|
||||||
|
# has the rest of the coreboot and the reset vector.
|
||||||
|
#
|
||||||
|
# Only flashing to the bios region is safe to do. The easiest is to
|
||||||
|
# flash internally when the IFD is unlocked for writing, and x230-flash
|
||||||
|
# is installed first.
|
15
config/coreboot-x230-nkstorecli.config
Normal file
15
config/coreboot-x230-nkstorecli.config
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
CONFIG_LOCALVERSION="heads"
|
||||||
|
CONFIG_ANY_TOOLCHAIN=y
|
||||||
|
CONFIG_MEASURED_BOOT=y
|
||||||
|
CONFIG_VENDOR_LENOVO=y
|
||||||
|
CONFIG_CBFS_SIZE=0x710000
|
||||||
|
CONFIG_BOARD_LENOVO_X230=y
|
||||||
|
CONFIG_NO_POST=y
|
||||||
|
CONFIG_UART_PCI_ADDR=0
|
||||||
|
CONFIG_NO_GFX_INIT=y
|
||||||
|
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x80000
|
||||||
|
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5=y
|
||||||
|
CONFIG_PAYLOAD_LINUX=y
|
||||||
|
CONFIG_PAYLOAD_FILE="../../build/x230-nkstorecli/bzImage"
|
||||||
|
CONFIG_LINUX_COMMAND_LINE="intel_iommu=igfx_off quiet"
|
||||||
|
CONFIG_LINUX_INITRD="../../build/x230-nkstorecli/initrd.cpio.xz"
|
28
modules/libhidapi-libusb
Normal file
28
modules/libhidapi-libusb
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
modules-$(CONFIG_NKSTORECLI) += libhidapi-libusb
|
||||||
|
|
||||||
|
libhidapi-libusb_depends += libusb
|
||||||
|
|
||||||
|
libhidapi-libusb_version := 0.9.0
|
||||||
|
libhidapi-libusb_dir := hidapi-hidapi-$(libhidapi-libusb_version)
|
||||||
|
libhidapi-libusb_tar := hidapi-$(libhidapi-libusb_version).tar.gz
|
||||||
|
libhidapi-libusb_url := https://github.com/libusb/hidapi/archive/$(libhidapi-libusb_tar)
|
||||||
|
libhidapi-libusb_hash := 630ee1834bdd5c5761ab079fd04f463a89585df8fcae51a7bfe4229b1e02a652
|
||||||
|
|
||||||
|
MY_CROSS_TOOLS := \
|
||||||
|
CC="$(heads_cc) -Os" \
|
||||||
|
$(CROSS_TOOLS_NOCC) \
|
||||||
|
|
||||||
|
|
||||||
|
libhidapi-libusb_configure := ./bootstrap && \
|
||||||
|
./configure \
|
||||||
|
$(MY_CROSS_TOOLS) \
|
||||||
|
--host i386-elf-linux\
|
||||||
|
--prefix "/"
|
||||||
|
|
||||||
|
|
||||||
|
libhidapi-libusb_target := $(MAKE_JOBS) -C libusb \
|
||||||
|
DESTDIR="$(INSTALL)" \
|
||||||
|
$(MY_CROSS_TOOLS) \
|
||||||
|
install && \
|
||||||
|
cp $(INSTALL)/../build/$(libhidapi-libusb_dir)/pc/hidapi-libusb.pc $(INSTALL)/lib/pkgconfig/ \
|
||||||
|
|
37
modules/libnitrokey
Normal file
37
modules/libnitrokey
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
modules-$(CONFIG_NKSTORECLI) += libnitrokey
|
||||||
|
|
||||||
|
libnitrokey_depends := libhidapi-libusb libusb $(musl_dep)
|
||||||
|
|
||||||
|
libnitrokey_version := 3.6
|
||||||
|
libnitrokey_dir := libnitrokey-$(libnitrokey_version)
|
||||||
|
libnitrokey_tar := libnitrokey-v$(libnitrokey_version).tar.gz
|
||||||
|
libnitrokey_url := https://github.com/Nitrokey/libnitrokey/releases/download/v$(libnitrokey_version)/$(libnitrokey_tar)
|
||||||
|
libnitrokey_hash := 4f3382b6193afe69c2001321038fce9490bc28803ed687152a397ccd89146ae6
|
||||||
|
|
||||||
|
# currently the dynamic lib is not included
|
||||||
|
#libnitrokey_libraries := \
|
||||||
|
# build/libnitrokey.so.3
|
||||||
|
|
||||||
|
cmake_cross := "-DCMAKE_AR=$(CROSS)ar" \
|
||||||
|
-DCMAKE_CXX_COMPILER="$(CROSS)g++" \
|
||||||
|
-DCMAKE_C_COMPILER="$(CROSS)gcc" \
|
||||||
|
-DCMAKE_CXX_FLAGS="-Os -fdata-sections -ffunction-sections -ffile-prefix-map=$(pwd)=heads -gno-record-gcc-switches -D__MUSL__ -I$(INSTALL)/include -L$(INSTALL)/lib " \
|
||||||
|
-DCMAKE_LINKER="$(CROSS)ld"
|
||||||
|
-DCMAKE_SHARED_LINKER_FLAGS="-gc-sections"
|
||||||
|
-DCMAKE_CXX_COMPILER_AR="$(CROSS)ar" \
|
||||||
|
-DCMAKE_NM="$(CROSS)nm" \
|
||||||
|
-DCMAKE_OBJDUMP="$(CROSS)objdump" \
|
||||||
|
-DCMAKE_OBCOPY="$(CROSS)obcopy" \
|
||||||
|
-DCMAKE_STRIP="$(CROSS)strip"
|
||||||
|
|
||||||
|
libnitrokey_configure := \
|
||||||
|
mkdir build -p && \
|
||||||
|
cd build && \
|
||||||
|
$(CROSS_TOOLS) cmake .. -DNO_LOG=ON -DBUILD_SHARED_LIBS=OFF -DCOMPILE_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/ -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=MinSizeRel $(cmake_cross)
|
||||||
|
|
||||||
|
# install "by-hand" as INSTALL_PREFIX is not working as expected
|
||||||
|
libnitrokey_target := $(CROSS_TOOLS) $(MAKE_JOBS) -C build DESTDIR="$(INSTALL)" && \
|
||||||
|
cp build/$(libnitrokey_dir)/build/libnitrokey.a $(INSTALL)/lib/libnitrokey.a && \
|
||||||
|
mkdir -p $(INSTALL)/include/libnitrokey/ && \
|
||||||
|
cp -r build/$(libnitrokey_dir)/NK_C_API.h $(INSTALL)/include/libnitrokey/ && \
|
||||||
|
cp -r build/$(libnitrokey_dir)/libnitrokey/*.h $(INSTALL)/include/libnitrokey
|
15
modules/nkstorecli
Normal file
15
modules/nkstorecli
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
modules-$(CONFIG_NKSTORECLI) += nkstorecli
|
||||||
|
|
||||||
|
nkstorecli_depends := libnitrokey libusb $(musl_dep)
|
||||||
|
|
||||||
|
nkstorecli_version := 0.4.1
|
||||||
|
nkstorecli_dir := nkstorecli-$(nkstorecli_version)
|
||||||
|
nkstorecli_tar := nkstorecli-$(nkstorecli_version).tar.gz
|
||||||
|
nkstorecli_url := https://github.com/Nitrokey/nitrokey-storage-cli/releases/download/v$(nkstorecli_version)/nkstorecli-$(nkstorecli_version).tar.gz
|
||||||
|
nkstorecli_hash := 0fa7dbbede453b9c40d920c0563afdd2b0f7d08625aeb68f065512613b6fbb6b
|
||||||
|
|
||||||
|
nkstorecli_target := $(MAKE_JOBS) -C src $(CROSS_TOOLS) DESTDIR=$(INSTALL) install
|
||||||
|
|
||||||
|
nkstorecli_output := \
|
||||||
|
src/nkstorecli
|
||||||
|
|
Loading…
Reference in New Issue
Block a user