summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleksandr Suvorov <oleksandr.suvorov@toradex.com>2020-04-01 14:00:57 +0300
committerMax Krummenacher <max.krummenacher@toradex.com>2020-04-28 10:58:17 +0200
commit19b4909b3550c1b4a4f7346879ec28a4943d66e2 (patch)
tree7aec82529ab9d022cc1e43ddd7c6f1bacdbc289d
parent774a5a74df9f4cef193816edca9c111490fc89cb (diff)
backports: upgrade from 4.19 to 5.4
backports-5.4 provides latter drivers. Squashed cherry-pick which added 5.4 backports. The main issue that fixes with these backports: the earlier mwifiex drivers for Marvel 8997 WiFi module stucks on firmware crash (ELB-2596). Only backported drivers should depend on backported common modules. Deploying the 99-backports.conf file allows depmod to build modules.dep dependancies file properly. Related-to: ELB-2388 Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> (cherry picked from commit 43140e494897d670f085425232e57c5ed86b7055) (cherry picked from commit 1b0f1b0b3c11af54aba3c76c086cedd101dd5202) (cherry picked from commit a4b3686f00eda0e85ae76a8808229eeccc37406d) (cherry picked from commit 5ffefe1cb25ebdc5b2db410a4b59fed548973ff4) (cherry picked from commit d8bf36f3999dcf5805c308dbfa4fbd4ca49d0c17) (cherry picked from commit 13e31066facf3a28a3458407513e79d2e15aadcc) (cherry picked from commit 56887d44144c03781d6d08d015ddb3949ca1e03d) (cherry picked from commit 7fa2f4f8b33caa5dd4beefd85979bd32bd49d86a)
-rw-r--r--recipes-kernel/backports/backports_4.19.bb42
-rw-r--r--recipes-kernel/backports/backports_5.4.bb85
-rw-r--r--recipes-kernel/backports/files/99-backports.conf8
-rw-r--r--recipes-kernel/backports/files/config58
-rw-r--r--recipes-kernel/backports/files/makefile.patch27
5 files changed, 101 insertions, 119 deletions
diff --git a/recipes-kernel/backports/backports_4.19.bb b/recipes-kernel/backports/backports_4.19.bb
deleted file mode 100644
index b0bbdc8..0000000
--- a/recipes-kernel/backports/backports_4.19.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Backported kernel drivers"
-HOMEPAGE = "https://backports.wiki.kernel.org"
-SECTION = "kernel/modules"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-INC_PR = "r1"
-
-DEPENDS_append = " coreutils-native"
-
-SRCREV = "cf2620f8c3bbbcc7ad33452e685cafd727997866"
-SRCREV_use-head-next = "${AUTOREV}"
-SRC_URI = " \
- git://git.toradex.com/backports-toradex.git;protocol=git;branch=toradex-${PV} \
- file://makefile.patch \
- file://config \
- "
-
-S = "${WORKDIR}/git"
-
-inherit module cml1
-
-MAKE_TARGETS = "modules"
-MODULES_INSTALL_TARGET = "modules_install"
-PACKAGES_DYNAMIC += "^${BPN}-kernel-module-.*"
-
-KERNEL_MODULE_PACKAGE_PREFIX = "${BPN}-"
-
-EXTRA_OEMAKE = " KLIB=${STAGING_KERNEL_DIR} KLIB_BUILD=${STAGING_KERNEL_BUILDDIR} "
-
-KCONFIG_CONFIG_COMMAND = "CC=${BUILD_CC} LD=${BUILD_LD} AR=${BUILD_AR} menuconfig"
-
-do_configure() {
-
- unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
- make CC="${BUILD_CC}" LD="${BUILD_LD}" AR="${BUILD_AR}" \
- -C ${S}/kconf O=${S}/kconf conf
-
- cp ${WORKDIR}/config ${S}/.config
- unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
- oe_runmake oldconfig
-}
-
diff --git a/recipes-kernel/backports/backports_5.4.bb b/recipes-kernel/backports/backports_5.4.bb
new file mode 100644
index 0000000..4d74c62
--- /dev/null
+++ b/recipes-kernel/backports/backports_5.4.bb
@@ -0,0 +1,85 @@
+DESCRIPTION = "Linux Backports"
+HOMEPAGE = "https://backports.wiki.kernel.org"
+SECTION = "kernel/modules"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+
+inherit module-base
+
+DEPMOD_CONF = "99-backports.conf"
+
+# To generate the backports tree yourself, so you can make modifications:
+# Generate the backport tree using:
+# git clone git://git.toradex.com/backports-sources-toradex.git -b linux-5.4.y
+# add/commit the generated tree
+# Change SRCREV = to point to your generated tree
+# Under SRC_URI point this at your generated tree as such:
+# git:///home/user/linux-backports-generated;protocol=file
+
+SRCREV = "e8ef623db4bd6fb85df341d583000e1b12a64a63"
+SRCREV_use-head-next = "${AUTOREV}"
+SRC_URI = " \
+ git://git.toradex.com/backports-toradex.git;protocol=git;branch=toradex-${PV} \
+ file://config \
+ file://${DEPMOD_CONF} \
+ "
+
+# Depend on virtual/kernel to ensure that the kernel is built before we try to
+# build the backports
+DEPENDS += "virtual/kernel"
+DEPENDS += "bison-native coreutils-native flex-native"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = " \
+ KLIB_BUILD=${KBUILD_OUTPUT} \
+ KLIB=${B} \
+ "
+
+do_configure() {
+ # Somehow lex does not automatically get linked to flex!
+ ln -fs flex ../recipe-sysroot-native/usr/bin/lex
+ make CFLAGS="" CPPFLAGS="" CXXFLAGS="" LDFLAGS="" CC="${BUILD_CC}" LD="${BUILD_LD}" \
+ AR="${BUILD_AR}" -C ${S}/kconf O=${S}/kconf conf
+
+ cp ${WORKDIR}/config ${S}/.config
+ oe_runmake oldconfig
+}
+
+# LDFLAGS are not suitable for direct ld use as with the kernel build system
+do_compile() {
+ unset LDFLAGS
+ oe_runmake
+}
+
+do_install() {
+ install -d ${D}/etc/depmod.d/
+ install -m 0644 ${WORKDIR}/${DEPMOD_CONF} ${D}/etc/depmod.d/${DEPMOD_CONF}
+
+ install -d ${D}/lib/modules/${KERNEL_VERSION}/backports
+ for ko in $(find ${S} -type f -name "*.ko")
+ do
+ install -m 0644 $ko ${D}/lib/modules/${KERNEL_VERSION}/backports/
+ done
+}
+
+pkg_postinst_${PN} () {
+ if [ -z "$D" ]; then
+ depmod -a ${KERNEL_VERSION}
+ else
+ # image.bbclass will call depmodwrapper after everything is installed,
+ # no need to do it here as well
+ :
+ fi
+}
+
+pkg_postrm_${PN} () {
+ if [ -z "$D" ]; then
+ depmod -a ${KERNEL_VERSION}
+ fi
+}
+
+FILES_${PN} = " \
+ /etc/depmod.d/${DEPMOD_CONF} \
+ /lib/modules/${KERNEL_VERSION}/backports/ \
+ "
diff --git a/recipes-kernel/backports/files/99-backports.conf b/recipes-kernel/backports/files/99-backports.conf
new file mode 100644
index 0000000..4784568
--- /dev/null
+++ b/recipes-kernel/backports/files/99-backports.conf
@@ -0,0 +1,8 @@
+search built-in backports
+
+override cfg80211 * backports
+override lib80211 * backports
+override mwifiex_pcie * backports
+override mwifiex_sdio * backports
+override mwifiex_usb * backports
+override r8188eu * backports
diff --git a/recipes-kernel/backports/files/config b/recipes-kernel/backports/files/config
index a8f390d..5cf1f05 100644
--- a/recipes-kernel/backports/files/config
+++ b/recipes-kernel/backports/files/config
@@ -1,67 +1,25 @@
CPTCFG_CFG80211=m
+CPTCFG_CFG80211_WEXT=y
CPTCFG_MAC80211=m
-CPTCFG_BT=m
-CPTCFG_BT_RFCOMM=m
-CPTCFG_BT_RFCOMM_TTY=y
-CPTCFG_BT_BNEP=m
-CPTCFG_BT_BNEP_MC_FILTER=y
-CPTCFG_BT_BNEP_PROTO_FILTER=y
-CPTCFG_BT_HIDP=m
-CPTCFG_BT_HCIBTUSB=m
-CPTCFG_BT_HCIBTSDIO=m
-CPTCFG_BT_HCIUART=m
-CPTCFG_BT_HCIUART_BCSP=y
-CPTCFG_BT_HCIUART_ATH3K=y
-CPTCFG_BT_HCIUART_3WIRE=y
-CPTCFG_BT_HCIUART_INTEL=y
-CPTCFG_BT_HCIUART_QCA=y
-CPTCFG_BT_HCIUART_AG6XX=y
-CPTCFG_BT_HCIUART_MRVL=y
-CPTCFG_BT_MRVL=m
-CPTCFG_BT_MRVL_SDIO=m
-CPTCFG_BT_ATH3K=m
# CPTCFG_WLAN_VENDOR_ADMTEK is not set
-CPTCFG_ATH9K=m
-CPTCFG_ATH9K_HTC=m
-CPTCFG_ATH9K_HWRNG=y
-CPTCFG_ATH10K=m
-CPTCFG_ATH10K_PCI=m
-CPTCFG_ATH10K_SDIO=m
-CPTCFG_ATH10K_USB=m
+# CPTCFG_WLAN_VENDOR_ATH is not set
# CPTCFG_WLAN_VENDOR_ATMEL is not set
# CPTCFG_WLAN_VENDOR_BROADCOM is not set
# CPTCFG_WLAN_VENDOR_CISCO is not set
-CPTCFG_IWL4965=m
-CPTCFG_IWL3945=m
-CPTCFG_IWLWIFI=m
-CPTCFG_IWLDVM=m
-CPTCFG_IWLMVM=m
-CPTCFG_IWLWIFI_BCAST_FILTERING=y
-CPTCFG_IWLWIFI_PCIE_RTPM=y
+# CPTCFG_WLAN_VENDOR_INTEL is not set
# CPTCFG_WLAN_VENDOR_INTERSIL is not set
CPTCFG_MWIFIEX=m
CPTCFG_MWIFIEX_SDIO=m
CPTCFG_MWIFIEX_PCIE=m
CPTCFG_MWIFIEX_USB=m
-CPTCFG_MT7601U=m
-CPTCFG_MT76x0U=m
-CPTCFG_MT76x2E=m
-CPTCFG_MT76x2U=m
-CPTCFG_RT2X00=m
-CPTCFG_RT2500USB=m
-CPTCFG_RT2800USB=m
-CPTCFG_RT2800USB_RT3573=y
-CPTCFG_RT2800USB_RT53XX=y
-CPTCFG_RT2800USB_RT55XX=y
-# CPTCFG_RTL_CARDS is not set
-CPTCFG_RTL8XXXU=m
-CPTCFG_RTL8XXXU_UNTESTED=y
-CPTCFG_RSI_91X=m
-# CPTCFG_RSI_DEBUGFS is not set
+# CPTCFG_WLAN_VENDOR_MEDIATEK is not set
+# CPTCFG_WLAN_VENDOR_RALINK is not set
+# CPTCFG_WLAN_VENDOR_REALTEK is not set
+# CPTCFG_WLAN_VENDOR_RSI is not set
# CPTCFG_WLAN_VENDOR_ST is not set
# CPTCFG_WLAN_VENDOR_TI is not set
# CPTCFG_WLAN_VENDOR_ZYDAS is not set
# CPTCFG_WLAN_VENDOR_QUANTENNA is not set
# CPTCFG_USB_NET_DRIVERS is not set
-CPTCFG_SERIAL_DEV_BUS=m
CPTCFG_STAGING=y
+CPTCFG_R8188EU=m
diff --git a/recipes-kernel/backports/files/makefile.patch b/recipes-kernel/backports/files/makefile.patch
deleted file mode 100644
index d6891e6..0000000
--- a/recipes-kernel/backports/files/makefile.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/Makefile.real
-+++ b/Makefile.real
-@@ -90,11 +90,6 @@ modules: backport-include/backport/autoconf.h
- install: modules
- @$(MAKE) -C $(KLIB_BUILD) M=$(BACKPORT_DIR) \
-- INSTALL_MOD_DIR=$(KMODDIR) $(KMODPATH_ARG) \
-+ INSTALL_MOD_DIR=$(KMODDIR) INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) \
- modules_install
-- @./scripts/blacklist.sh $(KLIB)/ $(KLIB)/$(KMODDIR)
-- @./scripts/compress_modules.sh $(KLIB)/$(KMODDIR)
-- @./scripts/check_depmod.sh
-- @/sbin/depmod -a
-- @./scripts/update-initramfs.sh $(KLIB)
- @echo
- @echo Your backported driver modules should be installed now.
- @echo Reboot.
---- a/Makefile
-+++ b/Makefile
-@@ -84,7 +84,7 @@ mrproper:
- echo "" ;\
- done \
- ) > Kconfig.kernel ;\
-- kver=$$($(MAKE) --no-print-directory -C $(KLIB_BUILD) kernelversion | \
-+ kver=$$(echo $(KERNEL_VERSION) | \
- sed 's/^\(\([3-4]\|2\.6\)\.[0-9]\+\).*/\1/;t;d') ;\
- test "$$kver" != "" || echo "Kernel version parse failed!" ;\
- test "$$kver" != "" ;\