Skip to contentSkip to conversation

Revert "linux-firmware: Modify firmware installation path"

PATCH In review Jason Wessel 4 participants 10 messages Jan 19, 2017 – Feb 2, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 Revert "linux-firmware: Modify firmware installation path"

This reverts commit a46a23fed9acd097ecc8ab3985d18688abe7b065.

The 64bit/32bit multilib builds break because the kernel's firmware loader cannot find the firmware because it gets placed int the wrong directory.

---
 .../linux-firmware/linux-firmware_git.bb           | 168 ++++++++++-----------
 1 file changed, 82 insertions(+), 86 deletions(-)
meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +82 -86
index 5942997fda..4fedcfbc67 100644
@@ -195,27 +195,27 @@ do_compile() {
 }
 
 do_install() {
-	install -d  ${D}${base_libdir}/firmware/
-	cp -r * ${D}${base_libdir}/firmware/
+	install -d  ${D}/lib/firmware/
+	cp -r * ${D}/lib/firmware/
 
 	# Avoid Makefile to be deployed
-	rm ${D}${base_libdir}/firmware/Makefile
+	rm ${D}/lib/firmware/Makefile
 
 	# Remove unbuild firmware which needs cmake and bash
-	rm ${D}${base_libdir}/firmware/carl9170fw -rf
+	rm ${D}/lib/firmware/carl9170fw -rf
 
 	# Remove pointless bash script
-	rm ${D}${base_libdir}/firmware/configure
+	rm ${D}/lib/firmware/configure
 
 	# Libertas sd8686
-	ln -sf libertas/sd8686_v9.bin ${D}${base_libdir}/firmware/sd8686.bin
-	ln -sf libertas/sd8686_v9_helper.bin ${D}${base_libdir}/firmware/sd8686_helper.bin
+	ln -sf libertas/sd8686_v9.bin ${D}/lib/firmware/sd8686.bin
+	ln -sf libertas/sd8686_v9_helper.bin ${D}/lib/firmware/sd8686_helper.bin
 
 	# fixup wl12xx location, after 2.6.37 the kernel searches a different location for it
-	( cd ${D}${base_libdir}/firmware ; ln -sf ti-connectivity/* . )
+	( cd ${D}/lib/firmware ; ln -sf ti-connectivity/* . )
 
         # Copy the iwlwifi ucode
-        cp ${WORKDIR}/iwlwifi-8000C-19.ucode ${D}${base_libdir}/firmware/
+        cp ${WORKDIR}/iwlwifi-8000C-19.ucode ${D}/lib/firmware/
 }
 
 
@@ -252,21 +252,21 @@ LICENSE_${PN}-ath6k = "Firmware-atheros_firmware"
 LICENSE_${PN}-ath9k = "Firmware-atheros_firmware"
 LICENSE_${PN}-atheros-license = "Firmware-atheros_firmware"
 
-FILES_${PN}-atheros-license = "${base_libdir}/firmware/LICENCE.atheros_firmware"
+FILES_${PN}-atheros-license = "/lib/firmware/LICENCE.atheros_firmware"
 FILES_${PN}-ar9170 = " \
-  ${base_libdir}/firmware/ar9170*.fw \
+  /lib/firmware/ar9170*.fw \
 "
 FILES_${PN}-carl9170 = " \
-  ${base_libdir}/firmware/carl9170*.fw \
+  /lib/firmware/carl9170*.fw \
 "
 FILES_${PN}-ath6k = " \
-  ${base_libdir}/firmware/ath6k \
+  /lib/firmware/ath6k \
 "
 FILES_${PN}-ath9k = " \
-  ${base_libdir}/firmware/ar9271.fw \
-  ${base_libdir}/firmware/ar7010*.fw \
-  ${base_libdir}/firmware/htc_9271.fw \
-  ${base_libdir}/firmware/htc_7010.fw \
+  /lib/firmware/ar9271.fw \
+  /lib/firmware/ar7010*.fw \
+  /lib/firmware/htc_9271.fw \
+  /lib/firmware/htc_7010.fw \
 "
 
 RDEPENDS_${PN}-ar9170 += "${PN}-atheros-license"
@@ -280,14 +280,14 @@ LICENSE_${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k"
 LICENSE_${PN}-ath10k = "Firmware-qualcommAthos_ath10k"
 LICENSE_${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k"
 
-FILES_${PN}-ar3k-license = "${base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k"
+FILES_${PN}-ar3k-license = "/lib/firmware/LICENSE.QualcommAtheros_ar3k"
 FILES_${PN}-ar3k = " \
-  ${base_libdir}/firmware/ar3k \
+  /lib/firmware/ar3k \
 "
 
-FILES_${PN}-ath10k-license = "${base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k"
+FILES_${PN}-ath10k-license = "/lib/firmware/LICENSE.QualcommAtheros_ath10k"
 FILES_${PN}-ath10k = " \
-  ${base_libdir}/firmware/ath10k \
+  /lib/firmware/ath10k \
 "
 
 RDEPENDS_${PN}-ar3k += "${PN}-ar3k-license"
@@ -297,9 +297,9 @@ RDEPENDS_${PN}-ath10k += "${PN}-ath10k-license"
 LICENSE_${PN}-ralink = "Firmware-ralink-firmware"
 LICENSE_${PN}-ralink-license = "Firmware-ralink-firmware"
 
-FILES_${PN}-ralink-license = "${base_libdir}/firmware/LICENCE.ralink-firmware.txt"
+FILES_${PN}-ralink-license = "/lib/firmware/LICENCE.ralink-firmware.txt"
 FILES_${PN}-ralink = " \
-  ${base_libdir}/firmware/rt*.bin \
+  /lib/firmware/rt*.bin \
 "
 
 RDEPENDS_${PN}-ralink += "${PN}-ralink-license"
@@ -308,9 +308,9 @@ RDEPENDS_${PN}-ralink += "${PN}-ralink-license"
 LICENSE_${PN}-radeon = "Firmware-radeon"
 LICENSE_${PN}-radeon-license = "Firmware-radeon"
 
-FILES_${PN}-radeon-license = "${base_libdir}/firmware/LICENSE.radeon"
+FILES_${PN}-radeon-license = "/lib/firmware/LICENSE.radeon"
 FILES_${PN}-radeon = " \
-  ${base_libdir}/firmware/radeon \
+  /lib/firmware/radeon \
 "
 
 RDEPENDS_${PN}-radeon += "${PN}-radeon-license"
@@ -322,20 +322,20 @@ LICENSE_${PN}-sd8787 = "Firmware-Marvell"
 LICENSE_${PN}-sd8797 = "Firmware-Marvell"
 LICENSE_${PN}-marvell-license = "Firmware-Marvell"
 
-FILES_${PN}-marvell-license = "${base_libdir}/firmware/LICENCE.Marvell"
+FILES_${PN}-marvell-license = "/lib/firmware/LICENCE.Marvell"
 FILES_${PN}-sd8686 = " \
-  ${base_libdir}/firmware/libertas/sd8686_v9* \
-  ${base_libdir}/firmware/sd8686* \
+  /lib/firmware/libertas/sd8686_v9* \
+  /lib/firmware/sd8686* \
 "
 FILES_${PN}-sd8688 = " \
-  ${base_libdir}/firmware/libertas/sd8688* \
-  ${base_libdir}/firmware/mrvl/sd8688* \
+  /lib/firmware/libertas/sd8688* \
+  /lib/firmware/mrvl/sd8688* \
 "
 FILES_${PN}-sd8787 = " \
-  ${base_libdir}/firmware/mrvl/sd8787_uapsta.bin \
+  /lib/firmware/mrvl/sd8787_uapsta.bin \
 "
 FILES_${PN}-sd8797 = " \
-  ${base_libdir}/firmware/mrvl/sd8797_uapsta.bin \
+  /lib/firmware/mrvl/sd8797_uapsta.bin \
 "
 
 RDEPENDS_${PN}-sd8686 += "${PN}-marvell-license"
@@ -353,25 +353,25 @@ LICENSE_${PN}-rtl8821 = "Firmware-rtlwifi_firmware"
 LICENSE_${PN}-rtl-license = "Firmware-rtlwifi_firmware"
 
 FILES_${PN}-rtl-license = " \
-  ${base_libdir}/firmware/LICENCE.rtlwifi_firmware.txt \
+  /lib/firmware/LICENCE.rtlwifi_firmware.txt \
 "
 FILES_${PN}-rtl8188 = " \
-  ${base_libdir}/firmware/rtlwifi/rtl8188*.bin \
+  /lib/firmware/rtlwifi/rtl8188*.bin \
 "
 FILES_${PN}-rtl8192cu = " \
-  ${base_libdir}/firmware/rtlwifi/rtl8192cufw*.bin \
+  /lib/firmware/rtlwifi/rtl8192cufw*.bin \
 "
 FILES_${PN}-rtl8192ce = " \
-  ${base_libdir}/firmware/rtlwifi/rtl8192cfw*.bin \
+  /lib/firmware/rtlwifi/rtl8192cfw*.bin \
 "
 FILES_${PN}-rtl8192su = " \
-  ${base_libdir}/firmware/rtlwifi/rtl8712u.bin \
+  /lib/firmware/rtlwifi/rtl8712u.bin \
 "
 FILES_${PN}-rtl8723 = " \
-  ${base_libdir}/firmware/rtlwifi/rtl8723*.bin \
+  /lib/firmware/rtlwifi/rtl8723*.bin \
 "
 FILES_${PN}-rtl8821 = " \
-  ${base_libdir}/firmware/rtlwifi/rtl8821*.bin \
+  /lib/firmware/rtlwifi/rtl8821*.bin \
 "
 
 RDEPENDS_${PN}-rtl8188 += "${PN}-rtl-license"
@@ -386,16 +386,16 @@ LICENSE_${PN}-wl12xx = "Firmware-ti-connectivity"
 LICENSE_${PN}-wl18xx = "Firmware-ti-connectivity"
 LICENSE_${PN}-ti-connectivity-license = "Firmware-ti-connectivity"
 
-FILES_${PN}-ti-connectivity-license = "${base_libdir}/firmware/LICENCE.ti-connectivity"
+FILES_${PN}-ti-connectivity-license = "/lib/firmware/LICENCE.ti-connectivity"
 FILES_${PN}-wl12xx = " \
-  ${base_libdir}/firmware/wl12* \
-  ${base_libdir}/firmware/TI* \
-  ${base_libdir}/firmware/ti-connectivity \
+  /lib/firmware/wl12* \
+  /lib/firmware/TI* \
+  /lib/firmware/ti-connectivity \
 "
 FILES_${PN}-wl18xx = " \
-  ${base_libdir}/firmware/wl18* \
-  ${base_libdir}/firmware/TI* \
-  ${base_libdir}/firmware/ti-connectivity \
+  /lib/firmware/wl18* \
+  /lib/firmware/TI* \
+  /lib/firmware/ti-connectivity \
 "
 
 RDEPENDS_${PN}-wl12xx = "${PN}-ti-connectivity-license"
@@ -405,18 +405,14 @@ RDEPENDS_${PN}-wl18xx = "${PN}-ti-connectivity-license"
 LICENSE_${PN}-vt6656 = "Firmware-via_vt6656"
 LICENSE_${PN}-vt6656-license = "Firmware-via_vt6656"
 
-FILES_${PN}-vt6656-license = "${base_libdir}/firmware/LICENCE.via_vt6656"
+FILES_${PN}-vt6656-license = "/lib/firmware/LICENCE.via_vt6656"
 FILES_${PN}-vt6656 = " \
-  ${base_libdir}/firmware/vntwusb.fw \
+  /lib/firmware/vntwusb.fw \
 "
 
 RDEPENDS_${PN}-vt6656 = "${PN}-vt6656-license"
 
 # For broadcom
-#
-# WARNING: The ALTERNATIVE_* variables are not using ${PN} because of
-# a bug in bitbake; when this is fixed and bitbake learns how to proper
-# pass variable flags with expansion we can rework this patch.
 
 LICENSE_${PN}-bcm4329 = "Firmware-broadcom_bcm43xx"
 LICENSE_${PN}-bcm4330 = "Firmware-broadcom_bcm43xx"
@@ -428,28 +424,28 @@ LICENSE_${PN}-bcm4354 = "Firmware-broadcom_bcm43xx"
 LICENSE_${PN}-broadcom-license = "Firmware-broadcom_bcm43xx"
 
 FILES_${PN}-broadcom-license = " \
-  ${base_libdir}/firmware/LICENCE.broadcom_bcm43xx \
+  /lib/firmware/LICENCE.broadcom_bcm43xx \
 "
 FILES_${PN}-bcm4329 = " \
-  ${base_libdir}/firmware/brcm/brcmfmac4329-sdio.bin \
+  /lib/firmware/brcm/brcmfmac4329-sdio.bin \
 "
 FILES_${PN}-bcm4330 = " \
-  ${base_libdir}/firmware/brcm/brcmfmac4330-sdio.bin \
+  /lib/firmware/brcm/brcmfmac4330-sdio.bin \
 "
 FILES_${PN}-bcm4334 = " \
-  ${base_libdir}/firmware/brcm/brcmfmac4334-sdio.bin \
+  /lib/firmware/brcm/brcmfmac4334-sdio.bin \
 "
 FILES_${PN}-bcm43340 = " \
-  ${base_libdir}/firmware/brcm/brcmfmac43340-sdio.bin \
+  /lib/firmware/brcm/brcmfmac43340-sdio.bin \
 "
 FILES_${PN}-bcm4339 = " \
-  ${base_libdir}/firmware/brcm/brcmfmac4339-sdio.bin \
+  /lib/firmware/brcm/brcmfmac4339-sdio.bin \
 "
 FILES_${PN}-bcm43430 = " \
-  ${base_libdir}/firmware/brcm/brcmfmac43430-sdio.bin \
+  /lib/firmware/brcm/brcmfmac43430-sdio.bin \
 "
 FILES_${PN}-bcm4354 = " \
-  ${base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin \
+  /lib/firmware/brcm/brcmfmac4354-sdio.bin \
 "
 
 RDEPENDS_${PN}-bcm4329 += "${PN}-broadcom-license"
@@ -468,8 +464,8 @@ RDEPENDS_${PN}-bcm4354 += "${PN}-broadcom-license"
 LICENSE_${PN}-bnx2-mips = "WHENCE"
 LICENSE_${PN}-whence-license = "WHENCE"
 
-FILES_${PN}-bnx2-mips = "${base_libdir}/firmware/bnx2/bnx2-mips-09-6.2.1b.fw"
-FILES_${PN}-whence-license = "${base_libdir}/firmware/WHENCE"
+FILES_${PN}-bnx2-mips = "/lib/firmware/bnx2/bnx2-mips-09-6.2.1b.fw"
+FILES_${PN}-whence-license = "/lib/firmware/WHENCE"
 
 RDEPENDS_${PN}-bnx2-mips += "${PN}-whence-license"
 
@@ -495,24 +491,24 @@ LICENSE_${PN}-iwlwifi-misc      = "Firmware-iwlwifi_firmware"
 LICENSE_${PN}-iwlwifi-license   = "Firmware-iwlwifi_firmware"
 
 
-FILES_${PN}-iwlwifi-license = "${base_libdir}/firmware/LICENCE.iwlwifi_firmware"
-FILES_${PN}-iwlwifi-135-6 = "${base_libdir}/firmware/iwlwifi-135-6.ucode"
-FILES_${PN}-iwlwifi-3160-7 = "${base_libdir}/firmware/iwlwifi-3160-7.ucode"
-FILES_${PN}-iwlwifi-3160-8 = "${base_libdir}/firmware/iwlwifi-3160-8.ucode"
-FILES_${PN}-iwlwifi-3160-9 = "${base_libdir}/firmware/iwlwifi-3160-9.ucode"
-FILES_${PN}-iwlwifi-6000-4 = "${base_libdir}/firmware/iwlwifi-6000-4.ucode"
-FILES_${PN}-iwlwifi-6000g2a-5 = "${base_libdir}/firmware/iwlwifi-6000g2a-5.ucode"
-FILES_${PN}-iwlwifi-6000g2a-6 = "${base_libdir}/firmware/iwlwifi-6000g2a-6.ucode"
-FILES_${PN}-iwlwifi-6000g2b-5 = "${base_libdir}/firmware/iwlwifi-6000g2b-5.ucode"
-FILES_${PN}-iwlwifi-6000g2b-6 = "${base_libdir}/firmware/iwlwifi-6000g2b-6.ucode"
-FILES_${PN}-iwlwifi-6050-4 = "${base_libdir}/firmware/iwlwifi-6050-4.ucode"
-FILES_${PN}-iwlwifi-6050-5 = "${base_libdir}/firmware/iwlwifi-6050-5.ucode"
-FILES_${PN}-iwlwifi-7260   = "${base_libdir}/firmware/iwlwifi-7260-*.ucode"
-FILES_${PN}-iwlwifi-7265   = "${base_libdir}/firmware/iwlwifi-7265-*.ucode"
-FILES_${PN}-iwlwifi-7265d   = "${base_libdir}/firmware/iwlwifi-7265D-*.ucode"
-FILES_${PN}-iwlwifi-8000c   = "${base_libdir}/firmware/iwlwifi-8000C-*.ucode"
-FILES_${PN}-iwlwifi-8265   = "${base_libdir}/firmware/iwlwifi-8265-*.ucode"
-FILES_${PN}-iwlwifi-misc   = "${base_libdir}/firmware/iwlwifi-*.ucode"
+FILES_${PN}-iwlwifi-license = "/lib/firmware/LICENCE.iwlwifi_firmware"
+FILES_${PN}-iwlwifi-135-6 = "/lib/firmware/iwlwifi-135-6.ucode"
+FILES_${PN}-iwlwifi-3160-7 = "/lib/firmware/iwlwifi-3160-7.ucode"
+FILES_${PN}-iwlwifi-3160-8 = "/lib/firmware/iwlwifi-3160-8.ucode"
+FILES_${PN}-iwlwifi-3160-9 = "/lib/firmware/iwlwifi-3160-9.ucode"
+FILES_${PN}-iwlwifi-6000-4 = "/lib/firmware/iwlwifi-6000-4.ucode"
+FILES_${PN}-iwlwifi-6000g2a-5 = "/lib/firmware/iwlwifi-6000g2a-5.ucode"
+FILES_${PN}-iwlwifi-6000g2a-6 = "/lib/firmware/iwlwifi-6000g2a-6.ucode"
+FILES_${PN}-iwlwifi-6000g2b-5 = "/lib/firmware/iwlwifi-6000g2b-5.ucode"
+FILES_${PN}-iwlwifi-6000g2b-6 = "/lib/firmware/iwlwifi-6000g2b-6.ucode"
+FILES_${PN}-iwlwifi-6050-4 = "/lib/firmware/iwlwifi-6050-4.ucode"
+FILES_${PN}-iwlwifi-6050-5 = "/lib/firmware/iwlwifi-6050-5.ucode"
+FILES_${PN}-iwlwifi-7260   = "/lib/firmware/iwlwifi-7260-*.ucode"
+FILES_${PN}-iwlwifi-7265   = "/lib/firmware/iwlwifi-7265-*.ucode"
+FILES_${PN}-iwlwifi-7265d   = "/lib/firmware/iwlwifi-7265D-*.ucode"
+FILES_${PN}-iwlwifi-8000c   = "/lib/firmware/iwlwifi-8000C-*.ucode"
+FILES_${PN}-iwlwifi-8265   = "/lib/firmware/iwlwifi-8265-*.ucode"
+FILES_${PN}-iwlwifi-misc   = "/lib/firmware/iwlwifi-*.ucode"
 
 RDEPENDS_${PN}-iwlwifi-135-6     = "${PN}-iwlwifi-license"
 RDEPENDS_${PN}-iwlwifi-3160-7    = "${PN}-iwlwifi-license"
@@ -551,14 +547,14 @@ RCONFLICTS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}
 
 LICENSE_${PN}-i915       = "Firmware-i915"
 LICENSE_${PN}-i915-license = "Firmware-i915"
-FILES_${PN}-i915-license = "${base_libdir}/firmware/LICENSE.i915"
-FILES_${PN}-i915         = "${base_libdir}/firmware/i915"
+FILES_${PN}-i915-license = "/lib/firmware/LICENSE.i915"
+FILES_${PN}-i915         = "/lib/firmware/i915"
 RDEPENDS_${PN}-i915      = "${PN}-i915-license"
 
-FILES_${PN}-adsp-sst-license      = "${base_libdir}/firmware/LICENCE.adsp_sst"
+FILES_${PN}-adsp-sst-license      = "/lib/firmware/LICENCE.adsp_sst"
 LICENSE_${PN}-adsp-sst            = "Firmware-adsp_sst"
 LICENSE_${PN}-adsp-sst-license    = "Firmware-adsp_sst"
-FILES_${PN}-adsp-sst              = "${base_libdir}/firmware/intel/dsp_fw*"
+FILES_${PN}-adsp-sst              = "/lib/firmware/intel/dsp_fw*"
 RDEPENDS_${PN}-adsp-sst           = "${PN}-adsp-sst-license"
 
 # For other firmwares
@@ -610,8 +606,8 @@ LICENSE_${PN} = "\
     & WHENCE \
 "
 
-FILES_${PN}-license += "${base_libdir}/firmware/LICEN*"
-FILES_${PN} += "${base_libdir}/firmware/*"
+FILES_${PN}-license += "/lib/firmware/LICEN*"
+FILES_${PN} += "/lib/firmware/*"
 RDEPENDS_${PN} += "${PN}-license"
 RDEPENDS_${PN} += "${PN}-whence-license"
 
Signature · 1 line
2.11.0
#1 lore raw

PATCH 2/2 Revert "kernel: Modify kernel modules installation path."

This reverts commit 0ccb2efe9837e2915c093341a662dffc1df00866.

The OVS fails to function and the kernel modules cannot be found by any of the kernel tools such as depmod because they are installed into the wrong directory in multilib 64bit/32bit bulids.

---
 meta/classes/kernel-module-split.bbclass |  2 +-
 meta/classes/kernel.bbclass              | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)
meta/classes/kernel-module-split.bbclass +1 -1
index 0e4e110f0c..efe1b42656 100644
@@ -127,7 +127,7 @@ python split_kernel_module_packages () {
     postinst = d.getVar('pkg_postinst_modules')
     postrm = d.getVar('pkg_postrm_modules')
 
-    modules = do_split_packages(d, root='${base_libdir}/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='kernel-%s' % (d.getVar("KERNEL_VERSION")))
+    modules = do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='kernel-%s' % (d.getVar("KERNEL_VERSION")))
     if modules:
         metapkg = d.getVar('KERNEL_MODULES_META_PACKAGE')
         d.appendVar('RDEPENDS_' + metapkg, ' '+' '.join(modules))
meta/classes/kernel.bbclass +6 -6
index 74517e8d92..3630042dbd 100644
@@ -296,11 +296,11 @@ kernel_do_install() {
 	#
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
 	if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
-		oe_runmake DEPMOD=echo MODLIB=${D}${base_libdir}/modules/${KERNEL_VERSION} INSTALL_FW_PATH=${D}${base_libdir}/firmware modules_install
-		rm "${D}${base_libdir}/modules/${KERNEL_VERSION}/build"
-		rm "${D}${base_libdir}/modules/${KERNEL_VERSION}/source"
+		oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" modules_install
+		rm "${D}/lib/modules/${KERNEL_VERSION}/build"
+		rm "${D}/lib/modules/${KERNEL_VERSION}/source"
 		# If the kernel/ directory is empty remove it to prevent QA issues
-		rmdir --ignore-fail-on-non-empty "${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel"
+		rmdir --ignore-fail-on-non-empty "${D}/lib/modules/${KERNEL_VERSION}/kernel"
 	else
 		bbnote "no modules to install"
 	fi
@@ -478,7 +478,7 @@ EXPORT_FUNCTIONS do_compile do_install do_configure
 # kernel-image becomes kernel-image-${KERNEL_VERSION}
 PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev kernel-modules"
 FILES_${PN} = ""
-FILES_kernel-base = "${base_libdir}/modules/${KERNEL_VERSION}/modules.order ${base_libdir}/modules/${KERNEL_VERSION}/modules.builtin"
+FILES_kernel-base = "/lib/modules/${KERNEL_VERSION}/modules.order /lib/modules/${KERNEL_VERSION}/modules.builtin"
 FILES_kernel-image = ""
 FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH} /lib/modules/${KERNEL_VERSION}/build"
 FILES_kernel-vmlinux = "/boot/vmlinux-${KERNEL_VERSION_NAME}"
@@ -511,7 +511,7 @@ pkg_postinst_kernel-base () {
 PACKAGESPLITFUNCS_prepend = "split_kernel_packages "
 
 python split_kernel_packages () {
-    do_split_packages(d, root='${base_libdir}/firmware', file_regex='^(.*)\.(bin|fw|cis|csp|dsp)$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='')
+    do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.(bin|fw|cis|csp|dsp)$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='')
 }
 
 # Many scripts want to look in arch/$arch/boot for the bootable
Signature · 1 line
2.11.0
#2 lore raw

Re: [PATCH 2/2] Revert "kernel: Modify kernel modules installation path."

The issue here is that in a multilib build the ${base_libdir} is resolving to /lib64 which completely breaks some tools that fully expect /lib/modules to be a fixed location regardless if the target is 32/64 or something else.

It may be fixable by using, ${nonarch_base_libdir}, but it wasn't quite that simple because it didn't fully work for the firmware loader so for now it would be best to just revert the two patches and keep oe-core working.

Cheers,
Jason.

Quoted 63 lines · Jason Wessel

This reverts commit 0ccb2efe9837e2915c093341a662dffc1df00866.

The OVS fails to function and the kernel modules cannot be found by any of the kernel tools such as depmod because they are installed into the wrong directory in multilib 64bit/32bit bulids.

---
  meta/classes/kernel-module-split.bbclass |  2 +-
  meta/classes/kernel.bbclass              | 12 ++++++------
  2 files changed, 7 insertions(+), 7 deletions(-)
meta/classes/kernel-module-split.bbclass +1 -1
index 0e4e110f0c..efe1b42656 100644
@@ -127,7 +127,7 @@ python split_kernel_module_packages () {
      postinst = d.getVar('pkg_postinst_modules')
      postrm = d.getVar('pkg_postrm_modules')
 
-    modules = do_split_packages(d, root='${base_libdir}/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='kernel-%s' % (d.getVar("KERNEL_VERSION")))
+    modules = do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='kernel-%s' % (d.getVar("KERNEL_VERSION")))
      if modules:
          metapkg = d.getVar('KERNEL_MODULES_META_PACKAGE')
          d.appendVar('RDEPENDS_' + metapkg, ' '+' '.join(modules))
meta/classes/kernel.bbclass +6 -6
index 74517e8d92..3630042dbd 100644
@@ -296,11 +296,11 @@ kernel_do_install() {
  	#
  	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
  	if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
-		oe_runmake DEPMOD=echo MODLIB=${D}${base_libdir}/modules/${KERNEL_VERSION} INSTALL_FW_PATH=${D}${base_libdir}/firmware modules_install
-		rm "${D}${base_libdir}/modules/${KERNEL_VERSION}/build"
-		rm "${D}${base_libdir}/modules/${KERNEL_VERSION}/source"
+		oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" modules_install
+		rm "${D}/lib/modules/${KERNEL_VERSION}/build"
+		rm "${D}/lib/modules/${KERNEL_VERSION}/source"
  		# If the kernel/ directory is empty remove it to prevent QA issues
-		rmdir --ignore-fail-on-non-empty "${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel"
+		rmdir --ignore-fail-on-non-empty "${D}/lib/modules/${KERNEL_VERSION}/kernel"
  	else
  		bbnote "no modules to install"
  	fi
@@ -478,7 +478,7 @@ EXPORT_FUNCTIONS do_compile do_install do_configure
  # kernel-image becomes kernel-image-${KERNEL_VERSION}
  PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev kernel-modules"
  FILES_${PN} = ""
-FILES_kernel-base = "${base_libdir}/modules/${KERNEL_VERSION}/modules.order ${base_libdir}/modules/${KERNEL_VERSION}/modules.builtin"
+FILES_kernel-base = "/lib/modules/${KERNEL_VERSION}/modules.order /lib/modules/${KERNEL_VERSION}/modules.builtin"
  FILES_kernel-image = ""
  FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH} /lib/modules/${KERNEL_VERSION}/build"
  FILES_kernel-vmlinux = "/boot/vmlinux-${KERNEL_VERSION_NAME}"
@@ -511,7 +511,7 @@ pkg_postinst_kernel-base () {
  PACKAGESPLITFUNCS_prepend = "split_kernel_packages "
 
  python split_kernel_packages () {
-    do_split_packages(d, root='${base_libdir}/firmware', file_regex='^(.*)\.(bin|fw|cis|csp|dsp)$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='')
+    do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.(bin|fw|cis|csp|dsp)$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='')
  }
 
  # Many scripts want to look in arch/$arch/boot for the bootable
#3 lore raw

Re: [PATCH 2/2] Revert "kernel: Modify kernel modules installation path."

Quoted 4 lines · Jason Wessel

It may be fixable by using, ${nonarch_base_libdir}, but it wasn't quite that simple because it didn't fully work for the firmware loader so for now it would be best to just revert the two patches and keep oe-core working.

I saw the first commit message, slapped my forehead and thought nonarch_base_libdir. What was the problem this approach had?

We obviously need to do more real hardware testing of multilib...

Ross

#4 lore raw

Re: [PATCH 2/2] Revert "kernel: Modify kernel modules installation path."

In reply to Jason Wessel

Hi Jason,

Quoted 3 lines · Jason Wessel

The issue here is that in a multilib build the ${base_libdir} is resolving to /lib64 which completely breaks some tools that fully expect /lib/modules to be a fixed location regardless if the target is 32/64 or something else.

I would expect the kernel to be ok with this change if we provide the kernel command line parameter: "firmware_class.path=${base_libdir}" or similar.

Could you please list the other tools that could break with this change?

Quoted 4 lines

It may be fixable by using, ${nonarch_base_libdir}, but it wasn't quite that simple because it didn't fully work for the firmware loader so for now it would be best to just revert the two patches and keep oe-core working.

Cheers,
Jason.

Best Regards,
Maxin

Quoted 69 lines · Jason Wessel
Quoted 60 lines

This reverts commit 0ccb2efe9837e2915c093341a662dffc1df00866.

The OVS fails to function and the kernel modules cannot be found by any of the kernel tools such as depmod because they are installed into the wrong directory in multilib 64bit/32bit bulids.

---
 meta/classes/kernel-module-split.bbclass |  2 +-
 meta/classes/kernel.bbclass              | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)
meta/classes/kernel-module-split.bbclass +1 -1
index 0e4e110f0c..efe1b42656 100644
@@ -127,7 +127,7 @@ python split_kernel_module_packages () {
     postinst = d.getVar('pkg_postinst_modules')
     postrm = d.getVar('pkg_postrm_modules')
-    modules = do_split_packages(d, root='${base_libdir}/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='kernel-%s' % (d.getVar("KERNEL_VERSION")))
+    modules = do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='kernel-%s' % (d.getVar("KERNEL_VERSION")))
     if modules:
         metapkg = d.getVar('KERNEL_MODULES_META_PACKAGE')
         d.appendVar('RDEPENDS_' + metapkg, ' '+' '.join(modules))
meta/classes/kernel.bbclass +6 -6
index 74517e8d92..3630042dbd 100644
@@ -296,11 +296,11 @@ kernel_do_install() {
 	#
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
 	if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
-		oe_runmake DEPMOD=echo MODLIB=${D}${base_libdir}/modules/${KERNEL_VERSION} INSTALL_FW_PATH=${D}${base_libdir}/firmware modules_install
-		rm "${D}${base_libdir}/modules/${KERNEL_VERSION}/build"
-		rm "${D}${base_libdir}/modules/${KERNEL_VERSION}/source"
+		oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" modules_install
+		rm "${D}/lib/modules/${KERNEL_VERSION}/build"
+		rm "${D}/lib/modules/${KERNEL_VERSION}/source"
 		# If the kernel/ directory is empty remove it to prevent QA issues
-		rmdir --ignore-fail-on-non-empty "${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel"
+		rmdir --ignore-fail-on-non-empty "${D}/lib/modules/${KERNEL_VERSION}/kernel"
 	else
 		bbnote "no modules to install"
 	fi
@@ -478,7 +478,7 @@ EXPORT_FUNCTIONS do_compile do_install do_configure
 # kernel-image becomes kernel-image-${KERNEL_VERSION}
 PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev kernel-modules"
 FILES_${PN} = ""
-FILES_kernel-base = "${base_libdir}/modules/${KERNEL_VERSION}/modules.order ${base_libdir}/modules/${KERNEL_VERSION}/modules.builtin"
+FILES_kernel-base = "/lib/modules/${KERNEL_VERSION}/modules.order /lib/modules/${KERNEL_VERSION}/modules.builtin"
 FILES_kernel-image = ""
 FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH} /lib/modules/${KERNEL_VERSION}/build"
 FILES_kernel-vmlinux = "/boot/vmlinux-${KERNEL_VERSION_NAME}"
@@ -511,7 +511,7 @@ pkg_postinst_kernel-base () {
 PACKAGESPLITFUNCS_prepend = "split_kernel_packages "
 python split_kernel_packages () {
-    do_split_packages(d, root='${base_libdir}/firmware', file_regex='^(.*)\.(bin|fw|cis|csp|dsp)$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='')
+    do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.(bin|fw|cis|csp|dsp)$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='')
 }
 # Many scripts want to look in arch/$arch/boot for the bootable
Signature · 4 lines
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
#5 lore raw

Re: [PATCH 2/2] Revert "kernel: Modify kernel modules installation path."

Quoted 10 lines · Maxin B. John
Quoted 1 line

The issue here is that in a multilib build the ${base_libdir} is

resolving to /lib64 which completely breaks some tools that fully expect /lib/modules to be a fixed location regardless if the target is 32/64 or something else.

Quoted 1 line

I would expect the kernel to be ok with this change if we provide the kernel command
line parameter: "firmware_class.path=${base_libdir}" or similar.

I believe that using nonarch_base_libdir is the proper fix here, we need to understand why this didn't just work.

Ross

#6 lore raw

Re: [PATCH 2/2] Revert "kernel: Modify kernel modules installation path."

Quoted 10 lines · Ross
Quoted 2 lines · On 20 January 2017 at 13:29, Maxin B. John <[email protected]…

The issue here is that in a multilib build the ${base_libdir} is resolving to /lib64 which completely breaks some tools that fully expect /lib/modules to be a fixed location regardless if the target is 32/64 or something else.

I would expect the kernel to be ok with this change if we provide the kernel command line parameter: "firmware_class.path=${base_libdir}" or similar.

You are correct that this could work, but that is not a parameter I would expect to set in the default case. It would only be something I used to execute a system rollback where I need firmware to get the device running again.

Quoted 3 lines

I believe that using nonarch_base_libdir is the proper fix here, we need to understand why this didn't just work.

Ross

When I had tried the search and replace I still ended up with the following problem, which is why I elected to just revert to what worked previously.

WARNING: linux-yocto-4.8.12+gitAUTOINC+3edb4de355_9bcb4ea3fa-r0 do_package: QA Issue: linux-yocto: Files/directories were installed but not shipped in any package:
/lib64
/lib/modules/4.8.17-yocto-standard/modules.builtin
/lib64/firmware
/lib64/firmware/cpia2
/lib64/firmware/cpia2/stv0672_vp4.bin
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
linux-yocto: 5 installed and not shipped files. [installed-vs-shipped]

I am sure this problem can be corrected and debugged.

Cheers,

Jason.

#7 lore raw

Re: [PATCH 2/2] Revert "kernel: Modify kernel modules installation path."

Quoted 12 lines · Jason Wessel

WARNING: linux-yocto-4.8.12+gitAUTOINC+3edb4de355_9bcb4ea3fa-r0
do_package: QA Issue: linux-yocto: Files/directories were installed but not shipped in any package:
/lib64
/lib/modules/4.8.17-yocto-standard/modules.builtin /lib64/firmware
/lib64/firmware/cpia2
/lib64/firmware/cpia2/stv0672_vp4.bin
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
linux-yocto: 5 installed and not shipped files. [installed-vs-shipped]

I suspect this is trivial with fresh eyes. What multilib configuration are you using? My usual "test multilib" stanza is:

#require conf/multilib.conf
#MULTILIBS_x86-64 = "multilib:lib32"
#DEFAULTTUNE_virtclass-multilib-lib32 = "x86"

I'm guessing this isn't going to produce the same paths that you're seeing problems with.

Ross

#8 lore raw

Re: [PATCH 2/2] Revert "kernel: Modify kernel modules installation path."

Quoted 14 lines · Ross

On 20 January 2017 at 13:48, Jason Wessel <[email protected] <mailto:[email protected]>> wrote:

    WARNING: linux-yocto-4.8.12+gitAUTOINC+3edb4de355_9bcb4ea3fa-r0 do_package: QA Issue: linux-yocto: Files/directories were installed but not shipped in any package:
      /lib64
      /lib/modules/4.8.17-yocto-standard/modules.builtin
      /lib64/firmware
      /lib64/firmware/cpia2
      /lib64/firmware/cpia2/stv0672_vp4.bin
    Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
    linux-yocto: 5 installed and not shipped files. [installed-vs-shipped]

I suspect this is trivial with fresh eyes. What multilib configuration are you using? My usual "test multilib" stanza is:

Quoted 7 lines

#require conf/multilib.conf
#MULTILIBS_x86-64 = "multilib:lib32"
#DEFAULTTUNE_virtclass-multilib-lib32 = "x86"

I'm guessing this isn't going to produce the same paths that you're seeing problems with.

Ross

It looks like it probably should.

MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"

If for some reason you wanted to perform the exact same build I have the instructions to do so:

https://github.com/WindRiver-OpenSourceLabs/wr-core/blob/master/docs/README-intel-x86.TXT

That basically amounts to:

git clone -b master --recurse-submodules https://github.com/WindRiver-OpenSourceLabs/wr-core

cd wr-core

. init-intel-x86-env

Jason.

#9 lore raw

Re: [PATCH 2/2] Revert "kernel: Modify kernel modules installation path."

Hi,

I am very sorry, i couldn't respond earlier than this, somehow i missed this thread :(

The motivation of these patches was achieving merged '/usr' in oe-core, which demands no package installs anything into root(/bin, /sbin, /lib) folders, and i see no exception for kernel modules/firmware(may be i am wrong :!). In the real merged usr environment this shouldn't be a problem as the root symlinks exists.

I guess i can resend these patches as part of 'usrmerge' feature patch sequence, by keeping these changes behind DISTRO_FEATURES check:

- Amarnath

Quoted 68 lines · Jason Wessel
Quoted 27 lines · Ross

On 20 January 2017 at 13:48, Jason Wessel
<[email protected]> wrote:

        WARNING: linux-yocto-4.8.12+gitAUTOINC
        +3edb4de355_9bcb4ea3fa-r0 do_package: QA Issue: linux-yocto:
        Files/directories were installed but not shipped in any
        package:
          /lib64
          /lib/modules/4.8.17-yocto-standard/modules.builtin
          /lib64/firmware
          /lib64/firmware/cpia2
          /lib64/firmware/cpia2/stv0672_vp4.bin
        Please set FILES such that these items are packaged.
        Alternatively if they are unneeded, avoid installing them or
        delete them within do_install.
        linux-yocto: 5 installed and not shipped files.
        [installed-vs-shipped]

I suspect this is trivial with fresh eyes. What multilib configuration are you using? My usual "test multilib" stanza is:

#require conf/multilib.conf
#MULTILIBS_x86-64 = "multilib:lib32"
#DEFAULTTUNE_virtclass-multilib-lib32 = "x86"

Quoted 5 lines

I'm guessing this isn't going to produce the same paths that you're seeing problems with.

Ross

It looks like it probably should.

MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"

If for some reason you wanted to perform the exact same build I have the instructions to do so:

https://github.com/WindRiver-OpenSourceLabs/wr-core/blob/master/docs/README-intel-x86.TXT

That basically amounts to:

git clone -b master --recurse-submodules
https://github.com/WindRiver-OpenSourceLabs/wr-core

cd wr-core

. init-intel-x86-env

Jason.

Signature · 4 lines
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core