Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

better blobby kernel support #249

Merged
merged 4 commits into from
Dec 23, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 70 additions & 22 deletions kernel/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,28 @@ KERNEL_PATCHES := $(PRAWNOS_KERNEL)/patches/$(TARGET)

KERNEL_BUILD_LOG := $(PRAWNOS_BUILD_LOGS)/kernel-log-$(TARGET).txt

### UNIVERSAL VARS ###
KERNEL_TAR := $(PRAWNOS_BUILD_SOURCES)/linux-libre-$(KVER)-gnu.tar.xz
KERNEL_BLOBBY_TAR := $(PRAWNOS_BUILD_SOURCES)/blobby-linux-$(KVER)-gnu.tar.xz
KERNEL_TAR_SIGNATURE := $(KERNEL_TAR).sign
KERNEL_LINUX_LIBRE_PUB := $(KERNEL_SHARED_RESOURCES)/linux-libre-signing-key.gpg
KERNEL_LIBRE_CONFIG := $(KERNEL_RESOURCES)/libre-config
KERNEL_LIBRE_URL := https://www.linux-libre.fsfla.org/pub/linux-libre/releases/$(KVER)-gnu/
KERNEL_LIBRE_BASENAME := linux-libre-$(KVER)-gnu.tar.xz
KERNEL_LIBRE_TAR := $(PRAWNOS_BUILD_SOURCES)/$(KERNEL_LIBRE_BASENAME)
KERNEL_LIBRE_TAR_SIGNATURE := $(PRAWNOS_BUILD_SOURCES)/$(KERNEL_LIBRE_TAR).sign
KERNEL_LIBRE_TAR_SIGNATURE_BASENAME := $(KERNEL_LIBRE_BASENAME).sign
KERNEL_LIBRE_TAR_SIGNATURE_TARGET_BASENAME := $(KERNEL_LIBRE_BASENAME)
KERNEL_LIBRE_TAR_SIGNATURE_TARGET := $(PRAWNOS_BUILD_SOURCES)/$(KERNEL_LIBRE_TAR_SIGNATURE_TARGET_BASENAME)
KERNEL_LIBRE_PUBKEY := $(KERNEL_SHARED_RESOURCES)/linux-libre-signing-key.gpg


# Default to a libre kernel. blobby_kernel target will override if needed:
BLOBBY_BUILD := 0
KERNEL_BLOBBY_CONFIG := $(KERNEL_RESOURCES)/blobby-config
KERNEL_BLOBBY_URL := https://cdn.kernel.org/pub/linux/kernel/v5.x/
KERNEL_BLOBBY_BASENAME := linux-$(KVER).tar.xz
KERNEL_BLOBBY_TAR := $(PRAWNOS_BUILD_SOURCES)/$(KERNEL_BLOBBY_BASENAME)
KERNEL_BLOBBY_TAR_SIGNATURE_TARGET_BASENAME := linux-$(KVER).tar
KERNEL_BLOBBY_TAR_SIGNATURE_BASENAME := $(KERNEL_BLOBBY_TAR_SIGNATURE_TARGET_BASENAME).sign
KERNEL_BLOBBY_TAR_SIGNATURE := $(PRAWNOS_BUILD_SOURCES)/$(KERNEL_BLOBBY_TAR_SIGNATURE_BASENAME)
KERNEL_BLOBBY_TAR_SIGNATURE_TARGET := $(PRAWNOS_BUILD_SOURCES)/$(KERNEL_BLOBBY_TAR_SIGNATURE_TARGET_BASENAME)
KERNEL_BLOBBY_PUBKEY := $(KERNEL_SHARED_RESOURCES)/blobby-linux-signing-key.gpg

ATH9K_EXTRACTED := $(PRAWNOS_ATH9K_BUILD)/.ath9k_extracted
ATH9K_TAR := $(KERNEL_SHARED_RESOURCES)/open-ath9k-htc-firmware.tar.gz
Expand Down Expand Up @@ -84,12 +101,7 @@ update_ath9k_tar:

.PHONY: blobby_kernel
blobby_kernel:
rm -rf $(PRAWNOS_KERNEL_BUILD)
mkdir -p $(PRAWNOS_BUILD_SOURCES)
wget $(WGET_OPTS) https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-$(KVER).tar.xz -O $(KERNEL_BLOBBY_TAR)
tar -Jxf $(KERNEL_BLOBBY_TAR) -C $(PRAWNOS_BUILD)
touch $(KERNEL_EXTRACTED)
touch $(KERNEL_PATCHED)
$(MAKE) BLOBBY_BUILD=1 kernel


