Skip to content

Commit

Permalink
Merge pull request #249 from austin987/blobby-kernel-wip
Browse files Browse the repository at this point in the history
better blobby kernel support
  • Loading branch information
SolidHal committed Dec 23, 2020
2 parents f477e0b + 42b2313 commit b35d8c7
Show file tree
Hide file tree
Showing 7 changed files with 14,029 additions and 40 deletions.
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) && \
touch $(KERNEL_EXTRACTED) \
;; \
1) \
if [ ! -f $(KERNEL_TAR_SIGNATURE_TARGET) ]; then xz --decompress --keep $(KERNEL_TAR) ; fi ; \
gpg --verify $(KERNEL_TAR_SIGNATURE) $(KERNEL_TAR_SIGNATURE_TARGET) && \
tar -xvf $(KERNEL_TAR_SIGNATURE_TARGET) -C $(PRAWNOS_BUILD) && \
touch $(KERNEL_EXTRACTED) \
;; \
*) \
@echo "Unknown kernel type"; \
exit 1 \
;; \
esac

$(KERNEL_TAR): $(PRAWNOS_BUILD_LOGS) $(PRAWNOS_BUILD_SOURCES)
wget $(WGET_OPTS) $(KERNEL_URL)/$(KERNEL_BASENAME) -O $(KERNEL_TAR)

$(KERNEL_PATCHED): $(KERNEL_EXTRACTED)
@echo $(PRAWNOS_KERNEL_BUILD)
Expand All @@ -133,6 +181,6 @@ $(KERNEL_ATH9K_INSTALLED): $(KERNEL_PATCHED) $(ATH9K_BUILT) | $(KERNEL_ATH9K_FIR

$(PRAWNOS_KERNEL_BUILT): $(KERNEL_ATH9K_INSTALLED) $(PRAWNOS_INITRAMFS_IMAGE)
rm -rf $(KERNEL_BUILD_LOG)
$(PRAWNOS_KERNEL_SCRIPTS_BUILD) $(KVER) $(KERNEL_RESOURCES) $(PRAWNOS_KERNEL_BUILD) $(PRAWNOS_INITRAMFS_IMAGE) $(TARGET) 2>&1 | tee $(KERNEL_BUILD_LOG)
$(PRAWNOS_KERNEL_SCRIPTS_BUILD) $(KVER) $(KERNEL_RESOURCES) $(PRAWNOS_KERNEL_BUILD) $(PRAWNOS_INITRAMFS_IMAGE) $(TARGET) $(KERNEL_CONFIG) 2>&1 | tee $(KERNEL_BUILD_LOG)

endif
Loading

0 comments on commit b35d8c7

Please sign in to comment.