Преглед изворни кода

build: add a config option for enabling a testing version of the target kernel

If the target supports a newer kernel version that is not used by default
yet, it can be enabled with this option

Signed-off-by: Felix Fietkau <[email protected]>
Felix Fietkau пре 6 година
родитељ
комит
85017c40f4

+ 9 - 0
config/Config-build.in

@@ -36,6 +36,15 @@ menu "Global build settings"
 
 	comment "General build options"
 
+	config TESTING_KERNEL
+		bool "Use the testing kernel version"
+		depends on HAS_TESTING_KERNEL
+		default n
+		help
+		  If the target supports a newer kernel version than the default,
+		  you can use this config option to enable it
+
+
 	config DISPLAY_SUPPORT
 		bool "Show packages that require graphics support (local or remote)"
 		default n

+ 7 - 0
include/kernel-version.mk

@@ -2,6 +2,10 @@
 
 LINUX_RELEASE?=1
 
+ifdef CONFIG_TESTING_KERNEL
+  KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
+endif
+
 LINUX_VERSION-4.9 = .172
 LINUX_VERSION-4.14 = .115
 LINUX_VERSION-4.19 = .38
@@ -23,6 +27,9 @@ else
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
 endif
+ifdef KERNEL_TESTING_PATCHVER
+  LINUX_TESTING_VERSION:=$(KERNEL_TESTING_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_TESTING_PATCHVER)))
+endif
 endif
 
 split_version=$(subst ., ,$(1))

+ 4 - 0
include/target.mk

@@ -225,6 +225,9 @@ ifeq ($(DUMP),1)
     .SILENT: $(TMP_CONFIG)
     .PRECIOUS: $(TMP_CONFIG)
 
+    ifdef KERNEL_TESTING_PATCHVER
+      FEATURES += testing-kernel
+    endif
     ifneq ($(CONFIG_OF),)
       FEATURES += dt
     endif
@@ -283,6 +286,7 @@ define BuildTargets/DumpCurrent
 	 echo 'Target-Optimization: $(if $(CFLAGS),$(CFLAGS),$(DEFAULT_CFLAGS))'; \
 	 echo 'CPU-Type: $(CPU_TYPE)$(if $(CPU_SUBTYPE),+$(CPU_SUBTYPE))'; \
 	 echo 'Linux-Version: $(LINUX_VERSION)'; \
+	$(if $(LINUX_TESTING_VERSION),echo 'Linux-Testing-Version: $(LINUX_TESTING_VERSION)';) \
 	 echo 'Linux-Release: $(LINUX_RELEASE)'; \
 	 echo 'Linux-Kernel-Arch: $(LINUX_KARCH)'; \
 	$(if $(SUBTARGET),,$(if $(DEFAULT_SUBTARGET), echo 'Default-Subtarget: $(DEFAULT_SUBTARGET)'; )) \

+ 1 - 0
scripts/metadata.pm

@@ -131,6 +131,7 @@ sub parse_target_metadata($) {
 		/^Target-Optimization:\s*(.+)\s*$/ and $target->{cflags} = $1;
 		/^CPU-Type:\s*(.+)\s*$/ and $target->{cputype} = $1;
 		/^Linux-Version:\s*(.+)\s*$/ and $target->{version} = $1;
+		/^Linux-Testing-Version:\s*(.+)\s*$/ and $target->{testing_version} = $1;
 		/^Linux-Release:\s*(.+)\s*$/ and $target->{release} = $1;
 		/^Linux-Kernel-Arch:\s*(.+)\s*$/ and $target->{karch} = $1;
 		/^Default-Subtarget:\s*(.+)\s*$/ and $target->{def_subtarget} = $1;

+ 12 - 5
scripts/target-metadata.pl

@@ -42,6 +42,7 @@ sub target_config_features(@) {
 		/^virtio$/ and $ret .= "\tselect VIRTIO_SUPPORT\n";
 		/^rootfs-part$/ and $ret .= "\tselect USES_ROOTFS_PART\n";
 		/^boot-part$/ and $ret .= "\tselect USES_BOOT_PART\n";
+		/^testing-kernel$/ and $ret .= "\tselect HAS_TESTING_KERNEL\n";
 	}
 	return $ret;
 }
@@ -83,11 +84,14 @@ sub print_target($) {
 	}
 
 	my $v = kver($target->{version});
