* [RFC 0/3] Adding BCM43430 NVRAM files
@ 2018-08-22 16:30 Ryan Harkin
2018-08-22 16:30 ` [RFC 1/3] linux-firmware: upgrade to 1d17c18 revision Ryan Harkin
` (2 more replies)
0 siblings, 3 replies; 30+ messages in thread
From: Ryan Harkin @ 2018-08-22 16:30 UTC (permalink / raw)
To: openembedded-core; +Cc: daiane.angolini, patches
[Resending because I sent to the wrong email address for the oe-core
mailing list]
NVRAM files for the 43430 modules have been committed into the upstream
Linux firmware repo. I'd like to add these files into the linux-firmware
recipe.
The following files exist upstream on kernel.org:
- brcm/brcmfmac43430-sdio.AP6212.txt
- brcm/brcmfmac43430-sdio.MUR1DX.txt
The AP6212 and MUR1DX are the module types for variants of the 43430
chips.
The first patch is a simple update to the latest upstream. I guess
someone else will commit a similar change before I get to it, but for
now, I need to make the update to test my changes, so I thought I'd send
the patch with my RFC series.
The second patch adds both NVRAM files into a single new variable.
Ideally, the Linux kernel will be extended detect the module type, so
having all the NVRAM files in /lib/firmware/brcm seems like a sensible
thing to do. But advice here is appreciated. Perhaps I should have a
separate variable for each file and allow the machine config to choose
which configs to include in the filesystem, similar to how the .bin
files are included since Martin Jansa's change?
The 3rd patch is trickier, I think. At the moment, the Linux kernel
expects there to be only one NVRAM file, named brcmfmac43430-sdio.txt.
So to make the system "just work", it seems sensible to provide a way to
softlink the module specific NVRAM to the generic filename.
I'm trying to avoid each machine type having to define a softlink
_append in its own config. Many different machines can use the same
module type, for example. I'm just not convinced that the way I've done
it is appropriate. eg. I don't like the usage of MACHINEOVERRIDE, or the
variable name I've chosen. I'd hoped to do it using a
MACHINE_EXTRA_RRECOMMENDS, but I'm not sure if that is possible. Again,
advice is appreciated.
Ryan Harkin (3):
linux-firmware: upgrade to 1d17c18 revision
linux-firmware: add BCM43430 nvram files
linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM
.../linux-firmware/linux-firmware_git.bb | 23 +++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 30+ messages in thread* [RFC 1/3] linux-firmware: upgrade to 1d17c18 revision 2018-08-22 16:30 [RFC 0/3] Adding BCM43430 NVRAM files Ryan Harkin @ 2018-08-22 16:30 ` Ryan Harkin 2018-08-22 16:30 ` [RFC 2/3] linux-firmware: add BCM43430 nvram files Ryan Harkin 2018-08-22 16:30 ` [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM Ryan Harkin 2 siblings, 0 replies; 30+ messages in thread From: Ryan Harkin @ 2018-08-22 16:30 UTC (permalink / raw) To: openembedded-core; +Cc: daiane.angolini, patches Following changes are applied: 1d17c18 linux-firmware: add firmware for mhdp8546 c2e0d14 qed: Add firmware 8.37.7.0 f1b95fe linux-firmware:Update firmware patch for Intel Bluetooth 7265 8813230 linux-firmware: Update firmware file for Intel Bluetooth,9560 c2d8f1b linux-firmware: Update firmware file for Intel Bluetooth,9260 9767096 linux-firmware: Update firmware file for Intel Bluetooth,8265 41bdd3b linux-firmware: Update firmware patch for Intel Bluetooth 8260 fdd3468 linux-firmware: add firmware for mt76x0 eee8208 Merge commit 'c4883661c7eeedd061eb3b483135b47dab39a88d' of 6ae7a5b qcom: update venus firmware files for v5.2 c488366 nfp: update Agilio SmartNIC flower firmware to rev AOTC-2.9.A.31 7b5835f linux-firmware: add firmware for mt76x2u 3a5103f wl18xx: update firmware file 8.9.0.0.79 b01151b Mellanox: Add new mlxsw_spectrum firmware 13.1702.6 0ff06f2 WHENCE: Remove reference to amdgpu/vegam_me_2.bin 3fcf221 linux-firmware: mediatek: add MT7622 Bluetooth firmwares and c8d6903 brcm: add 43430 based AP6212 and 1DX NVRAM fad829d Merge git://git.marvell.com/mwifiex-firmware 0ced724 linux-firmware: update Marvell USB8801 B0 firmware image 8d69bab amdgpu: update copyright date 153a51e amdgpu: add initial VegaM firmware 10e2971 amdgpu: sync up vega10 firmware with 18.20 release 4b05dee amdgpu: sync up raven firmware with 18.20 release aeec108 amdgpu: sync up polaris12 firmware with 18.20 release 5408150 amdgpu: sync up polaris11 firmware with 18.20 release 34116bf amdgpu: sync up polaris10 firmware with 18.20 release a8a2884 amdgpu: sync up verde firmware with 18.20 release bea8c7f amdgpu: sync up pitcairn firmware with 18.20 release d47f956 amdgpu: sync up tahiti firmware with 18.20 release 1f92e00 amdgpu: sync up oland firmware with 18.20 release effed45 amdgpu: sync up hainan firmware with 18.20 release d50a667 amdgpu: sync up kaveri firmware with 18.20 release 5b8eca3 amdgpu: sync up mullins firmware with 18.20 release b4b5726 amdgpu: sync up kabini firmware with 18.20 release fc80838 amdgpu: sync up hawaii firmware with 18.20 release 5350953 amdgpu: sync up bonaire firmware with 18.20 release 8c96b0d WHENCE: Fix typo Version 6213586 cxgb4: update firmware to revision 1.20.8.0 Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> --- meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb index 69f9a2a..4e0f1cc 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb @@ -66,7 +66,7 @@ LIC_FILES_CHKSUM = "\ file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \ file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ - file://LICENSE.amdgpu;md5=0aa3c2f3e736af320a08a3aeeccecf29 \ + file://LICENSE.amdgpu;md5=88b865bc74f3ffcc54640b4ea8540b46 \ file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f \ file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \ file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \ @@ -120,7 +120,7 @@ LIC_FILES_CHKSUM = "\ file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ - file://WHENCE;md5=eaaf310bac02fee05ea1b334f58c5caf \ + file://WHENCE;md5=feb25f3efdbe10fcc121005d02d407d6 \ " # These are not common licenses, set NO_GENERIC_LICENSE for them @@ -184,7 +184,7 @@ NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000" NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c" NO_GENERIC_LICENSE[WHENCE] = "WHENCE" -SRCREV = "d1147327232ec4616a66ab898df84f9700c816c1" +SRCREV = "1d17c18226c2ddf5bc127b3f934cfa88e0c0c29f" PE = "1" PV = "0.0+git${SRCPV}" -- 2.7.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [RFC 2/3] linux-firmware: add BCM43430 nvram files 2018-08-22 16:30 [RFC 0/3] Adding BCM43430 NVRAM files Ryan Harkin 2018-08-22 16:30 ` [RFC 1/3] linux-firmware: upgrade to 1d17c18 revision Ryan Harkin @ 2018-08-22 16:30 ` Ryan Harkin 2018-08-22 16:30 ` [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM Ryan Harkin 2 siblings, 0 replies; 30+ messages in thread From: Ryan Harkin @ 2018-08-22 16:30 UTC (permalink / raw) To: openembedded-core; +Cc: daiane.angolini, patches Add the new BCM43430 NVRAM files into the recipe. Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> --- meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb index 4e0f1cc..8c54f28 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb @@ -255,6 +255,7 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ ${PN}-bcm43362 \ ${PN}-bcm4339 \ ${PN}-bcm43430 \ + ${PN}-bcm43430-nvram \ ${PN}-bcm43430a0 \ ${PN}-bcm43455 \ ${PN}-bcm4350 \ @@ -649,6 +650,9 @@ FILES_${PN}-bcm-0bb4-0306 = "${nonarch_base_libdir}/firmware/brcm/BCM-0bb4-0306. FILES_${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.bin" FILES_${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.bin" FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.bin" +FILES_${PN}-bcm43430-nvram = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt \ +" FILES_${PN}-bcm4354 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin" FILES_${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.bin" FILES_${PN}-bcm4373 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.bin \ @@ -662,6 +666,8 @@ RDEPENDS_${PN}-bcm43340 += "${PN}-cypress-license" LICENSE_${PN}-bcm43362 = "Firmware-cypress" RDEPENDS_${PN}-bcm43362 += "${PN}-cypress-license" LICENSE_${PN}-bcm43430 = "Firmware-cypress" +LICENSE_${PN}-bcm43430-nvram = "Firmware-GPLv2" +RDEPENDS_${PN}-bcm43430-nvram += "${PN}-gplv2-license" RDEPENDS_${PN}-bcm43430 += "${PN}-cypress-license" LICENSE_${PN}-bcm4354 = "Firmware-cypress" RDEPENDS_${PN}-bcm4354 += "${PN}-cypress-license" -- 2.7.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 16:30 [RFC 0/3] Adding BCM43430 NVRAM files Ryan Harkin 2018-08-22 16:30 ` [RFC 1/3] linux-firmware: upgrade to 1d17c18 revision Ryan Harkin 2018-08-22 16:30 ` [RFC 2/3] linux-firmware: add BCM43430 nvram files Ryan Harkin @ 2018-08-22 16:30 ` Ryan Harkin 2018-08-22 16:41 ` Martin Jansa 2 siblings, 1 reply; 30+ messages in thread From: Ryan Harkin @ 2018-08-22 16:30 UTC (permalink / raw) To: openembedded-core; +Cc: daiane.angolini, patches The Linux kernel currently expects a single NVRAM file for BCM43430 named brcmfmac43430-sdio.txt. Allow the machine to specify an override to link its module specific NVRAM to the filename expected by the kernel. Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> --- meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb index 8c54f28..b647abc 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb @@ -226,6 +226,18 @@ do_install() { ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf ti-connectivity/* . ) } +# Adding bcm43430-nvram-{module type} to MACHINEOVERRIDES will create a +# softlink for the module specific NVRAM file to the filename expected +# by the Linux kernel +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-mur1dx = " ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" +do_install_append_bcm43430-nvram-mur1dx() { + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) +} +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-ap6212 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" +do_install_append_bcm43430-nvram-ap6212() { + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt) +} + PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ ${PN}-mt7601u-license ${PN}-mt7601u \ -- 2.7.4 ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 16:30 ` [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM Ryan Harkin @ 2018-08-22 16:41 ` Martin Jansa 2018-08-22 16:47 ` Ryan Harkin 2018-08-23 8:15 ` Ryan Harkin 0 siblings, 2 replies; 30+ messages in thread From: Martin Jansa @ 2018-08-22 16:41 UTC (permalink / raw) To: ryan.harkin Cc: daiane.angolini, patches, Patches and discussions about the oe-core layer [-- Attachment #1: Type: text/plain, Size: 1978 bytes --] The "cd ${D}${nonarch_base_libdir}/firmware/brcm/" doesn't seem to be needed, just include the path in 2nd ln parameter. On Wed, Aug 22, 2018 at 6:30 PM Ryan Harkin <ryan.harkin@linaro.org> wrote: > The Linux kernel currently expects a single NVRAM file for BCM43430 > named brcmfmac43430-sdio.txt. > > Allow the machine to specify an override to link its module specific > NVRAM to the filename expected by the kernel. > > Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> > --- > meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 12 > ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb > b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb > index 8c54f28..b647abc 100644 > --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb > +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb > @@ -226,6 +226,18 @@ do_install() { > ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf > ti-connectivity/* . ) > } > > +# Adding bcm43430-nvram-{module type} to MACHINEOVERRIDES will create a > +# softlink for the module specific NVRAM file to the filename expected > +# by the Linux kernel > +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-mur1dx = " > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" > +do_install_append_bcm43430-nvram-mur1dx() { > + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf > brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) > +} > +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-ap6212 = > "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" > +do_install_append_bcm43430-nvram-ap6212() { > + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf > brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt) > +} > + > > PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ > ${PN}-mt7601u-license ${PN}-mt7601u \ > -- > 2.7.4 > > [-- Attachment #2: Type: text/html, Size: 2782 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 16:41 ` Martin Jansa @ 2018-08-22 16:47 ` Ryan Harkin 2018-08-22 16:56 ` Martin Jansa 2018-08-23 8:15 ` Ryan Harkin 1 sibling, 1 reply; 30+ messages in thread From: Ryan Harkin @ 2018-08-22 16:47 UTC (permalink / raw) To: Martin Jansa Cc: daiane.angolini, Patch Tracking, Patches and discussions about the oe-core layer [-- Attachment #1: Type: text/plain, Size: 2351 bytes --] On 22 August 2018 at 17:41, Martin Jansa <martin.jansa@gmail.com> wrote: > The "cd ${D}${nonarch_base_libdir}/firmware/brcm/" doesn't seem to be > needed, just include the path in 2nd ln parameter. > I don't think that works, or at least, it doesn't work for me, so I may be doing something wrong. I'm also copying the example used in the do_install() a few lines up as I figured that would be the preferred style for this recipe. > On Wed, Aug 22, 2018 at 6:30 PM Ryan Harkin <ryan.harkin@linaro.org> > wrote: > >> The Linux kernel currently expects a single NVRAM file for BCM43430 >> named brcmfmac43430-sdio.txt. >> >> Allow the machine to specify an override to link its module specific >> NVRAM to the filename expected by the kernel. >> >> Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> >> --- >> meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 12 >> ++++++++++++ >> 1 file changed, 12 insertions(+) >> >> diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >> b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >> index 8c54f28..b647abc 100644 >> --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >> +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >> @@ -226,6 +226,18 @@ do_install() { >> ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf >> ti-connectivity/* . ) >> } >> >> +# Adding bcm43430-nvram-{module type} to MACHINEOVERRIDES will create a >> +# softlink for the module specific NVRAM file to the filename expected >> +# by the Linux kernel >> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-mur1dx = " >> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >> +do_install_append_bcm43430-nvram-mur1dx() { >> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >> brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) >> +} >> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-ap6212 = >> "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >> +do_install_append_bcm43430-nvram-ap6212() { >> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >> brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt) >> +} >> + >> >> PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ >> ${PN}-mt7601u-license ${PN}-mt7601u \ >> -- >> 2.7.4 >> >> [-- Attachment #2: Type: text/html, Size: 3706 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 16:47 ` Ryan Harkin @ 2018-08-22 16:56 ` Martin Jansa 2018-08-22 17:11 ` Ryan Harkin 0 siblings, 1 reply; 30+ messages in thread From: Martin Jansa @ 2018-08-22 16:56 UTC (permalink / raw) To: ryan.harkin Cc: daiane.angolini, patches, Patches and discussions about the oe-core layer [-- Attachment #1: Type: text/plain, Size: 2739 bytes --] cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt is the same as ln -sf brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/fir mware/brcm/brcmfmac43430-sdio.txt On Wed, Aug 22, 2018 at 6:47 PM Ryan Harkin <ryan.harkin@linaro.org> wrote: > > > On 22 August 2018 at 17:41, Martin Jansa <martin.jansa@gmail.com> wrote: > >> The "cd ${D}${nonarch_base_libdir}/firmware/brcm/" doesn't seem to be >> needed, just include the path in 2nd ln parameter. >> > > I don't think that works, or at least, it doesn't work for me, so I may be > doing something wrong. I'm also copying the example used in the > do_install() a few lines up as I figured that would be the preferred style > for this recipe. > > >> On Wed, Aug 22, 2018 at 6:30 PM Ryan Harkin <ryan.harkin@linaro.org> >> wrote: >> >>> The Linux kernel currently expects a single NVRAM file for BCM43430 >>> named brcmfmac43430-sdio.txt. >>> >>> Allow the machine to specify an override to link its module specific >>> NVRAM to the filename expected by the kernel. >>> >>> Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> >>> --- >>> meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 12 >>> ++++++++++++ >>> 1 file changed, 12 insertions(+) >>> >>> diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>> b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>> index 8c54f28..b647abc 100644 >>> --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>> +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>> @@ -226,6 +226,18 @@ do_install() { >>> ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf >>> ti-connectivity/* . ) >>> } >>> >>> +# Adding bcm43430-nvram-{module type} to MACHINEOVERRIDES will create a >>> +# softlink for the module specific NVRAM file to the filename expected >>> +# by the Linux kernel >>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-mur1dx = " >>> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >>> +do_install_append_bcm43430-nvram-mur1dx() { >>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >>> brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) >>> +} >>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-ap6212 = >>> "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >>> +do_install_append_bcm43430-nvram-ap6212() { >>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >>> brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt) >>> +} >>> + >>> >>> PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ >>> ${PN}-mt7601u-license ${PN}-mt7601u \ >>> -- >>> 2.7.4 >>> >>> > [-- Attachment #2: Type: text/html, Size: 4666 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 16:56 ` Martin Jansa @ 2018-08-22 17:11 ` Ryan Harkin 2018-08-22 19:02 ` Martin Jansa 0 siblings, 1 reply; 30+ messages in thread From: Ryan Harkin @ 2018-08-22 17:11 UTC (permalink / raw) To: Martin Jansa Cc: daiane.angolini, Patch Tracking, Patches and discussions about the oe-core layer [-- Attachment #1: Type: text/plain, Size: 3810 bytes --] This is curious! On 22 August 2018 at 17:56, Martin Jansa <martin.jansa@gmail.com> wrote: > cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf > brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt > > is the same as > > ln -sf brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/fir > mware/brcm/brcmfmac43430-sdio.txt > On my system, this is what happens when I'm in the root of the linux-firmware repo: $ ls -al brcm/*.txt -rw-rw-r-- 1 ryan ryan 875 Aug 22 18:08 brcm/brcmfmac43430-sdio.AP6212.txt -rw-rw-r-- 1 ryan ryan 831 Aug 21 14:48 brcm/brcmfmac43430-sdio.MUR1DX.txt $ ln -sf brcm/brcmfmac43430-sdio.AP6212.txt brcm/brcmfmac43430-sdio.txt $ ls -al brcm/*.txt -rw-rw-r-- 1 ryan ryan 875 Aug 22 18:08 brcm/brcmfmac43430-sdio.AP6212.txt -rw-rw-r-- 1 ryan ryan 831 Aug 21 14:48 brcm/brcmfmac43430-sdio.MUR1DX.txt lrwxrwxrwx 1 ryan ryan 34 Aug 22 18:08 brcm/brcmfmac43430-sdio.txt -> brcm/brcmfmac43430-sdio.AP6212.txt And the file is not valid. $ cat brcm/brcmfmac43430-sdio.txt cat: brcm/brcmfmac43430-sdio.txt: No such file or directory So perhaps I'm doing something wrong. I tried your suggestion originally and it didn't work for me. Maybe I made a typo or something? > On Wed, Aug 22, 2018 at 6:47 PM Ryan Harkin <ryan.harkin@linaro.org> > wrote: > >> >> >> On 22 August 2018 at 17:41, Martin Jansa <martin.jansa@gmail.com> wrote: >> >>> The "cd ${D}${nonarch_base_libdir}/firmware/brcm/" doesn't seem to be >>> needed, just include the path in 2nd ln parameter. >>> >> >> I don't think that works, or at least, it doesn't work for me, so I may >> be doing something wrong. I'm also copying the example used in the >> do_install() a few lines up as I figured that would be the preferred style >> for this recipe. >> >> >>> On Wed, Aug 22, 2018 at 6:30 PM Ryan Harkin <ryan.harkin@linaro.org> >>> wrote: >>> >>>> The Linux kernel currently expects a single NVRAM file for BCM43430 >>>> named brcmfmac43430-sdio.txt. >>>> >>>> Allow the machine to specify an override to link its module specific >>>> NVRAM to the filename expected by the kernel. >>>> >>>> Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> >>>> --- >>>> meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 12 >>>> ++++++++++++ >>>> 1 file changed, 12 insertions(+) >>>> >>>> diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>> b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>> index 8c54f28..b647abc 100644 >>>> --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>> +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>> @@ -226,6 +226,18 @@ do_install() { >>>> ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf >>>> ti-connectivity/* . ) >>>> } >>>> >>>> +# Adding bcm43430-nvram-{module type} to MACHINEOVERRIDES will create a >>>> +# softlink for the module specific NVRAM file to the filename expected >>>> +# by the Linux kernel >>>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-mur1dx = " >>>> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >>>> +do_install_append_bcm43430-nvram-mur1dx() { >>>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >>>> brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) >>>> +} >>>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-ap6212 = >>>> "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >>>> +do_install_append_bcm43430-nvram-ap6212() { >>>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >>>> brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt) >>>> +} >>>> + >>>> >>>> PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ >>>> ${PN}-mt7601u-license ${PN}-mt7601u \ >>>> -- >>>> 2.7.4 >>>> >>>> >> [-- Attachment #2: Type: text/html, Size: 7088 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 17:11 ` Ryan Harkin @ 2018-08-22 19:02 ` Martin Jansa 2018-08-22 20:10 ` Ryan Harkin 0 siblings, 1 reply; 30+ messages in thread From: Martin Jansa @ 2018-08-22 19:02 UTC (permalink / raw) To: ryan.harkin Cc: daiane.angolini, patches, Patches and discussions about the oe-core layer [-- Attachment #1: Type: text/plain, Size: 4255 bytes --] Your 1st parameter is wrong, compare again with the example I gave you (don't include "brcm/" path in 1st param, because you want the symlink to point to just brcmfmac43430-sdio.AP6212.txt like you did in the version after cd). On Wed, Aug 22, 2018 at 7:11 PM Ryan Harkin <ryan.harkin@linaro.org> wrote: > This is curious! > > On 22 August 2018 at 17:56, Martin Jansa <martin.jansa@gmail.com> wrote: > >> cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >> brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt >> >> is the same as >> >> ln -sf brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/fir >> mware/brcm/brcmfmac43430-sdio.txt >> > > On my system, this is what happens when I'm in the root of the > linux-firmware repo: > > $ ls -al brcm/*.txt > -rw-rw-r-- 1 ryan ryan 875 Aug 22 18:08 brcm/brcmfmac43430-sdio.AP6212.txt > -rw-rw-r-- 1 ryan ryan 831 Aug 21 14:48 brcm/brcmfmac43430-sdio.MUR1DX.txt > > $ ln -sf brcm/brcmfmac43430-sdio.AP6212.txt brcm/brcmfmac43430-sdio.txt > > $ ls -al brcm/*.txt > -rw-rw-r-- 1 ryan ryan 875 Aug 22 18:08 brcm/brcmfmac43430-sdio.AP6212.txt > -rw-rw-r-- 1 ryan ryan 831 Aug 21 14:48 brcm/brcmfmac43430-sdio.MUR1DX.txt > lrwxrwxrwx 1 ryan ryan 34 Aug 22 18:08 brcm/brcmfmac43430-sdio.txt -> > brcm/brcmfmac43430-sdio.AP6212.txt > > And the file is not valid. > > $ cat brcm/brcmfmac43430-sdio.txt > cat: brcm/brcmfmac43430-sdio.txt: No such file or directory > > So perhaps I'm doing something wrong. I tried your suggestion originally > and it didn't work for me. Maybe I made a typo or something? > > > >> On Wed, Aug 22, 2018 at 6:47 PM Ryan Harkin <ryan.harkin@linaro.org> >> wrote: >> >>> >>> >>> On 22 August 2018 at 17:41, Martin Jansa <martin.jansa@gmail.com> wrote: >>> >>>> The "cd ${D}${nonarch_base_libdir}/firmware/brcm/" doesn't seem to be >>>> needed, just include the path in 2nd ln parameter. >>>> >>> >>> I don't think that works, or at least, it doesn't work for me, so I may >>> be doing something wrong. I'm also copying the example used in the >>> do_install() a few lines up as I figured that would be the preferred style >>> for this recipe. >>> >>> >>>> On Wed, Aug 22, 2018 at 6:30 PM Ryan Harkin <ryan.harkin@linaro.org> >>>> wrote: >>>> >>>>> The Linux kernel currently expects a single NVRAM file for BCM43430 >>>>> named brcmfmac43430-sdio.txt. >>>>> >>>>> Allow the machine to specify an override to link its module specific >>>>> NVRAM to the filename expected by the kernel. >>>>> >>>>> Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> >>>>> --- >>>>> meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 12 >>>>> ++++++++++++ >>>>> 1 file changed, 12 insertions(+) >>>>> >>>>> diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>>> b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>>> index 8c54f28..b647abc 100644 >>>>> --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>>> +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>>> @@ -226,6 +226,18 @@ do_install() { >>>>> ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf >>>>> ti-connectivity/* . ) >>>>> } >>>>> >>>>> +# Adding bcm43430-nvram-{module type} to MACHINEOVERRIDES will create >>>>> a >>>>> +# softlink for the module specific NVRAM file to the filename expected >>>>> +# by the Linux kernel >>>>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-mur1dx = " >>>>> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >>>>> +do_install_append_bcm43430-nvram-mur1dx() { >>>>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >>>>> brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) >>>>> +} >>>>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-ap6212 = >>>>> "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >>>>> +do_install_append_bcm43430-nvram-ap6212() { >>>>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >>>>> brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt) >>>>> +} >>>>> + >>>>> >>>>> PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ >>>>> ${PN}-mt7601u-license ${PN}-mt7601u \ >>>>> -- >>>>> 2.7.4 >>>>> >>>>> >>> > [-- Attachment #2: Type: text/html, Size: 7673 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 19:02 ` Martin Jansa @ 2018-08-22 20:10 ` Ryan Harkin 2018-08-22 20:36 ` Khem Raj 2018-08-22 20:42 ` Andre McCurdy 0 siblings, 2 replies; 30+ messages in thread From: Ryan Harkin @ 2018-08-22 20:10 UTC (permalink / raw) To: Martin Jansa Cc: daiane.angolini, Patch Tracking, Patches and discussions about the oe-core layer [-- Attachment #1: Type: text/plain, Size: 4577 bytes --] On Wed, 22 Aug 2018, 20:02 Martin Jansa, <martin.jansa@gmail.com> wrote: > Your 1st parameter is wrong, compare again with the example I gave you > (don't include "brcm/" path in 1st param, because you want the symlink to > point to just brcmfmac43430-sdio.AP6212.txt like you did in the version > after cd). > That doesn't work either. I tried it with the same result, but didn't send a log of it. That works for you? On Wed, Aug 22, 2018 at 7:11 PM Ryan Harkin <ryan.harkin@linaro.org> wrote: > >> This is curious! >> >> On 22 August 2018 at 17:56, Martin Jansa <martin.jansa@gmail.com> wrote: >> >>> cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >>> brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt >>> >>> is the same as >>> >>> ln -sf brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/fir >>> mware/brcm/brcmfmac43430-sdio.txt >>> >> >> On my system, this is what happens when I'm in the root of the >> linux-firmware repo: >> >> $ ls -al brcm/*.txt >> -rw-rw-r-- 1 ryan ryan 875 Aug 22 18:08 brcm/brcmfmac43430-sdio.AP6212.txt >> -rw-rw-r-- 1 ryan ryan 831 Aug 21 14:48 brcm/brcmfmac43430-sdio.MUR1DX.txt >> >> $ ln -sf brcm/brcmfmac43430-sdio.AP6212.txt brcm/brcmfmac43430-sdio.txt >> >> $ ls -al brcm/*.txt >> -rw-rw-r-- 1 ryan ryan 875 Aug 22 18:08 brcm/brcmfmac43430-sdio.AP6212.txt >> -rw-rw-r-- 1 ryan ryan 831 Aug 21 14:48 brcm/brcmfmac43430-sdio.MUR1DX.txt >> lrwxrwxrwx 1 ryan ryan 34 Aug 22 18:08 brcm/brcmfmac43430-sdio.txt -> >> brcm/brcmfmac43430-sdio.AP6212.txt >> >> And the file is not valid. >> >> $ cat brcm/brcmfmac43430-sdio.txt >> cat: brcm/brcmfmac43430-sdio.txt: No such file or directory >> >> So perhaps I'm doing something wrong. I tried your suggestion originally >> and it didn't work for me. Maybe I made a typo or something? >> >> >> >>> On Wed, Aug 22, 2018 at 6:47 PM Ryan Harkin <ryan.harkin@linaro.org> >>> wrote: >>> >>>> >>>> >>>> On 22 August 2018 at 17:41, Martin Jansa <martin.jansa@gmail.com> >>>> wrote: >>>> >>>>> The "cd ${D}${nonarch_base_libdir}/firmware/brcm/" doesn't seem to be >>>>> needed, just include the path in 2nd ln parameter. >>>>> >>>> >>>> I don't think that works, or at least, it doesn't work for me, so I may >>>> be doing something wrong. I'm also copying the example used in the >>>> do_install() a few lines up as I figured that would be the preferred style >>>> for this recipe. >>>> >>>> >>>>> On Wed, Aug 22, 2018 at 6:30 PM Ryan Harkin <ryan.harkin@linaro.org> >>>>> wrote: >>>>> >>>>>> The Linux kernel currently expects a single NVRAM file for BCM43430 >>>>>> named brcmfmac43430-sdio.txt. >>>>>> >>>>>> Allow the machine to specify an override to link its module specific >>>>>> NVRAM to the filename expected by the kernel. >>>>>> >>>>>> Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> >>>>>> --- >>>>>> meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 12 >>>>>> ++++++++++++ >>>>>> 1 file changed, 12 insertions(+) >>>>>> >>>>>> diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>>>> b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>>>> index 8c54f28..b647abc 100644 >>>>>> --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>>>> +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>>>> @@ -226,6 +226,18 @@ do_install() { >>>>>> ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf >>>>>> ti-connectivity/* . ) >>>>>> } >>>>>> >>>>>> +# Adding bcm43430-nvram-{module type} to MACHINEOVERRIDES will >>>>>> create a >>>>>> +# softlink for the module specific NVRAM file to the filename >>>>>> expected >>>>>> +# by the Linux kernel >>>>>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-mur1dx = " >>>>>> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >>>>>> +do_install_append_bcm43430-nvram-mur1dx() { >>>>>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >>>>>> brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) >>>>>> +} >>>>>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-ap6212 = >>>>>> "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >>>>>> +do_install_append_bcm43430-nvram-ap6212() { >>>>>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf >>>>>> brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt) >>>>>> +} >>>>>> + >>>>>> >>>>>> PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ >>>>>> ${PN}-mt7601u-license ${PN}-mt7601u \ >>>>>> -- >>>>>> 2.7.4 >>>>>> >>>>>> >>>> >> [-- Attachment #2: Type: text/html, Size: 8687 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 20:10 ` Ryan Harkin @ 2018-08-22 20:36 ` Khem Raj 2018-08-22 21:52 ` Ryan Harkin 2018-08-22 20:42 ` Andre McCurdy 1 sibling, 1 reply; 30+ messages in thread From: Khem Raj @ 2018-08-22 20:36 UTC (permalink / raw) To: Ryan Harkin Cc: Patches and discussions about the oe-core layer, daiane.angolini, patches I wonder how it work with meta-raspverrypi now that it has its own packing for firmware On Wed, Aug 22, 2018 at 1:10 PM Ryan Harkin <ryan.harkin@linaro.org> wrote: > > > > On Wed, 22 Aug 2018, 20:02 Martin Jansa, <martin.jansa@gmail.com> wrote: >> >> Your 1st parameter is wrong, compare again with the example I gave you (don't include "brcm/" path in 1st param, because you want the symlink to point to just brcmfmac43430-sdio.AP6212.txt like you did in the version after cd). > > > That doesn't work either. I tried it with the same result, but didn't send a log of it. That works for you? > > >> On Wed, Aug 22, 2018 at 7:11 PM Ryan Harkin <ryan.harkin@linaro.org> wrote: >>> >>> This is curious! >>> >>> On 22 August 2018 at 17:56, Martin Jansa <martin.jansa@gmail.com> wrote: >>>> >>>> cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt >>>> >>>> is the same as >>>> >>>> ln -sf brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt >>> >>> >>> On my system, this is what happens when I'm in the root of the linux-firmware repo: >>> >>> $ ls -al brcm/*.txt >>> -rw-rw-r-- 1 ryan ryan 875 Aug 22 18:08 brcm/brcmfmac43430-sdio.AP6212.txt >>> -rw-rw-r-- 1 ryan ryan 831 Aug 21 14:48 brcm/brcmfmac43430-sdio.MUR1DX.txt >>> >>> $ ln -sf brcm/brcmfmac43430-sdio.AP6212.txt brcm/brcmfmac43430-sdio.txt >>> >>> $ ls -al brcm/*.txt >>> -rw-rw-r-- 1 ryan ryan 875 Aug 22 18:08 brcm/brcmfmac43430-sdio.AP6212.txt >>> -rw-rw-r-- 1 ryan ryan 831 Aug 21 14:48 brcm/brcmfmac43430-sdio.MUR1DX.txt >>> lrwxrwxrwx 1 ryan ryan 34 Aug 22 18:08 brcm/brcmfmac43430-sdio.txt -> brcm/brcmfmac43430-sdio.AP6212.txt >>> >>> And the file is not valid. >>> >>> $ cat brcm/brcmfmac43430-sdio.txt >>> cat: brcm/brcmfmac43430-sdio.txt: No such file or directory >>> >>> So perhaps I'm doing something wrong. I tried your suggestion originally and it didn't work for me. Maybe I made a typo or something? >>> >>> >>>> >>>> On Wed, Aug 22, 2018 at 6:47 PM Ryan Harkin <ryan.harkin@linaro.org> wrote: >>>>> >>>>> >>>>> >>>>> On 22 August 2018 at 17:41, Martin Jansa <martin.jansa@gmail.com> wrote: >>>>>> >>>>>> The "cd ${D}${nonarch_base_libdir}/firmware/brcm/" doesn't seem to be needed, just include the path in 2nd ln parameter. >>>>> >>>>> >>>>> I don't think that works, or at least, it doesn't work for me, so I may be doing something wrong. I'm also copying the example used in the do_install() a few lines up as I figured that would be the preferred style for this recipe. >>>>> >>>>>> >>>>>> On Wed, Aug 22, 2018 at 6:30 PM Ryan Harkin <ryan.harkin@linaro.org> wrote: >>>>>>> >>>>>>> The Linux kernel currently expects a single NVRAM file for BCM43430 >>>>>>> named brcmfmac43430-sdio.txt. >>>>>>> >>>>>>> Allow the machine to specify an override to link its module specific >>>>>>> NVRAM to the filename expected by the kernel. >>>>>>> >>>>>>> Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> >>>>>>> --- >>>>>>> meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 12 ++++++++++++ >>>>>>> 1 file changed, 12 insertions(+) >>>>>>> >>>>>>> diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>>>>> index 8c54f28..b647abc 100644 >>>>>>> --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>>>>> +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >>>>>>> @@ -226,6 +226,18 @@ do_install() { >>>>>>> ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf ti-connectivity/* . ) >>>>>>> } >>>>>>> >>>>>>> +# Adding bcm43430-nvram-{module type} to MACHINEOVERRIDES will create a >>>>>>> +# softlink for the module specific NVRAM file to the filename expected >>>>>>> +# by the Linux kernel >>>>>>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-mur1dx = " ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >>>>>>> +do_install_append_bcm43430-nvram-mur1dx() { >>>>>>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) >>>>>>> +} >>>>>>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-ap6212 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >>>>>>> +do_install_append_bcm43430-nvram-ap6212() { >>>>>>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt) >>>>>>> +} >>>>>>> + >>>>>>> >>>>>>> PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ >>>>>>> ${PN}-mt7601u-license ${PN}-mt7601u \ >>>>>>> -- >>>>>>> 2.7.4 >>>>>>> >>>>> >>> > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 20:36 ` Khem Raj @ 2018-08-22 21:52 ` Ryan Harkin 0 siblings, 0 replies; 30+ messages in thread From: Ryan Harkin @ 2018-08-22 21:52 UTC (permalink / raw) To: Khem Raj Cc: Patches and discussions about the oe-core layer, daiane.angolini, patches [-- Attachment #1: Type: text/plain, Size: 5345 bytes --] On Wed, 22 Aug 2018, 21:36 Khem Raj, <raj.khem@gmail.com> wrote: > I wonder how it work with meta-raspverrypi now that it has its own > packing for firmware > Sorry Them, I don't understand your question. On Wed, Aug 22, 2018 at 1:10 PM Ryan Harkin <ryan.harkin@linaro.org> wrote: > > > > > > > > On Wed, 22 Aug 2018, 20:02 Martin Jansa, <martin.jansa@gmail.com> wrote: > >> > >> Your 1st parameter is wrong, compare again with the example I gave you > (don't include "brcm/" path in 1st param, because you want the symlink to > point to just brcmfmac43430-sdio.AP6212.txt like you did in the version > after cd). > > > > > > That doesn't work either. I tried it with the same result, but didn't > send a log of it. That works for you? > > > > > >> On Wed, Aug 22, 2018 at 7:11 PM Ryan Harkin <ryan.harkin@linaro.org> > wrote: > >>> > >>> This is curious! > >>> > >>> On 22 August 2018 at 17:56, Martin Jansa <martin.jansa@gmail.com> > wrote: > >>>> > >>>> cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf > brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt > >>>> > >>>> is the same as > >>>> > >>>> ln -sf brcmfmac43430-sdio.AP6212.txt > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt > >>> > >>> > >>> On my system, this is what happens when I'm in the root of the > linux-firmware repo: > >>> > >>> $ ls -al brcm/*.txt > >>> -rw-rw-r-- 1 ryan ryan 875 Aug 22 18:08 > brcm/brcmfmac43430-sdio.AP6212.txt > >>> -rw-rw-r-- 1 ryan ryan 831 Aug 21 14:48 > brcm/brcmfmac43430-sdio.MUR1DX.txt > >>> > >>> $ ln -sf brcm/brcmfmac43430-sdio.AP6212.txt brcm/brcmfmac43430-sdio.txt > >>> > >>> $ ls -al brcm/*.txt > >>> -rw-rw-r-- 1 ryan ryan 875 Aug 22 18:08 > brcm/brcmfmac43430-sdio.AP6212.txt > >>> -rw-rw-r-- 1 ryan ryan 831 Aug 21 14:48 > brcm/brcmfmac43430-sdio.MUR1DX.txt > >>> lrwxrwxrwx 1 ryan ryan 34 Aug 22 18:08 brcm/brcmfmac43430-sdio.txt -> > brcm/brcmfmac43430-sdio.AP6212.txt > >>> > >>> And the file is not valid. > >>> > >>> $ cat brcm/brcmfmac43430-sdio.txt > >>> cat: brcm/brcmfmac43430-sdio.txt: No such file or directory > >>> > >>> So perhaps I'm doing something wrong. I tried your suggestion > originally and it didn't work for me. Maybe I made a typo or something? > >>> > >>> > >>>> > >>>> On Wed, Aug 22, 2018 at 6:47 PM Ryan Harkin <ryan.harkin@linaro.org> > wrote: > >>>>> > >>>>> > >>>>> > >>>>> On 22 August 2018 at 17:41, Martin Jansa <martin.jansa@gmail.com> > wrote: > >>>>>> > >>>>>> The "cd ${D}${nonarch_base_libdir}/firmware/brcm/" doesn't seem to > be needed, just include the path in 2nd ln parameter. > >>>>> > >>>>> > >>>>> I don't think that works, or at least, it doesn't work for me, so I > may be doing something wrong. I'm also copying the example used in the > do_install() a few lines up as I figured that would be the preferred style > for this recipe. > >>>>> > >>>>>> > >>>>>> On Wed, Aug 22, 2018 at 6:30 PM Ryan Harkin <ryan.harkin@linaro.org> > wrote: > >>>>>>> > >>>>>>> The Linux kernel currently expects a single NVRAM file for BCM43430 > >>>>>>> named brcmfmac43430-sdio.txt. > >>>>>>> > >>>>>>> Allow the machine to specify an override to link its module > specific > >>>>>>> NVRAM to the filename expected by the kernel. > >>>>>>> > >>>>>>> Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> > >>>>>>> --- > >>>>>>> meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 12 > ++++++++++++ > >>>>>>> 1 file changed, 12 insertions(+) > >>>>>>> > >>>>>>> diff --git a/meta/recipes-kernel/linux-firmware/ > linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/ > linux-firmware_git.bb > >>>>>>> index 8c54f28..b647abc 100644 > >>>>>>> --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb > >>>>>>> +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb > >>>>>>> @@ -226,6 +226,18 @@ do_install() { > >>>>>>> ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf > ti-connectivity/* . ) > >>>>>>> } > >>>>>>> > >>>>>>> +# Adding bcm43430-nvram-{module type} to MACHINEOVERRIDES will > create a > >>>>>>> +# softlink for the module specific NVRAM file to the filename > expected > >>>>>>> +# by the Linux kernel > >>>>>>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-mur1dx = " > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" > >>>>>>> +do_install_append_bcm43430-nvram-mur1dx() { > >>>>>>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf > brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) > >>>>>>> +} > >>>>>>> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-ap6212 = > "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" > >>>>>>> +do_install_append_bcm43430-nvram-ap6212() { > >>>>>>> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf > brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt) > >>>>>>> +} > >>>>>>> + > >>>>>>> > >>>>>>> PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ > >>>>>>> ${PN}-mt7601u-license ${PN}-mt7601u \ > >>>>>>> -- > >>>>>>> 2.7.4 > >>>>>>> > >>>>> > >>> > > -- > > _______________________________________________ > > Openembedded-core mailing list > > Openembedded-core@lists.openembedded.org > > http://lists.openembedded.org/mailman/listinfo/openembedded-core > [-- Attachment #2: Type: text/html, Size: 8818 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 20:10 ` Ryan Harkin 2018-08-22 20:36 ` Khem Raj @ 2018-08-22 20:42 ` Andre McCurdy 2018-08-22 21:56 ` Ryan Harkin 1 sibling, 1 reply; 30+ messages in thread From: Andre McCurdy @ 2018-08-22 20:42 UTC (permalink / raw) To: Ryan Harkin Cc: Patches and discussions about the oe-core layer, daiane.angolini, Patch Tracking On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin <ryan.harkin@linaro.org> wrote: > On Wed, 22 Aug 2018, 20:02 Martin Jansa, <martin.jansa@gmail.com> wrote: >> >> Your 1st parameter is wrong, compare again with the example I gave you >> (don't include "brcm/" path in 1st param, because you want the symlink to >> point to just brcmfmac43430-sdio.AP6212.txt like you did in the version >> after cd). > > That doesn't work either. I tried it with the same result, but didn't send a > log of it. That works for you? Martin's example is correct so maybe check your tests again for typos. It it still doesn't work then please do send a log. The link will point to whatever you define via the first parameter, so if you changed the first parameter it shouldn't be possible to get "the same result". $ mkdir foo $ ln -sf test_target foo/test1 $ ln -sf brcm/test_target foo/test2 $ ls -l foo lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> brcm/test_target ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 20:42 ` Andre McCurdy @ 2018-08-22 21:56 ` Ryan Harkin 2018-08-22 22:55 ` Andre McCurdy 0 siblings, 1 reply; 30+ messages in thread From: Ryan Harkin @ 2018-08-22 21:56 UTC (permalink / raw) To: Andre McCurdy Cc: Patches and discussions about the oe-core layer, daiane.angolini, Patch Tracking [-- Attachment #1: Type: text/plain, Size: 1425 bytes --] On Wed, 22 Aug 2018, 21:42 Andre McCurdy, <armccurdy@gmail.com> wrote: > On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin <ryan.harkin@linaro.org> > wrote: > > On Wed, 22 Aug 2018, 20:02 Martin Jansa, <martin.jansa@gmail.com> wrote: > >> > >> Your 1st parameter is wrong, compare again with the example I gave you > >> (don't include "brcm/" path in 1st param, because you want the symlink > to > >> point to just brcmfmac43430-sdio.AP6212.txt like you did in the version > >> after cd). > > > > That doesn't work either. I tried it with the same result, but didn't > send a > > log of it. That works for you? > > Martin's example is correct so maybe check your tests again for typos. > It it still doesn't work then please do send a log. > > The link will point to whatever you define via the first parameter, so > if you changed the first parameter it shouldn't be possible to get > "the same result". > > $ mkdir foo > $ ln -sf test_target foo/test1 > $ ln -sf brcm/test_target foo/test2 > $ ls -l foo > > lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target > lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> brcm/test_target > Yes, that's essentially the same as what I'm getting. Now try "cat foo/test1" and what happens? There is no file called test_target in the foo directory. And neither is there a file called brcm/test_target in the foo directory. > [-- Attachment #2: Type: text/html, Size: 2302 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 21:56 ` Ryan Harkin @ 2018-08-22 22:55 ` Andre McCurdy 2018-08-23 6:12 ` Ryan Harkin 0 siblings, 1 reply; 30+ messages in thread From: Andre McCurdy @ 2018-08-22 22:55 UTC (permalink / raw) To: Ryan Harkin Cc: Patches and discussions about the oe-core layer, daiane.angolini, Patch Tracking On Wed, Aug 22, 2018 at 2:56 PM, Ryan Harkin <ryan.harkin@linaro.org> wrote: > On Wed, 22 Aug 2018, 21:42 Andre McCurdy, <armccurdy@gmail.com> wrote: >> On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin <ryan.harkin@linaro.org> >> wrote: >> > On Wed, 22 Aug 2018, 20:02 Martin Jansa, <martin.jansa@gmail.com> wrote: >> >> >> >> Your 1st parameter is wrong, compare again with the example I gave you >> >> (don't include "brcm/" path in 1st param, because you want the symlink >> >> to >> >> point to just brcmfmac43430-sdio.AP6212.txt like you did in the version >> >> after cd). >> > >> > That doesn't work either. I tried it with the same result, but didn't >> > send a >> > log of it. That works for you? >> >> Martin's example is correct so maybe check your tests again for typos. >> It it still doesn't work then please do send a log. >> >> The link will point to whatever you define via the first parameter, so >> if you changed the first parameter it shouldn't be possible to get >> "the same result". >> >> $ mkdir foo >> $ ln -sf test_target foo/test1 >> $ ln -sf brcm/test_target foo/test2 >> $ ls -l foo >> >> lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target >> lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> brcm/test_target > > Yes, that's essentially the same as what I'm getting. > > Now try "cat foo/test1" and what happens? > > There is no file called test_target in the foo directory. And neither is > there a file called brcm/test_target in the foo directory. Correct. The above was just an example to show that you can * create symlinks * in the foo directory without cd'ing into the foo directory first. If you'd like the symlinks in the example to point to valid targets then you need to create the targets too, e.g. $ mkdir -p foo/brcm $ echo hello > foo/test_target $ echo hello2 > foo/brcm/test_target But note that the process of creating a symlink is always the same, regardless of whether the symlink points to a valid target or not (so you can run these extra commands to create the targets before or after you create the symlinks). ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 22:55 ` Andre McCurdy @ 2018-08-23 6:12 ` Ryan Harkin 2018-08-23 6:39 ` Martin Hundebøll 2018-08-23 7:06 ` Andre McCurdy 0 siblings, 2 replies; 30+ messages in thread From: Ryan Harkin @ 2018-08-23 6:12 UTC (permalink / raw) To: Andre McCurdy Cc: Patches and discussions about the oe-core layer, daiane.angolini, Patch Tracking [-- Attachment #1: Type: text/plain, Size: 4888 bytes --] On 22 August 2018 at 23:55, Andre McCurdy <armccurdy@gmail.com> wrote: > On Wed, Aug 22, 2018 at 2:56 PM, Ryan Harkin <ryan.harkin@linaro.org> > wrote: > > On Wed, 22 Aug 2018, 21:42 Andre McCurdy, <armccurdy@gmail.com> wrote: > >> On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin <ryan.harkin@linaro.org> > >> wrote: > >> > On Wed, 22 Aug 2018, 20:02 Martin Jansa, <martin.jansa@gmail.com> > wrote: > >> >> > >> >> Your 1st parameter is wrong, compare again with the example I gave > you > >> >> (don't include "brcm/" path in 1st param, because you want the > symlink > >> >> to > >> >> point to just brcmfmac43430-sdio.AP6212.txt like you did in the > version > >> >> after cd). > >> > > >> > That doesn't work either. I tried it with the same result, but didn't > >> > send a > >> > log of it. That works for you? > >> > >> Martin's example is correct so maybe check your tests again for typos. > >> It it still doesn't work then please do send a log. > >> > >> The link will point to whatever you define via the first parameter, so > >> if you changed the first parameter it shouldn't be possible to get > >> "the same result". > >> > >> $ mkdir foo > >> $ ln -sf test_target foo/test1 > >> $ ln -sf brcm/test_target foo/test2 > >> $ ls -l foo > >> > >> lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target > >> lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> brcm/test_target > > > > Yes, that's essentially the same as what I'm getting. > > > > Now try "cat foo/test1" and what happens? > > > > There is no file called test_target in the foo directory. And neither is > > there a file called brcm/test_target in the foo directory. > > Correct. The above was just an example to show that you can * create > symlinks * in the foo directory without cd'ing into the foo directory > first. > > If you'd like the symlinks in the example to point to valid targets > then you need to create the targets too, e.g. > > $ mkdir -p foo/brcm > $ echo hello > foo/test_target > $ echo hello2 > foo/brcm/test_target > > But note that the process of creating a symlink is always the same, > regardless of whether the symlink points to a valid target or not (so > you can run these extra commands to create the targets before or after > you create the symlinks). > So that doesn't work for me how I expect it to work. I must be missing something fundamental here. The recipe is trying to create a soft link from a file in the current directory to a file in the sub-directory. On my system, your example creates links from a file in the sub-directory to the another file in the sub-directory. So, to copy your example, but creating the file "test_target" from the start: $ mkdir -p /tmp/test $ cd /tmp/test $ mkdir foo $ echo 1 > test_target $ ln -sf test_target foo/test1 $ ln -sf brcm/test_target foo/test2 $ ls -l foo total 0 lrwxrwxrwx 1 ryan ryan 11 Aug 23 06:54 test1 -> test_target lrwxrwxrwx 1 ryan ryan 16 Aug 23 06:54 test2 -> brcm/test_target $ cat test_target 1 $ cat foo/test1 cat: foo/test1: No such file or directory $ cat foo/test2 cat: foo/test2: No such file or directory $ echo hello > foo/test_target $ echo hello2 > foo/brcm/test_target bash: foo/brcm/test_target: No such file or directory $ cat foo/test1 hello $ cat foo/test2 cat: foo/test2: No such file or directory $ cat test_target 1 $ tree . ├── foo │ ├── test1 -> test_target │ ├── test2 -> brcm/test_target │ └── test_target └── test_target 1 directory, 4 files So, neither test1 nor test2 are linked to /tmp/test/test_target. test1 is linked to /tmp/test/foo/test_target and test2 is linked to /tmp/test/brcm/test_target, which doesn't exist. AFAIK, when creating a softlink, you have to give it either an absolute path, or a path relative to the link being created. The path cannot be relative to the original file that you want to link to. So, this will work: $cd /tmp/test $ ln -sf ../test_target foo/test3 $ cat foo/test3 1 $ cat /tmp/test/foo/test3 1 But that is a strange way to create the soft link, IMO. AFAICT, for the recipe, to get rid of the "cd", I'd have to specify an absolute path to the original file: +do_install_append_bcm43430-nvram-mur1dx() { + ( ln -sf ${PWD}/brcmfmac43430-sdio.MUR1DX.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) ... assuming PWD is available to the recipe. There will be a proper Yocto variable I can use, of course, but I can't think of it right now. Either way, Martin's example doesn't work for me. And adding the absolute path of the original file doesn't seem any neater or clearer than following the TI example from the do_install a few lines up in the recipe. But I'm happy to do it either way, so long as it works. [-- Attachment #2: Type: text/html, Size: 7458 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-23 6:12 ` Ryan Harkin @ 2018-08-23 6:39 ` Martin Hundebøll 2018-08-23 7:08 ` Ryan Harkin 2018-08-23 15:58 ` Khem Raj 2018-08-23 7:06 ` Andre McCurdy 1 sibling, 2 replies; 30+ messages in thread From: Martin Hundebøll @ 2018-08-23 6:39 UTC (permalink / raw) To: Ryan Harkin, Andre McCurdy Cc: daiane.angolini, Patch Tracking, Patches and discussions about the oe-core layer May I suggest using the '-r, --relative' flag from 'ln': -r, --relative create symbolic links relative to link location My life felt considerably better after discovering that feature :) // Martin On 23/08/2018 08.12, Ryan Harkin wrote: > > > On 22 August 2018 at 23:55, Andre McCurdy <armccurdy@gmail.com > <mailto:armccurdy@gmail.com>> wrote: > > On Wed, Aug 22, 2018 at 2:56 PM, Ryan Harkin <ryan.harkin@linaro.org > <mailto:ryan.harkin@linaro.org>> wrote: > > On Wed, 22 Aug 2018, 21:42 Andre McCurdy, <armccurdy@gmail.com > <mailto:armccurdy@gmail.com>> wrote: > >> On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin > <ryan.harkin@linaro.org <mailto:ryan.harkin@linaro.org>> > >> wrote: > >> > On Wed, 22 Aug 2018, 20:02 Martin Jansa, > <martin.jansa@gmail.com <mailto:martin.jansa@gmail.com>> wrote: > >> >> > >> >> Your 1st parameter is wrong, compare again with the example I > gave you > >> >> (don't include "brcm/" path in 1st param, because you want > the symlink > >> >> to > >> >> point to just brcmfmac43430-sdio.AP6212.txt like you did in > the version > >> >> after cd). > >> > > >> > That doesn't work either. I tried it with the same result, but > didn't > >> > send a > >> > log of it. That works for you? > >> > >> Martin's example is correct so maybe check your tests again for > typos. > >> It it still doesn't work then please do send a log. > >> > >> The link will point to whatever you define via the first > parameter, so > >> if you changed the first parameter it shouldn't be possible to get > >> "the same result". > >> > >> $ mkdir foo > >> $ ln -sf test_target foo/test1 > >> $ ln -sf brcm/test_target foo/test2 > >> $ ls -l foo > >> > >> lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target > >> lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> brcm/test_target > > > > Yes, that's essentially the same as what I'm getting. > > > > Now try "cat foo/test1" and what happens? > > > > There is no file called test_target in the foo directory. And > neither is > > there a file called brcm/test_target in the foo directory. > > Correct. The above was just an example to show that you can * create > symlinks * in the foo directory without cd'ing into the foo directory > first. > > If you'd like the symlinks in the example to point to valid targets > then you need to create the targets too, e.g. > > $ mkdir -p foo/brcm > $ echo hello > foo/test_target > $ echo hello2 > foo/brcm/test_target > > But note that the process of creating a symlink is always the same, > regardless of whether the symlink points to a valid target or not (so > you can run these extra commands to create the targets before or after > you create the symlinks). > > > So that doesn't work for me how I expect it to work. I must be missing > something fundamental here. > > The recipe is trying to create a soft link from a file in the current > directory to a file in the sub-directory. On my system, your example > creates links from a file in the sub-directory to the another file in > the sub-directory. > > So, to copy your example, but creating the file "test_target" from the > start: > > $ mkdir -p /tmp/test > $ cd /tmp/test > $ mkdir foo > $ echo 1 > test_target > $ ln -sf test_target foo/test1 > $ ln -sf brcm/test_target foo/test2 > $ ls -l foo > total 0 > lrwxrwxrwx 1 ryan ryan 11 Aug 23 06:54 test1 -> test_target > lrwxrwxrwx 1 ryan ryan 16 Aug 23 06:54 test2 -> brcm/test_target > $ cat test_target > 1 > $ cat foo/test1 > cat: foo/test1: No such file or directory > $ cat foo/test2 > cat: foo/test2: No such file or directory > $ echo hello > foo/test_target > $ echo hello2 > foo/brcm/test_target > bash: foo/brcm/test_target: No such file or directory > $ cat foo/test1 > hello > $ cat foo/test2 > cat: foo/test2: No such file or directory > $ cat test_target > 1 > $ tree > . > ├── foo > │ ├── test1 -> test_target > │ ├── test2 -> brcm/test_target > │ └── test_target > └── test_target > > 1 directory, 4 files > > So, neither test1 nor test2 are linked to /tmp/test/test_target. test1 > is linked to /tmp/test/foo/test_target and test2 is linked to > /tmp/test/brcm/test_target, which doesn't exist. > > AFAIK, when creating a softlink, you have to give it either an absolute > path, or a path relative to the link being created. The path cannot be > relative to the original file that you want to link to. > > So, this will work: > > $cd /tmp/test > $ ln -sf ../test_target foo/test3 > $ cat foo/test3 > 1 > $ cat /tmp/test/foo/test3 > 1 > > But that is a strange way to create the soft link, IMO. > > AFAICT, for the recipe, to get rid of the "cd", I'd have to specify an > absolute path to the original file: > > +do_install_append_bcm43430-nvram-mur1dx() { > + ( ln -sf ${PWD}/brcmfmac43430-sdio.MUR1DX.txt > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) > > ... assuming PWD is available to the recipe. There will be a proper > Yocto variable I can use, of course, but I can't think of it right now. > > Either way, Martin's example doesn't work for me. And adding the > absolute path of the original file doesn't seem any neater or clearer > than following the TI example from the do_install a few lines up in the > recipe. But I'm happy to do it either way, so long as it works. > -- Kind regards, Martin Hundebøll Embedded Linux Consultant +45 61 65 54 61 martin@geanix.com Geanix IVS https://geanix.com DK39600706 ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-23 6:39 ` Martin Hundebøll @ 2018-08-23 7:08 ` Ryan Harkin 2018-08-23 7:19 ` Andre McCurdy 2018-08-23 15:58 ` Khem Raj 1 sibling, 1 reply; 30+ messages in thread From: Ryan Harkin @ 2018-08-23 7:08 UTC (permalink / raw) To: Martin Hundebøll, Koen Kooi Cc: daiane.angolini, Patch Tracking, Patches and discussions about the oe-core layer [-- Attachment #1: Type: text/plain, Size: 7388 bytes --] On 23 August 2018 at 07:39, Martin Hundebøll <martin@geanix.com> wrote: > May I suggest using the '-r, --relative' flag from 'ln': > > -r, --relative > create symbolic links relative to link location > > My life felt considerably better after discovering that feature :) > Thanks Martin Hundebøll! Yes, that works for me. So, Martin Jansa, I could make this change: - ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) + ( ln -sfr ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) Of course, if I'm not going to "cd" into the firmware repo, I'll have to use absolute paths on both sides of the "ln" command anyway. So I could drop the 'r' param and it should still work. Eg: - ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) + ( ln -sf ${D}${nonarch_base_libdir}/firmware/brcm/ brcmfmac43430-sdio.MUR1DX.txt ${D}${nonarch_base_libdir}/firmware/brcm/ brcmfmac43430-sdio.txt) I'm still not sure this is any neater, though, as it involves using the path twice. Is there a maintainer here who has a preference? FWIW, the TI line that I copied was added by Koen Kooi, who I've added to the CC: 8c7adb6 2011-10-09 linux-firmware: update, merge in OE classic updates, fix p.. [Koen Kooi] > // Martin > > On 23/08/2018 08.12, Ryan Harkin wrote: > >> >> >> On 22 August 2018 at 23:55, Andre McCurdy <armccurdy@gmail.com <mailto: >> armccurdy@gmail.com>> wrote: >> >> On Wed, Aug 22, 2018 at 2:56 PM, Ryan Harkin <ryan.harkin@linaro.org >> <mailto:ryan.harkin@linaro.org>> wrote: >> > On Wed, 22 Aug 2018, 21:42 Andre McCurdy, <armccurdy@gmail.com >> <mailto:armccurdy@gmail.com>> wrote: >> >> On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin >> <ryan.harkin@linaro.org <mailto:ryan.harkin@linaro.org>> >> >> wrote: >> >> > On Wed, 22 Aug 2018, 20:02 Martin Jansa, >> <martin.jansa@gmail.com <mailto:martin.jansa@gmail.com>> wrote: >> >> >> >> >> >> Your 1st parameter is wrong, compare again with the example I >> gave you >> >> >> (don't include "brcm/" path in 1st param, because you want >> the symlink >> >> >> to >> >> >> point to just brcmfmac43430-sdio.AP6212.txt like you did in >> the version >> >> >> after cd). >> >> > >> >> > That doesn't work either. I tried it with the same result, but >> didn't >> >> > send a >> >> > log of it. That works for you? >> >> >> >> Martin's example is correct so maybe check your tests again for >> typos. >> >> It it still doesn't work then please do send a log. >> >> >> >> The link will point to whatever you define via the first >> parameter, so >> >> if you changed the first parameter it shouldn't be possible to get >> >> "the same result". >> >> >> >> $ mkdir foo >> >> $ ln -sf test_target foo/test1 >> >> $ ln -sf brcm/test_target foo/test2 >> >> $ ls -l foo >> >> >> >> lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target >> >> lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> >> brcm/test_target >> > >> > Yes, that's essentially the same as what I'm getting. >> > >> > Now try "cat foo/test1" and what happens? >> > >> > There is no file called test_target in the foo directory. And >> neither is >> > there a file called brcm/test_target in the foo directory. >> >> Correct. The above was just an example to show that you can * create >> symlinks * in the foo directory without cd'ing into the foo directory >> first. >> >> If you'd like the symlinks in the example to point to valid targets >> then you need to create the targets too, e.g. >> >> $ mkdir -p foo/brcm >> $ echo hello > foo/test_target >> $ echo hello2 > foo/brcm/test_target >> >> But note that the process of creating a symlink is always the same, >> regardless of whether the symlink points to a valid target or not (so >> you can run these extra commands to create the targets before or after >> you create the symlinks). >> >> >> So that doesn't work for me how I expect it to work. I must be missing >> something fundamental here. >> >> The recipe is trying to create a soft link from a file in the current >> directory to a file in the sub-directory. On my system, your example >> creates links from a file in the sub-directory to the another file in the >> sub-directory. >> >> So, to copy your example, but creating the file "test_target" from the >> start: >> >> $ mkdir -p /tmp/test >> $ cd /tmp/test >> $ mkdir foo >> $ echo 1 > test_target >> $ ln -sf test_target foo/test1 >> $ ln -sf brcm/test_target foo/test2 >> $ ls -l foo >> total 0 >> lrwxrwxrwx 1 ryan ryan 11 Aug 23 06:54 test1 -> test_target >> lrwxrwxrwx 1 ryan ryan 16 Aug 23 06:54 test2 -> brcm/test_target >> $ cat test_target >> 1 >> $ cat foo/test1 >> cat: foo/test1: No such file or directory >> $ cat foo/test2 >> cat: foo/test2: No such file or directory >> $ echo hello > foo/test_target >> $ echo hello2 > foo/brcm/test_target >> bash: foo/brcm/test_target: No such file or directory >> $ cat foo/test1 >> hello >> $ cat foo/test2 >> cat: foo/test2: No such file or directory >> $ cat test_target >> 1 >> $ tree >> . >> ├── foo >> │ ├── test1 -> test_target >> │ ├── test2 -> brcm/test_target >> │ └── test_target >> └── test_target >> >> 1 directory, 4 files >> >> So, neither test1 nor test2 are linked to /tmp/test/test_target. test1 is >> linked to /tmp/test/foo/test_target and test2 is linked to >> /tmp/test/brcm/test_target, which doesn't exist. >> >> AFAIK, when creating a softlink, you have to give it either an absolute >> path, or a path relative to the link being created. The path cannot be >> relative to the original file that you want to link to. >> >> So, this will work: >> >> $cd /tmp/test >> $ ln -sf ../test_target foo/test3 >> $ cat foo/test3 >> 1 >> $ cat /tmp/test/foo/test3 >> 1 >> >> But that is a strange way to create the soft link, IMO. >> >> AFAICT, for the recipe, to get rid of the "cd", I'd have to specify an >> absolute path to the original file: >> >> +do_install_append_bcm43430-nvram-mur1dx() { >> + ( ln -sf ${PWD}/brcmfmac43430-sdio.MUR1DX.txt >> ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) >> >> ... assuming PWD is available to the recipe. There will be a proper Yocto >> variable I can use, of course, but I can't think of it right now. >> >> Either way, Martin's example doesn't work for me. And adding the absolute >> path of the original file doesn't seem any neater or clearer than following >> the TI example from the do_install a few lines up in the recipe. But I'm >> happy to do it either way, so long as it works. >> >> > -- > Kind regards, > Martin Hundebøll > Embedded Linux Consultant > > +45 61 65 54 61 > martin@geanix.com > > Geanix IVS > https://geanix.com > DK39600706 > [-- Attachment #2: Type: text/html, Size: 14014 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-23 7:08 ` Ryan Harkin @ 2018-08-23 7:19 ` Andre McCurdy 0 siblings, 0 replies; 30+ messages in thread From: Andre McCurdy @ 2018-08-23 7:19 UTC (permalink / raw) To: Ryan Harkin Cc: daiane.angolini, Koen Kooi, Patch Tracking, Patches and discussions about the oe-core layer On Thu, Aug 23, 2018 at 12:08 AM, Ryan Harkin <ryan.harkin@linaro.org> wrote: > On 23 August 2018 at 07:39, Martin Hundebøll <martin@geanix.com> wrote: >> >> May I suggest using the '-r, --relative' flag from 'ln': >> >> -r, --relative >> create symbolic links relative to link location >> >> My life felt considerably better after discovering that feature :) > > Thanks Martin Hundebøll! Yes, that works for me. > > So, Martin Jansa, I could make this change: > > - ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf > brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) > + ( ln -sfr > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) This is kind of crazy - you are giving an absolute path and then asking ln to convert it into a relative path for you... but the conversion process is trivial: just remove the entire path! You don't need to ask ln to do that for you. > Of course, if I'm not going to "cd" into the firmware repo, I'll have to use > absolute paths on both sides of the "ln" command anyway. So I could drop the > 'r' param and it should still work. Eg: > > - ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf > brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) > + ( ln -sf > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) This will create a symlink which points to the target using an absolute path. ie it's not equivalent to the other examples given so far. > I'm still not sure this is any neater, though, as it involves using the path > twice. Is there a maintainer here who has a preference? > > FWIW, the TI line that I copied was added by Koen Kooi, who I've added to > the CC: > > 8c7adb6 2011-10-09 linux-firmware: update, merge in OE classic updates, > fix p.. [Koen Kooi] If you mean this line: ( cd ${D}/lib/firmware ; ln -sf ti-connectivity/* . ) then it's doing something quite different to what you're now trying to do. It's creating multiple symlinks, not one. >> >> // Martin >> >> On 23/08/2018 08.12, Ryan Harkin wrote: >>> >>> >>> >>> On 22 August 2018 at 23:55, Andre McCurdy <armccurdy@gmail.com >>> <mailto:armccurdy@gmail.com>> wrote: >>> >>> On Wed, Aug 22, 2018 at 2:56 PM, Ryan Harkin <ryan.harkin@linaro.org >>> <mailto:ryan.harkin@linaro.org>> wrote: >>> > On Wed, 22 Aug 2018, 21:42 Andre McCurdy, <armccurdy@gmail.com >>> <mailto:armccurdy@gmail.com>> wrote: >>> >> On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin >>> <ryan.harkin@linaro.org <mailto:ryan.harkin@linaro.org>> >>> >> wrote: >>> >> > On Wed, 22 Aug 2018, 20:02 Martin Jansa, >>> <martin.jansa@gmail.com <mailto:martin.jansa@gmail.com>> wrote: >>> >> >> >>> >> >> Your 1st parameter is wrong, compare again with the example I >>> gave you >>> >> >> (don't include "brcm/" path in 1st param, because you want >>> the symlink >>> >> >> to >>> >> >> point to just brcmfmac43430-sdio.AP6212.txt like you did in >>> the version >>> >> >> after cd). >>> >> > >>> >> > That doesn't work either. I tried it with the same result, but >>> didn't >>> >> > send a >>> >> > log of it. That works for you? >>> >> >>> >> Martin's example is correct so maybe check your tests again for >>> typos. >>> >> It it still doesn't work then please do send a log. >>> >> >>> >> The link will point to whatever you define via the first >>> parameter, so >>> >> if you changed the first parameter it shouldn't be possible to >>> get >>> >> "the same result". >>> >> >>> >> $ mkdir foo >>> >> $ ln -sf test_target foo/test1 >>> >> $ ln -sf brcm/test_target foo/test2 >>> >> $ ls -l foo >>> >> >>> >> lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target >>> >> lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> >>> brcm/test_target >>> > >>> > Yes, that's essentially the same as what I'm getting. >>> > >>> > Now try "cat foo/test1" and what happens? >>> > >>> > There is no file called test_target in the foo directory. And >>> neither is >>> > there a file called brcm/test_target in the foo directory. >>> >>> Correct. The above was just an example to show that you can * create >>> symlinks * in the foo directory without cd'ing into the foo directory >>> first. >>> >>> If you'd like the symlinks in the example to point to valid targets >>> then you need to create the targets too, e.g. >>> >>> $ mkdir -p foo/brcm >>> $ echo hello > foo/test_target >>> $ echo hello2 > foo/brcm/test_target >>> >>> But note that the process of creating a symlink is always the same, >>> regardless of whether the symlink points to a valid target or not (so >>> you can run these extra commands to create the targets before or >>> after >>> you create the symlinks). >>> >>> >>> So that doesn't work for me how I expect it to work. I must be missing >>> something fundamental here. >>> >>> The recipe is trying to create a soft link from a file in the current >>> directory to a file in the sub-directory. On my system, your example creates >>> links from a file in the sub-directory to the another file in the >>> sub-directory. >>> >>> So, to copy your example, but creating the file "test_target" from the >>> start: >>> >>> $ mkdir -p /tmp/test >>> $ cd /tmp/test >>> $ mkdir foo >>> $ echo 1 > test_target >>> $ ln -sf test_target foo/test1 >>> $ ln -sf brcm/test_target foo/test2 >>> $ ls -l foo >>> total 0 >>> lrwxrwxrwx 1 ryan ryan 11 Aug 23 06:54 test1 -> test_target >>> lrwxrwxrwx 1 ryan ryan 16 Aug 23 06:54 test2 -> brcm/test_target >>> $ cat test_target >>> 1 >>> $ cat foo/test1 >>> cat: foo/test1: No such file or directory >>> $ cat foo/test2 >>> cat: foo/test2: No such file or directory >>> $ echo hello > foo/test_target >>> $ echo hello2 > foo/brcm/test_target >>> bash: foo/brcm/test_target: No such file or directory >>> $ cat foo/test1 >>> hello >>> $ cat foo/test2 >>> cat: foo/test2: No such file or directory >>> $ cat test_target >>> 1 >>> $ tree >>> . >>> ├── foo >>> │ ├── test1 -> test_target >>> │ ├── test2 -> brcm/test_target >>> │ └── test_target >>> └── test_target >>> >>> 1 directory, 4 files >>> >>> So, neither test1 nor test2 are linked to /tmp/test/test_target. test1 is >>> linked to /tmp/test/foo/test_target and test2 is linked to >>> /tmp/test/brcm/test_target, which doesn't exist. >>> >>> AFAIK, when creating a softlink, you have to give it either an absolute >>> path, or a path relative to the link being created. The path cannot be >>> relative to the original file that you want to link to. >>> >>> So, this will work: >>> >>> $cd /tmp/test >>> $ ln -sf ../test_target foo/test3 >>> $ cat foo/test3 >>> 1 >>> $ cat /tmp/test/foo/test3 >>> 1 >>> >>> But that is a strange way to create the soft link, IMO. >>> >>> AFAICT, for the recipe, to get rid of the "cd", I'd have to specify an >>> absolute path to the original file: >>> >>> +do_install_append_bcm43430-nvram-mur1dx() { >>> + ( ln -sf ${PWD}/brcmfmac43430-sdio.MUR1DX.txt >>> ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) >>> >>> ... assuming PWD is available to the recipe. There will be a proper Yocto >>> variable I can use, of course, but I can't think of it right now. >>> >>> Either way, Martin's example doesn't work for me. And adding the absolute >>> path of the original file doesn't seem any neater or clearer than following >>> the TI example from the do_install a few lines up in the recipe. But I'm >>> happy to do it either way, so long as it works. >>> >> >> -- >> Kind regards, >> Martin Hundebøll >> Embedded Linux Consultant >> >> +45 61 65 54 61 >> martin@geanix.com >> >> Geanix IVS >> https://geanix.com >> DK39600706 > > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-23 6:39 ` Martin Hundebøll 2018-08-23 7:08 ` Ryan Harkin @ 2018-08-23 15:58 ` Khem Raj 1 sibling, 0 replies; 30+ messages in thread From: Khem Raj @ 2018-08-23 15:58 UTC (permalink / raw) To: martin Cc: Patches and discussions about the oe-core layer, daiane.angolini, patches On Wed, Aug 22, 2018 at 11:40 PM Martin Hundebøll <martin@geanix.com> wrote: > > May I suggest using the '-r, --relative' flag from 'ln': > > -r, --relative > create symbolic links relative to link location > > My life felt considerably better after discovering that feature :) > ln -r is not available everywhere, but we do have lnr implemented as part of metadata see scripts/lnr so feel free to use that > // Martin > > On 23/08/2018 08.12, Ryan Harkin wrote: > > > > > > On 22 August 2018 at 23:55, Andre McCurdy <armccurdy@gmail.com > > <mailto:armccurdy@gmail.com>> wrote: > > > > On Wed, Aug 22, 2018 at 2:56 PM, Ryan Harkin <ryan.harkin@linaro.org > > <mailto:ryan.harkin@linaro.org>> wrote: > > > On Wed, 22 Aug 2018, 21:42 Andre McCurdy, <armccurdy@gmail.com > > <mailto:armccurdy@gmail.com>> wrote: > > >> On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin > > <ryan.harkin@linaro.org <mailto:ryan.harkin@linaro.org>> > > >> wrote: > > >> > On Wed, 22 Aug 2018, 20:02 Martin Jansa, > > <martin.jansa@gmail.com <mailto:martin.jansa@gmail.com>> wrote: > > >> >> > > >> >> Your 1st parameter is wrong, compare again with the example I > > gave you > > >> >> (don't include "brcm/" path in 1st param, because you want > > the symlink > > >> >> to > > >> >> point to just brcmfmac43430-sdio.AP6212.txt like you did in > > the version > > >> >> after cd). > > >> > > > >> > That doesn't work either. I tried it with the same result, but > > didn't > > >> > send a > > >> > log of it. That works for you? > > >> > > >> Martin's example is correct so maybe check your tests again for > > typos. > > >> It it still doesn't work then please do send a log. > > >> > > >> The link will point to whatever you define via the first > > parameter, so > > >> if you changed the first parameter it shouldn't be possible to get > > >> "the same result". > > >> > > >> $ mkdir foo > > >> $ ln -sf test_target foo/test1 > > >> $ ln -sf brcm/test_target foo/test2 > > >> $ ls -l foo > > >> > > >> lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target > > >> lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> brcm/test_target > > > > > > Yes, that's essentially the same as what I'm getting. > > > > > > Now try "cat foo/test1" and what happens? > > > > > > There is no file called test_target in the foo directory. And > > neither is > > > there a file called brcm/test_target in the foo directory. > > > > Correct. The above was just an example to show that you can * create > > symlinks * in the foo directory without cd'ing into the foo directory > > first. > > > > If you'd like the symlinks in the example to point to valid targets > > then you need to create the targets too, e.g. > > > > $ mkdir -p foo/brcm > > $ echo hello > foo/test_target > > $ echo hello2 > foo/brcm/test_target > > > > But note that the process of creating a symlink is always the same, > > regardless of whether the symlink points to a valid target or not (so > > you can run these extra commands to create the targets before or after > > you create the symlinks). > > > > > > So that doesn't work for me how I expect it to work. I must be missing > > something fundamental here. > > > > The recipe is trying to create a soft link from a file in the current > > directory to a file in the sub-directory. On my system, your example > > creates links from a file in the sub-directory to the another file in > > the sub-directory. > > > > So, to copy your example, but creating the file "test_target" from the > > start: > > > > $ mkdir -p /tmp/test > > $ cd /tmp/test > > $ mkdir foo > > $ echo 1 > test_target > > $ ln -sf test_target foo/test1 > > $ ln -sf brcm/test_target foo/test2 > > $ ls -l foo > > total 0 > > lrwxrwxrwx 1 ryan ryan 11 Aug 23 06:54 test1 -> test_target > > lrwxrwxrwx 1 ryan ryan 16 Aug 23 06:54 test2 -> brcm/test_target > > $ cat test_target > > 1 > > $ cat foo/test1 > > cat: foo/test1: No such file or directory > > $ cat foo/test2 > > cat: foo/test2: No such file or directory > > $ echo hello > foo/test_target > > $ echo hello2 > foo/brcm/test_target > > bash: foo/brcm/test_target: No such file or directory > > $ cat foo/test1 > > hello > > $ cat foo/test2 > > cat: foo/test2: No such file or directory > > $ cat test_target > > 1 > > $ tree > > . > > ├── foo > > │ ├── test1 -> test_target > > │ ├── test2 -> brcm/test_target > > │ └── test_target > > └── test_target > > > > 1 directory, 4 files > > > > So, neither test1 nor test2 are linked to /tmp/test/test_target. test1 > > is linked to /tmp/test/foo/test_target and test2 is linked to > > /tmp/test/brcm/test_target, which doesn't exist. > > > > AFAIK, when creating a softlink, you have to give it either an absolute > > path, or a path relative to the link being created. The path cannot be > > relative to the original file that you want to link to. > > > > So, this will work: > > > > $cd /tmp/test > > $ ln -sf ../test_target foo/test3 > > $ cat foo/test3 > > 1 > > $ cat /tmp/test/foo/test3 > > 1 > > > > But that is a strange way to create the soft link, IMO. > > > > AFAICT, for the recipe, to get rid of the "cd", I'd have to specify an > > absolute path to the original file: > > > > +do_install_append_bcm43430-nvram-mur1dx() { > > + ( ln -sf ${PWD}/brcmfmac43430-sdio.MUR1DX.txt > > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) > > > > ... assuming PWD is available to the recipe. There will be a proper > > Yocto variable I can use, of course, but I can't think of it right now. > > > > Either way, Martin's example doesn't work for me. And adding the > > absolute path of the original file doesn't seem any neater or clearer > > than following the TI example from the do_install a few lines up in the > > recipe. But I'm happy to do it either way, so long as it works. > > > > -- > Kind regards, > Martin Hundebøll > Embedded Linux Consultant > > +45 61 65 54 61 > martin@geanix.com > > Geanix IVS > https://geanix.com > DK39600706 > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-23 6:12 ` Ryan Harkin 2018-08-23 6:39 ` Martin Hundebøll @ 2018-08-23 7:06 ` Andre McCurdy 2018-08-23 7:17 ` Ryan Harkin 1 sibling, 1 reply; 30+ messages in thread From: Andre McCurdy @ 2018-08-23 7:06 UTC (permalink / raw) To: Ryan Harkin Cc: Patches and discussions about the oe-core layer, daiane.angolini, Patch Tracking On Wed, Aug 22, 2018 at 11:12 PM, Ryan Harkin <ryan.harkin@linaro.org> wrote: > On 22 August 2018 at 23:55, Andre McCurdy <armccurdy@gmail.com> wrote: >> On Wed, Aug 22, 2018 at 2:56 PM, Ryan Harkin <ryan.harkin@linaro.org> >> wrote: >> > On Wed, 22 Aug 2018, 21:42 Andre McCurdy, <armccurdy@gmail.com> wrote: >> >> On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin <ryan.harkin@linaro.org> >> >> wrote: >> >> > On Wed, 22 Aug 2018, 20:02 Martin Jansa, <martin.jansa@gmail.com> >> >> > wrote: >> >> >> >> >> >> Your 1st parameter is wrong, compare again with the example I gave >> >> >> you >> >> >> (don't include "brcm/" path in 1st param, because you want the >> >> >> symlink >> >> >> to >> >> >> point to just brcmfmac43430-sdio.AP6212.txt like you did in the >> >> >> version >> >> >> after cd). >> >> > >> >> > That doesn't work either. I tried it with the same result, but didn't >> >> > send a >> >> > log of it. That works for you? >> >> >> >> Martin's example is correct so maybe check your tests again for typos. >> >> It it still doesn't work then please do send a log. >> >> >> >> The link will point to whatever you define via the first parameter, so >> >> if you changed the first parameter it shouldn't be possible to get >> >> "the same result". >> >> >> >> $ mkdir foo >> >> $ ln -sf test_target foo/test1 >> >> $ ln -sf brcm/test_target foo/test2 >> >> $ ls -l foo >> >> >> >> lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target >> >> lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> brcm/test_target >> > >> > Yes, that's essentially the same as what I'm getting. >> > >> > Now try "cat foo/test1" and what happens? >> > >> > There is no file called test_target in the foo directory. And neither is >> > there a file called brcm/test_target in the foo directory. >> >> Correct. The above was just an example to show that you can * create >> symlinks * in the foo directory without cd'ing into the foo directory >> first. >> >> If you'd like the symlinks in the example to point to valid targets >> then you need to create the targets too, e.g. >> >> $ mkdir -p foo/brcm >> $ echo hello > foo/test_target >> $ echo hello2 > foo/brcm/test_target >> >> But note that the process of creating a symlink is always the same, >> regardless of whether the symlink points to a valid target or not (so >> you can run these extra commands to create the targets before or after >> you create the symlinks). > > So that doesn't work for me how I expect it to work. I must be missing > something fundamental here. > > The recipe is trying to create a soft link from a file in the current > directory to a file in the sub-directory. On my system, your example creates > links from a file in the sub-directory to the another file in the > sub-directory. > > So, to copy your example, but creating the file "test_target" from the > start: > > $ mkdir -p /tmp/test > $ cd /tmp/test > $ mkdir foo > $ echo 1 > test_target Here you are creating "test_target" in the directory which contains foo, not inside foo. So a symlink inside foo pointing to "test_target" isn't going to work. > $ ln -sf test_target foo/test1 > $ ln -sf brcm/test_target foo/test2 > $ ls -l foo > total 0 > lrwxrwxrwx 1 ryan ryan 11 Aug 23 06:54 test1 -> test_target > lrwxrwxrwx 1 ryan ryan 16 Aug 23 06:54 test2 -> brcm/test_target > $ cat test_target > 1 > $ cat foo/test1 > cat: foo/test1: No such file or directory > $ cat foo/test2 > cat: foo/test2: No such file or directory All as expected given that none of the symlink targets exist yet. > $ echo hello > foo/test_target > $ echo hello2 > foo/brcm/test_target > bash: foo/brcm/test_target: No such file or directory You can't create a file within the foo/brcm subdirectory without creating that subdirectory first. You've somehow missed that step - although it was in my example. > $ cat foo/test1 > hello > $ cat foo/test2 > cat: foo/test2: No such file or directory > $ cat test_target > 1 > $ tree > . > ├── foo > │ ├── test1 -> test_target > │ ├── test2 -> brcm/test_target > │ └── test_target > └── test_target > > 1 directory, 4 files No real mysteries here. Everything looks as expected given the comments above about how you creating the target files. > So, neither test1 nor test2 are linked to /tmp/test/test_target. As expected. For a symlink which is in the foo subdirectory, the target would have to be "../test_target" to correctly point to your /tmp/test/test_target file. > test1 is > linked to /tmp/test/foo/test_target Not exactly. The test1 symlink in foo just points to "test_target", there's no absolute path. ie if you renamed the foo directory to something else then the test1 symlink would still point "test_target" and it would still be a valid link. > and test2 is linked to > /tmp/test/brcm/test_target, which doesn't exist. Again, test2 is a relative symlink, not absolute. The test2 symlink points to a target which doesn't exist due to a missing "mkdir -p foo/brcm" before you tried to create the target file. > AFAIK, when creating a softlink, you have to give it either an absolute > path, or a path relative to the link being created. The path cannot be > relative to the original file that you want to link to. The only real restriction when creating a symlink is that the directory which will contain the symlink must exist. If you want the symlink to point to something then it's up to you to arrange that the target exists and the symlink points to it correctly - but the symlink can still be created even if the target doesn't point to anything valid. > So, this will work: > > $cd /tmp/test > $ ln -sf ../test_target foo/test3 > $ cat foo/test3 > 1 > $ cat /tmp/test/foo/test3 > 1 > > But that is a strange way to create the soft link, IMO. What's strange about it? > AFAICT, for the recipe, to get rid of the "cd", I'd have to specify an > absolute path to the original file: > > +do_install_append_bcm43430-nvram-mur1dx() { > + ( ln -sf ${PWD}/brcmfmac43430-sdio.MUR1DX.txt > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) > > ... assuming PWD is available to the recipe. There will be a proper Yocto > variable I can use, of course, but I can't think of it right now. That definitely doesn't look right... > Either way, Martin's example doesn't work for me. And adding the absolute > path of the original file doesn't seem any neater or clearer than following > the TI example from the do_install a few lines up in the recipe. But I'm > happy to do it either way, so long as it works. Martin's example is basically saying (correctly) that this sequence: mkdir foo echo hello > foo/target cd foo ln -sf target link cd .. is equivalent to this one: mkdir foo echo hello > foo/target ln -sf target foo/link Notice that the first parameter to ln (the thing you want the symlink to point to) is the same in both cases. ie it isn't affected by which directory you are in when you create the symlink. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-23 7:06 ` Andre McCurdy @ 2018-08-23 7:17 ` Ryan Harkin 2018-08-23 7:34 ` Andre McCurdy 0 siblings, 1 reply; 30+ messages in thread From: Ryan Harkin @ 2018-08-23 7:17 UTC (permalink / raw) To: Andre McCurdy Cc: Patches and discussions about the oe-core layer, daiane.angolini, Patch Tracking [-- Attachment #1: Type: text/plain, Size: 9063 bytes --] On 23 August 2018 at 08:06, Andre McCurdy <armccurdy@gmail.com> wrote: > > On Wed, Aug 22, 2018 at 11:12 PM, Ryan Harkin <ryan.harkin@linaro.org> wrote: > > On 22 August 2018 at 23:55, Andre McCurdy <armccurdy@gmail.com> wrote: > >> On Wed, Aug 22, 2018 at 2:56 PM, Ryan Harkin <ryan.harkin@linaro.org> > >> wrote: > >> > On Wed, 22 Aug 2018, 21:42 Andre McCurdy, <armccurdy@gmail.com> wrote: > >> >> On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin <ryan.harkin@linaro.org > > >> >> wrote: > >> >> > On Wed, 22 Aug 2018, 20:02 Martin Jansa, <martin.jansa@gmail.com> > >> >> > wrote: > >> >> >> > >> >> >> Your 1st parameter is wrong, compare again with the example I gave > >> >> >> you > >> >> >> (don't include "brcm/" path in 1st param, because you want the > >> >> >> symlink > >> >> >> to > >> >> >> point to just brcmfmac43430-sdio.AP6212.txt like you did in the > >> >> >> version > >> >> >> after cd). > >> >> > > >> >> > That doesn't work either. I tried it with the same result, but didn't > >> >> > send a > >> >> > log of it. That works for you? > >> >> > >> >> Martin's example is correct so maybe check your tests again for typos. > >> >> It it still doesn't work then please do send a log. > >> >> > >> >> The link will point to whatever you define via the first parameter, so > >> >> if you changed the first parameter it shouldn't be possible to get > >> >> "the same result". > >> >> > >> >> $ mkdir foo > >> >> $ ln -sf test_target foo/test1 > >> >> $ ln -sf brcm/test_target foo/test2 > >> >> $ ls -l foo > >> >> > >> >> lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target > >> >> lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> brcm/test_target > >> > > >> > Yes, that's essentially the same as what I'm getting. > >> > > >> > Now try "cat foo/test1" and what happens? > >> > > >> > There is no file called test_target in the foo directory. And neither is > >> > there a file called brcm/test_target in the foo directory. > >> > >> Correct. The above was just an example to show that you can * create > >> symlinks * in the foo directory without cd'ing into the foo directory > >> first. > >> > >> If you'd like the symlinks in the example to point to valid targets > >> then you need to create the targets too, e.g. > >> > >> $ mkdir -p foo/brcm > >> $ echo hello > foo/test_target > >> $ echo hello2 > foo/brcm/test_target > >> > >> But note that the process of creating a symlink is always the same, > >> regardless of whether the symlink points to a valid target or not (so > >> you can run these extra commands to create the targets before or after > >> you create the symlinks). > > > > So that doesn't work for me how I expect it to work. I must be missing > > something fundamental here. > > > > The recipe is trying to create a soft link from a file in the current > > directory to a file in the sub-directory. On my system, your example creates > > links from a file in the sub-directory to the another file in the > > sub-directory. > > > > So, to copy your example, but creating the file "test_target" from the > > start: > > > > $ mkdir -p /tmp/test > > $ cd /tmp/test > > $ mkdir foo > > $ echo 1 > test_target > > Here you are creating "test_target" in the directory which contains > foo, not inside foo. So a symlink inside foo pointing to "test_target" > isn't going to work. Exactly my point! Martin asked me to do this: > ln -sf brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt Which is in essence what I'm doing above. It won't work. The file "brcmfmac43430-sdio.AP6212.txt" doesn't exist in the current directory. That's why there's a "cd" command in there. I think, in hind sight, the problem is that there is no path specified for the original file. Hence, the email I've just sent, suggests I could make this mod: - ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) + ( ln -sf ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) > > > > $ ln -sf test_target foo/test1 > > $ ln -sf brcm/test_target foo/test2 > > $ ls -l foo > > total 0 > > lrwxrwxrwx 1 ryan ryan 11 Aug 23 06:54 test1 -> test_target > > lrwxrwxrwx 1 ryan ryan 16 Aug 23 06:54 test2 -> brcm/test_target > > $ cat test_target > > 1 > > $ cat foo/test1 > > cat: foo/test1: No such file or directory > > $ cat foo/test2 > > cat: foo/test2: No such file or directory > > All as expected given that none of the symlink targets exist yet. > > > $ echo hello > foo/test_target > > $ echo hello2 > foo/brcm/test_target > > bash: foo/brcm/test_target: No such file or directory > > You can't create a file within the foo/brcm subdirectory without > creating that subdirectory first. You've somehow missed that step - > although it was in my example. Well, your example said: > $ mkdir foo > $ ln -sf test_target foo/test1 > $ ln -sf brcm/test_target foo/test2 > $ ls -l foo ... and I was trying to show that it doesn't work. Although in fairness, you did add the "mkdir -p foo/brcm" command in a later email. So I think we're both arguing the same point and neither of us is making ourselves very clear. So I don't think we need to continue down this track. Martin's original suggestion won't work for the reasons we've both just discussed. If I add the absolute paths to the source and target, it should be fine. > > > $ cat foo/test1 > > hello > > $ cat foo/test2 > > cat: foo/test2: No such file or directory > > $ cat test_target > > 1 > > $ tree > > . > > ├── foo > > │ ├── test1 -> test_target > > │ ├── test2 -> brcm/test_target > > │ └── test_target > > └── test_target > > > > 1 directory, 4 files > > No real mysteries here. Everything looks as expected given the > comments above about how you creating the target files. > > > So, neither test1 nor test2 are linked to /tmp/test/test_target. > > As expected. For a symlink which is in the foo subdirectory, the > target would have to be "../test_target" to correctly point to your > /tmp/test/test_target file. > > > test1 is > > linked to /tmp/test/foo/test_target > > Not exactly. The test1 symlink in foo just points to "test_target", > there's no absolute path. > > ie if you renamed the foo directory to something else then the test1 > symlink would still point "test_target" and it would still be a valid > link. > > > and test2 is linked to > > /tmp/test/brcm/test_target, which doesn't exist. > > Again, test2 is a relative symlink, not absolute. The test2 symlink > points to a target which doesn't exist due to a missing "mkdir -p > foo/brcm" before you tried to create the target file. > > > AFAIK, when creating a softlink, you have to give it either an absolute > > path, or a path relative to the link being created. The path cannot be > > relative to the original file that you want to link to. > > The only real restriction when creating a symlink is that the > directory which will contain the symlink must exist. > > If you want the symlink to point to something then it's up to you to > arrange that the target exists and the symlink points to it correctly > - but the symlink can still be created even if the target doesn't > point to anything valid. > > > So, this will work: > > > > $cd /tmp/test > > $ ln -sf ../test_target foo/test3 > > $ cat foo/test3 > > 1 > > $ cat /tmp/test/foo/test3 > > 1 > > > > But that is a strange way to create the soft link, IMO. > > What's strange about it? > > > AFAICT, for the recipe, to get rid of the "cd", I'd have to specify an > > absolute path to the original file: > > > > +do_install_append_bcm43430-nvram-mur1dx() { > > + ( ln -sf ${PWD}/brcmfmac43430-sdio.MUR1DX.txt > > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) > > > > ... assuming PWD is available to the recipe. There will be a proper Yocto > > variable I can use, of course, but I can't think of it right now. > > That definitely doesn't look right... > > > Either way, Martin's example doesn't work for me. And adding the absolute > > path of the original file doesn't seem any neater or clearer than following > > the TI example from the do_install a few lines up in the recipe. But I'm > > happy to do it either way, so long as it works. > > Martin's example is basically saying (correctly) that this sequence: > > mkdir foo > echo hello > foo/target > cd foo > ln -sf target link > cd .. > > is equivalent to this one: > > mkdir foo > echo hello > foo/target > ln -sf target foo/link > > Notice that the first parameter to ln (the thing you want the symlink > to point to) is the same in both cases. ie it isn't affected by which > directory you are in when you create the symlink. [-- Attachment #2: Type: text/html, Size: 11905 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-23 7:17 ` Ryan Harkin @ 2018-08-23 7:34 ` Andre McCurdy 2018-08-23 7:36 ` Ryan Harkin 0 siblings, 1 reply; 30+ messages in thread From: Andre McCurdy @ 2018-08-23 7:34 UTC (permalink / raw) To: Ryan Harkin Cc: Patches and discussions about the oe-core layer, daiane.angolini, Patch Tracking On Thu, Aug 23, 2018 at 12:17 AM, Ryan Harkin <ryan.harkin@linaro.org> wrote: > On 23 August 2018 at 08:06, Andre McCurdy <armccurdy@gmail.com> wrote: >> On Wed, Aug 22, 2018 at 11:12 PM, Ryan Harkin <ryan.harkin@linaro.org> >> wrote: >> > On 22 August 2018 at 23:55, Andre McCurdy <armccurdy@gmail.com> wrote: >> >> On Wed, Aug 22, 2018 at 2:56 PM, Ryan Harkin <ryan.harkin@linaro.org> >> >> wrote: >> >> > On Wed, 22 Aug 2018, 21:42 Andre McCurdy, <armccurdy@gmail.com> >> >> > wrote: >> >> >> On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin >> >> >> <ryan.harkin@linaro.org> >> >> >> wrote: >> >> >> > On Wed, 22 Aug 2018, 20:02 Martin Jansa, <martin.jansa@gmail.com> >> >> >> > wrote: >> >> >> >> >> >> >> >> Your 1st parameter is wrong, compare again with the example I >> >> >> >> gave >> >> >> >> you >> >> >> >> (don't include "brcm/" path in 1st param, because you want the >> >> >> >> symlink >> >> >> >> to >> >> >> >> point to just brcmfmac43430-sdio.AP6212.txt like you did in the >> >> >> >> version >> >> >> >> after cd). >> >> >> > >> >> >> > That doesn't work either. I tried it with the same result, but >> >> >> > didn't >> >> >> > send a >> >> >> > log of it. That works for you? >> >> >> >> >> >> Martin's example is correct so maybe check your tests again for >> >> >> typos. >> >> >> It it still doesn't work then please do send a log. >> >> >> >> >> >> The link will point to whatever you define via the first parameter, >> >> >> so >> >> >> if you changed the first parameter it shouldn't be possible to get >> >> >> "the same result". >> >> >> >> >> >> $ mkdir foo >> >> >> $ ln -sf test_target foo/test1 >> >> >> $ ln -sf brcm/test_target foo/test2 >> >> >> $ ls -l foo >> >> >> >> >> >> lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target >> >> >> lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> brcm/test_target >> >> > >> >> > Yes, that's essentially the same as what I'm getting. >> >> > >> >> > Now try "cat foo/test1" and what happens? >> >> > >> >> > There is no file called test_target in the foo directory. And neither >> >> > is >> >> > there a file called brcm/test_target in the foo directory. >> >> >> >> Correct. The above was just an example to show that you can * create >> >> symlinks * in the foo directory without cd'ing into the foo directory >> >> first. >> >> >> >> If you'd like the symlinks in the example to point to valid targets >> >> then you need to create the targets too, e.g. >> >> >> >> $ mkdir -p foo/brcm >> >> $ echo hello > foo/test_target >> >> $ echo hello2 > foo/brcm/test_target >> >> >> >> But note that the process of creating a symlink is always the same, >> >> regardless of whether the symlink points to a valid target or not (so >> >> you can run these extra commands to create the targets before or after >> >> you create the symlinks). >> > >> > So that doesn't work for me how I expect it to work. I must be missing >> > something fundamental here. >> > >> > The recipe is trying to create a soft link from a file in the current >> > directory to a file in the sub-directory. On my system, your example >> > creates >> > links from a file in the sub-directory to the another file in the >> > sub-directory. >> > >> > So, to copy your example, but creating the file "test_target" from the >> > start: >> > >> > $ mkdir -p /tmp/test >> > $ cd /tmp/test >> > $ mkdir foo >> > $ echo 1 > test_target >> >> Here you are creating "test_target" in the directory which contains >> foo, not inside foo. So a symlink inside foo pointing to "test_target" >> isn't going to work. > > Exactly my point! Martin asked me to do this: > >> ln -sf brcmfmac43430-sdio.AP6212.txt >> ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt > > Which is in essence what I'm doing above. It won't work. The file > "brcmfmac43430-sdio.AP6212.txt" doesn't exist in the current directory. > That's why there's a "cd" command in there. I think you're really still quite confused about something here... You don't need to have any file existing in the current directory (or anywhere else) in order to create a symlink. The symlink exists on it's own. Creating the file that the symlink points to is an entirely separate step. > I think, in hind sight, the problem is that there is no path specified for > the original file. Hence, the email I've just sent, suggests I could make > this mod: > > - ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf > brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) > + ( ln -sf > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) > > > >> >> >> > $ ln -sf test_target foo/test1 >> > $ ln -sf brcm/test_target foo/test2 >> > $ ls -l foo >> > total 0 >> > lrwxrwxrwx 1 ryan ryan 11 Aug 23 06:54 test1 -> test_target >> > lrwxrwxrwx 1 ryan ryan 16 Aug 23 06:54 test2 -> brcm/test_target >> > $ cat test_target >> > 1 >> > $ cat foo/test1 >> > cat: foo/test1: No such file or directory >> > $ cat foo/test2 >> > cat: foo/test2: No such file or directory >> >> All as expected given that none of the symlink targets exist yet. >> >> > $ echo hello > foo/test_target >> > $ echo hello2 > foo/brcm/test_target >> > bash: foo/brcm/test_target: No such file or directory >> >> You can't create a file within the foo/brcm subdirectory without >> creating that subdirectory first. You've somehow missed that step - >> although it was in my example. > > Well, your example said: > >> $ mkdir foo >> $ ln -sf test_target foo/test1 >> $ ln -sf brcm/test_target foo/test2 >> $ ls -l foo > > ... and I was trying to show that it doesn't work. Although in fairness, you > did add the "mkdir -p foo/brcm" command in a later email. So I think we're > both arguing the same point and neither of us is making ourselves very > clear. > > So I don't think we need to continue down this track. Martin's original > suggestion won't work for the reasons we've both just discussed. If I add > the absolute paths to the source and target, it should be fine. If you make it down as far as the end of the previous email you'll find a simplified example of Martin's suggestion. Please try it. It does work. > >> >> > $ cat foo/test1 >> > hello >> > $ cat foo/test2 >> > cat: foo/test2: No such file or directory >> > $ cat test_target >> > 1 >> > $ tree >> > . >> > ├── foo >> > │ ├── test1 -> test_target >> > │ ├── test2 -> brcm/test_target >> > │ └── test_target >> > └── test_target >> > >> > 1 directory, 4 files >> >> No real mysteries here. Everything looks as expected given the >> comments above about how you creating the target files. >> >> > So, neither test1 nor test2 are linked to /tmp/test/test_target. >> >> As expected. For a symlink which is in the foo subdirectory, the >> target would have to be "../test_target" to correctly point to your >> /tmp/test/test_target file. >> >> > test1 is >> > linked to /tmp/test/foo/test_target >> >> Not exactly. The test1 symlink in foo just points to "test_target", >> there's no absolute path. >> >> ie if you renamed the foo directory to something else then the test1 >> symlink would still point "test_target" and it would still be a valid >> link. >> >> > and test2 is linked to >> > /tmp/test/brcm/test_target, which doesn't exist. >> >> Again, test2 is a relative symlink, not absolute. The test2 symlink >> points to a target which doesn't exist due to a missing "mkdir -p >> foo/brcm" before you tried to create the target file. >> >> > AFAIK, when creating a softlink, you have to give it either an absolute >> > path, or a path relative to the link being created. The path cannot be >> > relative to the original file that you want to link to. >> >> The only real restriction when creating a symlink is that the >> directory which will contain the symlink must exist. >> >> If you want the symlink to point to something then it's up to you to >> arrange that the target exists and the symlink points to it correctly >> - but the symlink can still be created even if the target doesn't >> point to anything valid. >> >> > So, this will work: >> > >> > $cd /tmp/test >> > $ ln -sf ../test_target foo/test3 >> > $ cat foo/test3 >> > 1 >> > $ cat /tmp/test/foo/test3 >> > 1 >> > >> > But that is a strange way to create the soft link, IMO. >> >> What's strange about it? >> >> > AFAICT, for the recipe, to get rid of the "cd", I'd have to specify an >> > absolute path to the original file: >> > >> > +do_install_append_bcm43430-nvram-mur1dx() { >> > + ( ln -sf ${PWD}/brcmfmac43430-sdio.MUR1DX.txt >> > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) >> > >> > ... assuming PWD is available to the recipe. There will be a proper >> > Yocto >> > variable I can use, of course, but I can't think of it right now. >> >> That definitely doesn't look right... >> >> > Either way, Martin's example doesn't work for me. And adding the >> > absolute >> > path of the original file doesn't seem any neater or clearer than >> > following >> > the TI example from the do_install a few lines up in the recipe. But I'm >> > happy to do it either way, so long as it works. >> >> Martin's example is basically saying (correctly) that this sequence: >> >> mkdir foo >> echo hello > foo/target >> cd foo >> ln -sf target link >> cd .. >> >> is equivalent to this one: >> >> mkdir foo >> echo hello > foo/target >> ln -sf target foo/link >> >> Notice that the first parameter to ln (the thing you want the symlink >> to point to) is the same in both cases. ie it isn't affected by which >> directory you are in when you create the symlink. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-23 7:34 ` Andre McCurdy @ 2018-08-23 7:36 ` Ryan Harkin 0 siblings, 0 replies; 30+ messages in thread From: Ryan Harkin @ 2018-08-23 7:36 UTC (permalink / raw) To: Andre McCurdy Cc: Patches and discussions about the oe-core layer, daiane.angolini, Patch Tracking [-- Attachment #1: Type: text/plain, Size: 10843 bytes --] On 23 August 2018 at 08:34, Andre McCurdy <armccurdy@gmail.com> wrote: > On Thu, Aug 23, 2018 at 12:17 AM, Ryan Harkin <ryan.harkin@linaro.org> > wrote: > > On 23 August 2018 at 08:06, Andre McCurdy <armccurdy@gmail.com> wrote: > >> On Wed, Aug 22, 2018 at 11:12 PM, Ryan Harkin <ryan.harkin@linaro.org> > >> wrote: > >> > On 22 August 2018 at 23:55, Andre McCurdy <armccurdy@gmail.com> > wrote: > >> >> On Wed, Aug 22, 2018 at 2:56 PM, Ryan Harkin <ryan.harkin@linaro.org > > > >> >> wrote: > >> >> > On Wed, 22 Aug 2018, 21:42 Andre McCurdy, <armccurdy@gmail.com> > >> >> > wrote: > >> >> >> On Wed, Aug 22, 2018 at 1:10 PM, Ryan Harkin > >> >> >> <ryan.harkin@linaro.org> > >> >> >> wrote: > >> >> >> > On Wed, 22 Aug 2018, 20:02 Martin Jansa, < > martin.jansa@gmail.com> > >> >> >> > wrote: > >> >> >> >> > >> >> >> >> Your 1st parameter is wrong, compare again with the example I > >> >> >> >> gave > >> >> >> >> you > >> >> >> >> (don't include "brcm/" path in 1st param, because you want the > >> >> >> >> symlink > >> >> >> >> to > >> >> >> >> point to just brcmfmac43430-sdio.AP6212.txt like you did in the > >> >> >> >> version > >> >> >> >> after cd). > >> >> >> > > >> >> >> > That doesn't work either. I tried it with the same result, but > >> >> >> > didn't > >> >> >> > send a > >> >> >> > log of it. That works for you? > >> >> >> > >> >> >> Martin's example is correct so maybe check your tests again for > >> >> >> typos. > >> >> >> It it still doesn't work then please do send a log. > >> >> >> > >> >> >> The link will point to whatever you define via the first > parameter, > >> >> >> so > >> >> >> if you changed the first parameter it shouldn't be possible to get > >> >> >> "the same result". > >> >> >> > >> >> >> $ mkdir foo > >> >> >> $ ln -sf test_target foo/test1 > >> >> >> $ ln -sf brcm/test_target foo/test2 > >> >> >> $ ls -l foo > >> >> >> > >> >> >> lrwxrwxrwx 1 andre andre 11 Aug 22 13:35 test1 -> test_target > >> >> >> lrwxrwxrwx 1 andre andre 16 Aug 22 13:35 test2 -> > brcm/test_target > >> >> > > >> >> > Yes, that's essentially the same as what I'm getting. > >> >> > > >> >> > Now try "cat foo/test1" and what happens? > >> >> > > >> >> > There is no file called test_target in the foo directory. And > neither > >> >> > is > >> >> > there a file called brcm/test_target in the foo directory. > >> >> > >> >> Correct. The above was just an example to show that you can * create > >> >> symlinks * in the foo directory without cd'ing into the foo directory > >> >> first. > >> >> > >> >> If you'd like the symlinks in the example to point to valid targets > >> >> then you need to create the targets too, e.g. > >> >> > >> >> $ mkdir -p foo/brcm > >> >> $ echo hello > foo/test_target > >> >> $ echo hello2 > foo/brcm/test_target > >> >> > >> >> But note that the process of creating a symlink is always the same, > >> >> regardless of whether the symlink points to a valid target or not (so > >> >> you can run these extra commands to create the targets before or > after > >> >> you create the symlinks). > >> > > >> > So that doesn't work for me how I expect it to work. I must be missing > >> > something fundamental here. > >> > > >> > The recipe is trying to create a soft link from a file in the current > >> > directory to a file in the sub-directory. On my system, your example > >> > creates > >> > links from a file in the sub-directory to the another file in the > >> > sub-directory. > >> > > >> > So, to copy your example, but creating the file "test_target" from the > >> > start: > >> > > >> > $ mkdir -p /tmp/test > >> > $ cd /tmp/test > >> > $ mkdir foo > >> > $ echo 1 > test_target > >> > >> Here you are creating "test_target" in the directory which contains > >> foo, not inside foo. So a symlink inside foo pointing to "test_target" > >> isn't going to work. > > > > Exactly my point! Martin asked me to do this: > > > >> ln -sf brcmfmac43430-sdio.AP6212.txt > >> ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt > > > > Which is in essence what I'm doing above. It won't work. The file > > "brcmfmac43430-sdio.AP6212.txt" doesn't exist in the current directory. > > That's why there's a "cd" command in there. > > I think you're really still quite confused about something here... > > You don't need to have any file existing in the current directory (or > anywhere else) in order to create a symlink. The symlink exists on > it's own. Creating the file that the symlink points to is an entirely > separate step. > > > I think, in hind sight, the problem is that there is no path specified > for > > the original file. Hence, the email I've just sent, suggests I could make > > this mod: > > > > - ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf > > brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) > > + ( ln -sf > > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt > > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) > > > > > > > >> > >> > >> > $ ln -sf test_target foo/test1 > >> > $ ln -sf brcm/test_target foo/test2 > >> > $ ls -l foo > >> > total 0 > >> > lrwxrwxrwx 1 ryan ryan 11 Aug 23 06:54 test1 -> test_target > >> > lrwxrwxrwx 1 ryan ryan 16 Aug 23 06:54 test2 -> brcm/test_target > >> > $ cat test_target > >> > 1 > >> > $ cat foo/test1 > >> > cat: foo/test1: No such file or directory > >> > $ cat foo/test2 > >> > cat: foo/test2: No such file or directory > >> > >> All as expected given that none of the symlink targets exist yet. > >> > >> > $ echo hello > foo/test_target > >> > $ echo hello2 > foo/brcm/test_target > >> > bash: foo/brcm/test_target: No such file or directory > >> > >> You can't create a file within the foo/brcm subdirectory without > >> creating that subdirectory first. You've somehow missed that step - > >> although it was in my example. > > > > Well, your example said: > > > >> $ mkdir foo > >> $ ln -sf test_target foo/test1 > >> $ ln -sf brcm/test_target foo/test2 > >> $ ls -l foo > > > > ... and I was trying to show that it doesn't work. Although in fairness, > you > > did add the "mkdir -p foo/brcm" command in a later email. So I think > we're > > both arguing the same point and neither of us is making ourselves very > > clear. > > > > So I don't think we need to continue down this track. Martin's original > > suggestion won't work for the reasons we've both just discussed. If I add > > the absolute paths to the source and target, it should be fine. > > If you make it down as far as the end of the previous email you'll > find a simplified example of Martin's suggestion. Please try it. It > does work. > I think you're right. As was Martin. I was starting to respond to your previous email but I'll cut it short and just say that I apologise for the confusion and distraction and I'll make the mod Martin suggested and test it works. > > > >> > >> > $ cat foo/test1 > >> > hello > >> > $ cat foo/test2 > >> > cat: foo/test2: No such file or directory > >> > $ cat test_target > >> > 1 > >> > $ tree > >> > . > >> > ├── foo > >> > │ ├── test1 -> test_target > >> > │ ├── test2 -> brcm/test_target > >> > │ └── test_target > >> > └── test_target > >> > > >> > 1 directory, 4 files > >> > >> No real mysteries here. Everything looks as expected given the > >> comments above about how you creating the target files. > >> > >> > So, neither test1 nor test2 are linked to /tmp/test/test_target. > >> > >> As expected. For a symlink which is in the foo subdirectory, the > >> target would have to be "../test_target" to correctly point to your > >> /tmp/test/test_target file. > >> > >> > test1 is > >> > linked to /tmp/test/foo/test_target > >> > >> Not exactly. The test1 symlink in foo just points to "test_target", > >> there's no absolute path. > >> > >> ie if you renamed the foo directory to something else then the test1 > >> symlink would still point "test_target" and it would still be a valid > >> link. > >> > >> > and test2 is linked to > >> > /tmp/test/brcm/test_target, which doesn't exist. > >> > >> Again, test2 is a relative symlink, not absolute. The test2 symlink > >> points to a target which doesn't exist due to a missing "mkdir -p > >> foo/brcm" before you tried to create the target file. > >> > >> > AFAIK, when creating a softlink, you have to give it either an > absolute > >> > path, or a path relative to the link being created. The path cannot be > >> > relative to the original file that you want to link to. > >> > >> The only real restriction when creating a symlink is that the > >> directory which will contain the symlink must exist. > >> > >> If you want the symlink to point to something then it's up to you to > >> arrange that the target exists and the symlink points to it correctly > >> - but the symlink can still be created even if the target doesn't > >> point to anything valid. > >> > >> > So, this will work: > >> > > >> > $cd /tmp/test > >> > $ ln -sf ../test_target foo/test3 > >> > $ cat foo/test3 > >> > 1 > >> > $ cat /tmp/test/foo/test3 > >> > 1 > >> > > >> > But that is a strange way to create the soft link, IMO. > >> > >> What's strange about it? > >> > >> > AFAICT, for the recipe, to get rid of the "cd", I'd have to specify an > >> > absolute path to the original file: > >> > > >> > +do_install_append_bcm43430-nvram-mur1dx() { > >> > + ( ln -sf ${PWD}/brcmfmac43430-sdio.MUR1DX.txt > >> > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt) > >> > > >> > ... assuming PWD is available to the recipe. There will be a proper > >> > Yocto > >> > variable I can use, of course, but I can't think of it right now. > >> > >> That definitely doesn't look right... > >> > >> > Either way, Martin's example doesn't work for me. And adding the > >> > absolute > >> > path of the original file doesn't seem any neater or clearer than > >> > following > >> > the TI example from the do_install a few lines up in the recipe. But > I'm > >> > happy to do it either way, so long as it works. > >> > >> Martin's example is basically saying (correctly) that this sequence: > >> > >> mkdir foo > >> echo hello > foo/target > >> cd foo > >> ln -sf target link > >> cd .. > >> > >> is equivalent to this one: > >> > >> mkdir foo > >> echo hello > foo/target > >> ln -sf target foo/link > >> > >> Notice that the first parameter to ln (the thing you want the symlink > >> to point to) is the same in both cases. ie it isn't affected by which > >> directory you are in when you create the symlink. > [-- Attachment #2: Type: text/html, Size: 15247 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-22 16:41 ` Martin Jansa 2018-08-22 16:47 ` Ryan Harkin @ 2018-08-23 8:15 ` Ryan Harkin 2018-08-24 2:53 ` Andre McCurdy 1 sibling, 1 reply; 30+ messages in thread From: Ryan Harkin @ 2018-08-23 8:15 UTC (permalink / raw) To: Martin Jansa Cc: daiane.angolini, Patch Tracking, Patches and discussions about the oe-core layer [-- Attachment #1: Type: text/plain, Size: 4223 bytes --] On 22 August 2018 at 17:41, Martin Jansa <martin.jansa@gmail.com> wrote: > > The "cd ${D}${nonarch_base_libdir}/firmware/brcm/" doesn't seem to be needed, just include the path in 2nd ln parameter. Thanks Martin, and sorry for being so dumb. I'll send another series at some point, but for now, the patch looks like this: diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb index 8c54f28..70d4f6a 100644 --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb @@ -226,6 +226,18 @@ do_install() { ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf ti-connectivity/* . ) } +# Adding bcm43430-nvram-{module type} to MACHINEOVERRIDES will create a +# softlink for the module specific NVRAM file to the filename expected +# by the Linux kernel +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-mur1dx = " ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" +do_install_append_bcm43430-nvram-mur1dx() { + ln -sf brcmfmac43430-sdio.MUR1DX.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt +} +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-ap6212 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" +do_install_append_bcm43430-nvram-ap6212() { + ln -sf brcmfmac43430-sdio.AP6212.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt +} + So now the ln issue is resolved, I'm not convinced my MACHINEOVERRIDES is the correct approach. Does anyone have any feedback on how I can improve that? As per my cover letter, I originally wanted to be able to provide a MACHINE_EXTRA_RRECOMMENDS, or similar, but I'm not familiar with how to get an _append to apply based on that variable, unless I tested it incorrectly (again). If I add, say, "linux-firmware-bcm43430-nvram-mur1dx" to MACHINE_EXTRA_RRECOMMENDS, should this work: +FILES_${PN}-bcm43430-nvram_append_${PN}-bcm43430-nvram-mur1dx = " ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" +do_install_append_${PN}-bcm43430-nvram-mur1dx() { + ln -sf brcmfmac43430-sdio.MUR1DX.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt +} Or is there a better way of achieving this? > > > On Wed, Aug 22, 2018 at 6:30 PM Ryan Harkin <ryan.harkin@linaro.org> wrote: >> >> The Linux kernel currently expects a single NVRAM file for BCM43430 >> named brcmfmac43430-sdio.txt. >> >> Allow the machine to specify an override to link its module specific >> NVRAM to the filename expected by the kernel. >> >> Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org> >> --- >> meta/recipes-kernel/linux-firmware/linux-firmware_git.bb | 12 ++++++++++++ >> 1 file changed, 12 insertions(+) >> >> diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >> index 8c54f28..b647abc 100644 >> --- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >> +++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb >> @@ -226,6 +226,18 @@ do_install() { >> ( cd ${D}${nonarch_base_libdir}/firmware ; ln -sf ti-connectivity/* . ) >> } >> >> +# Adding bcm43430-nvram-{module type} to MACHINEOVERRIDES will create a >> +# softlink for the module specific NVRAM file to the filename expected >> +# by the Linux kernel >> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-mur1dx = " ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >> +do_install_append_bcm43430-nvram-mur1dx() { >> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf brcmfmac43430-sdio.MUR1DX.txt brcmfmac43430-sdio.txt) >> +} >> +FILES_${PN}-bcm43430-nvram_append_bcm43430-nvram-ap6212 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt" >> +do_install_append_bcm43430-nvram-ap6212() { >> + ( cd ${D}${nonarch_base_libdir}/firmware/brcm/ ; ln -sf brcmfmac43430-sdio.AP6212.txt brcmfmac43430-sdio.txt) >> +} >> + >> >> PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ >> ${PN}-mt7601u-license ${PN}-mt7601u \ >> -- >> 2.7.4 >> [-- Attachment #2: Type: text/html, Size: 6402 bytes --] ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-23 8:15 ` Ryan Harkin @ 2018-08-24 2:53 ` Andre McCurdy 2018-08-24 9:04 ` Martin Jansa 0 siblings, 1 reply; 30+ messages in thread From: Andre McCurdy @ 2018-08-24 2:53 UTC (permalink / raw) To: Ryan Harkin Cc: Patches and discussions about the oe-core layer, daiane.angolini, Patch Tracking On Thu, Aug 23, 2018 at 1:15 AM, Ryan Harkin <ryan.harkin@linaro.org> wrote: > > So now the ln issue is resolved, I'm not convinced my MACHINEOVERRIDES is > the correct approach. Does anyone have any feedback on how I can improve > that? If you want to make a configurable symlink then perhaps the more usual approach would be to just use a variable in the linux-firmware recipe to weakly define a default target for the symlink. Machine config files could then either do nothing (ie use the default) or provide their own value. For example, in the linux-firmware recipe: BCM43430_NVRAM_SYMLINK ?= "brcmfmac43430-sdio.AP6212.txt" FILES_${PN}-bcm43430-nvram = " \ ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt \ ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt \ ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt \ " do_install() { ... ln -sf ${BCM43430_NVRAM_SYMLINK} ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt } And then in the machine config files of machines which need the MUR1DX firmware instead of the default, add: BCM43430_NVRAM_SYMLINK = "brcmfmac43430-sdio.MUR1DX.txt" However... note that currently the linux-firmware recipe is architecture independent (ie it won't be rebuilt if the target is changed). Adding a machine specific symlink is going to cause problems with that, so the above is still not a full solution. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-24 2:53 ` Andre McCurdy @ 2018-08-24 9:04 ` Martin Jansa 2018-08-24 10:43 ` Mike Looijmans 2018-08-24 10:50 ` Ryan Harkin 0 siblings, 2 replies; 30+ messages in thread From: Martin Jansa @ 2018-08-24 9:04 UTC (permalink / raw) To: Andre McCurdy Cc: Patches and discussions about the oe-core layer, daiane.angolini, patches [-- Attachment #1: Type: text/plain, Size: 2254 bytes --] One way to keep it allarch would be to package ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt in 2 separate packages and handle ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt symlink with update-alternatives most MACHINEs won't install either of these packages and those which need it will pull the right one (e.g. through MACHINE_EXTRA_RRECOMMENDS). In worst case someone will try to install both packages and based on u-a priority one of them will win (use higher priority for the more common version). Cheers, On Fri, Aug 24, 2018 at 4:53 AM Andre McCurdy <armccurdy@gmail.com> wrote: > On Thu, Aug 23, 2018 at 1:15 AM, Ryan Harkin <ryan.harkin@linaro.org> > wrote: > > > > So now the ln issue is resolved, I'm not convinced my MACHINEOVERRIDES is > > the correct approach. Does anyone have any feedback on how I can improve > > that? > > If you want to make a configurable symlink then perhaps the more usual > approach would be to just use a variable in the linux-firmware recipe > to weakly define a default target for the symlink. Machine config > files could then either do nothing (ie use the default) or provide > their own value. For example, in the linux-firmware recipe: > > BCM43430_NVRAM_SYMLINK ?= "brcmfmac43430-sdio.AP6212.txt" > > FILES_${PN}-bcm43430-nvram = " \ > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt \ > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt \ > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt \ > " > > do_install() { > ... > ln -sf ${BCM43430_NVRAM_SYMLINK} > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt > } > > And then in the machine config files of machines which need the MUR1DX > firmware instead of the default, add: > > BCM43430_NVRAM_SYMLINK = "brcmfmac43430-sdio.MUR1DX.txt" > > However... note that currently the linux-firmware recipe is > architecture independent (ie it won't be rebuilt if the target is > changed). Adding a machine specific symlink is going to cause problems > with that, so the above is still not a full solution. > [-- Attachment #2: Type: text/html, Size: 2808 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-24 9:04 ` Martin Jansa @ 2018-08-24 10:43 ` Mike Looijmans 2018-08-28 10:54 ` Ryan Harkin 2018-08-24 10:50 ` Ryan Harkin 1 sibling, 1 reply; 30+ messages in thread From: Mike Looijmans @ 2018-08-24 10:43 UTC (permalink / raw) To: Martin Jansa, Andre McCurdy Cc: daiane.angolini, patches, Patches and discussions about the oe-core layer I think this should be solved in the driver actually. It probably "knows" which variant is there (or could be taught using devicetree or so). On 24-08-18 11:04, Martin Jansa wrote: > One way to keep it allarch would be to package > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt > in 2 separate packages and handle > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt > symlink with update-alternatives > > most MACHINEs won't install either of these packages and those which need it > will pull the right one (e.g. through MACHINE_EXTRA_RRECOMMENDS). > > In worst case someone will try to install both packages and based on u-a > priority one of them will win (use higher priority for the more common version). > > Cheers, > > On Fri, Aug 24, 2018 at 4:53 AM Andre McCurdy <armccurdy@gmail.com > <mailto:armccurdy@gmail.com>> wrote: > > On Thu, Aug 23, 2018 at 1:15 AM, Ryan Harkin <ryan.harkin@linaro.org > <mailto:ryan.harkin@linaro.org>> wrote: > > > > So now the ln issue is resolved, I'm not convinced my MACHINEOVERRIDES is > > the correct approach. Does anyone have any feedback on how I can improve > > that? > > If you want to make a configurable symlink then perhaps the more usual > approach would be to just use a variable in the linux-firmware recipe > to weakly define a default target for the symlink. Machine config > files could then either do nothing (ie use the default) or provide > their own value. For example, in the linux-firmware recipe: > > BCM43430_NVRAM_SYMLINK ?= "brcmfmac43430-sdio.AP6212.txt" > > FILES_${PN}-bcm43430-nvram = " \ > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt \ > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt \ > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt \ > " > > do_install() { > ... > ln -sf ${BCM43430_NVRAM_SYMLINK} > ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt > } > > And then in the machine config files of machines which need the MUR1DX > firmware instead of the default, add: > > BCM43430_NVRAM_SYMLINK = "brcmfmac43430-sdio.MUR1DX.txt" > > However... note that currently the linux-firmware recipe is > architecture independent (ie it won't be rebuilt if the target is > changed). Adding a machine specific symlink is going to cause problems > with that, so the above is still not a full solution. > > > ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-24 10:43 ` Mike Looijmans @ 2018-08-28 10:54 ` Ryan Harkin 0 siblings, 0 replies; 30+ messages in thread From: Ryan Harkin @ 2018-08-28 10:54 UTC (permalink / raw) To: Mike Looijmans Cc: Patches and discussions about the oe-core layer, daiane.angolini, Patch Tracking [-- Attachment #1: Type: text/plain, Size: 3363 bytes --] On 24 August 2018 at 11:43, Mike Looijmans <mike.looijmans@topic.nl> wrote: > I think this should be solved in the driver actually. It probably "knows" > which variant is there (or could be taught using devicetree or so). I agree. That's a longer term change that will take quite some time to filter through, if at all. The device doesn't know which variant it is, but I'm *hoping* to add a device tree attribute to cover this, but there has been resistance this in the past, so it may not be an easy change to get accepted. > > On 24-08-18 11:04, Martin Jansa wrote: > >> One way to keep it allarch would be to package >> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt >> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt >> in 2 separate packages and handle >> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt >> symlink with update-alternatives >> >> most MACHINEs won't install either of these packages and those which need >> it will pull the right one (e.g. through MACHINE_EXTRA_RRECOMMENDS). >> >> In worst case someone will try to install both packages and based on u-a >> priority one of them will win (use higher priority for the more common >> version). >> >> Cheers, >> >> On Fri, Aug 24, 2018 at 4:53 AM Andre McCurdy <armccurdy@gmail.com >> <mailto:armccurdy@gmail.com>> wrote: >> >> On Thu, Aug 23, 2018 at 1:15 AM, Ryan Harkin <ryan.harkin@linaro.org >> <mailto:ryan.harkin@linaro.org>> wrote: >> > >> > So now the ln issue is resolved, I'm not convinced my >> MACHINEOVERRIDES is >> > the correct approach. Does anyone have any feedback on how I can >> improve >> > that? >> >> If you want to make a configurable symlink then perhaps the more usual >> approach would be to just use a variable in the linux-firmware recipe >> to weakly define a default target for the symlink. Machine config >> files could then either do nothing (ie use the default) or provide >> their own value. For example, in the linux-firmware recipe: >> >> BCM43430_NVRAM_SYMLINK ?= "brcmfmac43430-sdio.AP6212.txt" >> >> FILES_${PN}-bcm43430-nvram = " \ >> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt \ >> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt >> \ >> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt >> \ >> " >> >> do_install() { >> ... >> ln -sf ${BCM43430_NVRAM_SYMLINK} >> ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt >> } >> >> And then in the machine config files of machines which need the MUR1DX >> firmware instead of the default, add: >> >> BCM43430_NVRAM_SYMLINK = "brcmfmac43430-sdio.MUR1DX.txt" >> >> However... note that currently the linux-firmware recipe is >> architecture independent (ie it won't be rebuilt if the target is >> changed). Adding a machine specific symlink is going to cause problems >> with that, so the above is still not a full solution. >> >> >> >> > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core > [-- Attachment #2: Type: text/html, Size: 4858 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM 2018-08-24 9:04 ` Martin Jansa 2018-08-24 10:43 ` Mike Looijmans @ 2018-08-24 10:50 ` Ryan Harkin 1 sibling, 0 replies; 30+ messages in thread From: Ryan Harkin @ 2018-08-24 10:50 UTC (permalink / raw) To: Martin Jansa Cc: Patches and discussions about the oe-core layer, daiane.angolini, Patch Tracking [-- Attachment #1: Type: text/plain, Size: 2716 bytes --] Hi Martin, On 24 August 2018 at 10:04, Martin Jansa <martin.jansa@gmail.com> wrote: > One way to keep it allarch would be to package > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt > in 2 separate packages and handle > ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt > symlink with update-alternatives > > most MACHINEs won't install either of these packages and those which need > it will pull the right one (e.g. through MACHINE_EXTRA_RRECOMMENDS). > > In worst case someone will try to install both packages and based on u-a > priority one of them will win (use higher priority for the more common > version). > Thanks, this sounds like a good approach. I'll experiment with update-alternatives as I haven't used it before and see if I can come up with something sensible. > Cheers, > > On Fri, Aug 24, 2018 at 4:53 AM Andre McCurdy <armccurdy@gmail.com> wrote: > >> On Thu, Aug 23, 2018 at 1:15 AM, Ryan Harkin <ryan.harkin@linaro.org> >> wrote: >> > >> > So now the ln issue is resolved, I'm not convinced my MACHINEOVERRIDES >> is >> > the correct approach. Does anyone have any feedback on how I can improve >> > that? >> >> If you want to make a configurable symlink then perhaps the more usual >> approach would be to just use a variable in the linux-firmware recipe >> to weakly define a default target for the symlink. Machine config >> files could then either do nothing (ie use the default) or provide >> their own value. For example, in the linux-firmware recipe: >> >> BCM43430_NVRAM_SYMLINK ?= "brcmfmac43430-sdio.AP6212.txt" >> >> FILES_${PN}-bcm43430-nvram = " \ >> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt \ >> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.AP6212.txt \ >> ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.MUR1DX.txt \ >> " >> >> do_install() { >> ... >> ln -sf ${BCM43430_NVRAM_SYMLINK} >> ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt >> } >> >> And then in the machine config files of machines which need the MUR1DX >> firmware instead of the default, add: >> >> BCM43430_NVRAM_SYMLINK = "brcmfmac43430-sdio.MUR1DX.txt" >> >> However... note that currently the linux-firmware recipe is >> architecture independent (ie it won't be rebuilt if the target is >> changed). Adding a machine specific symlink is going to cause problems >> with that, so the above is still not a full solution. >> > Thanks Andre. It looks like it would work, but unless you see a problem, I'll look at Martin's idea first. Cheers, Ryan. [-- Attachment #2: Type: text/html, Size: 3989 bytes --] ^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~2018-08-28 10:54 UTC | newest] Thread overview: 30+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-08-22 16:30 [RFC 0/3] Adding BCM43430 NVRAM files Ryan Harkin 2018-08-22 16:30 ` [RFC 1/3] linux-firmware: upgrade to 1d17c18 revision Ryan Harkin 2018-08-22 16:30 ` [RFC 2/3] linux-firmware: add BCM43430 nvram files Ryan Harkin 2018-08-22 16:30 ` [RFC 3/3] linux-firmware: MACHINEOVERRIDES for BCM43430 NVRAM Ryan Harkin 2018-08-22 16:41 ` Martin Jansa 2018-08-22 16:47 ` Ryan Harkin 2018-08-22 16:56 ` Martin Jansa 2018-08-22 17:11 ` Ryan Harkin 2018-08-22 19:02 ` Martin Jansa 2018-08-22 20:10 ` Ryan Harkin 2018-08-22 20:36 ` Khem Raj 2018-08-22 21:52 ` Ryan Harkin 2018-08-22 20:42 ` Andre McCurdy 2018-08-22 21:56 ` Ryan Harkin 2018-08-22 22:55 ` Andre McCurdy 2018-08-23 6:12 ` Ryan Harkin 2018-08-23 6:39 ` Martin Hundebøll 2018-08-23 7:08 ` Ryan Harkin 2018-08-23 7:19 ` Andre McCurdy 2018-08-23 15:58 ` Khem Raj 2018-08-23 7:06 ` Andre McCurdy 2018-08-23 7:17 ` Ryan Harkin 2018-08-23 7:34 ` Andre McCurdy 2018-08-23 7:36 ` Ryan Harkin 2018-08-23 8:15 ` Ryan Harkin 2018-08-24 2:53 ` Andre McCurdy 2018-08-24 9:04 ` Martin Jansa 2018-08-24 10:43 ` Mike Looijmans 2018-08-28 10:54 ` Ryan Harkin 2018-08-24 10:50 ` Ryan Harkin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox