summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleksandr Suvorov <oleksandr.suvorov@toradex.com>2020-04-01 14:00:57 +0300
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2020-05-15 02:32:48 +0200
commitdc05d0b009a764f12acfac614d85c45f74e88297 (patch)
treed6e7f1cd8682aa2b5ef0fc8fae0c6e60354950c8
parentcfbc30f387a6d447d9cd8b9266a8fba77cca6b9d (diff)
backports: upgrade from 4.19 to 5.4
backports-5.4 provides latter drivers. The main issue that fixes with these backports: the earlier mwifiex drivers for Marvel 8997 WiFi module stucks on firmware crash (ELB-2596). Related-to: ELB-2724 Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
-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" != "" ;\