+	my $tv = kver($target->{testing_version});
+	$tv or $tv = $v;
 	if (@{$target->{subtargets}} == 0) {
 	$confstr = <<EOF;
 config TARGET_$target->{conf}
 	bool "$target->{name}"
-	select LINUX_$v
+	select LINUX_$v if !TESTING_KERNEL
+	select LINUX_$tv if TESTING_KERNEL
 EOF
 	}
 	else {
@@ -387,15 +391,18 @@ EOF
 
 	my %kver;
 	foreach my $target (@target) {
-		my $v = kver($target->{version});
-		next if $kver{$v};
-		$kver{$v} = 1;
-		print <<EOF;
+		foreach my $tv ($target->{version}, $target->{testing_version}) {
+			next unless $tv;
+			my $v = kver($tv);
+			next if $kver{$v};
+			$kver{$v} = 1;
+			print <<EOF;
 
 config LINUX_$v
 	bool
 
 EOF
+		}
 	}
 	foreach my $def (sort keys %defaults) {
 		print <<EOF;

+ 3 - 0
target/Config.in

@@ -2,6 +2,9 @@ source "tmp/.config-target.in"
 
 # Kernel/Hardware features
 
+config HAS_TESTING_KERNEL
+	bool
+
 config HAS_SPE_FPU
 	depends on powerpc
 	select HAS_FPU

+ 1 - 0
target/linux/apm821xx/Makefile

@@ -14,6 +14,7 @@ MAINTAINER:=Chris Blake <[email protected]>, \
 SUBTARGETS:=nand sata
 
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 define Target/Description
 	Build images for AppliedMicro APM821xx based boards.

+ 1 - 0
target/linux/ath79/Makefile

@@ -9,6 +9,7 @@ SUBTARGETS:=generic nand tiny
 FEATURES:=ramdisk
 
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 include $(INCLUDE_DIR)/target.mk
 

+ 1 - 0
target/linux/bcm53xx/Makefile

@@ -14,6 +14,7 @@ MAINTAINER:=Hauke Mehrtens <[email protected]>
 CPU_TYPE:=cortex-a9
 
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 define Target/Description
 	Build firmware images for Broadcom based BCM47xx/53xx routers with ARM CPU, *not* MIPS.

+ 1 - 0
target/linux/brcm47xx/Makefile

@@ -14,6 +14,7 @@ SUBTARGETS:=generic mips74k legacy
 MAINTAINER:=Hauke Mehrtens <[email protected]>
 
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 define Target/Description
 	Build firmware images for Broadcom based BCM47xx/53xx routers with MIPS CPU, *not* ARM.

+ 1 - 0
target/linux/cns3xxx/Makefile

@@ -15,6 +15,7 @@ CPU_SUBTYPE:=vfp
 MAINTAINER:=Felix Fietkau <[email protected]>, \
 	    Koen Vandeputte <[email protected]>
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 define Target/Description
 	Build images for Cavium Networks Econa CNS3xxx based boards,

+ 1 - 0
target/linux/gemini/Makefile

@@ -14,6 +14,7 @@ CPU_TYPE:=fa526
 MAINTAINER:=Roman Yeryomin <[email protected]>
 
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 define Target/Description
 	Build firmware images for the StorLink/Cortina Gemini CS351x ARM FA526 CPU

+ 1 - 0
target/linux/imx6/Makefile

@@ -15,6 +15,7 @@ CPU_SUBTYPE:=neon
 MAINTAINER:=Luka Perkov <[email protected]>
 
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 include $(INCLUDE_DIR)/target.mk
 

+ 1 - 0
target/linux/ipq40xx/Makefile

@@ -10,6 +10,7 @@ MAINTAINER:=John Crispin <[email protected]>
 
 # TODO: drop kmod-usb-dwc3-of-simple when migrating to 4.19
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 KERNELNAME:=zImage Image dtbs
 

+ 1 - 0
target/linux/kirkwood/Makefile

@@ -14,6 +14,7 @@ CPU_TYPE:=xscale
 MAINTAINER:=Luka Perkov <[email protected]>
 
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 include $(INCLUDE_DIR)/target.mk
 

+ 1 - 0
target/linux/mpc85xx/Makefile

@@ -15,6 +15,7 @@ MAINTAINER:=Imre Kaloz <[email protected]>
 SUBTARGETS:=generic p1020 p2020
 
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 KERNELNAME:=zImage
 

+ 1 - 0
target/linux/octeon/Makefile

@@ -14,6 +14,7 @@ CPU_TYPE:=octeonplus
 MAINTAINER:=John Crispin <[email protected]>
 
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 define Target/Description
 	Build firmware images for Cavium Networks Octeon-based boards.

+ 1 - 0
target/linux/sunxi/Makefile

@@ -15,6 +15,7 @@ SUBTARGETS:=cortexa8 cortexa7 cortexa53
 MAINTAINER:=Zoltan HERPAI <[email protected]>
 
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER := 4.19
 KERNELNAME:=zImage dtbs
 
 # A10: Cortex-A8

+ 1 - 0
target/linux/tegra/Makefile

@@ -15,6 +15,7 @@ CPU_SUBTYPE := vfpv3
 MAINTAINER := Tomasz Maciej Nowak <[email protected]>
 
 KERNEL_PATCHVER := 4.14
+KERNEL_TESTING_PATCHVER := 4.19
 
 include $(INCLUDE_DIR)/target.mk
 

+ 1 - 0
target/linux/x86/Makefile

@@ -14,6 +14,7 @@ SUBTARGETS:=generic legacy geode 64
 MAINTAINER:=Felix Fietkau <[email protected]>
 
 KERNEL_PATCHVER:=4.14
+KERNEL_TESTING_PATCHVER:=4.19
 
 KERNELNAME:=bzImage