diff --git a/classes/linux-raspberrypi-base.bbclass b/classes/linux-raspberrypi-base.bbclass deleted file mode 100644 index e925d4e91..000000000 --- a/classes/linux-raspberrypi-base.bbclass +++ /dev/null @@ -1,29 +0,0 @@ -inherit linux-kernel-base - -def get_dts(d, ver=None): - import re - - staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR") - dts = d.getVar("KERNEL_DEVICETREE") - - # d.getVar() might return 'None' as a normal string - # leading to 'is None' check isn't enough. - # TODO: Investigate if this is a bug in bitbake - if ver is None or ver == "None": - ''' if 'ver' isn't set try to grab the kernel version - from the kernel staging ''' - ver = get_kernelversion_file(staging_dir) - - return dts - - -def split_overlays(d, out, ver=None): - dts = get_dts(d, ver) - if out: - overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d) - overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays, d) - else: - overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d) + \ - " " + oe.utils.str_filter('\S+\.dtbo$', dts, d) - - return overlays diff --git a/classes/sdcard_image-rpi.bbclass b/classes/sdcard_image-rpi.bbclass index 1f75ef784..f20887f6e 100644 --- a/classes/sdcard_image-rpi.bbclass +++ b/classes/sdcard_image-rpi.bbclass @@ -1,5 +1,4 @@ inherit image_types -inherit linux-raspberrypi-base # # Create an image that can by written onto a SD card using dd. @@ -36,6 +35,7 @@ KERNEL_INITRAMFS ?= "" SDIMG_KERNELIMAGE_raspberrypi ?= "kernel.img" SDIMG_KERNELIMAGE_raspberrypi2 ?= "kernel7.img" SDIMG_KERNELIMAGE_raspberrypi3-64 ?= "kernel8.img" +SDIMG_KERNELIMAGE_raspberrypi-cm3-64 ?= "kernel8.img" # Boot partition volume id BOOTDD_VOLUME_ID ?= "${MACHINE}" @@ -48,7 +48,7 @@ IMAGE_ROOTFS_ALIGNMENT = "4096" # Use an uncompressed ext3 by default as rootfs SDIMG_ROOTFS_TYPE ?= "ext3" -SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}" +SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${SDIMG_ROOTFS_TYPE}" do_image_rpi_sdimg[depends] = " \ parted-native:do_populate_sysroot \ @@ -56,7 +56,7 @@ do_image_rpi_sdimg[depends] = " \ dosfstools-native:do_populate_sysroot \ virtual/kernel:do_deploy \ ${IMAGE_BOOTLOADER}:do_deploy \ - ${@bb.utils.contains('KERNEL_IMAGETYPE', 'uImage', 'u-boot:do_deploy', '',d)} \ + ${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \ " # SD card image name @@ -73,9 +73,20 @@ SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg" FATPAYLOAD ?= "" # SD card vfat partition image name -SDIMG_VFAT = "${IMGDEPLOYDIR}/${IMAGE_NAME}.vfat" +SDIMG_VFAT = "${IMAGE_NAME}.vfat" SDIMG_LINK_VFAT = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.vfat" +def split_overlays(d, out, ver=None): + dts = d.getVar("KERNEL_DEVICETREE") + if out: + overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d) + overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays, d) + else: + overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d) + \ + " " + oe.utils.str_filter('\S+\.dtbo$', dts, d) + + return overlays + IMAGE_CMD_rpi-sdimg () { # Align partitions @@ -86,7 +97,7 @@ IMAGE_CMD_rpi-sdimg () { echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} KiB and RootFS $ROOTFS_SIZE KiB" # Check if we are building with device tree support - DTS="${@get_dts(d)}" + DTS="${KERNEL_DEVICETREE}" # Initialize sdcard image file dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE} @@ -126,16 +137,13 @@ IMAGE_CMD_rpi-sdimg () { mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.${DTB_EXT} ::overlays/${DTB_BASE_NAME}.${DTB_EXT} done fi - case "${KERNEL_IMAGETYPE}" in - "uImage") + if [ "${RPI_USE_U_BOOT}" = "1" ]; then mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot.bin ::${SDIMG_KERNELIMAGE} - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::uImage + mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${KERNEL_IMAGETYPE} mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/boot.scr ::boot.scr - ;; - *) + else mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${SDIMG_KERNELIMAGE} - ;; - esac + fi if [ -n ${FATPAYLOAD} ] ; then echo "Copying payload into VFAT" @@ -150,23 +158,19 @@ IMAGE_CMD_rpi-sdimg () { mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}/image-version-info :: # Deploy vfat partition (for u-boot case only) - case "${KERNEL_IMAGETYPE}" in - "uImage") - cp ${WORKDIR}/boot.img ${SDIMG_VFAT} + if [ "${RPI_USE_U_BOOT}" = "1" ]; then + cp ${WORKDIR}/boot.img ${IMGDEPLOYDIR}/${SDIMG_VFAT} ln -sf ${SDIMG_VFAT} ${SDIMG_LINK_VFAT} - ;; - *) - ;; - esac + fi # Burn Partitions - dd if=${WORKDIR}/boot.img of=${SDIMG} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync + dd if=${WORKDIR}/boot.img of=${SDIMG} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) # If SDIMG_ROOTFS_TYPE is a .xz file use xzcat if echo "${SDIMG_ROOTFS_TYPE}" | egrep -q "*\.xz" then - xzcat ${SDIMG_ROOTFS} | dd of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync + xzcat ${SDIMG_ROOTFS} | dd of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) else - dd if=${SDIMG_ROOTFS} of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync + dd if=${SDIMG_ROOTFS} of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) fi # Optionally apply compression diff --git a/conf/layer.conf b/conf/layer.conf index bea5a6556..bbdce1458 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -12,3 +12,12 @@ BBFILE_PRIORITY_raspberrypi = "9" # Additional license directories. LICENSE_PATH += "${LAYERDIR}/files/custom-licenses" +# The dynamic-layers directory hosts the extensions and layer specific +# modifications. +# +# The .bbappend and .bb files are included if the respective layer +# collection is available. +BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bbappend' % layer \ + for layer in BBFILE_COLLECTIONS.split())}" +BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bb' % layer \ + for layer in BBFILE_COLLECTIONS.split())}" diff --git a/conf/machine/include/rpi-base.inc b/conf/machine/include/rpi-base.inc index 71bb071a0..688227c09 100644 --- a/conf/machine/include/rpi-base.inc +++ b/conf/machine/include/rpi-base.inc @@ -41,7 +41,17 @@ KERNEL_DEVICETREE ?= " \ overlays/pi3-miniuart-bt.dtbo \ overlays/vc4-kms-v3d.dtbo \ " -KERNEL_IMAGETYPE ?= "Image" + +# By default: +# +# * When u-boot is disabled use the "Image" format which can be directly loaded +# by the rpi firmware. +# +# * When u-boot is enabled use the "uImage" format and the "bootm" command +# within u-boot to load the kernel. +KERNEL_BOOTCMD ??= "bootm" +KERNEL_IMAGETYPE_UBOOT ??= "uImage" +KERNEL_IMAGETYPE ?= "${@bb.utils.contains('RPI_USE_U_BOOT', '1', '${KERNEL_IMAGETYPE_UBOOT}', 'Image', d)}" MACHINE_FEATURES += "apm usbhost keyboard vfat ext2 screen touchscreen alsa bluetooth wifi sdio" @@ -83,10 +93,14 @@ def make_dtb_boot_files(d): IMAGE_BOOT_FILES ?= "bcm2835-bootfiles/* \ ${@make_dtb_boot_files(d)} \ - ${@bb.utils.contains('KERNEL_IMAGETYPE', 'uImage', '${KERNEL_IMAGETYPE}', '${KERNEL_IMAGETYPE};${SDIMG_KERNELIMAGE}', d)} \ - ${@bb.utils.contains('KERNEL_IMAGETYPE', 'uImage', 'u-boot.bin;${SDIMG_KERNELIMAGE}', '', d)} \ - ${@bb.utils.contains('KERNEL_IMAGETYPE', 'uImage', 'boot.scr;boot.scr', '', d)} \ + ${@bb.utils.contains('RPI_USE_U_BOOT', '1', \ + '${KERNEL_IMAGETYPE} u-boot.bin;${SDIMG_KERNELIMAGE} boot.scr', \ + '${KERNEL_IMAGETYPE};${SDIMG_KERNELIMAGE}', d)} \ " +do_image_wic[depends] += " \ + bcm2835-bootfiles:do_deploy \ + ${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \ + " # The kernel image is installed into the FAT32 boot partition and does not need # to also be installed into the rootfs. diff --git a/conf/machine/raspberrypi-cm3-64.conf b/conf/machine/raspberrypi-cm3-64.conf new file mode 100644 index 000000000..7080f7691 --- /dev/null +++ b/conf/machine/raspberrypi-cm3-64.conf @@ -0,0 +1,41 @@ +#@TYPE: Machine +#@NAME: RaspberryPi 3 Development Board +#@DESCRIPTION: Machine configuration for the RaspberryPi 3 in 64 bits mode + +MACHINEOVERRIDES = "raspberrypi2:${MACHINE}" + +MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-bcm43430" + +require conf/machine/include/arm/arch-armv8.inc +include conf/machine/include/rpi-base.inc + +KERNEL_DEVICETREE = " \ + broadcom/bcm2837-rpi-cm3.dtb \ + \ + overlays/hifiberry-amp.dtbo \ + overlays/hifiberry-dac.dtbo \ + overlays/hifiberry-dacplus.dtbo \ + overlays/hifiberry-digi.dtbo \ + overlays/i2c-rtc.dtbo \ + overlays/iqaudio-dac.dtbo \ + overlays/iqaudio-dacplus.dtbo \ + overlays/lirc-rpi.dtbo \ + overlays/pitft22.dtbo \ + overlays/pitft28-resistive.dtbo \ + overlays/pitft35-resistive.dtbo \ + overlays/pps-gpio.dtbo \ + overlays/rpi-ft5406.dtbo \ + overlays/w1-gpio.dtbo \ + overlays/w1-gpio-pullup.dtbo \ + overlays/pi3-disable-bt.dtbo \ + overlays/pi3-miniuart-bt.dtbo \ + overlays/vc4-kms-v3d.dtbo \ + overlays/vc4-fkms-v3d.dtbo \ + " + +SERIAL_CONSOLE ?= "115200 ttyS0" +#VC4_CMA_SIZE ?= "cma-256" + +UBOOT_MACHINE = "rpi_3_config" +#MACHINE_FEATURES_append = " vc4graphics" +KERNEL_DEFCONFIG ?= "bcmrpi3_defconfig" diff --git a/conf/machine/raspberrypi3-64.conf b/conf/machine/raspberrypi3-64.conf index e3d11f20a..ebc9f382c 100644 --- a/conf/machine/raspberrypi3-64.conf +++ b/conf/machine/raspberrypi3-64.conf @@ -31,6 +31,7 @@ KERNEL_DEVICETREE = " \ overlays/pi3-disable-bt.dtbo \ overlays/pi3-miniuart-bt.dtbo \ overlays/vc4-kms-v3d.dtbo \ + overlays/vc4-fkms-v3d.dtbo \ " SERIAL_CONSOLE ?= "115200 ttyS0" @@ -38,3 +39,8 @@ VC4_CMA_SIZE ?= "cma-256" UBOOT_MACHINE = "rpi_3_config" MACHINE_FEATURES_append = " vc4graphics" + +# When u-boot is enabled we need to use the "Image" format and the "booti" +# command to load the kernel +KERNEL_IMAGETYPE_UBOOT ?= "Image" +KERNEL_BOOTCMD ?= "booti" diff --git a/docs/extra-build-config.md b/docs/extra-build-config.md index 365c49068..380d96997 100644 --- a/docs/extra-build-config.md +++ b/docs/extra-build-config.md @@ -95,14 +95,22 @@ this variable in local.conf: ENABLE_KGDB = "1" +## Disable rpi boot logo + +To disable rpi boot logo, set this variable in local.conf: + + DISABLE_RPI_BOOT_LOGO = "1" + ## Boot to U-Boot To have u-boot load kernel image, set in your local.conf: - KERNEL_IMAGETYPE = "uImage" + RPI_USE_U_BOOT = "1" -This will make kernel.img be u-boot image which will load uImage. By default, -kernel.img is the actual kernel image (ex. Image). +This will select the appropriate image format for use with u-boot automatically. +For further customisation the KERNEL_IMAGETYPE and KERNEL_BOOTCMD variables can +be overridden to select the exact kernel image type (eg. zImage) and u-boot +command (eg. bootz) to be used. ## Image with Initramfs diff --git a/recipes-bsp/bootfiles/bcm2835-bootfiles.bb b/recipes-bsp/bootfiles/bcm2835-bootfiles.bb index b279e1551..a11503726 100644 --- a/recipes-bsp/bootfiles/bcm2835-bootfiles.bb +++ b/recipes-bsp/bootfiles/bcm2835-bootfiles.bb @@ -9,7 +9,7 @@ include recipes-bsp/common/firmware.inc RDEPENDS_${PN} = "rpi-config" -COMPATIBLE_MACHINE = "raspberrypi" +COMPATIBLE_MACHINE = "^rpi$" S = "${RPIFW_S}/boot" diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb b/recipes-bsp/bootfiles/rpi-config_git.bb index b3c50847a..ca4160b57 100644 --- a/recipes-bsp/bootfiles/rpi-config_git.bb +++ b/recipes-bsp/bootfiles/rpi-config_git.bb @@ -5,7 +5,7 @@ DESCRIPTION = "Commented config.txt file for the Raspberry Pi. \ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" -COMPATIBLE_MACHINE = "raspberrypi" +COMPATIBLE_MACHINE = "^rpi$" SRCREV = "648ffc470824c43eb0d16c485f4c24816b32cd6f" SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \ @@ -21,7 +21,8 @@ PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}" PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}" VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}" - +VC4DTBO_raspberrypi3-64 = "vc4-fkms-v3d" +VC4DTBO ?= "vc4-kms-v3d" inherit deploy do_deploy() { @@ -114,7 +115,7 @@ do_deploy() { # VC4 Graphics support if [ "${VC4GRAPHICS}" = "1" ]; then echo "# Enable VC4 Graphics" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt - echo "dtoverlay=vc4-kms-v3d,${VC4_CMA_SIZE}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + echo "dtoverlay=${VC4DTBO},${VC4_CMA_SIZE}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi # Waveshare "C" 1024x600 7" Rev2.1 IPS capacitive touch (http://www.waveshare.com/7inch-HDMI-LCD-C.htm) @@ -129,6 +130,12 @@ do_deploy() { } do_deploy_append_raspberrypi3-64() { + echo "# have a properly sized image" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + echo "disable_overscan=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + + echo "# Enable audio (loads snd_bcm2835)" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + echo "dtparam=audio=on" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + # Device Tree support echo "# Load correct Device Tree for Aarch64" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "device_tree=bcm2710-rpi-3-b.dtb" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt diff --git a/recipes-bsp/common/firmware.inc b/recipes-bsp/common/firmware.inc index 1c3a911dd..ac2bd82b5 100644 --- a/recipes-bsp/common/firmware.inc +++ b/recipes-bsp/common/firmware.inc @@ -1,10 +1,10 @@ -RPIFW_DATE ?= "20170405" +RPIFW_DATE ?= "20170811" RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/1.${RPIFW_DATE}.tar.gz" RPIFW_S ?= "${WORKDIR}/firmware-1.${RPIFW_DATE}" SRC_URI = "${RPIFW_SRC_URI}" -SRC_URI[md5sum] = "ea82d14a7cd8cfae9b78e00d4e56bc71" -SRC_URI[sha256sum] = "2f4e5bddbac1372590db203002c35cbba3fb9d6172a93c314ee27bf05ae13bff" +SRC_URI[md5sum] = "afd09f9a6df14e32b6d832fd9f51d087" +SRC_URI[sha256sum] = "a25f6281d64732892a2e838cc2346f1a88505b5c77a57a6540755362ea64043a" PV = "${RPIFW_DATE}" diff --git a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd deleted file mode 100644 index 2e8452e89..000000000 --- a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd +++ /dev/null @@ -1,3 +0,0 @@ -fdt addr ${fdt_addr} && fdt get value bootargs /chosen bootargs -fatload mmc 0:1 ${kernel_addr_r} uImage -bootm ${kernel_addr_r} - ${fdt_addr} diff --git a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd.in b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd.in new file mode 100644 index 000000000..ad54cd067 --- /dev/null +++ b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd.in @@ -0,0 +1,3 @@ +fdt addr ${fdt_addr} && fdt get value bootargs /chosen bootargs +fatload mmc 0:1 ${kernel_addr_r} @@KERNEL_IMAGETYPE@@ +@@KERNEL_BOOTCMD@@ ${kernel_addr_r} - ${fdt_addr} diff --git a/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb b/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb index 4936dcfd3..345730088 100644 --- a/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb +++ b/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb @@ -1,13 +1,16 @@ SUMMARY = "U-boot boot scripts for Raspberry Pi" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" -COMPATIBLE_MACHINE = "rpi" +COMPATIBLE_MACHINE = "^rpi$" DEPENDS = "u-boot-mkimage-native" -SRC_URI = "file://boot.cmd" +SRC_URI = "file://boot.cmd.in" do_compile() { + sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \ + -e 's/@@KERNEL_BOOTCMD@@/${KERNEL_BOOTCMD}/' \ + "${WORKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd" mkimage -A arm -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr } diff --git a/recipes-connectivity/bluez5/bluez5_%.bbappend b/recipes-connectivity/bluez5/bluez5_%.bbappend index 956d77664..03efd5c00 100644 --- a/recipes-connectivity/bluez5/bluez5_%.bbappend +++ b/recipes-connectivity/bluez5/bluez5_%.bbappend @@ -1,6 +1,6 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -SRC_URI_append_raspberrypi3 = " \ +BCM_BT_SOURCES = " \ file://BCM43430A1.hcd \ file://0001-bcm43xx-Add-bcm43xx-3wire-variant.patch \ file://0002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch \ @@ -9,7 +9,7 @@ SRC_URI_append_raspberrypi3 = " \ file://brcm43438.service \ " -do_install_append_raspberrypi3() { +enable_bcm_bluetooth() { install -d ${D}/lib/firmware/brcm/ install -m 0644 ${WORKDIR}/BCM43430A1.hcd ${D}/lib/firmware/brcm/BCM43430A1.hcd @@ -19,8 +19,30 @@ do_install_append_raspberrypi3() { fi } -FILES_${PN}_append_raspberrypi3 = " \ +BCM_BT_FIRMWARE = " \ /lib/firmware/brcm/BCM43430A1.hcd \ " -SYSTEMD_SERVICE_${PN}_append_raspberrypi3 = " brcm43438.service" +BCM_BT_SERVICE = " brcm43438.service" + +# for raspberrypi3 +SRC_URI_append_raspberrypi3 = " ${BCM_BT_SOURCES}" + +do_install_append_raspberrypi3() { + enable_bcm_bluetooth +} + +FILES_${PN}_append_raspberrypi3 = " ${BCM_BT_FIRMWARE}" + +SYSTEMD_SERVICE_${PN}_append_raspberrypi3 = " ${BCM_BT_SERVICE}" + +# for raspberrypi0-wifi +SRC_URI_append_raspberrypi0-wifi = " ${BCM_BT_SOURCES}" + +do_install_append_raspberrypi0-wifi() { + enable_bcm_bluetooth +} + +FILES_${PN}_append_raspberrypi0-wifi = " ${BCM_BT_FIRMWARE}" + +SYSTEMD_SERVICE_${PN}_append_raspberrypi0-wifi = " ${BCM_BT_SERVICE}" diff --git a/recipes-core/images/rpi-test-image.bb b/recipes-core/images/rpi-test-image.bb index b5602a605..c8dc4368e 100644 --- a/recipes-core/images/rpi-test-image.bb +++ b/recipes-core/images/rpi-test-image.bb @@ -1,4 +1,6 @@ # Base this image on rpi-basic-image include rpi-basic-image.bb +COMPATIBLE_MACHINE = "^rpi$" + IMAGE_INSTALL_append = " packagegroup-rpi-test" diff --git a/recipes-core/packagegroups/packagegroup-rpi-test.bb b/recipes-core/packagegroups/packagegroup-rpi-test.bb index 29e995e0c..029c18cb7 100644 --- a/recipes-core/packagegroups/packagegroup-rpi-test.bb +++ b/recipes-core/packagegroups/packagegroup-rpi-test.bb @@ -4,8 +4,13 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384 inherit packagegroup +COMPATIBLE_MACHINE = "^rpi$" + +OMXPLAYER_rpi = "omxplayer" +OMXPLAYER_rpi_aarch64 = "" + RDEPENDS_${PN} = "\ - omxplayer \ + ${OMXPLAYER} \ bcm2835-tests \ wiringpi \ rpio \ diff --git a/recipes-devtools/bcm2835/bcm2835_1.52.bb b/recipes-devtools/bcm2835/bcm2835_1.52.bb index 8e41c61f1..eef6afd1c 100644 --- a/recipes-devtools/bcm2835/bcm2835_1.52.bb +++ b/recipes-devtools/bcm2835/bcm2835_1.52.bb @@ -8,7 +8,7 @@ AUTHOR = "Mike McCauley (mikem@open.com.au)" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -COMPATIBLE_MACHINE = "raspberrypi" +COMPATIBLE_MACHINE = "^rpi$" SRC_URI = "http://www.airspayce.com/mikem/bcm2835/bcm2835-${PV}.tar.gz" diff --git a/recipes-devtools/pi-blaster/pi-blaster.inc b/recipes-devtools/pi-blaster/pi-blaster.inc index a548957dc..3cb79cccf 100644 --- a/recipes-devtools/pi-blaster/pi-blaster.inc +++ b/recipes-devtools/pi-blaster/pi-blaster.inc @@ -2,7 +2,7 @@ DESCRIPTION = "This project enables PWM on the GPIO pins you request of a Raspbe HOMEPAGE = "https://github.com/sarfata/pi-blaster/" SECTION = "devel/libs" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://README.md;beginline=212;endline=239;md5=a012868ef5f83b9f257af253d7cb07a3" +LIC_FILES_CHKSUM = "file://README.md;beginline=225;endline=252;md5=a012868ef5f83b9f257af253d7cb07a3" SRC_URI = "git://github.com/sarfata/pi-blaster \ file://remove-initscript-lsb-dependency.patch \ @@ -16,6 +16,6 @@ INITSCRIPT_PACKAGES = "${PN}" INITSCRIPT_NAME_${PN} = "${PN}.boot.sh" INITSCRIPT_PARAMS_${PN} = "defaults 15 85" -COMPATIBLE_MACHINE = "raspberrypi" +COMPATIBLE_MACHINE = "^rpi$" PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/recipes-devtools/pi-blaster/pi-blaster_git.bb b/recipes-devtools/pi-blaster/pi-blaster_git.bb index ac812abcd..730f9d3e9 100644 --- a/recipes-devtools/pi-blaster/pi-blaster_git.bb +++ b/recipes-devtools/pi-blaster/pi-blaster_git.bb @@ -1,3 +1,3 @@ require pi-blaster.inc -SRCREV = "9f45eb23a8a3b2d1c08d08a6d68f206fe91ecf4c" +SRCREV = "1035ad7dffb270c40eec1bb3a654171a755fba98" diff --git a/recipes-devtools/python/python-sense-hat_2.1.0.bb b/recipes-devtools/python/python-sense-hat_2.2.0.bb similarity index 57% rename from recipes-devtools/python/python-sense-hat_2.1.0.bb rename to recipes-devtools/python/python-sense-hat_2.2.0.bb index e990a2872..f7c4e349d 100644 --- a/recipes-devtools/python/python-sense-hat_2.1.0.bb +++ b/recipes-devtools/python/python-sense-hat_2.2.0.bb @@ -4,16 +4,12 @@ SECTION = "devel/python" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=d80fe312e1ff5fbd97369b093bf21cda" -SRCNAME = "sense-hat" +inherit setuptools pypi -SRC_URI = "https://pypi.python.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz" +PYPI_PACKAGE = "sense-hat" -SRC_URI[md5sum] = "71217f15ea963040f06e2f50722186ca" -SRC_URI[sha256sum] = "c6c76707c0ea514e4b0f1f96f1b5b79755875891aae037df7434b6aad7b9dbca" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools +SRC_URI[md5sum] = "69929250cb72349a8a82edf2584b1d83" +SRC_URI[sha256sum] = "f000998d042d96ed722d459312e1bebd0107f9f3015cd34b3e4fabcab9c800af" DEPENDS += " \ jpeg \ diff --git a/recipes-devtools/python/rpi-gpio_0.6.2.bb b/recipes-devtools/python/rpi-gpio_0.6.2.bb deleted file mode 100644 index a08ea98ac..000000000 --- a/recipes-devtools/python/rpi-gpio_0.6.2.bb +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "A module to control Raspberry Pi GPIO channels" -HOMEPAGE = "http://code.google.com/p/raspberry-gpio-python/" -SECTION = "devel/python" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=9b95630a648966b142f1a0dcea001cb7" - -SRCNAME = "RPi.GPIO" - -SRC_URI = "\ - http://pypi.python.org/packages/source/R/RPi.GPIO/${SRCNAME}-${PV}.tar.gz \ - file://0001-Remove-nested-functions.patch \ - " -SRC_URI[md5sum] = "9db86fd5f3bae872de9dbb068ee0b096" -SRC_URI[sha256sum] = "82acff0ef6bbe3cdf6f4dbdd73d96add5294bb94baf7f51c1d901861af3c2392" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit distutils - -COMPATIBLE_MACHINE = "raspberrypi" - diff --git a/recipes-devtools/python/rpi-gpio_0.6.3.bb b/recipes-devtools/python/rpi-gpio_0.6.3.bb new file mode 100644 index 000000000..d0ff00af7 --- /dev/null +++ b/recipes-devtools/python/rpi-gpio_0.6.3.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "A module to control Raspberry Pi GPIO channels" +HOMEPAGE = "http://code.google.com/p/raspberry-gpio-python/" +SECTION = "devel/python" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=9b95630a648966b142f1a0dcea001cb7" + +PYPI_PACKAGE = "RPi.GPIO" +inherit pypi distutils + +SRC_URI += "file://0001-Remove-nested-functions.patch" +SRC_URI[md5sum] = "e4abe1cfb5eacebe53078032256eb837" +SRC_URI[sha256sum] = "a5fc0eb5e401963b6c0a03650da6b42c4005f02d962b81241d96c98d0a578516" + +COMPATIBLE_MACHINE = "^rpi$" diff --git a/recipes-devtools/python/rpio_0.10.0.bb b/recipes-devtools/python/rpio_0.10.0.bb index 69ecb6f9b..998fdb39d 100644 --- a/recipes-devtools/python/rpio_0.10.0.bb +++ b/recipes-devtools/python/rpio_0.10.0.bb @@ -14,7 +14,12 @@ S = "${WORKDIR}/${SRCNAME}-${PV}" inherit setuptools -COMPATIBLE_MACHINE = "raspberrypi" +COMPATIBLE_MACHINE = "^rpi$" + +RDEPENDS_${PN} = "\ + python-logging \ + python-threading \ +" SRC_URI[md5sum] = "cefc45422833dcafcd59b78dffc540f4" SRC_URI[sha256sum] = "b89f75dec9de354681209ebfaedfe22b7c178aacd91a604a7bd6d92024e4cf7e" diff --git a/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch b/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch index a081b8d79..01e054634 100644 --- a/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch +++ b/recipes-devtools/wiringPi/files/0001-Add-initial-cross-compile-support.patch @@ -1,23 +1,18 @@ -From 4ed727aa9e528f130fdc8798df771037a1f22fc9 Mon Sep 17 00:00:00 2001 -From: Andrea Galbusera -Date: Mon, 3 Apr 2017 14:48:14 +0200 -Subject: [PATCH] =?UTF-8?q?Add=20initial=20cross=20compile=20support=20(re?= - =?UTF-8?q?base=20from=20Petter=20Mab=C3=A4cker=20=20ve?= - =?UTF-8?q?rsion)?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit +From ca25788e2563bad0d554deb9f4300d1e7d062825 Mon Sep 17 00:00:00 2001 +From: Aurelian Zanoschi +Date: Mon, 31 Jul 2017 20:25:15 +0300 +Subject: [PATCH] Add initial cross compile support --- devLib/Makefile | 54 +++++++++++++++++++++++++-------------------- - examples/Gertboard/Makefile | 20 +++++++++++------ - examples/Makefile | 20 +++++++++++------ - examples/PiFace/Makefile | 20 +++++++++++------ + examples/Gertboard/Makefile | 22 +++++++++++------- + examples/Makefile | 22 +++++++++++------- + examples/PiFace/Makefile | 22 +++++++++++------- examples/PiGlow/Makefile | 4 ++-- examples/q2w/Makefile | 4 ++-- gpio/Makefile | 29 ++++++++++++------------ - wiringPi/Makefile | 50 +++++++++++++++++++++++------------------ - 8 files changed, 116 insertions(+), 85 deletions(-) + wiringPi/Makefile | 52 ++++++++++++++++++++++++------------------- + 8 files changed, 120 insertions(+), 89 deletions(-) diff --git a/devLib/Makefile b/devLib/Makefile index cf665d6..040c03a 100644 @@ -132,11 +127,12 @@ index 1939ad6..98d1415 100644 -CC = gcc -INCLUDE = -I/usr/local/include -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -+DESTDIR?=/usr -+PREFIX?=/local - +- -LDFLAGS = -L/usr/local/lib -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm ++DESTDIR?=/usr ++PREFIX?=/local ++ +INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include +LIB_DIR?=$(DESTDIR)$(PREFIX)/lib + @@ -164,11 +160,12 @@ index 6d87885..8623816 100644 -CC = gcc -INCLUDE = -I/usr/local/include -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -+DESTDIR?=/usr -+PREFIX?=/local - +- -LDFLAGS = -L/usr/local/lib -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt ++DESTDIR?=/usr ++PREFIX?=/local ++ +INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include +LIB_DIR?=$(DESTDIR)$(PREFIX)/lib + @@ -196,11 +193,12 @@ index f937c14..ad030b3 100644 -CC = gcc -INCLUDE = -I/usr/local/include -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -+DESTDIR?=/usr -+PREFIX?=/local - +- -LDFLAGS = -L/usr/local/lib -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm ++DESTDIR?=/usr ++PREFIX?=/local ++ +INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include +LIB_DIR?=$(DESTDIR)$(PREFIX)/lib + @@ -305,10 +303,10 @@ index f41a005..22753ee 100644 .PHONY: depend diff --git a/wiringPi/Makefile b/wiringPi/Makefile -index e1868b9..e39f75a 100644 +index e1868b9..750d290 100644 --- a/wiringPi/Makefile +++ b/wiringPi/Makefile -@@ -25,19 +25,23 @@ VERSION=$(shell cat ../VERSION) +@@ -25,21 +25,25 @@ VERSION=$(shell cat ../VERSION) DESTDIR?=/usr PREFIX?=/local @@ -336,19 +334,22 @@ index e1868b9..e39f75a 100644 +CC ?= gcc +INCLUDE ?= -I. DEFS = -D_GNU_SOURCE - CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Winline $(INCLUDE) -pipe -fPIC +-CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Winline $(INCLUDE) -pipe -fPIC ++CFLAGS = $(DEBUG) $(DEFS) $(INCLUDE) -Wformat=2 -Wall -Wextra -Winline -pipe -fPIC + + LIBS = -lm -lpthread -lrt -lcrypt @@ -78,17 +82,17 @@ $(STATIC): $(OBJ) $(DYNAMIC): $(OBJ) $Q echo "[Link (Dynamic)]" - $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) $(LIBS) $(OBJ) -+ $Q $(CC) $(LDFLAGS) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so $(LIBS) $(OBJ) ++ $Q $(CC) $(LDFLAGS) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so $(OBJ) $(LIBS) .c.o: $Q echo [Compile] $< - $Q $(CC) -c $(CFLAGS) $< -o $@ -+ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@ ++ $Q $(CC) $(CFLAGS) $(LIBS) -c $< -o $@ .PHONY: clean diff --git a/recipes-devtools/wiringPi/wiringpi_git.bb b/recipes-devtools/wiringPi/wiringpi_git.bb index 7953a55b2..f1b01dbe5 100644 --- a/recipes-devtools/wiringPi/wiringpi_git.bb +++ b/recipes-devtools/wiringPi/wiringpi_git.bb @@ -13,7 +13,7 @@ SRC_URI = "git://git.drogon.net/wiringPi \ file://0001-Add-initial-cross-compile-support.patch \ " -COMPATIBLE_MACHINE = "raspberrypi" +COMPATIBLE_MACHINE = "^rpi$" CFLAGS_prepend = "-I${S}/wiringPi -I${S}/devLib " diff --git a/recipes-graphics/userland/userland_git.bb b/recipes-graphics/userland/userland_git.bb index 893fcba23..1fc0717c2 100644 --- a/recipes-graphics/userland/userland_git.bb +++ b/recipes-graphics/userland/userland_git.bb @@ -12,11 +12,11 @@ PROVIDES = "virtual/libgles2 \ RPROVIDES_${PN} += "libgles2 egl" -COMPATIBLE_MACHINE = "raspberrypi" +COMPATIBLE_MACHINE = "^rpi$" SRCBRANCH = "master" SRCFORK = "raspberrypi" -SRCREV = "50d3cb5f4ee95a9513bb9f94d661947e9e6ac085" +SRCREV = "3caf0cd4a61f46b71eff49422c36e1cd2727ab45" SRC_URI = "\ git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \ diff --git a/recipes-graphics/vc-graphics/vc-graphics.inc b/recipes-graphics/vc-graphics/vc-graphics.inc index a1c8d2943..668c5cee1 100644 --- a/recipes-graphics/vc-graphics/vc-graphics.inc +++ b/recipes-graphics/vc-graphics/vc-graphics.inc @@ -4,7 +4,7 @@ LICENSE = "Proprietary" LIC_FILES_CHKSUM = "file://LICENCE;md5=86e53f5f5909ee66900418028de11780" PROVIDES = "virtual/libgles2 virtual/egl" -COMPATIBLE_MACHINE = "raspberrypi" +COMPATIBLE_MACHINE = "^rpi$" include recipes-bsp/common/firmware.inc diff --git a/recipes-graphics/wayland/weston_%.bbappend b/recipes-graphics/wayland/weston_%.bbappend index f2cb7aa1f..1dac41cc6 100644 --- a/recipes-graphics/wayland/weston_%.bbappend +++ b/recipes-graphics/wayland/weston_%.bbappend @@ -1,12 +1,12 @@ -EXTRA_OECONF_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' --enable-rpi-compositor WESTON_NATIVE_BACKEND=rpi-backend.so', d)}" - PACKAGECONFIG_remove_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'fbdev', '', d)}" -EXTRA_OECONF += "--disable-xwayland-test \ - --disable-simple-egl-clients \ +EXTRA_OECONF_append_rpi = " \ + --disable-xwayland-test \ + --disable-simple-egl-clients \ + ${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' \ + --enable-rpi-compositor \ + --disable-resize-optimization \ + --disable-setuid-install \ + WESTON_NATIVE_BACKEND=rpi-backend.so \ + ', d)} \ " - -EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '--enable-rpi-compositor', d)}" -EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '--disable-resize-optimization', d)}" -EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', '--disable-setuid-install', d)}" -EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'WESTON_NATIVE_BACKEND=rpi-backend.so', d)}" diff --git a/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-noglamor.conf b/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-noglamor.conf new file mode 100644 index 000000000..1a562ea03 --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-noglamor.conf @@ -0,0 +1,6 @@ +# +Section "Device" + Identifier "modeset" + Driver "modesetting" + Option "AccelMethod" "None" +EndSection diff --git a/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend b/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend index b361eef13..7902f20ed 100644 --- a/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend +++ b/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend @@ -4,7 +4,9 @@ SRC_URI_append_rpi = " \ file://xorg.conf.d/98-pitft.conf \ file://xorg.conf.d/99-calibration.conf \ " - +SRC_URI_append_libc-musl_raspberrypi3-64 = " \ + file://xorg.conf.d/10-noglamor.conf \ +" do_install_append_rpi () { PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}" if [ "${PITFT}" = "1" ]; then @@ -13,5 +15,8 @@ do_install_append_rpi () { install -m 0644 ${WORKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/ fi } - +do_install_append_libc-musl_raspberrypi3-64 () { + install -d ${D}/${sysconfdir}/X11/xorg.conf.d/ + install -m 0644 ${WORKDIR}/xorg.conf.d/10-noglamor.conf ${D}/${sysconfdir}/X11/xorg.conf.d/ +} FILES_${PN}_rpi += "${sysconfdir}/X11/xorg.conf ${sysconfdir}/X11/xorg.conf.d/*" diff --git a/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.bin b/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.bin new file mode 100644 index 000000000..6b955da80 Binary files /dev/null and b/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.bin differ diff --git a/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.txt b/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.txt index ea4f648a1..3d917a7fd 100644 --- a/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.txt +++ b/recipes-kernel/linux-firmware/files/brcmfmac43430-sdio.txt @@ -1,19 +1,20 @@ -# NVRAM file for BCM943430WLPTH +# NVRAM file for BCM943430WLSELG # 2.4 GHz, 20 MHz BW mode # The following parameter values are just placeholders, need to be updated. manfid=0x2d0 -prodid=0x0727 +prodid=0x0726 vendid=0x14e4 devid=0x43e2 -boardtype=0x0727 -boardrev=0x1101 +boardtype=0x0726 +boardrev=0x1202 boardnum=22 macaddr=00:90:4c:c5:12:38 sromrev=11 boardflags=0x00404201 boardflags3=0x08000000 xtalfreq=37400 +#xtalfreq=19200 nocrc=1 ag0=255 aa2g=1 @@ -21,6 +22,7 @@ ccode=ALL pa0itssit=0x20 extpagain2g=0 + #PA parameters for 2.4GHz, measured at CHIP OUTPUT pa2ga0=-168,7161,-820 AvVmid_c0=0x0,0xc8 @@ -40,15 +42,9 @@ ofdmdigfilttypebe=18 # PAPD mode: papdmode=1 papdvalidtest=1 -pacalidx2g=42 -papdepsoffset=-22 -papdendidx=58 - -# LTECX flags -ltecxmux=0 -ltecxpadnum=0x0102 -ltecxfnsel=0x44 -ltecxgcigpio=0x01 +pacalidx2g=32 +papdepsoffset=-36 +papdendidx=61 il0macaddr=00:90:4c:c5:12:38 wl0id=0x431b @@ -61,6 +57,3 @@ muxenab=0x1 #VCO freq 326.4MHz spurconfig=0x3 - -edonthd20l=-75 -edoffthd20ul=-80 diff --git a/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend index 252da22a4..565b73526 100644 --- a/recipes-kernel/linux-firmware/linux-firmware_%.bbappend +++ b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend @@ -1,12 +1,26 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/files:" -SRC_URI += "file://brcmfmac43430-sdio.txt" +SRC_URI += " \ + file://brcmfmac43430-sdio.bin \ + file://brcmfmac43430-sdio.txt \ + " do_install_append() { - install -D -m 0644 ${WORKDIR}/brcmfmac43430-sdio.txt ${D}/lib/firmware/brcm/brcmfmac43430-sdio.txt + # Overwrite v7.45.41.26 by the one we currently provide in this layer + # (v7.45.41.46) + local _firmware="brcmfmac43430-sdio.bin" + local _oldmd5=9258986488eca9fe5343b0d6fe040f8e + if [ "$(md5sum ${D}/lib/firmware/brcm/$_firmware | awk '{print $1}')" != "$_oldmd5" ]; then + _firmware="" + bbwarn "linux-firmware stopped providing brcmfmac43430 v7.45.41.26." + else + _firmware="${WORKDIR}/$_firmware" + fi + + mkdir -p ${D}/lib/firmware/brcm + install -m 0644 $_firmware ${WORKDIR}/brcmfmac43430-sdio.txt ${D}/lib/firmware/brcm } FILES_${PN}-bcm43430 += " \ - /lib/firmware/brcm/brcmfmac43430-sdio.txt \ + /lib/firmware/brcm/brcmfmac43430-sdio.txt \ " - diff --git a/recipes-kernel/linux/linux-raspberrypi-dev.bb b/recipes-kernel/linux/linux-raspberrypi-dev.bb index 05a7ea24d..b94765964 100644 --- a/recipes-kernel/linux/linux-raspberrypi-dev.bb +++ b/recipes-kernel/linux/linux-raspberrypi-dev.bb @@ -7,8 +7,8 @@ python __anonymous() { FILESEXTRAPATHS_prepend := "${THISDIR}/linux-raspberrypi:" -LINUX_VERSION ?= "4.12" -LINUX_RPI_DEV_BRANCH ?= "rpi-4.12.y" +LINUX_VERSION ?= "4.13" +LINUX_RPI_DEV_BRANCH ?= "rpi-4.13.y" SRCREV = "${AUTOREV}" SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=${LINUX_RPI_DEV_BRANCH} \ @@ -16,11 +16,6 @@ SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=${LINUX_RP " require linux-raspberrypi.inc -# A LOADADDR is needed when building a uImage format kernel. This value is not -# set by default in rpi-4.8.y and later branches so we need to provide it -# manually. This value unused if KERNEL_IMAGETYPE is not uImage. -KERNEL_EXTRA_ARGS += "LOADADDR=0x00008000" - # Disable version check so that we don't have to edit this recipe every time # upstream bumps the version KERNEL_VERSION_SANITY_SKIP = "1" diff --git a/recipes-kernel/linux/linux-raspberrypi.inc b/recipes-kernel/linux/linux-raspberrypi.inc index 9265d557a..8aee853c4 100644 --- a/recipes-kernel/linux/linux-raspberrypi.inc +++ b/recipes-kernel/linux/linux-raspberrypi.inc @@ -1,24 +1,23 @@ -require linux-rpi.inc -inherit linux-raspberrypi-base - DESCRIPTION = "Linux Kernel for Raspberry Pi" SECTION = "kernel" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" -SRC_URI += " \ - file://defconfig \ - " - -COMPATIBLE_MACHINE = "raspberrypi" +COMPATIBLE_MACHINE = "^rpi$" PE = "1" PV = "${LINUX_VERSION}+git${SRCPV}" -# NOTE: For now we pull in the default config from the RPi kernel GIT tree. -KERNEL_DEFCONFIG_raspberrypi ?= "bcmrpi_defconfig" -KERNEL_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig" -KERNEL_DEFCONFIG_raspberrypi3-64 ?= "bcmrpi3_defconfig" +inherit kernel siteinfo +require recipes-kernel/linux/linux-yocto.inc + +KCONFIG_MODE = "--alldefconfig" +KBUILD_DEFCONFIG_raspberrypi0-wifi ?= "bcmrpi_defconfig" +KBUILD_DEFCONFIG_raspberrypi ?= "bcmrpi_defconfig" +KBUILD_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig" +KBUILD_DEFCONFIG_raspberrypi3 ?= "bcm2709_defconfig" +KBUILD_DEFCONFIG_raspberrypi3-64 ?= "bcmrpi3_defconfig" +KBUILD_DEFCONFIG_raspberrypi-cm3-64 ?= "bcmrpi3_defconfig" # CMDLINE for raspberrypi CMDLINE ?= "dwc_otg.lpm_enable=0 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait" @@ -26,20 +25,145 @@ CMDLINE ?= "dwc_otg.lpm_enable=0 console=serial0,115200 root=/dev/mmcblk0p2 root # Add the kernel debugger over console kernel command line option if enabled CMDLINE_append = ' ${@base_conditional("ENABLE_KGDB", "1", "kgdboc=serial0,115200", "", d)}' +# Disable rpi logo on boot +CMDLINE_append += ' ${@base_conditional("DISABLE_RPI_BOOT_LOGO", "1", "logo.nologo", "", d)}' + +# You can define CMDLINE_DEBUG as "debug" in your local.conf or distro.conf +# to enable kernel debugging. +CMDLINE_DEBUG ?= "" +CMDLINE_append = " ${CMDLINE_DEBUG}" + +# Quirk for udev greater or equal 141 UDEV_GE_141 ?= "1" +# Enable OABI compat for people stuck with obsolete userspace +ARM_KEEP_OABI ?= "1" + +KERNEL_INITRAMFS ?= '${@base_conditional("INITRAMFS_IMAGE_BUNDLE", "1", "1", "", d)}' + KERNEL_MODULE_AUTOLOAD += "${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "stmpe-ts", "", d)}" -# Set programmatically some variables during recipe parsing -# See http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html#anonymous-python-functions -python __anonymous () { - kerneltype = d.getVar('KERNEL_IMAGETYPE') - kerneldt = get_dts(d, d.getVar('LINUX_VERSION')) - d.setVar("KERNEL_DEVICETREE", kerneldt) +# A LOADADDR is needed when building a uImage format kernel. This value is not +# set by default in rpi-4.8.y and later branches so we need to provide it +# manually. This value unused if KERNEL_IMAGETYPE is not uImage. +KERNEL_EXTRA_ARGS += "LOADADDR=0x00008000" + +# Set a variable in .configure +# $1 - Configure variable to be set +# $2 - value [n/y/value] +kernel_configure_variable() { + # Remove the config + CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;" + if test "$2" = "n" + then + echo "# CONFIG_$1 is not set" >> ${B}/.config + else + echo "CONFIG_$1=$2" >> ${B}/.config + fi +} + +do_configure_prepend() { + mv -f ${B}/.config ${B}/.config.patched + CONF_SED_SCRIPT="" + + # oabi / eabi support + kernel_configure_variable AEABI y + if [ "${ARM_KEEP_OABI}" = "1" ] ; then + kernel_configure_variable OABI_COMPAT y + else + kernel_configure_variable OABI_COMPAT n + fi + + # Set cmdline + kernel_configure_variable CMDLINE "\"${CMDLINE}\"" + + # Localversion + kernel_configure_variable LOCALVERSION "\"\"" + kernel_configure_variable LOCALVERSION_AUTO n + + # Udev quirks + # Newer versions of udev mandate that sysfs doesn't have deprecated entries + if [ "${UDEV_GE_141}" = "1" ] ; then + kernel_configure_variable SYSFS_DEPRECATED n + kernel_configure_variable SYSFS_DEPRECATED_V2 n + kernel_configure_variable HOTPLUG y + kernel_configure_variable UEVENT_HELPER_PATH "\"\"" + kernel_configure_variable UNIX y + kernel_configure_variable SYSFS y + kernel_configure_variable PROC_FS y + kernel_configure_variable TMPFS y + kernel_configure_variable INOTIFY_USER y + kernel_configure_variable SIGNALFD y + kernel_configure_variable TMPFS_POSIX_ACL y + kernel_configure_variable BLK_DEV_BSG y + kernel_configure_variable DEVTMPFS y + kernel_configure_variable DEVTMPFS_MOUNT y + fi + + # Newer inits like systemd need cgroup support + if [ "${KERNEL_ENABLE_CGROUPS}" = "1" ] ; then + kernel_configure_variable CGROUP_SCHED y + kernel_configure_variable CGROUPS y + kernel_configure_variable CGROUP_NS y + kernel_configure_variable CGROUP_FREEZER y + kernel_configure_variable CGROUP_DEVICE y + kernel_configure_variable CPUSETS y + kernel_configure_variable PROC_PID_CPUSET y + kernel_configure_variable CGROUP_CPUACCT y + kernel_configure_variable RESOURCE_COUNTERS y + fi + + # root-over-nfs-over-usb-eth support. Limited, but should cover some cases + # Enable this by setting a proper CMDLINE_NFSROOT_USB. + if [ ! -z "${CMDLINE_NFSROOT_USB}" ]; then + oenote "Configuring the kernel for root-over-nfs-over-usb-eth with CMDLINE ${CMDLINE_NFSROOT_USB}" + kernel_configure_variable INET y + kernel_configure_variable IP_PNP y + kernel_configure_variable USB_GADGET y + kernel_configure_variable USB_GADGET_SELECTED y + kernel_configure_variable USB_ETH y + kernel_configure_variable NFS_FS y + kernel_configure_variable ROOT_NFS y + kernel_configure_variable ROOT_NFS y + kernel_configure_variable CMDLINE "\"${CMDLINE_NFSROOT_USB}\"" + fi + if [ ! -z "${KERNEL_INITRAMFS}" ]; then + kernel_configure_variable BLK_DEV_INITRD y + kernel_configure_variable INITRAMFS_SOURCE "" + kernel_configure_variable RD_GZIP y + kernel_configure_variable OVERLAY_FS y + kernel_configure_variable SQUASHFS y + kernel_configure_variable UBIFS_FS y + fi + # Activate CONFIG_LEGACY_PTYS + kernel_configure_variable LEGACY_PTYS y + # this module is built externally via drbd-utils + kernel_configure_variable BLK_DEV_DRBD n + + # Activate the configuration options for VC4 + VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}" + if [ ${VC4GRAPHICS} = "1" ]; then + kernel_configure_variable I2C_BCM2835 y + kernel_configure_variable DRM y + kernel_configure_variable DRM_FBDEV_EMULATION y + kernel_configure_variable DRM_VC4 y + fi + + # Keep this the last line + # Remove all modified configs and add the rest to .config + sed -e "${CONF_SED_SCRIPT}" < '${B}/.config.patched' >> '${B}/.config' + rm -f ${B}/.config.patched + + yes '' | oe_runmake oldconfig +} + +do_compile_append_raspberrypi3-64() { + cc_extra=$(get_cc_option) + oe_runmake dtbs CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} } -do_kernel_configme_prepend() { - install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE} / ${KERNEL_DEFCONFIG} available." +do_compile_append_raspberrypi3-64() { + oe_runmake dtbs } do_install_prepend() { diff --git a/recipes-kernel/linux/linux-raspberrypi/defconfig b/recipes-kernel/linux/linux-raspberrypi/defconfig deleted file mode 100644 index ecbf32cfd..000000000 --- a/recipes-kernel/linux/linux-raspberrypi/defconfig +++ /dev/null @@ -1 +0,0 @@ -# Dummy file to get through do_kernel_configme. diff --git a/recipes-kernel/linux/linux-raspberrypi_4.9.bb b/recipes-kernel/linux/linux-raspberrypi_4.9.bb index ed36f304b..506049fe5 100644 --- a/recipes-kernel/linux/linux-raspberrypi_4.9.bb +++ b/recipes-kernel/linux/linux-raspberrypi_4.9.bb @@ -1,13 +1,8 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:" -LINUX_VERSION ?= "4.9.35" +LINUX_VERSION ?= "4.9.52" -SRCREV = "be2540e540f5442d7b372208787fb64100af0c54" -SRC_URI = "git://github.com/raspberrypi/linux.git;branch=rpi-4.9.y" +SRCREV = "19577521f46c188a592f44cb311c0d421b0c9d93" +SRC_URI = "git://github.com/synapticon/linux.git;branch=cm3_64" require linux-raspberrypi.inc - -# A LOADADDR is needed when building a uImage format kernel. This value is not -# set by default in rpi-4.8.y and later branches so we need to provide it -# manually. This value unused if KERNEL_IMAGETYPE is not uImage. -KERNEL_EXTRA_ARGS += "LOADADDR=0x00008000" diff --git a/recipes-kernel/linux/linux-rpi.inc b/recipes-kernel/linux/linux-rpi.inc deleted file mode 100644 index 53383b073..000000000 --- a/recipes-kernel/linux/linux-rpi.inc +++ /dev/null @@ -1,148 +0,0 @@ -DESCRIPTION = "Linux Kernel" -SECTION = "kernel" -LICENSE = "GPLv2" - -LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" - -inherit kernel siteinfo -require recipes-kernel/linux/linux-yocto.inc - -# Enable OABI compat for people stuck with obsolete userspace -ARM_KEEP_OABI ?= "1" - -# Quirk for udev greater or equal 141 -UDEV_GE_141 ?= "1" - -# You can define CMDLINE_DEBUG as "debug" in your local.conf or distro.conf -# to enable kernel debugging. -CMDLINE_DEBUG ?= "" -CMDLINE_append = " ${CMDLINE_DEBUG}" - -KERNEL_INITRAMFS ?= '${@base_conditional("INITRAMFS_IMAGE_BUNDLE", "1", "1", "", d)}' - -# Set a variable in .configure -# $1 - Configure variable to be set -# $2 - value [n/y/value] -kernel_configure_variable() { - # Remove the config - CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;" - if test "$2" = "n" - then - echo "# CONFIG_$1 is not set" >> ${B}/.config - else - echo "CONFIG_$1=$2" >> ${B}/.config - fi -} - -do_configure_prepend() { - # Clean .config - echo "" > ${B}/.config - CONF_SED_SCRIPT="" - - # oabi / eabi support - kernel_configure_variable AEABI y - if [ "${ARM_KEEP_OABI}" = "1" ] ; then - kernel_configure_variable OABI_COMPAT y - else - kernel_configure_variable OABI_COMPAT n - fi - - # Set cmdline - kernel_configure_variable CMDLINE "\"${CMDLINE}\"" - - # Localversion - kernel_configure_variable LOCALVERSION "\"\"" - kernel_configure_variable LOCALVERSION_AUTO n - - # Udev quirks - # Newer versions of udev mandate that sysfs doesn't have deprecated entries - if [ "${UDEV_GE_141}" = "1" ] ; then - kernel_configure_variable SYSFS_DEPRECATED n - kernel_configure_variable SYSFS_DEPRECATED_V2 n - kernel_configure_variable HOTPLUG y - kernel_configure_variable UEVENT_HELPER_PATH "\"\"" - kernel_configure_variable UNIX y - kernel_configure_variable SYSFS y - kernel_configure_variable PROC_FS y - kernel_configure_variable TMPFS y - kernel_configure_variable INOTIFY_USER y - kernel_configure_variable SIGNALFD y - kernel_configure_variable TMPFS_POSIX_ACL y - kernel_configure_variable BLK_DEV_BSG y - kernel_configure_variable DEVTMPFS y - kernel_configure_variable DEVTMPFS_MOUNT y - fi - - # Newer inits like systemd need cgroup support - if [ "${KERNEL_ENABLE_CGROUPS}" = "1" ] ; then - kernel_configure_variable CGROUP_SCHED y - kernel_configure_variable CGROUPS y - kernel_configure_variable CGROUP_NS y - kernel_configure_variable CGROUP_FREEZER y - kernel_configure_variable CGROUP_DEVICE y - kernel_configure_variable CPUSETS y - kernel_configure_variable PROC_PID_CPUSET y - kernel_configure_variable CGROUP_CPUACCT y - kernel_configure_variable RESOURCE_COUNTERS y - fi - - # root-over-nfs-over-usb-eth support. Limited, but should cover some cases - # Enable this by setting a proper CMDLINE_NFSROOT_USB. - if [ ! -z "${CMDLINE_NFSROOT_USB}" ]; then - oenote "Configuring the kernel for root-over-nfs-over-usb-eth with CMDLINE ${CMDLINE_NFSROOT_USB}" - kernel_configure_variable INET y - kernel_configure_variable IP_PNP y - kernel_configure_variable USB_GADGET y - kernel_configure_variable USB_GADGET_SELECTED y - kernel_configure_variable USB_ETH y - kernel_configure_variable NFS_FS y - kernel_configure_variable ROOT_NFS y - kernel_configure_variable ROOT_NFS y - kernel_configure_variable CMDLINE "\"${CMDLINE_NFSROOT_USB}\"" - fi - if [ ! -z "${KERNEL_INITRAMFS}" ]; then - kernel_configure_variable BLK_DEV_INITRD y - kernel_configure_variable INITRAMFS_SOURCE "" - kernel_configure_variable RD_GZIP y - kernel_configure_variable OVERLAY_FS y - kernel_configure_variable SQUASHFS y - kernel_configure_variable UBIFS_FS y - fi - # Activate CONFIG_LEGACY_PTYS - kernel_configure_variable LEGACY_PTYS y - - # Activate the configuration options for VC4 - VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}" - if [ ${VC4GRAPHICS} = "1" ]; then - kernel_configure_variable I2C_BCM2835 y - kernel_configure_variable DRM y - kernel_configure_variable DRM_FBDEV_EMULATION y - kernel_configure_variable DRM_VC4 y - kernel_configure_variable FB_BCM2708 n - fi - - # Keep this the last line - # Remove all modified configs and add the rest to .config - sed -e "${CONF_SED_SCRIPT}" < '${WORKDIR}/defconfig' >> '${B}/.config' - - yes '' | oe_runmake oldconfig -} - -# Automatically depend on lzop-native if CONFIG_KERNEL_LZO is enabled -python () { - try: - defconfig = bb.fetch2.localpath('file://defconfig', d) - except bb.fetch2.FetchError: - return - - try: - configfile = open(defconfig) - except IOError: - return - - if 'CONFIG_KERNEL_LZO=y\n' in configfile.readlines(): - depends = d.getVar('DEPENDS', False) - d.setVar('DEPENDS', depends + ' lzop-native') - - configfile.close() -} diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch b/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch similarity index 100% rename from recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch rename to recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0001-config-files-path.patch b/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0001-config-files-path.patch similarity index 100% rename from recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0001-config-files-path.patch rename to recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0001-config-files-path.patch diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0002-fix-decoder-flushing.patch b/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0002-fix-decoder-flushing.patch similarity index 100% rename from recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0002-fix-decoder-flushing.patch rename to recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0002-fix-decoder-flushing.patch diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0003-no-timeout-on-get-state.patch b/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0003-no-timeout-on-get-state.patch similarity index 100% rename from recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0003-no-timeout-on-get-state.patch rename to recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0003-no-timeout-on-get-state.patch diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0004-Properly-handle-drain-requests-while-flushing.patch b/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0004-Properly-handle-drain-requests-while-flushing.patch similarity index 100% rename from recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0004-Properly-handle-drain-requests-while-flushing.patch rename to recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0004-Properly-handle-drain-requests-while-flushing.patch diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch b/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch similarity index 100% rename from recipes-multimedia/gstreamer/gstreamer1.0-omx-1.10/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch rename to recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.10%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.12%.bbappend similarity index 88% rename from recipes-multimedia/gstreamer/gstreamer1.0-omx_1.10%.bbappend rename to recipes-multimedia/gstreamer/gstreamer1.0-omx_1.12%.bbappend index d4198677a..93381a4e0 100644 --- a/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.10%.bbappend +++ b/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.12%.bbappend @@ -10,4 +10,4 @@ SRC_URI_append_rpi = " \ file://0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch \ " -FILESEXTRAPATHS_prepend := "${THISDIR}/gstreamer1.0-omx-1.10:" +FILESEXTRAPATHS_prepend := "${THISDIR}/gstreamer1.0-omx-1.12:" diff --git a/recipes-multimedia/omxplayer/omxplayer/0005-Don-t-require-internet-connection-during-build.patch b/recipes-multimedia/omxplayer/omxplayer/0005-Don-t-require-internet-connection-during-build.patch new file mode 100644 index 000000000..4f56ad2a5 --- /dev/null +++ b/recipes-multimedia/omxplayer/omxplayer/0005-Don-t-require-internet-connection-during-build.patch @@ -0,0 +1,56 @@ +From 97cb9405f281f54d4083f3126d441c8b44eafb89 Mon Sep 17 00:00:00 2001 +From: Paul Barker +Date: Thu, 7 Sep 2017 19:14:20 +0000 +Subject: [PATCH] Don't require internet connection during build + +The following issues break offline builds: + +* Building the man page uses a web service hosted on heroku. + +* Makefile.ffmpeg explicitly does a "git clone" from the internet. + +Signed-off-by: Paul Barker +Upstream-status: Inappropriate +--- + Makefile | 6 ++---- + Makefile.ffmpeg | 2 +- + 2 files changed, 3 insertions(+), 5 deletions(-) + +diff --git a/Makefile b/Makefile +index 60501b1..6471f0f 100644 +--- a/Makefile ++++ b/Makefile +@@ -79,14 +79,12 @@ ffmpeg: + make -f Makefile.ffmpeg + make -f Makefile.ffmpeg install + +-dist: omxplayer.bin omxplayer.1 ++dist: omxplayer.bin + mkdir -p $(DIST)/usr/lib/omxplayer + mkdir -p $(DIST)/usr/bin + mkdir -p $(DIST)/usr/share/doc/omxplayer +- mkdir -p $(DIST)/usr/share/man/man1 + cp omxplayer omxplayer.bin $(DIST)/usr/bin + cp COPYING $(DIST)/usr/share/doc/omxplayer + cp README.md $(DIST)/usr/share/doc/omxplayer/README +- cp omxplayer.1 $(DIST)/usr/share/man/man1 + cp -P ffmpeg_compiled/usr/lib/*.so* $(DIST)/usr/lib/omxplayer/ +- tar -czf omxplayer-dist.tar.gz $(DIST) +\ No newline at end of file ++ tar -czf omxplayer-dist.tar.gz $(DIST) +diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg +index 22d495c..8651724 100644 +--- a/Makefile.ffmpeg ++++ b/Makefile.ffmpeg +@@ -6,7 +6,7 @@ FFMPEG_EXTRA_CFLAGS?=-mfpu=vfp -mfloat-abi=$(FLOAT) -mno-apcs-stack-check -mstru + WORK=$(PWD) + + .PHONY : all +-all: checkout configure compile ++all: configure compile + + .PHONY : copy + copy: +-- +2.7.4 + diff --git a/recipes-multimedia/omxplayer/omxplayer/0006-Prevent-ffmpeg-configure-compile-race-condition.patch b/recipes-multimedia/omxplayer/omxplayer/0006-Prevent-ffmpeg-configure-compile-race-condition.patch new file mode 100644 index 000000000..3fac2d1cd --- /dev/null +++ b/recipes-multimedia/omxplayer/omxplayer/0006-Prevent-ffmpeg-configure-compile-race-condition.patch @@ -0,0 +1,39 @@ +From 4a13419e3805b541fc58e57f1f27c4a388609ef5 Mon Sep 17 00:00:00 2001 +From: Paul Barker +Date: Thu, 7 Sep 2017 20:02:15 +0000 +Subject: [PATCH] Prevent ffmpeg configure/compile race condition + +Additional dependency information is needed in Makefile.ffmpeg to ensure that +the configure stage is finished before the compile stage starts. + +Signed-off-by: Paul Barker +Upstream-status: Pending +--- + Makefile.ffmpeg | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg +index 8651724..619c49a 100644 +--- a/Makefile.ffmpeg ++++ b/Makefile.ffmpeg +@@ -6,7 +6,7 @@ FFMPEG_EXTRA_CFLAGS?=-mfpu=vfp -mfloat-abi=$(FLOAT) -mno-apcs-stack-check -mstru + WORK=$(PWD) + + .PHONY : all +-all: configure compile ++all: compile + + .PHONY : copy + copy: +@@ -14,7 +14,7 @@ copy: + $(HOST)-strip *.so* + + .PHONY : compile +-compile: ++compile: configure + +$(MAKE) -C ffmpeg + + .PHONY : configure +-- +2.7.4 + diff --git a/recipes-multimedia/omxplayer/omxplayer_git.bb b/recipes-multimedia/omxplayer/omxplayer_git.bb index 0e0f9ba40..db01d7433 100644 --- a/recipes-multimedia/omxplayer/omxplayer_git.bb +++ b/recipes-multimedia/omxplayer/omxplayer_git.bb @@ -10,14 +10,27 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" DEPENDS = "libpcre libav virtual/egl boost freetype dbus openssl samba libssh libomxil coreutils-native curl-native" PR = "r4" -SRCREV = "061425a5eabf6e9ee43229911c073a863d144038" +SRCREV_default = "b8ff59dccd9307f10dad71bec2525a95bd6c603b" + +# omxplayer builds its own copy of ffmpeg from source instead of using the +# system's ffmpeg library. This isn't ideal but it's ok for now. We do however +# want to keep control of the exact version of ffmpeg used instead of just +# fetching the latest commit on a release branch (which is what the checkout job +# in Makefile.ffmpeg in the omxplayer source tree does). +# +# This SRCREV corresponds to the v3.1.10 release of ffmpeg. +SRCREV_ffmpeg = "afa34cb36edca0ff809b7e58474bbce12271ecba" + SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=git;branch=master \ + git://source.ffmpeg.org/ffmpeg;branch=release/3.1;protocol=git;depth=1;name=ffmpeg;destsuffix=git/ffmpeg \ file://0001-Remove-Makefile.include-which-includes-hardcoded.patch \ file://0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch \ file://0003-Remove-strip-step-in-Makefile.patch \ file://0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch \ file://fix-tar-command-with-DIST.patch \ file://use-native-pkg-config.patch \ + file://0005-Don-t-require-internet-connection-during-build.patch \ + file://0006-Prevent-ffmpeg-configure-compile-race-condition.patch \ " S = "${WORKDIR}/git" @@ -53,7 +66,8 @@ do_compile() { # Needed for compiler test in ffmpeg's configure mkdir -p tmp - oe_runmake ffmpeg + oe_runmake -f Makefile.ffmpeg + oe_runmake -f Makefile.ffmpeg install oe_runmake }