#TODO: package perf/linux-tools
Expand All @@ -99,20 +111,56 @@ perf: $(PRAWNOS_KERNEL_BUILT)

### REAL RULES

ifeq ($(BLOBBY_BUILD),0)
KERNEL_CONFIG := $(KERNEL_LIBRE_CONFIG)
KERNEL_URL := $(KERNEL_LIBRE_URL)
KERNEL_BASENAME := $(KERNEL_LIBRE_BASENAME)
KERNEL_TAR := $(KERNEL_LIBRE_TAR)
KERNEL_TAR_SIGNATURE := $(KERNEL_LIBRE_TAR_SIGNATURE_BASENAME)
KERNEL_TAR_SIGNATURE_BASENAME := $(KERNEL_LIBRE_TAR_SIGNATURE_BASENAME)
KERNEL_TAR_SIGNATURE_TARGET := $(KERNEL_LIBRE_TAR_SIGNATURE_TARGET)
KERNEL_TAR_SIGNATURE_TARGET_BASENAME := $(KERNEL_LIBRE_TAR_SIGNATURE_TARGET_BASENAME)
KERNEL_PUBKEY := $(KERNEL_LIBRE_PUBKEY)
else
KERNEL_CONFIG := $(KERNEL_BLOBBY_CONFIG)
KERNEL_URL := $(KERNEL_BLOBBY_URL)
KERNEL_BASENAME := $(KERNEL_BLOBBY_BASENAME)
KERNEL_TAR := $(KERNEL_BLOBBY_TAR)
KERNEL_TAR_SIGNATURE := $(KERNEL_BLOBBY_TAR_SIGNATURE)
KERNEL_TAR_SIGNATURE_BASENAME := $(KERNEL_BLOBBY_TAR_SIGNATURE_BASENAME)
KERNEL_TAR_SIGNATURE_TARGET := $(KERNEL_BLOBBY_TAR_SIGNATURE_TARGET)
KERNEL_TAR_SIGNATURE_TARGET_BASENAME := $(KERNEL_BLOBBY_TAR_SIGNATURE_TARGET_BASENAME)
KERNEL_PUBKEY := $(KERNEL_BLOBBY_PUBKEY)
endif

$(KERNEL_ATH9K_FIRMWARES):
mkdir -p $(KERNEL_ATH9K_FIRMWARES)

$(KERNEL_TAR_SIGNATURE): | $(PRAWNOS_BUILD_SOURCES)
wget $(WGET_OPTS) https://www.linux-libre.fsfla.org/pub/linux-libre/releases/$(KVER)-gnu/linux-libre-$(KVER)-gnu.tar.xz.sign -O $(KERNEL_TAR_SIGNATURE)

$(KERNEL_TAR): $(KERNEL_TAR_SIGNATURE) | $(PRAWNOS_BUILD_LOGS) $(PRAWNOS_BUILD_SOURCES)
wget $(WGET_OPTS) https://www.linux-libre.fsfla.org/pub/linux-libre/releases/$(KVER)-gnu/linux-libre-$(KVER)-gnu.tar.xz -O $(KERNEL_TAR)
gpg --import $(KERNEL_LINUX_LIBRE_PUB)
gpg --verify $(KERNEL_TAR_SIGNATURE) $(KERNEL_TAR)

$(KERNEL_EXTRACTED): $(KERNEL_TAR)
tar -xvf $(KERNEL_TAR) -C $(PRAWNOS_BUILD)
touch $(KERNEL_EXTRACTED)
wget $(WGET_OPTS) $(KERNEL_URL)/$(KERNEL_TAR_SIGNATURE_BASENAME) -O $(KERNEL_TAR_SIGNATURE)

$(KERNEL_EXTRACTED): $(KERNEL_TAR) $(KERNEL_TAR_SIGNATURE)
gpg --import $(KERNEL_PUBKEY)
case $(BLOBBY_BUILD) in \
0) \
gpg --verify $(KERNEL_TAR_SIGNATURE) $(KERNEL_TAR_SIGNATURE_TARGET) && \
tar -xvf $(KERNEL_TAR) -C $(PRAWNOS_BUILD) && \