[yocto] [meta-raspberrypi][PATCH 1/2] linux-raspberrypi: Update kernel to 3.18.16

Petter Mabäcker petter at technux.se
Tue Aug 11 03:34:34 PDT 2015


 

2015-08-11 11:03 skrev Alex Lennon: 

> On Tuesday, August 11, 2015,
Petter Mabäcker <petter at technux.se> wrote:
> 
>> 2015-08-11 10:31 skrev
Alex J Lennon: 
>> 
>>> On 11/08/2015 08:58, Petter Mabäcker wrote:
>>>

>>>> 2015-08-10 13:08 skrev Alex J Lennon: 
>>>> 
>>>>> This requires
some changes to KERNEL_DEVICETREE as the dtb layout has changed to
support overlays. This change also makes us ready to support kernel 4.x
series Signed-off-by: Alex J Lennon <ajlennon at dynamicdevices.co.uk
<mailto:ajlennon at dynamicdevices.co.uk>> ---
conf/machine/include/rpi-base.inc | 22 ++++++++++------------
recipes-kernel/linux/linux-raspberrypi_3.18.bb [1] | 9 +++++++-- 2 files
changed, 17 insertions(+), 14 deletions(-) diff --git
a/conf/machine/include/rpi-base.inc b/conf/machine/include/rpi-base.inc
index 1dda207..8caa5ba 100644 --- a/conf/machine/include/rpi-base.inc
+++ b/conf/machine/include/rpi-base.inc @@ -23,18 +23,16 @@
KERNEL_DEVICETREE ?= " bcm2708-rpi-b-plus.dtb bcm2709-rpi-2-b.dtb -
ds1307-rtc-overlay.dtb - hifiberry-amp-overlay.dtb -
hifiberry-dac-overlay.dtb - hifiberry-dacplus-overlay.dtb -
hifiberry-digi-overlay.dtb - iqaudio-dac-overlay.dtb -
iqaudio-dacplus-overlay.dtb - lirc-rpi-overlay.dtb -
pcf8523-rtc-overlay.dtb - pps-gpio-overlay.dtb - w1-gpio-overlay.dtb -
w1-gpio-pullup-overlay.dtb + overlays/hifiberry-amp-overlay.dtb +
overlays/hifiberry-dac-overlay.dtb +
overlays/hifiberry-dacplus-overlay.dtb +
overlays/hifiberry-digi-overlay.dtb + overlays/iqaudio-dac-overlay.dtb +
overlays/iqaudio-dacplus-overlay.dtb + overlays/lirc-rpi-overlay.dtb +
overlays/pps-gpio-overlay.dtb + overlays/w1-gpio-overlay.dtb +
overlays/w1-gpio-pullup-overlay.dtb " KERNEL_IMAGETYPE ?= "Image" diff
--git a/recipes-kernel/linux/linux-raspberrypi_3.18.bb [1]
b/recipes-kernel/linux/linux-raspberrypi_3.18.bb [1] index
6d8b155..18c2020 100644 ---
a/recipes-kernel/linux/linux-raspberrypi_3.18.bb [1] +++
b/recipes-kernel/linux/linux-raspberrypi_3.18.bb [1] @@ -1,6 +1,11 @@
-LINUX_VERSION ?= "3.18.11" +LINUX_VERSION ?= "3.18.16" -SRCREV =
"d64fa8121fca9883d6fb14ca06d2abf66496195e" +SRCREV =
"1bb18c8f721ef674a447f3622273f2e2de7a205c" SRC_URI =
"git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.18.y
[2]" require linux-raspberrypi.inc + +# Create missing out of tree
'overlays' directory prior to install step +do_compile_append() { +
mkdir -p ${B}/arch/arm/boot/dts/overlays +} -- 1.9.1
>>>> Hi Alex, At
least I get problems during compile step with above change (I'm building
for rpi2). So are your sure '${B}/arch/arm/boot/dts/overlays' isn't
needed during compile? I tried with changing above from append to
prepand instead and then it worked fine for me (when building 3.18
kernel). (from log.do_compile, complete log can be found at:
http://www.technux.se/logs/log.do_compile.4398.fail [3] ) KSYM
.tmp_kallsyms1.o KSYM .tmp_kallsyms2.o LD vmlinux SORTEX vmlinux SYSMAP
System.map OBJCOPY arch/arm/boot/Image Kernel: arch/arm/boot/Image is
ready NOTE: make -j 4 bcm2708-rpi-b.dtb DTC
arch/arm/boot/dts/bcm2708-rpi-b.dtb NOTE: make -j 4
bcm2708-rpi-b-plus.dtb DTC arch/arm/boot/dts/bcm2708-rpi-b-plus.dtb
NOTE: make -j 4 bcm2709-rpi-2-b.dtb DTC
arch/arm/boot/dts/bcm2709-rpi-2-b.dtb NOTE: make -j 4
overlays/hifiberry-amp-overlay.dtb DTC
arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dtb cc1: fatal error:
opening output file
arch/arm/boot/dts/overlays/.hifiberry-amp-overlay.dtb.dts.tmp: No such
file or directory compilation terminated. make[3]: ***
[arch/arm/boot/dts/overlays/hifiberry-amp-overlay.dtb] Error 1 make[2]:
*** [overlays/hifiberry-amp-overlay.dtb] Error 2 make[1]: *** [sub-make]
Error 2 make: *** [__sub-make] Error 2 ERROR: oe_runmake failed ERROR:
Function failed: do_compile (log file is located at
/home/epetmab/programming/yocto/alex_test_sstate/tmp/work/raspberrypi2-poky-linux-gnueabi/linux-raspberrypi/3.18.16+git1bb18c8f721ef674a447f3622273f2e2de7a205c-r0/temp/log.do_compile.4398)
BR, Petter
>>> 
>>> Hi Petter,
>>> 
>>> Thanks for testing that out.
That is indeed exactly what I was seeing
>>> before I added the
directory creation.
>>> 
>>> I did do the following test for both 3.18.x
and 4.1.3 kernels (rpi2)
>>> 
>>> bitbake -f -c cleansstate
virtual/kernel
>>> bitbake -f virtual/kernel
>>> 
>>> I've just re-run
that again here and it works for me as-is. I thought
>>> cleansstate was
causing me to build from scratch so I'm unclear as to
>>> why I'm not
seeing the problem...
>>> 
>>> NB. I'd also add that for preference I'd
like to see the kernel build
>>> Makefile patched with whatever is in
4.1 to create that needed overlays
>>> directory but I've had a look and
can't spot it.
>>> 
>>> Cheers,
>>> 
>>> Alex
>> 
>> Hmm Ok, might be
some "pebcak" from my side, since I was using an old sstate, but
according to my history I did 'cleanall' before I got the problem. But
will re-try this on a completely new build without any old savings (it
will take some time to test however..). What struck me was that the
failure occurred in do_compile (from what I can tell the failure in my
logs occur before your _append had been able to do anything about it?).
I will analyse the run.do_compile if the failure occurs again and see if
that make any sense. I will let you know if the problem occurs again.
But since both you and Herve haven't seen any problem I guess it's
something I'm doing wrong..
> 
> Thanks. As I was trying to figure out
what was going on I did also drop into a devshell and run the
configure/compile/install steps manually and it was the install step
failing so I'd be a little surprised but let's see. 
> 
> Cheer, Alex

I
think I know what the problem is. Are you building using poky:fido?
Because I found a very interesting commit in this area from May that
isn't included in 'fido' from what I can see. d2e26ef kernel: Build DTBs
early ... kernel: Build DTBs early Pull out the compilation of the DTB
blobs right after the kernel's own do_compile function finishes. This
makes them available just in time for the kernel image construction
functions. ... This is also confirmed in the below run.do_compile log.
So I guess a my suggestion with a _prepend instead will solve the
problem. 

do_compile() {
 kernel_do_compile
 if test -n "
bcm2708-rpi-b.dtb bcm2708-rpi-b-plus.dtb bcm2709-rpi-2-b.dtb
overlays/hifiberry-amp-overlay.dtb overlays/hifiberry-dac-overlay.dtb
overlays/hifiberry-dacplus-overlay.d
tb
overlays/hifiberry-digi-overlay.dtb overlays/iqaudio-dac-overlay.dtb
overlays/iqaudio-dacplus-overlay.dtb overlays/lirc-rpi-overlay.dtb
overlays/pps-gpio-overlay.dtb overlays/w1-gpio-overla
y.dtb
overlays/w1-gpio-pullup-overlay.dtb "; then
 for DTB in
bcm2708-rpi-b.dtb bcm2708-rpi-b-plus.dtb bcm2709-rpi-2-b.dtb
overlays/hifiberry-amp-overlay.dtb overlays/hifiberry-dac-overlay.dtb
overlays/hifiberry-dacplus-ov
erlay.dtb
overlays/hifiberry-digi-overlay.dtb overlays/iqaudio-dac-overlay.dtb
overlays/iqaudio-dacplus-overlay.dtb overlays/lirc-rpi-overlay.dtb
overlays/pps-gpio-overlay.dtb overlays/w1-gpio
-overlay.dtb
overlays/w1-gpio-pullup-overlay.dtb ; do
 if echo ${DTB} | grep -q
'/dts/'; then
 bbwarn "${DTB} contains the full path to the the dts
file, but only the dtb name should be used."
 DTB=`basename ${DTB} | sed
's,.dts$,.dtb,g'`
 fi
 oe_runmake ${DTB}
 done
 fi
 mkdir -p
/tmp/work/raspberrypi2-poky-linux-gnueabi/linux-raspberrypi/3.18.16+git1bb18c8f721ef674a447f3622273f2e2de7a205c-r0/linux-raspberrypi2-standard-build/arch/arm/boot/dts/overlays

}

BR,
Petter 

Petter Mabäcker

Technux <petter at technux.se>
www.technux.se



Links:
------
[1] http://linux-raspberrypi_3.18.bb
[2]
http://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.18.y
[3]
http://www.technux.se/logs/log.do_compile.4398.fail
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20150811/d323285a/attachment.html>


More information about the yocto mailing list