188 Commits
pyro ... sumo

Author SHA1 Message Date
Andrei Gherzan
2d40b00002 rpi-base.inc: Build rpi-poe dtb overlay
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-09-11 15:50:33 +01:00
Andrei Gherzan
c7330ac5e4 linux-raspberrypi: Build rpi poe fan driver
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-09-11 15:50:33 +01:00
Andrei Gherzan
aea27ba4c7 linux-raspberrypi: Update to 4.14.68
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-09-11 15:50:33 +01:00
Andrei Gherzan
50ee8d7e17 firmware: Update to 20180817
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-09-11 15:50:33 +01:00
Steve Pavao
ade31d6d01 rpi-hwup-image.bb: Modified the warning message in do_image_prepend()
When bitbaking image rpi-hwup-image, a warning message is generated
to inform he user that the image is deprecated.  The warning message
contains a suggestion of a non-deprecated image to use instead.

Previous to this commit, core-image-minimal was the suggested alternate
image.  This was a subpar suggestion, because rpi-hwup-image packages
the kernel modules in the image, but core-image-minimal does not.  This
can lead to confusion for the user, who may not immediately realize that
their kernel modules are no longer in the image.  With this commit, the
warning message now suggests core-image-base, which packages the kernel
modules in its image.

This change was suggested by Khem Raj on the Yocto project mailing list.

Signed-off-by: Steve Pavao <stevep@korgrd.com>
2018-09-06 20:00:49 +01:00
Andrei Gherzan
2a6e4883f9 raspberrypi3-64.conf: Define only the dtb files that are available for arch64
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-09-06 20:00:49 +01:00
Andrei Gherzan
99ebafd75a rpi-base.inc: Split overlays and dtbs from KERNEL_DEVICETREE
This is helpful for example in the cases where the kernel doesn't
provide all the dtbs in arm64 as in arm.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-09-06 20:00:49 +01:00
Andrei Gherzan
3204425178 linux-raspberrypi: Update to v4.14.58
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-09-06 20:00:49 +01:00
Andrei Gherzan
cf26c996ff raspberrypi3-64.conf: Include cm3 dtb
Add the CM3 dtb in the boot partition so we can boot this board as well with
this machine.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-09-06 20:00:49 +01:00
Martin Jansa
235036c3a8 sdcard_image-rpi.bbclass: use 4 spaces for indentation instead of mix of tabs and spaces
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-09-06 20:00:49 +01:00
Martin Jansa
f9e1ce03c5 sdcard_image-rpi: add dependency on rpi-u-boot-scr
* there is runtime dependency on rpi-u-boot-scr from u-boot itself:
  recipes-bsp/u-boot/u-boot_%.bbappend:RDEPENDS_${PN}_append_rpi = " rpi-u-boot-scr"
* but that's not enough to ensure that rpi-u-boot-scr:do_deploy is
  finished before do_image_rpi_sdimg and for
  ${DEPLOY_DIR_IMAGE}/boot.scr to exist in time

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-09-06 20:00:49 +01:00
Martin Jansa
2637389adb sdcard_image-rpi.bbclass: copy the DTB files with canonical name
* instead of using ${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb use
  the entries from KERNEL_DEVICETREE
* basename is still needed because raspberrypi3-64 is using:
  broadcom/bcm2710-rpi-3-b.dtb and the ${DEPLOY_DIR_IMAGE} doesn't
  contain any directories for DTBs and we cannot remove broadcom/
  prefix, because then "make bcm2710-rpi-3-b.dtb" from
  kernel-devicetree.bbclass will fail with:
  make[3]: *** No rule to make target 'arch/arm64/boot/dts/bcm2710-rpi-3-b.dtb'.  Stop.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-09-06 20:00:49 +01:00
Khem Raj
391ea937a9 linux-raspberrypi: Update to 4.14.52+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-09-06 20:00:49 +01:00
Khem Raj
e0149506ce firmware: Update to 20180619 release
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-09-06 20:00:49 +01:00
Hugo Hromic
5cd289ac1b wiringpi: use lower-case in recipe directory name
Keep naming consistency.

Signed-off-by: Hugo Hromic <hhromic@gmail.com>
2018-09-06 20:00:49 +01:00
Hugo Hromic
2cae48218b meta-raspberrypi: use generic licenses in ${COMMON_LICENSE_DIR} from Poky
Keep consistency with current practices.

Signed-off-by: Hugo Hromic <hhromic@gmail.com>
2018-09-06 20:00:49 +01:00
Hugo Hromic
1801aa319c pi-bluetooth: use _git suffix in recipe filename
Keep naming consistency.

Signed-off-by: Hugo Hromic <hhromic@gmail.com>
2018-09-06 20:00:49 +01:00
Hugo Hromic
a4ba2982e4 meta-raspberrypi: use _% suffix instead of specific versions for bbappends
Keep naming consistency and ensure they are still applied when the upstream recipes are updated.

Signed-off-by: Hugo Hromic <hhromic@gmail.com>
2018-09-06 20:00:49 +01:00
Hugo Hromic
e1f746fa66 formfactor: use rpi instead of raspberrypi to apply to all rpi machines
Signed-off-by: Hugo Hromic <hhromic@gmail.com>
2018-09-06 20:00:49 +01:00
Anton Gerasimov
690e196f02 docs: document support for 802.15.4 hat
Signed-off-by: Anton Gerasimov <tossel@gmail.com>
2018-09-06 20:00:49 +01:00
Anton Gerasimov
42de47506a rpi-config: load at86rf233 overlay
Controlled with ENABLED_AT86RF variable

Signed-off-by: Anton Gerasimov <tossel@gmail.com>
2018-09-06 20:00:49 +01:00
Anton Gerasimov
a15dbd32c6 rpi-base.inc: install at86rf233 overlay
Controlled with ENABLE_AT86RF variable

Signed-off-by: Anton Gerasimov <tossel@gmail.com>
2018-09-06 20:00:49 +01:00
Eduardo Abinader
ed0cfd5b9e config_git.bb: Remove extra space
Signed-off-by: Eduardo Abinader <eduardoabinader@gmail.com>
2018-09-06 20:00:49 +01:00
Martin Jansa
05f21adb99 linux-firmware: remove duplicate ${PN}-bcm43455 package
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-08-10 12:01:01 +01:00
Martin Jansa
b35e827e53 linux-firmware: move ${PN}-cypress-license handling to oe-core recipe
* this will make this bbappend a bit more version agnostic
* depends on oe-core commits from:
  http://lists.openembedded.org/pipermail/openembedded-core/2018-July/153164.html
  to prevent including ${PN}-cypress-license package twice in PACKAGES
  http://lists.openembedded.org/pipermail/openembedded-core/2018-July/153165.html

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-08-10 12:01:01 +01:00
Mirza Krak
cdb2dad529 linux-raspberrypi: update 4.9 recipe to current HEAD
Contains the following changes:

    7f9c648dad64 drm/vc4: Move IRQ enable to PM path

which fixes an unbalanced IRQ enable warning, which was rapported
in #286

Signed-off-by: Mirza Krak <mirza.krak@northern.tech>
Signed-off-by: Gunnar Andersson <gandersson@genivi.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-07-20 15:07:55 +01:00
Martin Jansa
d45f13b11b linux-firmware: update LIC_FILES_CHKSUM for d114732 revision from oe-core
* unfortunately the LICENCE.cypress was updated in last upgrade:
  http://git.openembedded.org/openembedded-core/commit/?id=6be8744d1b8ee35eb47acd517cfa29b2a7f455d5
  ba51e86 Update Cypress license termination clause
  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/LICENCE.cypress?id=ba51e861f4444f51e7e83f778575a8146dc514d0

* and the same was now backported to sumo branch:
  http://git.openembedded.org/openembedded-core/commit/?h=sumo&id=087a50f4d8075a91fa6aa373a3dc05017e62f1f9

* it's unfortunate, because now meta-raspberrypi/master is compatible
  only with oe-core master after
  6be8744d1b8ee35eb47acd517cfa29b2a7f455d5
  it would be nice to upstream some of these changes to linux-firmware
  recipes and leave only the rpi specific packaging here

* and the same happened with sumo backport, so meta-raspberrypi/sumo
  will be compatible only with oe-core sumo after
  087a50f4d8075a91fa6aa373a3dc05017e62f1f9

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-07-20 12:25:40 +01:00
Peter A. Bigot
f2e2a4376e rpi-config: remove explicit device tree selection for raspberrypi3-64
The current firmware doesn't need this.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-05-14 16:56:30 +01:00
Peter A. Bigot
8632069f29 raspberrypi3-64.conf: add 3B+ device tree
Closes #253

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-05-14 16:56:30 +01:00
Peter A. Bigot
092d42cd82 linux-firmware: restore and merge bluez-firmware
The attempt to Raspbian updated firmware blobs in packages separate from
linux-firmware introduced unresolvable conflicts with the standard
linux-firmware roll-up package.  Revert to using an augmented
linux-firmware recipe that overrides and adds firmware from two Raspbian
repositories that have up-to-date images.

Closes #244

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-05-14 10:35:51 +01:00
Peter A. Bigot
6aa54e92e3 pi-bluetooth: create to provide standard raspbian script for bluetooth setup
Unique bluetooth device addresses are not assigned correctly with some
firmware, resulting in a fixed default address.  Use the same utility as
raspbian does to initialize the device.

Closes #236

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-05-11 14:55:25 +01:00
Peter A. Bigot
df56f0c6cc bluez-firmware-raspbian: create to hold non-free firmware
Remove the material covered by the Cypress license from the bluez5
package and move it to its own package, derived directly from the
upstream sources.

Closes #224

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-05-11 14:55:25 +01:00
Peter A. Bigot
1027038db7 bluez5: fix issues with systemd script
Type=simple is wrong: it allows bluetooth.service to start before the
uart is configured, resulting in hci0 command tx timeout errors.
Type=oneshot blocks follow-up units until the ExecStart completes.

Add RemainAfterExit since system state has changed as a result of the
unit.

Also add a BindsTo for the device that we're going to use.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-05-11 14:55:25 +01:00
Peter A. Bigot
dbee7838b7 bluez5: trivial fix to RDEPENDS
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-05-11 14:55:25 +01:00
Peter A. Bigot
0fd3728b1d linux-raspberrypi: Update to v4.14.39
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-05-11 14:55:25 +01:00
Peter A. Bigot
8cd71e771a firmware: Update to 20180417
stable #4

RaspberryPi 3B+ support

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-05-11 14:55:25 +01:00
Peter A. Bigot
d3709fa688 rpi-config: add helper to enable dwc2 peripheral support
Document and add support to easily enable USB gadget mode.

Also fix a spelling error.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-05-05 10:03:21 +01:00
Peter A. Bigot
07d06b04dd rpi-base.inc: add dwc2 overlay
This along with some module and connman magic allows a RaspberryPi Zero
Wireless to tether to a host over USB.

dtoverlay=dwc2,dr_mode=peripheral
modprobe g_ether
connman enable gadget
connman tether gadget on

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-05-05 10:03:21 +01:00
Khem Raj
cf9971fa8b xserver-xf86-config: Disable glamor for vc4 in general
We need this fix across 32bit and 64bit with vc4/mesa

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-05-04 22:08:38 +01:00
Khem Raj
4d689a792c webkitgtk: Add a bbappend to disable gst-gl on vc4
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-05-04 22:08:38 +01:00
Khem Raj
014408d1ac linux-raspberrypi: Disable serial on kernel cmdline if ENABLE_UART is unset
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-05-04 22:08:38 +01:00
Eduardo Abinader
070c894321 sdcard_image-rpi.bbclass: Fix a typo in comment
Only a small typo on bbclass header.

Signed-off-by: Eduardo Abinader <eduardoabinader@gmail.com>
2018-05-04 15:11:47 +01:00
Paul Barker
693f36dded linux-raspberrypi: Drop CONFIG_OABI_COMPAT completely
There's no reason to support the old, outdated ARM OABI when upstream
linux-raspberrypi doesn't support this by default.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-04-23 14:08:04 +01:00
Paul Barker
2c7eab2d0d linux-raspberrypi: Drop inappropriate forced settings
CONFIG_BLK_DEV_DRBD: Deciding whether to use the in-kernel DRBD module or the
external drbd recipe in meta-networking is a policy decision and doesn't belong
in our BSP layer.

CONFIG_LEGACY_PTYS: These are legacy for a reason. They're not enabled in the
defconfig so they shouldn't be required for rpi devices. Let's drop this here,
it can be added back in a distro layer where (if) needed.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-04-23 14:08:04 +01:00
Paul Barker
d2ead7c039 linux-raspberrypi: Don't set CONFIG_CMDLINE
We force the command line at runtime via cmdline.txt anyway.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-04-23 14:08:04 +01:00
Paul Barker
66103edbb8 linux-raspberrypi: Drop support for CMDLINE_NFSROOT_USB
This is obsolete, undocumented and won't work anyway since we force the kernel
command line to ${CMDLINE} via the cmdline.txt file.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-04-23 14:08:04 +01:00
Paul Barker
be2d9b1bf6 linux-raspberrypi: Drop unnecessary configurations
KERNEL_ENABLE_CGROUPS: This is obsolete, all required config options for cgroups
are enabled by default.

KERNEL_INITRAMFS: Some of the config options we set are already enabled by
default.

UDEV_GE_141: This is long obsolete and all the required config options are
already set in the defconfig.

ARM_KEEP_OABI: AEABI=y and OABI_COMPAT=n are already set in the defconfig.

CONFIG_LOCALVERSION_AUTO: This setting is already disabled in the defconfig.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-04-23 14:08:04 +01:00
Paul Barker
92aac38577 Don't use RDEPENDS in recipes which don't create packages
RDEPENDS is fairly meaningless for recipes which don't create a package to be
installed into the rootfs. Instead we should be using DEPENDS to guarantee
correct ordering of build tasks.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-04-23 14:08:04 +01:00
Paul Barker
9b2cbacb07 Drop unnecessary dependencies and tasks
We have a few recipes which only deploy files that go into the boot partition
and do not create packages to be installed into the rootfs. These recipes don't
need to run the usual packaging tasks so we can drop them to speed up the build
a little.

We also have a bunch of recipes that don't need the usual toolchain as they just
copy files or invoke native commands like `mkimage`. So to speed up the build a
little more we can set INHIBIT_DEFAULT_DEPS to avoid an unnecessary dependency
on the toolchain.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-04-23 14:08:04 +01:00
Paul Barker
e059aaffdf linux-raspberrypi-dev: Update to v4.16.y
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-04-23 14:08:04 +01:00
Paul Barker
9e3a5ef513 linux-raspberrypi: Update to v4.14.34
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-04-23 14:08:04 +01:00
Paul Barker
2bea3356a9 linux-raspberrypi: Update v4.9.y kernel
This branch is still getting a few fixes upstream.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-04-23 14:08:04 +01:00
Paul Barker
51249c9c78 linux-raspberrypi: Allow specification of ncurses location
From patch message:

    In some cross build environments such as the Yocto Project build environment
    it provides an ncurses library that is compiled differently than the host's
    version.  This causes display corruption problems when the host's curses
    includes are used instead of the includes from the provided compiler are
    overridden.  There is a second case where there is no curses libraries at
    all on the host system and menuconfig will just fail entirely.

    The solution is simply to allow an override variable in check-lxdialog.sh
    for environments such as the Yocto Project.  Adding a CROSS_CURSES_LIB and
    CROSS_CURSES_INC solves the issue and allowing compiling and linking against
    the right headers and libraries.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-04-23 14:08:04 +01:00
Hugo Hromic
3175e7f3e2 rpi-config: support more commonly used config variables and update documentation
Added support for and documented the following new extra build options:

* gpu_freq overclocking option
* disable boot rainbow splash screen
* configure the boot delay after GPU firmware loading
* configure common HDMI and composite video options

Signed-off-by: Hugo Hromic <hhromic@gmail.com>
2018-04-20 15:17:20 +01:00
Peter A. Bigot
5641ac3730 bluez5: update bluez-firmware
Updated BCM43430A1.hcd to bluez-firmware_1.2-3+rpt4.1.debian.tar.xz
Added BCM4345C0.hcd for RasperryPi 3B+ support

Files from https://github.com/RPi-Distro/bluez-firmware at commit
50fa5628b5c2fd6c59090fb18f02af9fd98c3170

Closes Issue #222

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-04-15 00:00:50 +01:00
Martin Jansa
35234a0bfa layer.conf: add LAYERSERIES_COMPAT
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-04-06 14:57:39 +01:00
Andreas Müller
4bf40b2d32 udev-udisks-rules-rpi: Hide initial boot partition from udisks2
If I am not mistaken, many desktops (kde/lxqt/xfce..) use udisks2 to ask for
devices which can be mounted. Without this patch the initial boot partition
can be mounted by a single click on folder displayed on desktop or file manager.

Why it is suggested to add this recipe to an image:
* It removes annoying icon in desktop/file manager.
* The initial boot partition is vfat. Unpriviledged users can modify
  content. E.g by removing files accidently, images can be turned into
  non-booting condition easily. And from security point of view, it is a
  disaster.

FWIW: Have similar in all my BSPs vor very long time.

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-04-06 12:33:40 +01:00
Andreas Müller
963761aac3 mesa: enable dri3 explicitly
Currently oe-core enables dri3 only for x11 AND vulcan. Although patch enabling
dri3 by default in oe-core was sent out, make sure here dri3 is enabled -
whatever oe-core suggest in the future.

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
2018-04-06 12:33:40 +01:00
Paul Barker
292e00099b Merge pull request #215 from agherzan/ag_rpi3bplus
RasperryPi 3B+ support
2018-04-03 11:49:38 +01:00
Andrei Gherzan
519da94776 layer-contents.md: Update documentation
* Raspberry Pi 3B+ support mentioned
* Add info about linux-firmware-raspbian

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-03-29 14:27:25 +01:00
Andrei Gherzan
279b14730a linux-firmware: Remove as replaced by linux-firmware-raspbian
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-03-29 14:26:57 +01:00
Andrei Gherzan
3934ba7127 raspberrypi0-wifi.conf: Use linux-firmware-raspbian package
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-03-29 14:16:37 +01:00
Andrei Gherzan
0059905a90 rpi-base.inc: Add Raspberry Pi 3B+ dtb
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-03-29 11:49:40 +01:00
Andrei Gherzan
c717e7359a raspberrypi3-64.conf: Use linux-firmware-raspbian packages and add bcm43455
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-03-29 11:06:35 +01:00
Andrei Gherzan
d5f252ef23 raspberrypi3.conf: Use linux-firmware-raspbian packages and add bcm43455
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-03-29 11:05:57 +01:00
Andrei Gherzan
9209f20c7a linux-firmware-raspbian: New recipe which uses RPi-Distro repository
This packages only the firmware needed for the RaspberryPi boards. We use the
RPi-Distro as it's already maintained by the Raspbian guys and we get better
support for the RaspberryPi needed firmwares.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-03-29 11:04:40 +01:00
Andrei Gherzan
e99afb0c89 firmware: Update to 20180313
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-03-28 14:48:34 +01:00
Andrei Gherzan
857db4a496 linux-raspberrypi: Update 4.14 recipe to 4.14.30
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-03-28 14:48:33 +01:00
Andrei Gherzan
a4c79714d6 linux-raspberrypi: Update 4.9 recipe to current HEAD
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-03-28 14:48:26 +01:00
Paul Barker
63e53f9190 docs: Remove reference to deprecated images
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-03-23 20:41:12 +00:00
Hugo Hromic
415c1998a6 gstreamer1.0-omx: refresh and clean-up patches
fixes:

    WARNING: gstreamer1.0-omx-1.12.4-r0 do_patch:
    Some of the context lines in patches were ignored. This can lead to incorrectly applied patches.
    The context lines in the patches can be updated with devtool:

        devtool modify <recipe>
        devtool finish --force-patch-refresh <recipe> <layer_path>

    Then the updated patches and the source tree (in devtool's workspace)
    should be reviewed to make sure the patches apply in the correct place
    and don't introduce duplicate lines (which can, and does happen
    when some of the context is ignored). Further information:
    http://lists.openembedded.org/pipermail/openembedded-core/2018-March/148675.html
    https://bugzilla.yoctoproject.org/show_bug.cgi?id=10450
    Details:
    Applying patch 0001-config-files-path.patch
    patching file config/bellagio/gstomx.conf
    Hunk #1 succeeded at 1 with fuzz 2.
    Hunk #2 succeeded at 9 with fuzz 2.
    patching file config/rpi/gstomx.conf
    Hunk #8 succeeded at 63 with fuzz 2.
    Hunk #10 succeeded at 82 with fuzz 2.
    Hunk #11 succeeded at 92 with fuzz 2.

    Now at patch 0001-config-files-path.patch

deleted obsolete `gstreamer1.0-omx` directory with duplicated patches that are also in `gstreamer1.0-omx-1.12`.
made file naming for `gstreamer1.0-omx_%.bbappend` consistent with the rest of the layer recipes.

Signed-off-by: Hugo Hromic <hhromic@gmail.com>
2018-03-23 11:44:45 +00:00
Paul Barker
f86f9f0013 Merge pull request #202 from kraj/kraj/master
Upgrade to 4.14 kernel
2018-03-18 19:09:12 +00:00
Khem Raj
790e100a90 userland: Add wayland support for libbrcmEGL
These renames are recently added
dd98890106

Some packages e.g. libSDL2 has started using the new names
and are resulting in undefined symbols e.g.

| /mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-gnueabi/libsdl2-mixer/2.0.2-r0/recipe-sysroot/usr/lib/libb
rcmEGL.so: undefined reference to `wl_resource_post_error'

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-03-08 20:31:12 -08:00
Khem Raj
4230fae1de firmware: Use snapshots from master again
This time use the snapshot archives to avoid
repo clone size issues

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-03-08 20:31:12 -08:00
Khem Raj
712558c64e userland: Update to master as of 20180219
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-03-08 20:31:12 -08:00
Khem Raj
b588825238 linux-raspberrypi-4.14: Update past 4.14.22
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-03-08 20:31:12 -08:00
Maxin B. John
79ea44b997 gstreamer1.0-omx: remove unused patches
Remove the following unused patches:
 1. 0002-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch
 2. 0003-fix-decoder-flushing.patch

Signed-off-by: Maxin B. John <maxin.john@intel.com>
2018-03-08 21:57:25 +00:00
Peter A. Bigot
abd453d7da bluez5: brcm43438: update device dependency
A previous patch changed the BT serial device to the alias, but did not
update the device dependency resulting in the service failing to start
on boot.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-03-07 23:37:53 +00:00
Peter A. Bigot
ad7693c9a0 rpi-base.inc: set default wic kickstart file
While wic is not a standard image, adding it to IMAGE_FSTYPES in
local.conf will fail unless a WKS_FILE is provided.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-03-07 23:35:18 +00:00
Peter A. Bigot
0e1e2c6e0a sdimage-raspberrypi.wks: find /boot partition on mmcblk0
Recently wic was modified to no longer exclude /boot from partitions
added to fstab.  The --on parameter in many kickstart specifications
insufficiently resolved the MMC device, resulting in attempts to mount
/dev/mmcblkp1 as boot when the device should be /dev/mmcblk0p1.

With systemd the mount failure is an error and the system drops into
emergency mode.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2018-03-07 23:35:18 +00:00
Paul Barker
207efc6fcf rpi-basic-image: Refactor to avoid double deprecation warnings
If rpi-basic-image is based on rpi-hwup-image, both deprecation warnings are
printed which may be confusing. Therefore let's just copy over the relevant bits
of rpi-hwup-image for now.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-02-28 18:02:58 +00:00
Paul Barker
81a9e9d450 linux-raspberrypi: Change default version to 4.14.y
This matches the change made in the upstream firmware repository earlier in
February.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-02-28 18:02:58 +00:00
Paul Barker
ad0443b3d2 linux-raspberrypi: Add recipe for v4.14.y
It's alive! (a.k.a. upstream have stopped rebasing this branch)

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-02-28 18:02:58 +00:00
Paul Barker
37f6523aa1 firmware: Update to recent commit
There hasn't been a tagged version of the firmware lately, but there have been
several bugfixes listed in the commit history and we're about to move to v4.14.y
as the default kernel so let's get up-to-date.

The actual commit used is the most recent change to the firmware files as of
2018-02-26, the most recent commits which only change the kernel image and other
files we don't use are ignored.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-02-28 18:02:58 +00:00
Paul Barker
8501a33253 linux-raspberrypi-dev: Update to v4.15.y
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-02-28 18:02:58 +00:00
Paul Barker
69d9fa2a69 linux-raspberrypi: Update to v4.9.80
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-02-28 18:02:58 +00:00
Paul Barker
0deabddb14 rpi-*-image: Deprecate old image names
As discussed on the issue tracker, it's confusing for meta-raspberrypi to have
its own set of image names filling the same jobs as the core images. Therefore
we are marking these images as deprecated and will be removing them in the
future. The recommended replacement images are as follows:

    rpi-hwup-image -> core-image-minimal
    rpi-basic-image -> core-image-base

The image 'rpi-test-image' will be kept and is not marked as deprecated, it is
still useful for testing. It it updated to be based on 'core-image-base'.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-02-28 18:02:58 +00:00
Paul Barker
0f145057c3 rpio: Use pypi.bbclass
This should resolve recent issues with the non-https URL in SRC_URI.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-02-28 18:02:58 +00:00
Paul Barker
6d0830b26f Fix do_image_rpi_sdimg/do_image_wic dependencies
The dependency resolution code in bitbake has recently been optimized and this
seems to have slightly changed the behaviour of do_image_rpi_sdimg and
do_image_wic. We ensure that the main build artifacts are present by depending
on the relevant do_deploy and do_populate_sysroot tasks. However, we need to
ensure that other build tasks for these dependencies have also been executed
before we try to create our image. This can be achieved by adding a recursive
dependency on do_build, so that the do_build tasks of all recipes in the
dependency chain of do_image_rpi_sdimg/do_image_wic are executed before the
image function itself is executed.

The original issue seen here was that 'recipedata' files were not copied to
'tmp/deploy/licenses' as do_populate_lic for each dependency had not been ran
before the image creation function. The write_deploy_manifest function from
license.bbclass (listed in IMAGE_POSTPROCESS_COMMAND) therefore failed. Adding
the recursive dependency on do_build fixes this issue, ensuring do_populate_lic
runs before do_image_rpi_sdimg/do_image_wic.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2018-02-28 18:02:58 +00:00
Drew Moseley
72bc798ff5 u-boot: Update RPi Zero W defconfig to support DTB.
This makes the defconfig more consistent with the RPi 3 and
CONFIG_OF_EMBED is needed to get the RPi firmware provided
DTB to function.

Recently removed by:
    a50e19695f u-boot: drop upstreamed patches in v2018.01
however this change missed the cutoff for v2018.01

Signed-off-by: Drew Moseley <drew.moseley@northern.tech>
2018-02-14 17:52:28 +00:00
Hugo Hromic
a2ba56f74e linux-firmware: fix addition of NVRAM file to image (fixes #184)
Signed-off-by: Hugo Hromic <hhromic@gmail.com>
2018-02-05 19:19:06 +00:00
Jeff Wannamaker
ee668d8072 userland: Update to latest master
Add patch to allow multiple wayland clients per process

userland has limit of one wayland client per process and thereby allow compositors
to launch multiple wayland client apps

Signed-off-by: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-02-02 11:13:24 +00:00
Martin Jansa
073f1e845e omxplayer: make samba support configureable
* samba depends on libpam and it might be useful to disable support
  for it in DISTROs without pam in DISTRO_FEATURES
* disable it by default

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-02-01 18:42:47 +00:00
Martin Jansa
ea35d07b5b recipes: use oe.utils.conditional instead of deprecated base_conditional
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2018-02-01 13:40:32 +00:00
Martin Kelly
8643e28c3a linux-raspberrypi: fix build with devtool
Currently, building linux-raspberrypi with "devtool build" breaks
because ${B}.config doesn't yet exist when do_configure_prepend runs.

Fix this by taking some logic from kernel.bbclass do_configure to populate
${B}.config before do_configure_prepend.

The full explanation for why this is necessary is fairly complex:

- In devtool builds, externalsrc.bbclass gets inherited and sets a list of
SRCTREECOVEREDTASKS, which don't get run because they affect the source tree
and, when using devtool, we want the developer's changes to be the single
source of truth. kernel-yocto.bbclass adds do_kernel_configme to
SRCTREECOVEREDTASKS, so it doesn't run in a devtool build., In a normal
non-devtool build, do_kernel_configme creates ${B}.config.

- Normally (e.g. in linux-yocto), it would be OK that do_kernel_configme
doesn't run, because the first few lines of do_configure in kernel.bbclass
populate ${B}.config from either ${S}.config (if it exists) for custom
developer changes, or otherwise from ${WORDIR}/defconfig.

- In linux-raspberrypi, we add do_configure_prepend, which tweaks
${B}.config. Since this runs *before* the kernel.bbclass do_configure,
${B}.config doesn't yet exist and we hit an error. Thus we need to move
the logic from do_configure up to before our do_configure_prepend. Because
we are copying only a portion of do_configure and not the whole thing,
there is no clean way to do it using OE functionality, so we just
copy-and-paste.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-01-31 20:38:58 +00:00
Martin Kelly
dfa7f00bab linux-raspberrypi: remove custom oldconfig command
This command is done (with more correct flags) in kernel.bbclass's
kernel_do_configure. Since we inherit that and prepend to it, we don't
need to run it ourselves, as we end up just running it twice.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-01-31 20:38:58 +00:00
Hugo Hromic
1c9986257e rpi-config: fix config variables with the same initial name being overwritten 2018-01-29 18:24:15 +00:00
Andrei Gherzan
6235b0a854 bluez5: Use serial device alias for BT device
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-01-26 16:50:42 +00:00
Andrei Gherzan
0202bc2881 rpi-base.inc: Include udev-rules-rpi in MACHINE_EXTRA_RRECOMMENDS
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-01-26 16:50:42 +00:00
Andrei Gherzan
f864b1068f bluez5: Update BCM43430A1 firmware from Raspbian
[Issue #174]

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-01-23 13:34:12 +00:00
Andrei Gherzan
15d2ea0f5a linux-raspberrypi: Update 4.9 recipe to 4.9.77
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2018-01-23 13:34:12 +00:00
Andrea Galbusera
a50e19695f u-boot: drop upstreamed patches in v2018.01
These are now in upstream, so they are no longer required here.

Signed-off-by: Andrea Galbusera <gizero@gmail.com>
2018-01-22 20:20:38 +00:00
Martin Kelly
61c2a965a2 linux-firmware: make rpi fw specific to rpi
Currently, we are installing the rpi custom txt and fw files whenever
the meta-raspberrypi layer is included in bblayers.conf. This breaks
other machines that need to use the bcm43430 drivers but with alternate
txt or fw files.

Install these files only when "rpi" is in MACHINEOVERRIDES.

Signed-off-by: Martin Kelly <mkelly@xevo.com>
2018-01-22 19:10:14 +00:00
Ricardo Salveti
c47caaca32 rpi-base.inc: use $KERNEL_PACKAGE_NAME for the kernel package name
The kernel class is now using $KERNEL_PACKAGE_NAME to set the default
kernel package name in order to allow alternate kernel flavors.

This fixes the following bitbake warning:
Variable key RDEPENDS_${KERNEL_PACKAGE_NAME}-base (${KERNEL_PACKAGE_NAME}-image) replaces original key RDEPENDS_kernel-base ().

Signed-off-by: Ricardo Salveti <ricardo@opensourcefoundries.com>
2018-01-11 21:34:23 +00:00
Ricardo Salveti
ab5ef24ef8 rpi-config: allow VC4DTBO override on raspberrypi3-64
Allow user to replace VC4DTBO (e.g. vc4-kms-v3d) on raspberrypi3-64.

Signed-off-by: Ricardo Salveti <ricardo@opensourcefoundries.com>
2018-01-11 21:34:11 +00:00
Drew Moseley
58d86c0986 u-boot: Update RPi Zero W defconfig to support DTB.
This makes the defconfig more consistent with the RPi 3 and
CONFIG_OF_EMBED is needed to get the RPi firmware provided
DTB to function.

Signed-off-by: Drew Moseley <drew.moseley@northern.tech>

Added patch status information in patch header, and re-word of commit
message

Signed-off-by: Mirza Krak <mirza.krak@endian.se>
2018-01-11 21:33:55 +00:00
Mirza Krak
9c9c2bac61 raspberrypi0-wifi: update UBOOT_MACHINE variable
The rpi0-wifi has an machine/board specific defconfig instead of the generic one

Signed-off-by: Mirza Krak <mirza.krak@endian.se>
2018-01-11 21:33:55 +00:00
Mirza Krak
f900a6568c u-boot: add support for Raspberry Pi Zero W
It is all ready supported upstream and this will apply a backported
patch until next U-boot release.

Signed-off-by: Mirza Krak <mirza.krak@endian.se>
2018-01-11 21:33:55 +00:00
Paul Barker
24ffe9fb59 docs: Do not force alabaster theme
Sphinx will use the 'alabaster' theme by default when building locally. However,
Read the Docs will use their own theme by default which suits their site better.

By not specifying html_theme we allow both targets to use the appropriate
default theme.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-12-18 19:20:43 +00:00
Paul Barker
337a419c0e userland: Use commit date as PV
This gives us a package version which can be reliably expected to move forwards
not backwards.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-12-18 19:20:43 +00:00
Paul Barker
9bf918014b rpi-config: Add RPI_EXTRA_CONFIG option
The variable RPI_EXTRA_CONFIG can be set in local.conf to append text to the
Raspberry Pi config.txt file as described in the documentation.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-12-18 19:20:43 +00:00
Paul Barker
8124f87175 readme: Update quick links
* As we now use GitHub for development we should point users at this repo.

* Layer documentation is now published on Read the Docs.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-12-18 19:20:43 +00:00
Paul Barker
ea6dc59cd7 linux-raspberrypi: Update dev version to 4.14.y
The patch to add dtbo rules to the arm64 Makefile is no longer needed.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-12-04 17:53:26 +01:00
Paul Barker
0c41915260 linux-raspberrypi: Don't install empty firmware directory
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-12-04 17:53:26 +01:00
Paul Barker
ef9c8cb092 linux-raspberrypi: Update to 4.9.65
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-12-04 17:53:26 +01:00
Martin Jansa
14fd58b881 raspberrypi0-wifi, raspberrypi3: drop unused KERNEL_DEFCONFIG variables
* KERNEL_DEFCONFIG variable isn't used anywhere since this commit:
  88478c3874
* it was replaced with KBUILD_DEFCONFIG:
  recipes-kernel/linux/linux-raspberrypi.inc:KBUILD_DEFCONFIG_raspberrypi0-wifi ?= "bcmrpi_defconfig"
  recipes-kernel/linux/linux-raspberrypi.inc:KBUILD_DEFCONFIG_raspberrypi ?= "bcmrpi_defconfig"
  recipes-kernel/linux/linux-raspberrypi.inc:KBUILD_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig"
  recipes-kernel/linux/linux-raspberrypi.inc:KBUILD_DEFCONFIG_raspberrypi3 ?= "bcm2709_defconfig"
  recipes-kernel/linux/linux-raspberrypi.inc:KBUILD_DEFCONFIG_raspberrypi3-64 ?= "bcmrpi3_defconfig"

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2017-11-27 15:21:59 +01:00
Paul Barker
e0fe589092 rpi-base.inc: Fix KERNEL_IMAGETYPE assignment
We can't just override KERNEL_IMAGETYPE in machine-specific conf files without
breaking the implementation of RPI_USE_U_BOOT. Instead we need to define a new
KERNEL_IMAGETYPE_DIRECT variable which will control the value when u-boot is not
in use. This new variable may then be overridden as needed without breaking our
u-boot support.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-11-27 14:03:46 +01:00
Khem Raj
9b1a796cb7 userland: Update to latest revision
Forward port patches as needed

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-11-15 10:47:39 +00:00
Loys Ollivier
4d3a148b8e raspberrypi3-64: set default kernel to Image
Fixes: 50fd319205 for raspberrypi3-64.
Fixes: #153

For raspberrypi3-64 set default kernel image to "Image".

"zImage" are not supported by arm64 platforms. And ".gz" images are not
handled by bootloader yet.

Signed-off-by: Loys Ollivier <lollivier@baylibre.com>
2017-11-10 12:39:51 +00:00
Andrei Gherzan
4c09f3e6db firmware.inc: Update to 20171029
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-11-08 10:20:08 +00:00
Andrei Gherzan
50fd319205 rpi-base.inc: KERNEL_IMAGETYPE default to zImage
We used to have this as the default but there was a bug at some point in the
firmware which didn't work with compressed kernel images. We switched to Image
and never changed it back even though that bug is long history.

In this way we will stop carrying 15M of a kernel image. 4M looks much better.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-11-08 10:20:08 +00:00
Andrei Gherzan
c07d7055e5 pi-blaster: An .inc file looks too much for this small recipe
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-11-08 10:20:08 +00:00
Andrei Gherzan
abe5e31a89 linux-raspberrypi: Update 4.9 recipe to 4.9.59
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-11-08 10:20:08 +00:00
Andrei Gherzan
536c15bab9 x264: Disable asm for raspberrypi0-wifi
This used to work in the past because this machine was based on raspberrypi
one. Now that they are separate, we need a configuration for it too otherwise:

| common/arm/quant-a.S: Assembler messages:
| common/arm/quant-a.S:362: Error: selected processor does not support `rbit
r1,r1' in ARM mode
| common/arm/quant-a.S:363: Error: selected processor does not support `rbit
r1,r1' in ARM mode

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-11-08 10:20:08 +00:00
Francesco Giancane
76f5a7df71 userland: RPROVIDES is missing libegl
userland package is the Raspberry Pi provider for the openGL stack.
If selected, it shall provide the gles2 and egl stacks in conjunction
with mesa-gl.

libegl was missing in the RPROVIDES variable, thus some run-time
dependencies were not met when using userland as provider.

Signed-off-by: Francesco Giancane <francescogiancane8@gmail.com>
2017-10-28 11:45:19 +02:00
Michael Gloff
6a7606a1e4 bluez5: Replace /lib with ${nonarch_base_libdir}
Use standard /lib variable name and avoid
QA errors when usermerge DISTRO_FEATURE is enabled.

Signed-off-by: Michael Gloff <mgloff@hotmail.com>
2017-10-27 22:28:31 +02:00
Michael Gloff
1ab83ec30a linux-raspberrypi: Replace /lib with ${nonarch_base_libdir}
Use standard /lib variable name and avoid
QA errors when usermerge DISTRO_FEATURE is enabled.

Signed-off-by: Michael Gloff <mgloff@hotmail.com>
2017-10-27 22:28:31 +02:00
Michael Gloff
be340eec3f linux-firmware: Replace /lib with ${nonarch_base_libdir}
Use standard /lib variable name and avoid
QA errors when usermerge DISTRO_FEATURE is enabled.

Signed-off-by: Michael Gloff <mgloff@hotmail.com>
2017-10-27 22:28:31 +02:00
Francesco Giancane
a1cfeb3324 weston: remove rpi-backend configuration switch
rpi-backend.so was an attempt to create a specialized
weston backend to be used on raspberry pi like platforms.

At the moment, this backend's support has been dropped in favor
of using the standard drm backend, as the vc4 driver is now mainline
in mesa and in kernel (for kernel support).

As a result, weston on raspberry pi does not require the rpi-backend.so
anymore, nor it is buildable (weston's configure complains about
unrecognized configuration switch).

This patch enables weston to natively run on the DRM backend.

Signed-off-by: Francesco Giancane <francescogiancane8@gmail.com>
2017-10-20 15:54:06 +01:00
Paul Barker
fe99478aa9 docs: Drop comment on broken raspberrypi3-64 HDMI output
Graphical output on raspberrypi3-64 should now be fixed.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-10-12 18:14:20 +01:00
Paul Barker
9d84186870 linux-raspberrypi: Keep framebuffer support when vc4graphics is enabled
Framebuffer support may be required for some monitors and applications.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-10-09 19:31:28 +01:00
Paul Barker
f6fecae825 rpi-config: Do not force HDMI mode for raspberrypi3-64
Forcing hdmi_drive=2 prevents the use of a DVI monitor and a HDMI-DVI converter
cable.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-10-09 19:31:28 +01:00
Andrei Gherzan
c716e0d30c linux-raspberrypi.inc: Define KBUILD_DEFCONFIG for rpi0 WiFi
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-10-03 17:09:35 +01:00
Martin Jansa
70b9c3ec57 Revert "qtbase: Enable EGLFS support"
* this reverts commit 04b37dbdb7.
* this makes qtbase and everything which depends on some qt* recipe to
  be effectivelly MACHINE_ARCH

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2017-10-02 15:30:55 +01:00
Otavio Salvador
04b37dbdb7 qtbase: Enable EGLFS support
Change-Id: Ib96bd995091f6838f7c09cf5daedbf60f18e1a2d
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2017-09-27 11:16:31 +01:00
Otavio Salvador
e2432d3bb4 layer.conf: Add Dynamic Layer mechanism
This allow for bbappend files to be enabled when specific layers are
included.

Change-Id: Iecbcf0de85a64aad71605b60ecd3d9a2586fae85
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2017-09-27 11:16:31 +01:00
Paul Barker
f1e2bf782f omxplayer: Explain inclusion of ffmpeg
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
47da217fda omxplayer: Update Upstream-status tag on patch
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
c26e9d3df5 rpi-base.inc: Set dependencies for creating wic images
We need to ensure that the bootloader and firmware files are present in the
deploy directory before creating wic images.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
37e4e18f4a sdcard_image-rpi: Use un-timestamped link to rootfs partition image
The timestamp in the rootfs partition image filename may not match the current
timestamp if the do_image_rpi_sdimg step is repeated without repeating the
previous do_image_ext3 (or similar) step.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
134e7dd943 sdcard_image-rpi: Drop unnecessary sync commands
These commands are unnecessary and seem to mask failures to find the rootfs.ext3
file when re-running the do_image_rpi_sdimg stage without re-running the
preceeding do_image_ext3 stage.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
e9bb7f0c6d Support using u-boot with Image format for raspberrypi3-64
For raspberrypi3-64 we need to use the Image or Image.gz format with u-boot
instead of the legacy uImage format. We also need to issue the 'booti' command
to boot the kernel instead of 'bootm'.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
43e0169ab7 rpi-base.inc: Simplify setting of IMAGE_BOOT_FILES
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
129107837d linux-raspberrypi-dev: Bump to 4.13.y series
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
49f1a94512 linux-raspberrypi: Move LOADADDR setting to inc file
There is no reason to continue supporting pre-4.8 series kernels so we can move
the setting of LOADADDR to the common inc file.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
e7bac0bed5 linux-raspberrypi: Merge inc files
There is no need to have 2 separate inc files any more and the existing code has
several duplications.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
46f78e37e3 linux-raspberrypi: Drop ineffective code
The code to determine if we need to depend on lzop-native will fail as the local
defconfig file no longer exists.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
cbd2412fb4 linux-raspberrypi-base.bbclass: Drop
The only remaining function in linux-raspberrypi-base was split_overlays() which
is used in the sdcard_image-rpi class. So we can move this function over and
drop the now-empty linux-raspberrypi-base class.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
8311d16e59 linux-raspberrypi: Drop unnecessary code
* The kerneltype variable is not used anywhere after being set.

* The manipulation of KERNEL_DEVICETREE is effectively a no-op, we read the
  current value in get_dts() and store this back into the same variable.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Paul Barker
b00d914e78 omxplayer: Fix build issues
* Update the recipe and patch the Makefile to not require internet access during
  do_compile. Unfortunately, the upstream Makefile wants to access a web service
  hosted on Heroku and to "git clone" ffmpeg with no fixed commit hash.

* Patch Makefile.ffmpeg to avoid a potential race condition between the
  configure & compile stages.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-09-24 20:39:35 +01:00
Andrei Gherzan
acd5869235 linux-firmware: Update brcmfmac43430 to 7.45.41.46
The version of this firmware provided by linux-firmware is 7.45.41.26. This
version seems to have connectivity issues when bonding interfaces. Raspbian
included an updated version (7.45.41.46) which tested, proved to fix this
problem (see https://github.com/resin-os/meta-resin/issues/812).

The version Raspbian is providing is not yet in linux-firmware as they have it
directly from Cypress (see https://github.com/RPi-Distro/repo/issues/88).
Besides the issue described above, it fixes various other issues including a
broadpwn fix.

Hopefully this version, or a newer one, will end up in upstream soon. In order
to catch when that happens and stop overwriting this firmware, a check is added
in the racipe based on the md5sum of the current shipped firmware.

In terms of ditribution license, we got an informal one in the github thread
mentioned above.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-09-21 23:11:13 +01:00
Khem Raj
f2896b0e5c xserver-xf86-config: Disable glamor for the modesetting driver on pi64
Fixes a xorg server crash with musl see details
https://github.com/voidlinux/void-packages/issues/6091

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-09-20 15:50:20 +01:00
Khem Raj
6c4de0b5fe linux-raspberrypi: Build dtbs with dtbs make target for rpi64
OE currently builds dtb files with its own custom targets by
specifying each dtb file as makefile target, this creates bad
dtb for rpi64 bit. This patch calles 'make dtbs' at the end
which regenerates the correct dtb files

This makes the vc4 initialize properly on rpi64

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-09-20 15:50:20 +01:00
Khem Raj
bb51049ebe raspberrypi3-64: Use vc4-fkms-v3d overlay for rpi64
Use correct overlay for enabled vc4 accelaration
This enable 3D accelaration over dispmanx on vc4/rpi64
Enable audio over HDMI
Disable overscan to avoid graphics glitches

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-09-20 15:50:20 +01:00
Khem Raj
d31377b81a linux-raspberrypi_4.9.bb: Upgrade to 4.9.50
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-09-20 15:50:20 +01:00
Andrea Galbusera
5a2b34e56c u-boot: drop now upstreamed patches
oe-core now provides v2017.09 of u-boot which already merged both patches
introduced by commit 94e2929f74 so we can
drop them from meta-raspberrypi.

Signed-off-by: Andrea Galbusera <gizero@gmail.com>
2017-09-18 21:59:02 +01:00
Yusuke Mitsuki
a120ece0e4 bluez5: enable bluetooth on raspberrypi0-wifi
Add functions/variable to enabling bluetooth on raspberrypi0-wifi.

Signed-off-by: Yusuke Mitsuki <mickey.happygolucky@gmail.com>
2017-09-11 13:12:42 +01:00
Yusuke Mitsuki
6abd752bd0 bluez5: add functions/variables to enabling bluetooth on another raspberrypi
functions/variables in this bbappend implemented for only raspberrypi3.
But these must be able to used to enabling bluetooth on another raspberrypi that has bluetooth feature such as raspberrypi0-wifi.

The simple solution is a duplicating these but it is not good ideas for maintainance.

Add functions/variables follows to simplify to enabling bluetooth on another raspberrypi that has bluetooth.
- BCM_BT_SOURCES
- enable_bcm_bluetooth()
- BCM_BT_FIRMWARE
- BCM_BT_SERVICE

Signed-off-by: Yusuke Mitsuki <mickey.happygolucky@gmail.com>
2017-09-11 13:12:42 +01:00
Andrei Gherzan
91f59ae288 userland: Update to current master HEAD
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-09-08 18:47:41 +01:00
Andrei Gherzan
aea2129fe3 omxplayer: Update to current master HEAD
Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-09-08 18:47:41 +01:00
Andrei Gherzan
50cbbb0151 pi-blaster: Update to current master HEAD
License in the README was moved a couple of lines below.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-09-08 18:47:41 +01:00
Andrei Gherzan
b6b6ecb6cb python-sense-hat: Update to 2.2.0
As well integrate with meta-oe bbclass pypi.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-09-08 18:47:41 +01:00
Andrei Gherzan
fa82321af2 rpi-gpio: Update to 0.6.3
As well integrate with meta-oe bbclass pypi.

Signed-off-by: Andrei Gherzan <andrei@gherzan.com>
2017-09-08 18:47:41 +01:00
Khem Raj
d2acb3ffda extra-apps.md: Document limitations of raspberrypi3-64
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-09-08 18:43:53 +01:00
Khem Raj
b934304e43 linux-raspberrypi: Disable DRBD lkm
This comes from drbd-utils in meta-oe

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-09-08 18:43:53 +01:00
Aurelian Zanoschi
e59132bdcc wiringpi: Fix linking problem
[github issue #105: wiringpi library is not linked correctly]

Incorrect order of compiler flags causing the libwiringpi.so library
to not have the required linking dependencies. The cross-compilation
patch needed to be reworked in order to fix this problem.

Fixes #105

Signed-off-by: Aurelian Zanoschi <aurelian17@gmail.com>
2017-09-01 13:59:51 +01:00
Zdzisław Krajewski
7a7d871cc1 linux-raspberrypi: Add option for disabling rpi boot logo.
Signed-off-by Zdzisław Krajewski <zdzichucb@gmail.com>
2017-09-01 11:14:19 +01:00
Andrea Ghittino
88478c3874 linux-raspberrypi: fix kernel configuration using cfg files
In tree configurations are now used to build the kernel and
it is possible to extend the config via bbappend and cfg fragments

Fix issue 14

Signed-off-by: Andrea Ghittino <aghittino@gmail.com>
2017-08-31 15:12:11 +01:00
Andrea Galbusera
f70b24b1f1 sdcard_image-rpi: fix absolute path in vfat symlink
Fix bitbake complaining with:

ERROR: core-image-minimal-1.0-r0 do_image_complete: sstate found an absolute
path symlink [...].vfat pointing at [...].vfat. Please replace this with a
relative link.

This patch redefines SDIMG_VFAT as a file name instead of a full absolute path,
then fixing the symlink creation by pointing to a relative target. The cp
command that deploys the artifact is changed accordingly to include the
destination path.

Signed-off-by: Andrea Galbusera <gizero@gmail.com>
2017-08-29 16:27:05 +01:00
Paul Barker
2aa08e4f97 firmware: Update to tag '1.20170811'
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-08-29 15:36:13 +01:00
Paul Barker
c098439ac1 linux-raspberrypi: Update to tag 'raspberrypi-kernel_1.20170811-1'
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-08-29 15:36:13 +01:00
Paul Barker
94e2929f74 u-boot: Fix boot and keyboard for rpi devices
u-boot v2017.07 was not able to boot a Linux kernel or handle keyboard input.
This is fixed by reverting a config change to re-enable CONFIG_OF_EMBED and
backporting another config change to enable CONFIG_DM_KEYBOARD.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-08-28 22:20:02 +01:00
Khem Raj
1a06502656 gstreamer1.0-omx: Match with oe-core 1.12.x gstreamer
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2017-08-25 08:19:30 +01:00
Paul Barker
1b589998f4 Merge pull request #102 from shr-project/jansa/master
Fixes for bitbake world
2017-08-13 09:25:54 +01:00
Martin Jansa
ff02bf92e6 packagegroup-rpi-test, rpi-test-image: restrict to ^rpi$ and include omxplayer only for 32bit rpi
* omxplayer has:
  COMPATIBLE_MACHINE_rpi_aarch64 = null

  so it cannot be inclued for raspberrypi3-64
* components used by this packagegroup are also restricted to ^rpi$ so
  the packagegroup and the image using it cannot be built for anything else
* fixes couple errors when trying to build world with meta-raspberrypi included

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2017-07-27 10:56:34 +02:00
Martin Jansa
56d0bdb5fe recipe: anchor regexps in COMPATIBLE_MACHINE
* bitbake is using re.match, so raspberrypi actually matches with anything
  ^raspberrypi.* which currently works, but it will also match with hypothetical
  raspberrypi-is-no-more-this-is-banana-now MACHINE which isn't intended by
  this COMPATIBLE_MACHINE.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2017-07-27 10:56:34 +02:00
Martin Jansa
ab4006bb2e weston: use just one append and one bb.utils.contains
* drop duplicated --enable-rpi-compositor and WESTON_NATIVE_BACKEND=rpi-backend.so
* use rpi override, adding --enable-rpi-compositor unconditionally breaks other MACHINEs with:
  configure: WARNING: unrecognized options: --enable-rpi-compositor
* use just one append and one bb.utils.contains to save some bitbake cycles while parsing

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2017-07-27 10:56:34 +02:00
Thomas Thorne
f6a2ca21c7 rpio: Add RDEPENDS For python-logging & python-threading
[GitHub Ticket #98 - rpio requires the logging and threading Python
packages but does not RDEPENDS them in recipie]

The rpio tool needs the Python logging and threading pacakges installed
on the target system for it to work.  The pacakges are not included when
doing a rpi-basci-image.  This change updates the recipe so that all the
required dependencies of the prio script are identified by the recipie.

Fixes #98

Signed-off-by: Thomas A F Thorne <TafThorne@GoogleMail.com>
2017-07-26 17:09:06 +01:00
Andrea Galbusera
1e1b50c55d userland: Add missing EGL_CAST defines
Needed by libepoxy

Signed-off-by: Andrea Galbusera <gizero@gmail.com>
2017-07-14 14:35:59 +01:00
Paul Barker
4cff21e243 linux-raspberrypi-dev: Switch to rpi-4.12.y
Linux v4.12 is now released.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-07-05 15:45:33 +01:00
Paul Barker
16a8384a9a linux-rasbperrypi: Update to 4.9.35
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
2017-07-02 11:37:13 +01:00
Andrea Galbusera
04a33eadfb rpi-base: wic: generate entries for u-boot
This commit allow wic generated images to work when we want u-boot to
load the kernel image.

Augment IMAGE_BOOT_FILES with the proper entries when KERNEL_IMAGETYPE
is "uImage". More specifically add u-boot image and boot.scr to deployed files
and give the proper name to the kernel image accordingly.

Signed-off-by: Andrea Galbusera <gizero@gmail.com>
2017-06-30 11:46:21 +01:00
Andreas Müller
fc17cd7419 sdcard_image-rpi: replace IMAGE_DEPENDS_rpi-sdimg by do_image_rpi-sdimg[depends]
* oe-core removed IMAGE_DEPENDS -> parsing fails with hint how to fix
* add required task for each recipe

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
2017-06-29 23:00:36 +01:00
Michal Mazurek
d9dbfe6536 raspberrypi3-64.conf: Don't use raspberrypi as MACHINEOVERRIDES
The current setup broke the build for rpi3-64 when we wanted to port
some changes from rpi3 to rpi0.

Signed-off-by: Michal Mazurek <michal@resin.io>
2017-06-26 14:51:06 +01:00
Andrei Gherzan
ca77a583c3 Merge pull request #86 from mattsm/master
sdcard_image-rpi.bbclass: deploy vfat partition
2017-06-26 13:37:05 +01:00
Matthew McClintock
a6bb80c935 sdcard_image-rpi.bbclass: deploy vfat partition
This is useful to update the bootloader/vfat partition from u-boot when
you don't want to update everything:

U-Boot> tftpboot 0x1000000 tmp/0VXje
Waiting for Ethernet connection... done.
Using sms0 device
TFTP from server 192.168.0.1; our IP address is 192.168.0.26
Filename 'image.vfat'.
Load address: 0x1000000
Loading: ##################################################  40 MiB
	 2.1 MiB/s
done
Bytes transferred = 41943040 (2800000 hex)
U-Boot> mmc part

Partition Map for MMC device 0  --   Partition Type: DOS

Part	Start Sector	Num Sectors	UUID		Type
  1	8192      	81920     	a63a4fbc-01	0c Boot
  2	90112     	163840    	a63a4fbc-02	83
U-Boot> mmc erase 0x2000 0x14000

MMC erase: dev # 0, block # 8192, count 81920 ... 81920 blocks erased:
OK
U-Boot> mmc write 0x1000000 0x2000 0x14000

MMC write: dev # 0, block # 8192, count 81920 ... 81920 blocks written:
OK
U-Boot>

Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net>
2017-06-21 10:54:32 -05:00
Andrei Gherzan
11fec46133 Merge pull request #83 from Technux/update-pi-blaster
pi-blaster: update to include proper rpi3 support
2017-06-09 12:22:05 +01:00
Petter Mabäcker
df901c2915 pi-blaster: update to include proper rpi3 support
Update to latest available revision, in order to include proper rpi3
support as well as latest fixes.

LIC_FILES_CHKSUM for the license text in README.md is changed to handle
fixes of whitespace and newlines in the license text, introduced by the
pi-blaster commit: '0e1a1df Cleaning up the README'.

Signed-off-by: Petter Mabäcker <petter@technux.se>
2017-06-08 16:28:23 +02:00
98 changed files with 1605 additions and 1314 deletions

View File

@@ -10,10 +10,11 @@ Yocto BSP layer for the Raspberry Pi boards - <http://www.raspberrypi.org/>.
## Quick links ## Quick links
* Git repository web frontend: * Git repository web frontend:
<http://git.yoctoproject.org/cgit/cgit.cgi/meta-raspberrypi/> <https://github.com/agherzan/meta-raspberrypi>
* Mailing list (yocto mailing list): <yocto@yoctoproject.org> * Mailing list (yocto mailing list): <yocto@yoctoproject.org>
* Issues management (Github Issues): * Issues management (Github Issues):
<https://github.com/agherzan/meta-raspberrypi/issues> <https://github.com/agherzan/meta-raspberrypi/issues>
* Documentation: <http://meta-raspberrypi.readthedocs.io/en/latest/>
## Description ## Description
@@ -46,7 +47,7 @@ This layer depends on:
1. source poky/oe-init-build-env rpi-build 1. source poky/oe-init-build-env rpi-build
2. Add this layer to bblayers.conf and the dependencies above 2. Add this layer to bblayers.conf and the dependencies above
3. Set MACHINE in local.conf to one of the supported boards 3. Set MACHINE in local.conf to one of the supported boards
4. bitbake rpi-hwup-image 4. bitbake core-image-base
5. dd to a SD card the generated sdimg file (use xzcat if rpi-sdimg.xz is used) 5. dd to a SD card the generated sdimg file (use xzcat if rpi-sdimg.xz is used)
6. Boot your RPI. 6. Boot your RPI.

View File

@@ -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

View File

@@ -1,8 +1,7 @@
inherit image_types inherit image_types
inherit linux-raspberrypi-base
# #
# Create an image that can by written onto a SD card using dd. # Create an image that can be written onto a SD card using dd.
# #
# The disk layout used is: # The disk layout used is:
# #
@@ -48,17 +47,20 @@ IMAGE_ROOTFS_ALIGNMENT = "4096"
# Use an uncompressed ext3 by default as rootfs # Use an uncompressed ext3 by default as rootfs
SDIMG_ROOTFS_TYPE ?= "ext3" SDIMG_ROOTFS_TYPE ?= "ext3"
SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}" SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${SDIMG_ROOTFS_TYPE}"
IMAGE_DEPENDS_rpi-sdimg = " \ do_image_rpi_sdimg[depends] = " \
parted-native \ parted-native:do_populate_sysroot \
mtools-native \ mtools-native:do_populate_sysroot \
dosfstools-native \ dosfstools-native:do_populate_sysroot \
virtual/kernel:do_deploy \ virtual/kernel:do_deploy \
${IMAGE_BOOTLOADER} \ ${IMAGE_BOOTLOADER}:do_deploy \
${@bb.utils.contains('KERNEL_IMAGETYPE', 'uImage', 'u-boot', '',d)} \ ${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'u-boot:do_deploy', '',d)} \
${@bb.utils.contains('RPI_USE_U_BOOT', '1', 'rpi-u-boot-scr:do_deploy', '',d)} \
" "
do_image_rpi_sdimg[recrdeps] = "do_build"
# SD card image name # SD card image name
SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg" SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg"
@@ -72,6 +74,22 @@ SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg"
# Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS. # Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS.
FATPAYLOAD ?= "" FATPAYLOAD ?= ""
# SD card vfat partition image name
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")
# Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' (4.1.x) or by '.dtbo' (4.4.9+) string and will be put in a dedicated folder
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 () { IMAGE_CMD_rpi-sdimg () {
# Align partitions # Align partitions
@@ -82,7 +100,7 @@ IMAGE_CMD_rpi-sdimg () {
echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} KiB and RootFS $ROOTFS_SIZE KiB" echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} KiB and RootFS $ROOTFS_SIZE KiB"
# Check if we are building with device tree support # Check if we are building with device tree support
DTS="${@get_dts(d)}" DTS="${KERNEL_DEVICETREE}"
# Initialize sdcard image file # Initialize sdcard image file
dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE} dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
@@ -102,36 +120,26 @@ IMAGE_CMD_rpi-sdimg () {
mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* ::/ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* ::/
if test -n "${DTS}"; then if test -n "${DTS}"; then
# Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' (4.1.x) or by '.dtbo' (4.4.9+) string and will be put in a dedicated folder
DT_OVERLAYS="${@split_overlays(d, 0)}"
DT_ROOT="${@split_overlays(d, 1)}"
# Copy board device trees to root folder # Copy board device trees to root folder
for DTB in $DT_ROOT; do for dtbf in ${@split_overlays(d, True)}; do
DTB_BASE_NAME=`basename ${DTB} .dtb` dtb=`basename $dtbf`
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::$dtb
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb ::${DTB_BASE_NAME}.dtb
done done
# Copy device tree overlays to dedicated folder # Copy device tree overlays to dedicated folder
mmd -i ${WORKDIR}/boot.img overlays mmd -i ${WORKDIR}/boot.img overlays
for DTB in $DT_OVERLAYS; do for dtbf in ${@split_overlays(d, False)}; do
DTB_EXT=${DTB##*.} dtb=`basename $dtbf`
DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"` mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::overlays/$dtb
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.${DTB_EXT} ::overlays/${DTB_BASE_NAME}.${DTB_EXT}
done done
fi fi
case "${KERNEL_IMAGETYPE}" in if [ "${RPI_USE_U_BOOT}" = "1" ]; then
"uImage")
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot.bin ::${SDIMG_KERNELIMAGE} 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 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} mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${SDIMG_KERNELIMAGE}
;; fi
esac
if [ -n ${FATPAYLOAD} ] ; then if [ -n ${FATPAYLOAD} ] ; then
echo "Copying payload into VFAT" echo "Copying payload into VFAT"
@@ -145,14 +153,20 @@ IMAGE_CMD_rpi-sdimg () {
echo "${IMAGE_NAME}" > ${WORKDIR}/image-version-info echo "${IMAGE_NAME}" > ${WORKDIR}/image-version-info
mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}/image-version-info :: mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}/image-version-info ::
# Deploy vfat partition (for u-boot case only)
if [ "${RPI_USE_U_BOOT}" = "1" ]; then
cp ${WORKDIR}/boot.img ${IMGDEPLOYDIR}/${SDIMG_VFAT}
ln -sf ${SDIMG_VFAT} ${SDIMG_LINK_VFAT}
fi
# Burn Partitions # 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 SDIMG_ROOTFS_TYPE is a .xz file use xzcat
if echo "${SDIMG_ROOTFS_TYPE}" | egrep -q "*\.xz" if echo "${SDIMG_ROOTFS_TYPE}" | egrep -q "*\.xz"
then 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 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 fi
# Optionally apply compression # Optionally apply compression

View File

@@ -9,6 +9,17 @@ BBFILE_COLLECTIONS += "raspberrypi"
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/" BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
BBFILE_PRIORITY_raspberrypi = "9" BBFILE_PRIORITY_raspberrypi = "9"
LAYERSERIES_COMPAT_raspberrypi = "sumo"
# Additional license directories. # Additional license directories.
LICENSE_PATH += "${LAYERDIR}/files/custom-licenses" 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())}"

View File

@@ -6,6 +6,7 @@ SOC_FAMILY = "rpi"
include conf/machine/include/soc-family.inc include conf/machine/include/soc-family.inc
IMAGE_FSTYPES ?= "tar.bz2 ext3 rpi-sdimg" IMAGE_FSTYPES ?= "tar.bz2 ext3 rpi-sdimg"
WKS_FILE ?= "sdimage-raspberrypi.wks"
XSERVER = " \ XSERVER = " \
xserver-xorg \ xserver-xorg \
@@ -13,15 +14,8 @@ XSERVER = " \
${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "xf86-video-modesetting", "xf86-video-fbdev", d)} \ ${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "xf86-video-modesetting", "xf86-video-fbdev", d)} \
" "
KERNEL_DEVICETREE ?= " \ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
bcm2708-rpi-0-w.dtb \ overlays/dwc2.dtbo \
bcm2708-rpi-b.dtb \
bcm2708-rpi-b-plus.dtb \
bcm2709-rpi-2-b.dtb \
bcm2710-rpi-3-b.dtb \
bcm2708-rpi-cm.dtb \
bcm2710-rpi-cm3.dtb \
\
overlays/hifiberry-amp.dtbo \ overlays/hifiberry-amp.dtbo \
overlays/hifiberry-dac.dtbo \ overlays/hifiberry-dac.dtbo \
overlays/hifiberry-dacplus.dtbo \ overlays/hifiberry-dacplus.dtbo \
@@ -35,20 +29,50 @@ KERNEL_DEVICETREE ?= " \
overlays/pitft35-resistive.dtbo \ overlays/pitft35-resistive.dtbo \
overlays/pps-gpio.dtbo \ overlays/pps-gpio.dtbo \
overlays/rpi-ft5406.dtbo \ overlays/rpi-ft5406.dtbo \
overlays/rpi-poe.dtbo \
overlays/w1-gpio.dtbo \ overlays/w1-gpio.dtbo \
overlays/w1-gpio-pullup.dtbo \ overlays/w1-gpio-pullup.dtbo \
overlays/pi3-disable-bt.dtbo \ overlays/pi3-disable-bt.dtbo \
overlays/pi3-miniuart-bt.dtbo \ overlays/pi3-miniuart-bt.dtbo \
overlays/vc4-kms-v3d.dtbo \ overlays/vc4-kms-v3d.dtbo \
overlays/at86rf233.dtbo \
" "
KERNEL_IMAGETYPE ?= "Image"
RPI_KERNEL_DEVICETREE ?= " \
bcm2708-rpi-0-w.dtb \
bcm2708-rpi-b.dtb \
bcm2708-rpi-b-plus.dtb \
bcm2709-rpi-2-b.dtb \
bcm2710-rpi-3-b.dtb \
bcm2710-rpi-3-b-plus.dtb \
bcm2708-rpi-cm.dtb \
bcm2710-rpi-cm3.dtb \
"
KERNEL_DEVICETREE ?= " \
${RPI_KERNEL_DEVICETREE} \
${RPI_KERNEL_DEVICETREE_OVERLAYS} \
"
# 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_DIRECT ??= "zImage"
KERNEL_IMAGETYPE ?= "${@bb.utils.contains('RPI_USE_U_BOOT', '1', \
'${KERNEL_IMAGETYPE_UBOOT}', '${KERNEL_IMAGETYPE_DIRECT}', d)}"
MACHINE_FEATURES += "apm usbhost keyboard vfat ext2 screen touchscreen alsa bluetooth wifi sdio" MACHINE_FEATURES += "apm usbhost keyboard vfat ext2 screen touchscreen alsa bluetooth wifi sdio"
# Raspberry Pi has no hardware clock # Raspberry Pi has no hardware clock
MACHINE_FEATURES_BACKFILL_CONSIDERED = "rtc" MACHINE_FEATURES_BACKFILL_CONSIDERED = "rtc"
MACHINE_EXTRA_RRECOMMENDS += " kernel-modules" MACHINE_EXTRA_RRECOMMENDS += " kernel-modules udev-rules-rpi"
# Set Raspberrypi splash image # Set Raspberrypi splash image
SPLASH = "psplash-raspberrypi" SPLASH = "psplash-raspberrypi"
@@ -83,9 +107,17 @@ def make_dtb_boot_files(d):
IMAGE_BOOT_FILES ?= "bcm2835-bootfiles/* \ IMAGE_BOOT_FILES ?= "bcm2835-bootfiles/* \
${@make_dtb_boot_files(d)} \ ${@make_dtb_boot_files(d)} \
${KERNEL_IMAGETYPE};${SDIMG_KERNELIMAGE} \ ${@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)} \
"
do_image_wic[recrdeps] = "do_build"
# The kernel image is installed into the FAT32 boot partition and does not need # The kernel image is installed into the FAT32 boot partition and does not need
# to also be installed into the rootfs. # to also be installed into the rootfs.
RDEPENDS_kernel-base = "" RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""

View File

@@ -1,3 +1,3 @@
# RaspberryPi BSP default versions # RaspberryPi BSP default versions
PREFERRED_VERSION_linux-raspberrypi ??= "4.9.%" PREFERRED_VERSION_linux-raspberrypi ??= "4.14.%"

View File

@@ -6,10 +6,12 @@ DEFAULTTUNE ?= "arm1176jzfshf"
require conf/machine/include/tune-arm1176jzf-s.inc require conf/machine/include/tune-arm1176jzf-s.inc
include conf/machine/include/rpi-base.inc include conf/machine/include/rpi-base.inc
MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-bcm43430" MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-bcm43430 \
linux-firmware-bcm43430a1-hcd \
"
SDIMG_KERNELIMAGE ?= "kernel.img" SDIMG_KERNELIMAGE ?= "kernel.img"
KERNEL_DEFCONFIG ?= "bcmrpi_defconfig" UBOOT_MACHINE ?= "rpi_0_w_defconfig"
UBOOT_MACHINE ?= "rpi_config"
SERIAL_CONSOLE ?= "115200 ttyS0" SERIAL_CONSOLE ?= "115200 ttyS0"
VC4_CMA_SIZE ?= "cma-128" VC4_CMA_SIZE ?= "cma-128"

View File

@@ -2,35 +2,22 @@
#@NAME: RaspberryPi 3 Development Board #@NAME: RaspberryPi 3 Development Board
#@DESCRIPTION: Machine configuration for the RaspberryPi 3 in 64 bits mode #@DESCRIPTION: Machine configuration for the RaspberryPi 3 in 64 bits mode
MACHINEOVERRIDES = "raspberrypi3:raspberrypi:${MACHINE}" MACHINEOVERRIDES = "raspberrypi3:${MACHINE}"
MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-bcm43430" MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-bcm43430 \
linux-firmware-bcm43455 \
linux-firmware-bcm43430a1-hcd \
linux-firmware-bcm4345c0-hcd \
"
require conf/machine/include/arm/arch-armv8.inc require conf/machine/include/arm/arch-armv8.inc
include conf/machine/include/rpi-base.inc include conf/machine/include/rpi-base.inc
KERNEL_DEVICETREE = " \ RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2710-rpi-3-b.dtb \ broadcom/bcm2710-rpi-3-b.dtb \
broadcom/bcm2710-rpi-3-b-plus.dtb \
broadcom/bcm2837-rpi-3-b.dtb \ broadcom/bcm2837-rpi-3-b.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 \
" "
SERIAL_CONSOLE ?= "115200 ttyS0" SERIAL_CONSOLE ?= "115200 ttyS0"
@@ -38,3 +25,10 @@ VC4_CMA_SIZE ?= "cma-256"
UBOOT_MACHINE = "rpi_3_config" UBOOT_MACHINE = "rpi_3_config"
MACHINE_FEATURES_append = " vc4graphics" 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"
# "zImage" not supported on arm64 and ".gz" images not supported by bootloader yet
KERNEL_IMAGETYPE_DIRECT ?= "Image"
KERNEL_BOOTCMD ?= "booti"

View File

@@ -6,10 +6,14 @@ DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc require conf/machine/include/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc include conf/machine/include/rpi-base.inc
MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-bcm43430" MACHINE_EXTRA_RRECOMMENDS += "\
linux-firmware-bcm43430 \
linux-firmware-bcm43455 \
linux-firmware-bcm43430a1-hcd \
linux-firmware-bcm4345c0-hcd \
"
SDIMG_KERNELIMAGE ?= "kernel7.img" SDIMG_KERNELIMAGE ?= "kernel7.img"
KERNEL_DEFCONFIG ?= "bcm2709_defconfig"
UBOOT_MACHINE = "rpi_3_32b_config" UBOOT_MACHINE = "rpi_3_32b_config"
SERIAL_CONSOLE ?= "115200 ttyS0" SERIAL_CONSOLE ?= "115200 ttyS0"
VC4_CMA_SIZE ?= "cma-256" VC4_CMA_SIZE ?= "cma-256"

View File

@@ -120,7 +120,7 @@ todo_include_todos = False
# The theme to use for HTML and HTML Help pages. See the documentation for # The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes. # a list of builtin themes.
# #
html_theme = 'alabaster' # html_theme = 'alabaster'
# Theme options are theme-specific and customize the look and feel of a theme # Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the # further. For a list of options available for each theme, see the

View File

@@ -32,6 +32,8 @@ Accommodate the values above to your own needs (ex: ext3 / ext4).
* `GPU_MEM_1024`: GPU memory in megabyte for the 1024MB Raspberry Pi. Ignored by * `GPU_MEM_1024`: GPU memory in megabyte for the 1024MB Raspberry Pi. Ignored by
the 256MB/512MB RP. Overrides gpu_mem. Max 944. Default not set. the 256MB/512MB RP. Overrides gpu_mem. Max 944. Default not set.
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/memory.md>
## Add purchased license codecs ## Add purchased license codecs
To add you own licenses use variables `KEY_DECODE_MPG2` and `KEY_DECODE_WVC1` in To add you own licenses use variables `KEY_DECODE_MPG2` and `KEY_DECODE_WVC1` in
@@ -44,6 +46,7 @@ You can supply more licenses separated by comma. Example:
KEY_DECODE_WVC1 = "0x12345678,0xabcdabcd,0x87654321" KEY_DECODE_WVC1 = "0x12345678,0xabcdabcd,0x87654321"
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/codeclicence.md>
## Disable overscan ## Disable overscan
@@ -53,18 +56,57 @@ local.conf:
DISABLE_OVERSCAN = "1" DISABLE_OVERSCAN = "1"
## Disable splash screen
By default a rainbow splash screen is shown after the GPU firmware is loaded.
To disable this set this variable in local.conf:
DISABLE_SPLASH = "1"
## Boot delay
The Raspberry Pi waits a number of seconds after loading the GPU firmware and
before loading the kernel. By default it is one second. This is useful if your
SD card needs a while to get ready before Linux is able to boot from it.
To remove (or adjust) this delay set these variables in local.conf:
BOOT_DELAY = "0"
BOOT_DELAY_MS = "0"
## Set overclocking options ## Set overclocking options
The Raspberry PI can be overclocked. As of now overclocking up to the "Turbo The Raspberry Pi can be overclocked. As of now overclocking up to the "Turbo
Mode" is officially supported by the raspbery and does not void warranty. Check Mode" is officially supported by the raspbery and does not void warranty. Check
the config.txt for a detailed description of options and modes. Example turbo the config.txt for a detailed description of options and modes. The following
mode: variables are supported in local.conf: `ARM_FREQ`, `GPU_FREQ`, `CORE_FREQ`,
`SDRAM_FREQ` and `OVER_VOLTAGE`.
Example official settings for Turbo Mode in Raspberry Pi 2:
ARM_FREQ = "1000" ARM_FREQ = "1000"
CORE_FREQ = "500" CORE_FREQ = "500"
SDRAM_FREQ = "500" SDRAM_FREQ = "500"
OVER_VOLTAGE = "6" OVER_VOLTAGE = "6"
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md>
## HDMI and composite video options
The Raspberry Pi can output video over HDMI or SDTV composite (the RCA connector).
By default the video mode for these is autodetected on boot: the HDMI mode is
selected according to the connected monitor's EDID information and the composite
mode is defaulted to NTSC using a 4:3 aspect ratio. Check the config.txt for a
detailed description of options and modes. The following variables are supported in
local.conf: `HDMI_FORCE_HOTPLUG`, `HDMI_DRIVE`, `HDMI_GROUP`, `HDMI_MODE`,
`CONFIG_HDMI_BOOST`, `SDTV_MODE`, `SDTV_ASPECT` and `DISPLAY_ROTATE`.
Example to force HDMI output to 720p in CEA mode:
HDMI_GROUP = "1"
HDMI_MODE = "4"
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/video.md>
## Video camera support with V4L2 drivers ## Video camera support with V4L2 drivers
Set this variable to enable support for the video camera (Linux 3.12.4+ Set this variable to enable support for the video camera (Linux 3.12.4+
@@ -95,14 +137,22 @@ this variable in local.conf:
ENABLE_KGDB = "1" 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 ## Boot to U-Boot
To have u-boot load kernel image, set in your local.conf: 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, This will select the appropriate image format for use with u-boot automatically.
kernel.img is the actual kernel image (ex. Image). 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 ## Image with Initramfs
@@ -171,10 +221,42 @@ needs a fixed core frequency and enable_uart wil set it to the minimum. Certain
operations - 60fps h264 decode, high quality deinterlace - which aren't operations - 60fps h264 decode, high quality deinterlace - which aren't
performed on the ARM may be affected, and we wouldn't want to do that to users performed on the ARM may be affected, and we wouldn't want to do that to users
who don't want to use the serial port. Users who want serial console support on who don't want to use the serial port. Users who want serial console support on
RaspberryPi3 will have to explicitely set in local.conf: RaspberryPi3 will have to explicitly set in local.conf:
ENABLE_UART = "1" ENABLE_UART = "1"
Ref.: Ref.:
* <https://github.com/raspberrypi/firmware/issues/553> * <https://github.com/raspberrypi/firmware/issues/553>
* <https://github.com/RPi-Distro/repo/issues/22> * <https://github.com/RPi-Distro/repo/issues/22>
## Enable USB Peripheral (Gadget) support
The standard USB driver only supports host mode operations. Users who
want to use gadget modules like g_ether should set the following in
local.conf:
ENABLE_DWC2_PERIPHERAL = "1"
## Enable Openlabs 802.15.4 radio module
When using device tree kernels, set this variable to enable the 802.15.4 hat:
ENABLE_AT86RF = "1"
See: <https://openlabs.co/OSHW/Raspberry-Pi-802.15.4-radio>
## Manual additions to config.txt
The `RPI_EXTRA_CONFIG` variable can be used to manually add additional lines to
the `config.txt` file if there is not a specific option above for the
configuration you need. To add multiple lines you must include `\n` separators.
If double-quotes are needed in the lines you are adding you can use single
quotes around the whole string.
For example, to add a comment containing a double-quote and a configuration
option:
RPI_EXTRA_CONFIG = ' \n \
# Raspberry Pi 7\" display/touch screen \n \
lcd_rotate=2 \n \
'

View File

@@ -11,14 +11,24 @@
* raspberrypi-cm (dummy alias for raspberrypi) * raspberrypi-cm (dummy alias for raspberrypi)
* raspberrypi-cm3 (dummy alias for raspberrypi2) * raspberrypi-cm3 (dummy alias for raspberrypi2)
Note: The raspberrypi3 machines include support for Raspberry Pi 3B+.
## Images ## Images
* rpi-hwup-image
* Hardware up image
* rpi-basic-image
* Based on rpi-hwup-image with some added features (ex: splash)
* rpi-test-image * rpi-test-image
* Image based on rpi-basic-image which includes most of the packages in this * Image based on core-image-base which includes most of the packages in this
layer and some media samples. layer and some media samples.
For other uses it's recommended to base images on `core-image-minimal` or
`core-image-base` as appropriate. The old image names (`rpi-hwup-image` and
`rpi-basic-image`) are deprecated.
## WiFi and Bluetooth Firmware
Be aware that the WiFi and Bluetooth firmware for the supported boards
is not available in the base version of `linux-firmware` from OE-Core
(poky). The files are added from Raspbian repositories in this layer's
bbappends to that recipe. All machines define
`MACHINE_EXTRA_RRECOMMENDS` to include the required wireless firmware;
raspberrypi3 supports 3, 3B, and 3B+ and so include multiple firmware
packages.

View File

@@ -3,13 +3,15 @@ LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=4a4d169737c0786fb9482bb6d30401d1" LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=4a4d169737c0786fb9482bb6d30401d1"
inherit deploy inherit deploy nopackages
include recipes-bsp/common/firmware.inc include recipes-bsp/common/firmware.inc
RDEPENDS_${PN} = "rpi-config" INHIBIT_DEFAULT_DEPS = "1"
COMPATIBLE_MACHINE = "raspberrypi" DEPENDS = "rpi-config"
COMPATIBLE_MACHINE = "^rpi$"
S = "${RPIFW_S}/boot" S = "${RPIFW_S}/boot"
@@ -32,7 +34,7 @@ do_deploy() {
touch ${DEPLOYDIR}/${PN}/${PN}-${PV}.stamp touch ${DEPLOYDIR}/${PN}/${PN}-${PV}.stamp
} }
addtask deploy before do_package after do_install addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/${PN}" do_deploy[dirs] += "${DEPLOYDIR}/${PN}"
PACKAGE_ARCH = "${MACHINE_ARCH}" PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -3,9 +3,9 @@ DESCRIPTION = "Commented config.txt file for the Raspberry Pi. \
the ARM core is initialised. It can be used to set various \ the ARM core is initialised. It can be used to set various \
system configuration parameters." system configuration parameters."
LICENSE = "MIT" LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
COMPATIBLE_MACHINE = "raspberrypi" COMPATIBLE_MACHINE = "^rpi$"
SRCREV = "648ffc470824c43eb0d16c485f4c24816b32cd6f" SRCREV = "648ffc470824c43eb0d16c485f4c24816b32cd6f"
SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \ SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \
@@ -15,14 +15,18 @@ S = "${WORKDIR}/git"
PR = "r5" PR = "r5"
INHIBIT_DEFAULT_DEPS = "1"
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}" PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
PITFT22="${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}" PITFT22="${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"
PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}" PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"
PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}" PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"
VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "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 inherit deploy nopackages
do_deploy() { do_deploy() {
install -d ${DEPLOYDIR}/bcm2835-bootfiles install -d ${DEPLOYDIR}/bcm2835-bootfiles
@@ -30,25 +34,33 @@ do_deploy() {
cp ${S}/config.txt ${DEPLOYDIR}/bcm2835-bootfiles/ cp ${S}/config.txt ${DEPLOYDIR}/bcm2835-bootfiles/
if [ -n "${KEY_DECODE_MPG2}" ]; then if [ -n "${KEY_DECODE_MPG2}" ]; then
sed -i '/#decode_MPG2/ c\decode_MPG2=${KEY_DECODE_MPG2}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt sed -i '/#decode_MPG2=/ c\decode_MPG2=${KEY_DECODE_MPG2}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
if [ -n "${KEY_DECODE_WVC1}" ]; then if [ -n "${KEY_DECODE_WVC1}" ]; then
sed -i '/#decode_WVC1/ c\decode_WVC1=${KEY_DECODE_WVC1}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt sed -i '/#decode_WVC1=/ c\decode_WVC1=${KEY_DECODE_WVC1}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
if [ -n "${DISABLE_OVERSCAN}" ]; then if [ -n "${DISABLE_OVERSCAN}" ]; then
sed -i '/#disable_overscan/ c\disable_overscan=${DISABLE_OVERSCAN}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt sed -i '/#disable_overscan=/ c\disable_overscan=${DISABLE_OVERSCAN}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
if [ -n "${DISABLE_SPLASH}" ]; then
sed -i '/#disable_splash=/ c\disable_splash=${DISABLE_SPLASH}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
# Set overclocking options
if [ -n "${ARM_FREQ}" ]; then if [ -n "${ARM_FREQ}" ]; then
sed -i '/#arm_freq/ c\arm_freq=${ARM_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt sed -i '/#arm_freq=/ c\arm_freq=${ARM_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
if [ -n "${GPU_FREQ}" ]; then
sed -i '/#gpu_freq=/ c\gpu_freq=${GPU_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
if [ -n "${CORE_FREQ}" ]; then if [ -n "${CORE_FREQ}" ]; then
sed -i '/#core_freq/ c\core_freq=${CORE_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt sed -i '/#core_freq=/ c\core_freq=${CORE_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
if [ -n "${SDRAM_FREQ}" ]; then if [ -n "${SDRAM_FREQ}" ]; then
sed -i '/#sdram_freq/ c\sdram_freq=${SDRAM_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt sed -i '/#sdram_freq=/ c\sdram_freq=${SDRAM_FREQ}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
if [ -n "${OVER_VOLTAGE}" ]; then if [ -n "${OVER_VOLTAGE}" ]; then
sed -i '/#over_voltage/ c\over_voltage=${OVER_VOLTAGE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt sed -i '/#over_voltage=/ c\over_voltage=${OVER_VOLTAGE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
# GPU memory # GPU memory
@@ -56,13 +68,47 @@ do_deploy() {
sed -i '/#gpu_mem=/ c\gpu_mem=${GPU_MEM}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt sed -i '/#gpu_mem=/ c\gpu_mem=${GPU_MEM}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
if [ -n "${GPU_MEM_256}" ]; then if [ -n "${GPU_MEM_256}" ]; then
sed -i '/#gpu_mem_256/ c\gpu_mem_256=${GPU_MEM_256}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt sed -i '/#gpu_mem_256=/ c\gpu_mem_256=${GPU_MEM_256}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
if [ -n "${GPU_MEM_512}" ]; then if [ -n "${GPU_MEM_512}" ]; then
sed -i '/#gpu_mem_512/ c\gpu_mem_512=${GPU_MEM_512}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt sed -i '/#gpu_mem_512=/ c\gpu_mem_512=${GPU_MEM_512}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
if [ -n "${GPU_MEM_1024}" ]; then if [ -n "${GPU_MEM_1024}" ]; then
sed -i '/#gpu_mem_1024/ c\gpu_mem_1024=${GPU_MEM_1024}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt sed -i '/#gpu_mem_1024=/ c\gpu_mem_1024=${GPU_MEM_1024}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
# Set boot delay
if [ -n "${BOOT_DELAY}" ]; then
sed -i '/#boot_delay=/ c\boot_delay=${BOOT_DELAY}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
if [ -n "${BOOT_DELAY_MS}" ]; then
sed -i '/#boot_delay_ms=/ c\boot_delay_ms=${BOOT_DELAY_MS}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
# Set HDMI and composite video options
if [ -n "${HDMI_FORCE_HOTPLUG}" ]; then
sed -i '/#hdmi_force_hotplug=/ c\hdmi_force_hotplug=${HDMI_FORCE_HOTPLUG}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
if [ -n "${HDMI_DRIVE}" ]; then
sed -i '/#hdmi_drive=/ c\hdmi_drive=${HDMI_DRIVE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
if [ -n "${HDMI_GROUP}" ]; then
sed -i '/#hdmi_group=/ c\hdmi_group=${HDMI_GROUP}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
if [ -n "${HDMI_MODE}" ]; then
sed -i '/#hdmi_mode=/ c\hdmi_mode=${HDMI_MODE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
if [ -n "${CONFIG_HDMI_BOOST}" ]; then
sed -i '/#config_hdmi_boost=/ c\config_hdmi_boost=${CONFIG_HDMI_BOOST}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
if [ -n "${SDTV_MODE}" ]; then
sed -i '/#sdtv_mode=/ c\sdtv_mode=${SDTV_MODE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
if [ -n "${SDTV_ASPECT}" ]; then
sed -i '/#sdtv_aspect=/ c\sdtv_aspect=${SDTV_ASPECT}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
if [ -n "${DISPLAY_ROTATE}" ]; then
sed -i '/#display_rotate=/ c\display_rotate=${DISPLAY_ROTATE}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
# Video camera support # Video camera support
@@ -83,6 +129,7 @@ do_deploy() {
echo "dtparam=spi=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtparam=spi=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
# I2C support
if [ -n "${ENABLE_I2C}" ] || [ "${PITFT}" = "1" ]; then if [ -n "${ENABLE_I2C}" ] || [ "${PITFT}" = "1" ]; then
echo "# Enable I2C" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "# Enable I2C" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtparam=i2c1=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtparam=i2c1=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
@@ -94,12 +141,10 @@ do_deploy() {
echo "# Enable PITFT22 display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "# Enable PITFT22 display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=pitft22,rotate=270,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtoverlay=pitft22,rotate=270,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
if [ "${PITFT28r}" = "1" ]; then if [ "${PITFT28r}" = "1" ]; then
echo "# Enable PITFT28r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "# Enable PITFT28r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=pitft28-resistive,rotate=90,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtoverlay=pitft28-resistive,rotate=90,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
if [ "${PITFT35r}" = "1" ]; then if [ "${PITFT35r}" = "1" ]; then
echo "# Enable PITFT35r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "# Enable PITFT35r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=pitft35-resistive,rotate=90,speed=42000000,fps=20" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtoverlay=pitft35-resistive,rotate=90,speed=42000000,fps=20" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
@@ -114,7 +159,7 @@ do_deploy() {
# VC4 Graphics support # VC4 Graphics support
if [ "${VC4GRAPHICS}" = "1" ]; then if [ "${VC4GRAPHICS}" = "1" ]; then
echo "# Enable VC4 Graphics" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt 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 fi
# Waveshare "C" 1024x600 7" Rev2.1 IPS capacitive touch (http://www.waveshare.com/7inch-HDMI-LCD-C.htm) # Waveshare "C" 1024x600 7" Rev2.1 IPS capacitive touch (http://www.waveshare.com/7inch-HDMI-LCD-C.htm)
@@ -126,15 +171,32 @@ do_deploy() {
echo "hdmi_cvt 1024 600 60 6 0 0 0" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "hdmi_cvt 1024 600 60 6 0 0 0" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "hdmi_drive=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "hdmi_drive=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi fi
# DWC2 USB peripheral support
if [ "${ENABLE_DWC2_PERIPHERAL}" = "1" ]; then
echo "# Enable USB peripheral mode" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=dwc2,dr_mode=peripheral" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
# AT86RF23X support
if [ "${ENABLE_AT86RF}" = "1" ]; then
echo "# Enable AT86RF23X" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "dtoverlay=at86rf233,speed=3000000" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
# Append extra config if the user has provided any
echo "${RPI_EXTRA_CONFIG}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
} }
do_deploy_append_raspberrypi3-64() { do_deploy_append_raspberrypi3-64() {
# Device Tree support echo "# have a properly sized image" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "# Load correct Device Tree for Aarch64" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "disable_overscan=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
echo "device_tree=bcm2710-rpi-3-b.dtb" >>${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
} }
addtask deploy before do_package after do_install addtask deploy before do_build after do_install
do_deploy[dirs] += "${DEPLOYDIR}/bcm2835-bootfiles" do_deploy[dirs] += "${DEPLOYDIR}/bcm2835-bootfiles"
PACKAGE_ARCH = "${MACHINE_ARCH}" PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -1,10 +1,11 @@
RPIFW_DATE ?= "20170405" RPIFW_DATE ?= "20180817"
RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/1.${RPIFW_DATE}.tar.gz" SRCREV ?= "53ac68e1eb02138f72a5056efed9dac9d3883a3f"
RPIFW_S ?= "${WORKDIR}/firmware-1.${RPIFW_DATE}" RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz"
RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}"
SRC_URI = "${RPIFW_SRC_URI}" SRC_URI = "${RPIFW_SRC_URI}"
SRC_URI[md5sum] = "ea82d14a7cd8cfae9b78e00d4e56bc71" SRC_URI[md5sum] = "6b3d901decf2fe4fad151e3ebb28cb62"
SRC_URI[sha256sum] = "2f4e5bddbac1372590db203002c35cbba3fb9d6172a93c314ee27bf05ae13bff" SRC_URI[sha256sum] = "3680de3ea9817b10fa8998b0dfa6811e58c96945474f4c782710dcd0a56c8cf0"
PV = "${RPIFW_DATE}" PV = "${RPIFW_DATE}"

View File

@@ -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}

View File

@@ -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}

View File

@@ -1,17 +1,22 @@
SUMMARY = "U-boot boot scripts for Raspberry Pi" SUMMARY = "U-boot boot scripts for Raspberry Pi"
LICENSE = "MIT" LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
COMPATIBLE_MACHINE = "rpi" COMPATIBLE_MACHINE = "^rpi$"
DEPENDS = "u-boot-mkimage-native" DEPENDS = "u-boot-mkimage-native"
SRC_URI = "file://boot.cmd" INHIBIT_DEFAULT_DEPS = "1"
SRC_URI = "file://boot.cmd.in"
do_compile() { 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 mkimage -A arm -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
} }
inherit deploy inherit deploy nopackages
do_deploy() { do_deploy() {
install -d ${DEPLOYDIR} install -d ${DEPLOYDIR}

View File

@@ -0,0 +1,41 @@
From 5d113dc0130ea2ea9faaa000fba9c737266b9747 Mon Sep 17 00:00:00 2001
From: Drew Moseley <drew.moseley@northern.tech>
Date: Fri, 9 Feb 2018 18:10:09 -0500
Subject: [PATCH] rpi_0_w: Add configs consistent with RpI3
Upstream-Status: Accepted [https://patchwork.ozlabs.org/patch/856572/]
Signed-off-by: Drew Moseley <drew.moseley@northern.tech>
---
configs/rpi_0_w_defconfig | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig
index 9a6d24b..1248294 100644
--- a/configs/rpi_0_w_defconfig
+++ b/configs/rpi_0_w_defconfig
@@ -12,14 +12,21 @@ CONFIG_SYS_PROMPT="U-Boot> "
CONFIG_CMD_GPIO=y
CONFIG_CMD_MMC=y
CONFIG_CMD_USB=y
+CONFIG_OF_EMBED=y
+CONFIG_ENV_FAT_INTERFACE="mmc"
+CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
+CONFIG_DM_KEYBOARD=y
CONFIG_DM_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_BCM2835=y
CONFIG_DM_ETH=y
CONFIG_USB=y
CONFIG_DM_USB=y
+CONFIG_USB_DWC2=y
CONFIG_USB_STORAGE=y
CONFIG_USB_KEYBOARD=y
+CONFIG_USB_HOST_ETHER=y
+CONFIG_USB_ETHER_SMSC95XX=y
CONFIG_DM_VIDEO=y
CONFIG_SYS_WHITE_ON_BLACK=y
CONFIG_CONSOLE_SCROLL_LINES=10
--
2.7.4

View File

@@ -1 +1,7 @@
RDEPENDS_${PN}_append_rpi = " rpi-u-boot-scr" FILESEXTRAPATHS_prepend := "${THISDIR}/u-boot:"
SRC_URI_append_rpi = " \
file://0002-rpi_0_w-Add-configs-consistent-with-RpI3.patch \
"
DEPENDS_append_rpi = " rpi-u-boot-scr"

View File

@@ -2,11 +2,13 @@
Description=Broadcom BCM43438 bluetooth HCI Description=Broadcom BCM43438 bluetooth HCI
ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins
Before=bluetooth.service Before=bluetooth.service
After=dev-ttyAMA0.device BindsTo=dev-serial1.device
After=dev-serial1.device
[Service] [Service]
Type=simple Type=oneshot
ExecStart=/usr/bin/hciattach -n /dev/ttyAMA0 bcm43xx 921600 noflow - RemainAfterExit=yes
ExecStart=/usr/bin/btuart
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -1,7 +1,6 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_append_raspberrypi3 = " \ BCM_BT_SOURCES = " \
file://BCM43430A1.hcd \
file://0001-bcm43xx-Add-bcm43xx-3wire-variant.patch \ file://0001-bcm43xx-Add-bcm43xx-3wire-variant.patch \
file://0002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch \ file://0002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch \
file://0003-Increase-firmware-load-timeout-to-30s.patch \ file://0003-Increase-firmware-load-timeout-to-30s.patch \
@@ -9,18 +8,38 @@ SRC_URI_append_raspberrypi3 = " \
file://brcm43438.service \ file://brcm43438.service \
" "
do_install_append_raspberrypi3() { BCM_BT_SERVICE = "brcm43438.service"
install -d ${D}/lib/firmware/brcm/
install -m 0644 ${WORKDIR}/BCM43430A1.hcd ${D}/lib/firmware/brcm/BCM43430A1.hcd
enable_bcm_bluetooth() {
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_unitdir}/system install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/brcm43438.service ${D}${systemd_unitdir}/system install -m 0644 ${WORKDIR}/${BCM_BT_SERVICE} ${D}${systemd_unitdir}/system
fi fi
} }
FILES_${PN}_append_raspberrypi3 = " \ BCM_BT_RDEPENDS = "\
/lib/firmware/brcm/BCM43430A1.hcd \ udev-rules-rpi \
pi-bluetooth \
" "
SYSTEMD_SERVICE_${PN}_append_raspberrypi3 = " brcm43438.service" # for raspberrypi3
SRC_URI_append_raspberrypi3 = " ${BCM_BT_SOURCES}"
do_install_append_raspberrypi3() {
enable_bcm_bluetooth
}
SYSTEMD_SERVICE_${PN}_append_raspberrypi3 = " ${BCM_BT_SERVICE}"
RDEPENDS_${PN}_append_raspberrypi3 = " ${BCM_BT_RDEPENDS}"
# for raspberrypi0-wifi
SRC_URI_append_raspberrypi0-wifi = " ${BCM_BT_SOURCES}"
do_install_append_raspberrypi0-wifi() {
enable_bcm_bluetooth
}
SYSTEMD_SERVICE_${PN}_append_raspberrypi0-wifi = " ${BCM_BT_SERVICE}"
RDEPENDS_${PN}_append_raspberrypi0-wifi = " ${BCM_BT_RDEPENDS}"

View File

@@ -0,0 +1,22 @@
SUMMARY = "Script to properly configure BT-HCI on Raspberry Pi"
HOMEPAGE = "https://github.com/RPi-Distro/pi-bluetooth"
SECTION = "kernel"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "\
file://debian/copyright;md5=6af8de3c8ee71f8e91e9b22f84ff2022 \
"
SRC_URI = "git://github.com/RPi-Distro/pi-bluetooth"
SRCREV = "2a7477966bb3c69838b224f3ea92cb49a88124d5"
UPSTREAM_VERSION_UNKNOWN = "1"
S = "${WORKDIR}/git"
inherit allarch
do_install() {
install -d ${D}${bindir}
install -m 0755 ${S}/usr/bin/btuart ${D}${bindir}
}
FILES_${PN} = "${bindir}"

View File

@@ -1,6 +1,15 @@
# Base this image on rpi-hwup-image # Base this image on core-image-minimal
include rpi-hwup-image.bb include recipes-core/images/core-image-minimal.bb
# Include modules in rootfs
IMAGE_INSTALL += " \
kernel-modules \
"
SPLASH = "psplash-raspberrypi" SPLASH = "psplash-raspberrypi"
IMAGE_FEATURES += "ssh-server-dropbear splash" IMAGE_FEATURES += "ssh-server-dropbear splash"
do_image_prepend() {
bb.warn("The image 'rpi-basic-image' is deprecated, please use 'core-image-base' instead")
}

View File

@@ -5,3 +5,7 @@ include recipes-core/images/core-image-minimal.bb
IMAGE_INSTALL += " \ IMAGE_INSTALL += " \
kernel-modules \ kernel-modules \
" "
do_image_prepend() {
bb.warn("The image 'rpi-hwup-image' is deprecated, please use 'core-image-base' instead")
}

View File

@@ -1,4 +1,6 @@
# Base this image on rpi-basic-image # Base this image on core-image-base
include rpi-basic-image.bb include recipes-core/images/core-image-base.bb
COMPATIBLE_MACHINE = "^rpi$"
IMAGE_INSTALL_append = " packagegroup-rpi-test" IMAGE_INSTALL_append = " packagegroup-rpi-test"

View File

@@ -1,11 +1,16 @@
DESCRIPTION = "RaspberryPi Test Packagegroup" DESCRIPTION = "RaspberryPi Test Packagegroup"
LICENSE = "MIT" LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
inherit packagegroup inherit packagegroup
COMPATIBLE_MACHINE = "^rpi$"
OMXPLAYER_rpi = "omxplayer"
OMXPLAYER_rpi_aarch64 = ""
RDEPENDS_${PN} = "\ RDEPENDS_${PN} = "\
omxplayer \ ${OMXPLAYER} \
bcm2835-tests \ bcm2835-tests \
wiringpi \ wiringpi \
rpio \ rpio \

View File

@@ -1,11 +1,13 @@
DESCRIPTION = "udev rules for Raspberry Pi Boards" DESCRIPTION = "udev rules for Raspberry Pi Boards"
LICENSE = "MIT" LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = " file://99-com.rules" SRC_URI = " file://99-com.rules"
S = "${WORKDIR}" S = "${WORKDIR}"
INHIBIT_DEFAULT_DEPS = "1"
do_install () { do_install () {
install -d ${D}${sysconfdir}/udev/rules.d install -d ${D}${sysconfdir}/udev/rules.d
install -m 0644 ${WORKDIR}/99-com.rules ${D}${sysconfdir}/udev/rules.d/ install -m 0644 ${WORKDIR}/99-com.rules ${D}${sysconfdir}/udev/rules.d/

View File

@@ -0,0 +1,10 @@
##############################################################################################################
# Partitions which desktops should not display
#
# boot partition
ENV{ID_FS_TYPE}=="vfat", ENV{ID_FS_LABEL}=="raspberrypi", \
ENV{UDISKS_PRESENTATION_HIDE}="1", ENV{UDISKS_IGNORE}="1"
##############################################################################################################

View File

@@ -0,0 +1,13 @@
DESCRIPTION = "add udisk/udev rule to hide boot partition from udev"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://80-udisks-rpi.rules"
INHIBIT_DEFAULT_DEPS = "1"
do_install () {
install -d ${D}${base_libdir}/udev/rules.d
install -m 644 ${WORKDIR}/80-udisks-rpi.rules ${D}${base_libdir}/udev/rules.d
}
FILES_${PN} = "${base_libdir}/udev/rules.d"

View File

@@ -8,7 +8,7 @@ AUTHOR = "Mike McCauley (mikem@open.com.au)"
LICENSE = "GPLv2" LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" 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" SRC_URI = "http://www.airspayce.com/mikem/bcm2835/bcm2835-${PV}.tar.gz"

View File

@@ -1,13 +1,28 @@
Remove dependencies on LSB functions From 1338f98a279616f4e5e9ea30a25d1dfa0c7df5d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petter=20Mab=C3=A4cker?= <petter@technux.se>
Date: Sun, 4 Jun 2017 12:22:40 +0200
Subject: [PATCH] Remove dependencies on LSB functions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
See this as a rebase of the previous 'Remove dependencies on LSB
functions patch' with only minor modifications from the original version,
based on the work done by Alex Lennon <ajlennon@dynamicdevices.co.uk> in
'25fd817 pi-blaster: Added recipe'.
Upstream-Status: Inappropriate [configuration] Upstream-Status: Inappropriate [configuration]
Signed-off-by: Alex Lennon <ajlennon@dynamicdevices.co.uk> Signed-off-by: Petter Mabäcker <petter@technux.se>
---
debian/pi-blaster.init | 38 +++++++-------------------------------
1 file changed, 7 insertions(+), 31 deletions(-)
diff -ur git.org/pi-blaster.boot.sh git/pi-blaster.boot.sh diff --git a/debian/pi-blaster.init b/debian/pi-blaster.init
--- git.org/pi-blaster.boot.sh 2014-05-20 14:49:44.378582168 +0100 index b142d70..01a686c 100644
+++ git/pi-blaster.boot.sh 2014-05-20 14:51:08.330582386 +0100 --- a/debian/pi-blaster.init
@@ -28,12 +28,12 @@ +++ b/debian/pi-blaster.init
@@ -28,12 +28,12 @@ SCRIPTNAME=/etc/init.d/$NAME
[ -r /etc/default/$NAME ] && . /etc/default/$NAME [ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables # Load the VERBOSE setting and other rcS variables
@@ -22,7 +37,7 @@ diff -ur git.org/pi-blaster.boot.sh git/pi-blaster.boot.sh
# #
# Function that starts the daemon/service # Function that starts the daemon/service
@@ -77,48 +77,23 @@ @@ -77,48 +77,24 @@ do_stop()
case "$1" in case "$1" in
start) start)
@@ -52,6 +67,7 @@ diff -ur git.org/pi-blaster.boot.sh git/pi-blaster.boot.sh
# 'force-reload' alias # 'force-reload' alias
# #
- log_daemon_msg "Restarting $DESC" "$NAME" - log_daemon_msg "Restarting $DESC" "$NAME"
+ echo "Restarting $DESC" "$NAME"
do_stop do_stop
- case "$?" in - case "$?" in
- 0|1) - 0|1)
@@ -71,7 +87,10 @@ diff -ur git.org/pi-blaster.boot.sh git/pi-blaster.boot.sh
;; ;;
*) *)
- echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 - echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+ echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2 + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3 exit 3
;; ;;
esac esac
--
1.9.1

View File

@@ -1,21 +0,0 @@
DESCRIPTION = "This project enables PWM on the GPIO pins you request of a Raspberry Pi."
HOMEPAGE = "https://github.com/sarfata/pi-blaster/"
SECTION = "devel/libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://README.md;beginline=157;endline=170;md5=f20832f31126609af5a7bf2340014540"
SRC_URI = "git://github.com/sarfata/pi-blaster \
file://remove-initscript-lsb-dependency.patch \
"
S = "${WORKDIR}/git"
inherit update-rc.d autotools
INITSCRIPT_PACKAGES = "${PN}"
INITSCRIPT_NAME_${PN} = "${PN}.boot.sh"
INITSCRIPT_PARAMS_${PN} = "defaults 15 85"
COMPATIBLE_MACHINE = "raspberrypi"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -1,3 +1,23 @@
require pi-blaster.inc DESCRIPTION = "This project enables PWM on the GPIO pins you request of a Raspberry Pi."
HOMEPAGE = "https://github.com/sarfata/pi-blaster/"
SECTION = "devel/libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://README.md;beginline=225;endline=252;md5=a012868ef5f83b9f257af253d7cb07a3"
SRCREV = "ec5e1b4c6191d8f9a538497dbbb86f9cf0de7016" SRC_URI = "git://github.com/sarfata/pi-blaster \
file://remove-initscript-lsb-dependency.patch \
"
S = "${WORKDIR}/git"
SRCREV = "1035ad7dffb270c40eec1bb3a654171a755fba98"
inherit update-rc.d autotools
INITSCRIPT_PACKAGES = "${PN}"
INITSCRIPT_NAME_${PN} = "${PN}.boot.sh"
INITSCRIPT_PARAMS_${PN} = "defaults 15 85"
COMPATIBLE_MACHINE = "^rpi$"
PACKAGE_ARCH = "${MACHINE_ARCH}"

View File

@@ -4,16 +4,12 @@ SECTION = "devel/python"
LICENSE = "BSD" LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=d80fe312e1ff5fbd97369b093bf21cda" 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[md5sum] = "69929250cb72349a8a82edf2584b1d83"
SRC_URI[sha256sum] = "c6c76707c0ea514e4b0f1f96f1b5b79755875891aae037df7434b6aad7b9dbca" SRC_URI[sha256sum] = "f000998d042d96ed722d459312e1bebd0107f9f3015cd34b3e4fabcab9c800af"
S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit setuptools
DEPENDS += " \ DEPENDS += " \
jpeg \ jpeg \

View File

@@ -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"

View File

@@ -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$"

View File

@@ -5,16 +5,19 @@ SECTION = "devel/python"
LICENSE = "LGPLv3+" LICENSE = "LGPLv3+"
LIC_FILES_CHKSUM = "file://README.rst;beginline=41;endline=53;md5=d5d95d7486a4d98c999675c23196b25a" LIC_FILES_CHKSUM = "file://README.rst;beginline=41;endline=53;md5=d5d95d7486a4d98c999675c23196b25a"
SRCNAME = "RPIO" PYPI_PACKAGE = "RPIO"
inherit pypi
SRC_URI = "http://pypi.python.org/packages/source/R/RPIO/${SRCNAME}-${PV}.tar.gz \ SRC_URI += "file://0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch"
file://0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch \
"
S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit setuptools inherit setuptools
COMPATIBLE_MACHINE = "raspberrypi" COMPATIBLE_MACHINE = "^rpi$"
RDEPENDS_${PN} = "\
python-logging \
python-threading \
"
SRC_URI[md5sum] = "cefc45422833dcafcd59b78dffc540f4" SRC_URI[md5sum] = "cefc45422833dcafcd59b78dffc540f4"
SRC_URI[sha256sum] = "b89f75dec9de354681209ebfaedfe22b7c178aacd91a604a7bd6d92024e4cf7e" SRC_URI[sha256sum] = "b89f75dec9de354681209ebfaedfe22b7c178aacd91a604a7bd6d92024e4cf7e"

View File

@@ -1,23 +1,18 @@
From 4ed727aa9e528f130fdc8798df771037a1f22fc9 Mon Sep 17 00:00:00 2001 From ca25788e2563bad0d554deb9f4300d1e7d062825 Mon Sep 17 00:00:00 2001
From: Andrea Galbusera <gizero@gmail.com> From: Aurelian Zanoschi <aurelian17@gmail.com>
Date: Mon, 3 Apr 2017 14:48:14 +0200 Date: Mon, 31 Jul 2017 20:25:15 +0300
Subject: [PATCH] =?UTF-8?q?Add=20initial=20cross=20compile=20support=20(re?= Subject: [PATCH] Add initial cross compile support
=?UTF-8?q?base=20from=20Petter=20Mab=C3=A4cker=20<petter@technux.se>=20ve?=
=?UTF-8?q?rsion)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
--- ---
devLib/Makefile | 54 +++++++++++++++++++++++++-------------------- devLib/Makefile | 54 +++++++++++++++++++++++++--------------------
examples/Gertboard/Makefile | 20 +++++++++++------ examples/Gertboard/Makefile | 22 +++++++++++-------
examples/Makefile | 20 +++++++++++------ examples/Makefile | 22 +++++++++++-------
examples/PiFace/Makefile | 20 +++++++++++------ examples/PiFace/Makefile | 22 +++++++++++-------
examples/PiGlow/Makefile | 4 ++-- examples/PiGlow/Makefile | 4 ++--
examples/q2w/Makefile | 4 ++-- examples/q2w/Makefile | 4 ++--
gpio/Makefile | 29 ++++++++++++------------ gpio/Makefile | 29 ++++++++++++------------
wiringPi/Makefile | 50 +++++++++++++++++++++++------------------ wiringPi/Makefile | 52 ++++++++++++++++++++++++-------------------
8 files changed, 116 insertions(+), 85 deletions(-) 8 files changed, 120 insertions(+), 89 deletions(-)
diff --git a/devLib/Makefile b/devLib/Makefile diff --git a/devLib/Makefile b/devLib/Makefile
index cf665d6..040c03a 100644 index cf665d6..040c03a 100644
@@ -132,11 +127,12 @@ index 1939ad6..98d1415 100644
-CC = gcc -CC = gcc
-INCLUDE = -I/usr/local/include -INCLUDE = -I/usr/local/include
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+DESTDIR?=/usr -
+PREFIX?=/local
-LDFLAGS = -L/usr/local/lib -LDFLAGS = -L/usr/local/lib
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
+DESTDIR?=/usr
+PREFIX?=/local
+
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include +INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib +LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
+ +
@@ -164,11 +160,12 @@ index 6d87885..8623816 100644
-CC = gcc -CC = gcc
-INCLUDE = -I/usr/local/include -INCLUDE = -I/usr/local/include
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+DESTDIR?=/usr -
+PREFIX?=/local
-LDFLAGS = -L/usr/local/lib -LDFLAGS = -L/usr/local/lib
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt
+DESTDIR?=/usr
+PREFIX?=/local
+
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include +INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib +LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
+ +
@@ -196,11 +193,12 @@ index f937c14..ad030b3 100644
-CC = gcc -CC = gcc
-INCLUDE = -I/usr/local/include -INCLUDE = -I/usr/local/include
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+DESTDIR?=/usr -
+PREFIX?=/local
-LDFLAGS = -L/usr/local/lib -LDFLAGS = -L/usr/local/lib
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
+DESTDIR?=/usr
+PREFIX?=/local
+
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include +INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib +LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
+ +
@@ -305,10 +303,10 @@ index f41a005..22753ee 100644
.PHONY: depend .PHONY: depend
diff --git a/wiringPi/Makefile b/wiringPi/Makefile diff --git a/wiringPi/Makefile b/wiringPi/Makefile
index e1868b9..e39f75a 100644 index e1868b9..750d290 100644
--- a/wiringPi/Makefile --- a/wiringPi/Makefile
+++ b/wiringPi/Makefile +++ b/wiringPi/Makefile
@@ -25,19 +25,23 @@ VERSION=$(shell cat ../VERSION) @@ -25,21 +25,25 @@ VERSION=$(shell cat ../VERSION)
DESTDIR?=/usr DESTDIR?=/usr
PREFIX?=/local PREFIX?=/local
@@ -336,19 +334,22 @@ index e1868b9..e39f75a 100644
+CC ?= gcc +CC ?= gcc
+INCLUDE ?= -I. +INCLUDE ?= -I.
DEFS = -D_GNU_SOURCE 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) @@ -78,17 +82,17 @@ $(STATIC): $(OBJ)
$(DYNAMIC): $(OBJ) $(DYNAMIC): $(OBJ)
$Q echo "[Link (Dynamic)]" $Q echo "[Link (Dynamic)]"
- $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) $(LIBS) $(OBJ) - $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: .c.o:
$Q echo [Compile] $< $Q echo [Compile] $<
- $Q $(CC) -c $(CFLAGS) $< -o $@ - $Q $(CC) -c $(CFLAGS) $< -o $@
+ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@ + $Q $(CC) $(CFLAGS) $(LIBS) -c $< -o $@
.PHONY: clean .PHONY: clean

View File

@@ -13,7 +13,7 @@ SRC_URI = "git://git.drogon.net/wiringPi \
file://0001-Add-initial-cross-compile-support.patch \ file://0001-Add-initial-cross-compile-support.patch \
" "
COMPATIBLE_MACHINE = "raspberrypi" COMPATIBLE_MACHINE = "^rpi$"
CFLAGS_prepend = "-I${S}/wiringPi -I${S}/devLib " CFLAGS_prepend = "-I${S}/wiringPi -I${S}/devLib "

View File

@@ -1,3 +1,7 @@
PACKAGECONFIG_append_rpi = " gallium" # DRI3 note:
# With oe-core commit 8509e2e1a87578882b71948ccef3b50ccf1228b3 dri3 is set
# as default. To state out clearly that Raspi needs dri3 and to avoid surprises
# in case oe-core changes this default, we set dri3 explicitly.
PACKAGECONFIG_append_rpi = " gallium ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)}"
GALLIUMDRIVERS_rpi = "vc4" GALLIUMDRIVERS_rpi = "vc4"
DRIDRIVERS_rpi = "" DRIDRIVERS_rpi = ""

View File

@@ -1,7 +1,7 @@
From f6540119d5b064361ffcb370373794932f97bfdd Mon Sep 17 00:00:00 2001 From 0a64dc61d3d7db69389157ae757203b4b3afdbfa Mon Sep 17 00:00:00 2001
From: Dom Cobley <dc4@broadcom.com> From: Dom Cobley <dc4@broadcom.com>
Date: Tue, 9 Jul 2013 09:26:26 -0400 Date: Tue, 9 Jul 2013 09:26:26 -0400
Subject: [PATCH 01/13] Allow applications to set next resource handle Subject: [PATCH 01/16] Allow applications to set next resource handle
This patch adds provisions in userland to This patch adds provisions in userland to
let apps callers set the next rendereing dispmanx resource. let apps callers set the next rendereing dispmanx resource.
@@ -204,5 +204,5 @@ index 8a5734c..51b3580 100644
FN(void, eglIntGetColorData_impl, (EGL_SURFACE_ID_T s, KHRN_IMAGE_FORMAT_T format, uint32_t width, uint32_t height, int32_t stride, uint32_t y_offset, void *data)) FN(void, eglIntGetColorData_impl, (EGL_SURFACE_ID_T s, KHRN_IMAGE_FORMAT_T format, uint32_t width, uint32_t height, int32_t stride, uint32_t y_offset, void *data))
-- --
2.12.0 2.16.1

View File

@@ -1,7 +1,7 @@
From 61a9d792ed774af43e592aa8fdb2a18488696d0f Mon Sep 17 00:00:00 2001 From 5608ec8002be8370e78c9dbb1e07cee4cfb18b58 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com> From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Tue, 1 Oct 2013 13:19:20 +0200 Date: Tue, 1 Oct 2013 13:19:20 +0200
Subject: [PATCH 02/13] wayland: Add support for the Wayland winsys Subject: [PATCH 02/16] wayland: Add support for the Wayland winsys
* Adds EGL_WL_bind_wayland_display extension * Adds EGL_WL_bind_wayland_display extension
* Adds wayland-egl library * Adds wayland-egl library
@@ -17,7 +17,7 @@ TODO: wl_dispmanx_server_buffer should probably be defined in a
private header that can be included from EGL and vc_* instead of in private header that can be included from EGL and vc_* instead of in
vc_vchi_dispmanx.h vc_vchi_dispmanx.h
--- ---
.gitignore | 2 + .gitignore | 1 +
CMakeLists.txt | 11 + CMakeLists.txt | 11 +
README.md | 4 + README.md | 4 +
buildme | 10 +- buildme | 10 +-
@@ -47,7 +47,7 @@ vc_vchi_dispmanx.h
interface/vmcs_host/vc_vchi_dispmanx.h | 15 ++ interface/vmcs_host/vc_vchi_dispmanx.h | 15 ++
interface/wayland/dispmanx.xml | 123 +++++++++++ interface/wayland/dispmanx.xml | 123 +++++++++++
makefiles/cmake/Wayland.cmake | 72 ++++++ makefiles/cmake/Wayland.cmake | 72 ++++++
30 files changed, 1258 insertions(+), 98 deletions(-) 30 files changed, 1257 insertions(+), 98 deletions(-)
create mode 100644 interface/khronos/common/linux/khrn_wayland.c create mode 100644 interface/khronos/common/linux/khrn_wayland.c
copy interface/{vmcs_host/vc_vchi_dispmanx.h => khronos/common/linux/khrn_wayland.h} (56%) copy interface/{vmcs_host/vc_vchi_dispmanx.h => khronos/common/linux/khrn_wayland.h} (56%)
create mode 100644 interface/khronos/ext/egl_wayland.c create mode 100644 interface/khronos/ext/egl_wayland.c
@@ -57,21 +57,20 @@ vc_vchi_dispmanx.h
create mode 100644 interface/wayland/dispmanx.xml create mode 100644 interface/wayland/dispmanx.xml
create mode 100644 makefiles/cmake/Wayland.cmake create mode 100644 makefiles/cmake/Wayland.cmake
diff --git a/.gitignore b/.gitignore Index: git/.gitignore
index 4a88665..5da71a9 100644 ===================================================================
--- a/.gitignore --- git.orig/.gitignore
+++ b/.gitignore +++ git/.gitignore
@@ -13,3 +13,5 @@ build/ @@ -30,3 +30,4 @@ build/
*.lai *.pts
*.la *.ppm
*.a *.mkv
+
+*~ +*~
diff --git a/CMakeLists.txt b/CMakeLists.txt Index: git/CMakeLists.txt
index cfc8ae5..673a5ad 100644 ===================================================================
--- a/CMakeLists.txt --- git.orig/CMakeLists.txt
+++ b/CMakeLists.txt +++ git/CMakeLists.txt
@@ -24,6 +24,17 @@ include(makefiles/cmake/global_settings.cmake) @@ -24,6 +24,17 @@ include(makefiles/cmake/global_settings.
include(makefiles/cmake/arm-linux.cmake) include(makefiles/cmake/arm-linux.cmake)
include(makefiles/cmake/vmcs.cmake) include(makefiles/cmake/vmcs.cmake)
@@ -89,22 +88,22 @@ index cfc8ae5..673a5ad 100644
enable_language(ASM) enable_language(ASM)
# Global include paths # Global include paths
diff --git a/README.md b/README.md Index: git/README.md
index 358d2b4..4da4448 100644 ===================================================================
--- a/README.md --- git.orig/README.md
+++ b/README.md +++ git/README.md
@@ -4,3 +4,7 @@ EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG. @@ -6,3 +6,7 @@ Use buildme to build. It requires cmake
Use buildme to build. It requires cmake to be installed and an arm cross compiler. It is set up to use this one:
https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian
Note that this repository does not contain the source for the edid_parser and vcdbg binaries due to licensing restrictions.
+ +
+To build support for the Wayland winsys in EGL, execute the buildme script like this: +To build support for the Wayland winsys in EGL, execute the buildme script like this:
+ +
+$ BUILD_WAYLAND=1 ./buildme. +$ BUILD_WAYLAND=1 ./buildme.
diff --git a/buildme b/buildme Index: git/buildme
index b8fd440..a780bb6 100755 ===================================================================
--- a/buildme --- git.orig/buildme
+++ b/buildme +++ git/buildme
@@ -8,6 +8,10 @@ fi @@ -8,6 +8,10 @@ fi
BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`; BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`;
@@ -131,11 +130,11 @@ index b8fd440..a780bb6 100755
make -j `nproc` make -j `nproc`
if [ "$1" != "" ]; then if [ "$1" != "" ]; then
diff --git a/host_applications/linux/apps/raspicam/CMakeLists.txt b/host_applications/linux/apps/raspicam/CMakeLists.txt Index: git/host_applications/linux/apps/raspicam/CMakeLists.txt
index e6aa6b8..69059cb 100644 ===================================================================
--- a/host_applications/linux/apps/raspicam/CMakeLists.txt --- git.orig/host_applications/linux/apps/raspicam/CMakeLists.txt
+++ b/host_applications/linux/apps/raspicam/CMakeLists.txt +++ git/host_applications/linux/apps/raspicam/CMakeLists.txt
@@ -28,7 +28,7 @@ add_executable(raspividyuv ${COMMON_SOURCES} RaspiVidYUV.c) @@ -28,7 +28,7 @@ add_executable(raspividyuv ${COMMON_SOU
set (MMAL_LIBS mmal_core mmal_util mmal_vc_client) set (MMAL_LIBS mmal_core mmal_util mmal_vc_client)
@@ -144,10 +143,10 @@ index e6aa6b8..69059cb 100644
target_link_libraries(raspiyuv ${MMAL_LIBS} vcos bcm_host) target_link_libraries(raspiyuv ${MMAL_LIBS} vcos bcm_host)
target_link_libraries(raspivid ${MMAL_LIBS} vcos bcm_host) target_link_libraries(raspivid ${MMAL_LIBS} vcos bcm_host)
target_link_libraries(raspividyuv ${MMAL_LIBS} vcos bcm_host) target_link_libraries(raspividyuv ${MMAL_LIBS} vcos bcm_host)
diff --git a/interface/khronos/CMakeLists.txt b/interface/khronos/CMakeLists.txt Index: git/interface/khronos/CMakeLists.txt
index 9ad615b..3d3571a 100644 ===================================================================
--- a/interface/khronos/CMakeLists.txt --- git.orig/interface/khronos/CMakeLists.txt
+++ b/interface/khronos/CMakeLists.txt +++ git/interface/khronos/CMakeLists.txt
@@ -6,6 +6,12 @@ @@ -6,6 +6,12 @@
# have quite a few circular dependencies, and so the only way # have quite a few circular dependencies, and so the only way
# to make it work seems to be to have everything static. # to make it work seems to be to have everything static.
@@ -161,7 +160,7 @@ index 9ad615b..3d3571a 100644
set(EGL_SOURCE set(EGL_SOURCE
egl/egl_client_config.c egl/egl_client_config.c
egl/egl_client_context.c egl/egl_client_context.c
@@ -55,12 +61,56 @@ set(CLIENT_SOURCE @@ -55,12 +61,55 @@ set(CLIENT_SOURCE
common/khrn_int_hash_asm.s common/khrn_int_hash_asm.s
common/khrn_client_cache.c) common/khrn_client_cache.c)
@@ -169,8 +168,7 @@ index 9ad615b..3d3571a 100644
+ khrn_client + khrn_client
+ vchiq_arm + vchiq_arm
+ vcos + vcos
+ bcm_host + bcm_host)
+ -lm)
+ +
+if (BUILD_WAYLAND) +if (BUILD_WAYLAND)
+ set(EGL_SOURCE + set(EGL_SOURCE
@@ -218,21 +216,30 @@ index 9ad615b..3d3571a 100644
# TODO do we need EGL_static and GLESv2_static now that khrn_static exists? # TODO do we need EGL_static and GLESv2_static now that khrn_static exists?
add_library(EGL_static STATIC ${EGL_SOURCE}) add_library(EGL_static STATIC ${EGL_SOURCE})
add_library(GLESv2_static STATIC ${GLES_SOURCE}) add_library(GLESv2_static STATIC ${GLES_SOURCE})
@@ -72,8 +122,7 @@ include_directories (../../host_applications/linux/libs/sm ) @@ -72,8 +121,7 @@ include_directories (../../host_applicat
set(VCSM_LIBS vcsm) set(VCSM_LIBS vcsm)
add_definitions(-DKHRONOS_HAVE_VCSM) add_definitions(-DKHRONOS_HAVE_VCSM)
endif() endif()
- -
-target_link_libraries(EGL khrn_client vchiq_arm vcos bcm_host ${VCSM_LIBS} -lm) -target_link_libraries(EGL khrn_client vchiq_arm vcos bcm_host ${VCSM_LIBS} -lm)
+target_link_libraries(EGL ${EGL_LIBS} ${VCSM_LIBS}) +target_link_libraries(EGL ${EGL_LIBS} ${VCSM_LIBS} -lm)
target_link_libraries(GLESv2 EGL khrn_client vcos) target_link_libraries(GLESv2 EGL khrn_client vcos)
target_link_libraries(WFC EGL) target_link_libraries(WFC EGL)
target_link_libraries(OpenVG EGL) target_link_libraries(OpenVG EGL)
diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c @@ -87,7 +135,7 @@ add_library(brcmGLESv2 ${SHARED} ${GLES_
index ef4babd..d7e798e 100644 add_library(brcmOpenVG ${SHARED} ${VG_SOURCE})
--- a/interface/khronos/common/khrn_client.c add_library(brcmWFC ${SHARED} ${WFC_SOURCE})
+++ b/interface/khronos/common/khrn_client.c
@@ -54,6 +54,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -target_link_libraries(brcmEGL khrn_client vchiq_arm vcos bcm_host ${VCSM_LIBS} -lm)
+target_link_libraries(brcmEGL ${EGL_LIBS} ${VCSM_LIBS} -lm)
target_link_libraries(brcmGLESv2 brcmEGL khrn_client vcos)
target_link_libraries(brcmWFC brcmEGL)
target_link_libraries(brcmOpenVG brcmEGL)
Index: git/interface/khronos/common/khrn_client.c
===================================================================
--- git.orig/interface/khronos/common/khrn_client.c
+++ git/interface/khronos/common/khrn_client.c
@@ -54,6 +54,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
#include "applications/vmcs/khronos/khronos_server.h" #include "applications/vmcs/khronos/khronos_server.h"
#endif #endif
@@ -243,7 +250,7 @@ index ef4babd..d7e798e 100644
VCOS_LOG_CAT_T khrn_client_log = VCOS_LOG_INIT("khrn_client", VCOS_LOG_WARN); VCOS_LOG_CAT_T khrn_client_log = VCOS_LOG_INIT("khrn_client", VCOS_LOG_WARN);
/* /*
@@ -142,6 +146,10 @@ void client_try_unload_server(CLIENT_PROCESS_STATE_T *process) @@ -142,6 +146,10 @@ void client_try_unload_server(CLIENT_PRO
bool client_process_state_init(CLIENT_PROCESS_STATE_T *process) bool client_process_state_init(CLIENT_PROCESS_STATE_T *process)
{ {
if (!process->inited) { if (!process->inited) {
@@ -254,7 +261,7 @@ index ef4babd..d7e798e 100644
if (!khrn_pointer_map_init(&process->contexts, 64)) if (!khrn_pointer_map_init(&process->contexts, 64))
return false; return false;
@@ -194,6 +202,13 @@ bool client_process_state_init(CLIENT_PROCESS_STATE_T *process) @@ -194,6 +202,13 @@ bool client_process_state_init(CLIENT_PR
} }
#endif #endif
@@ -268,10 +275,10 @@ index ef4babd..d7e798e 100644
process->inited = true; process->inited = true;
} }
diff --git a/interface/khronos/common/khrn_client.h b/interface/khronos/common/khrn_client.h Index: git/interface/khronos/common/khrn_client.h
index 804039b..615f7b4 100644 ===================================================================
--- a/interface/khronos/common/khrn_client.h --- git.orig/interface/khronos/common/khrn_client.h
+++ b/interface/khronos/common/khrn_client.h +++ git/interface/khronos/common/khrn_client.h
@@ -310,6 +310,16 @@ struct CLIENT_PROCESS_STATE { @@ -310,6 +310,16 @@ struct CLIENT_PROCESS_STATE {
#ifdef RPC_LIBRARY #ifdef RPC_LIBRARY
KHRONOS_SERVER_CONNECTION_T khrn_connection; KHRONOS_SERVER_CONNECTION_T khrn_connection;
@@ -289,11 +296,11 @@ index 804039b..615f7b4 100644
}; };
extern bool client_process_state_init(CLIENT_PROCESS_STATE_T *process); extern bool client_process_state_init(CLIENT_PROCESS_STATE_T *process);
diff --git a/interface/khronos/common/khrn_client_mangle.h b/interface/khronos/common/khrn_client_mangle.h Index: git/interface/khronos/common/khrn_client_mangle.h
index b3c04f4..b7b21c5 100644 ===================================================================
--- a/interface/khronos/common/khrn_client_mangle.h --- git.orig/interface/khronos/common/khrn_client_mangle.h
+++ b/interface/khronos/common/khrn_client_mangle.h +++ git/interface/khronos/common/khrn_client_mangle.h
@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
#define eglReleaseGlobalImageBRCM mangled_eglReleaseGlobalImageBRCM #define eglReleaseGlobalImageBRCM mangled_eglReleaseGlobalImageBRCM
#define eglInitGlobalImageBRCM mangled_eglInitGlobalImageBRCM #define eglInitGlobalImageBRCM mangled_eglInitGlobalImageBRCM
#define eglTermGlobalImageBRCM mangled_eglTermGlobalImageBRCM #define eglTermGlobalImageBRCM mangled_eglTermGlobalImageBRCM
@@ -303,11 +310,11 @@ index b3c04f4..b7b21c5 100644
/* OpenGL ES 1.1 and 2.0 functions */ /* OpenGL ES 1.1 and 2.0 functions */
diff --git a/interface/khronos/common/khrn_client_platform.h b/interface/khronos/common/khrn_client_platform.h Index: git/interface/khronos/common/khrn_client_platform.h
index 1c9da3a..715c67e 100644 ===================================================================
--- a/interface/khronos/common/khrn_client_platform.h --- git.orig/interface/khronos/common/khrn_client_platform.h
+++ b/interface/khronos/common/khrn_client_platform.h +++ git/interface/khronos/common/khrn_client_platform.h
@@ -48,6 +48,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @@ -48,6 +48,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
#include "interface/khronos/common/vcos/khrn_client_platform_filler_vcos.h" #include "interface/khronos/common/vcos/khrn_client_platform_filler_vcos.h"
#endif #endif
@@ -327,11 +334,11 @@ index 1c9da3a..715c67e 100644
+#endif +#endif
+ +
#endif // KHRN_CLIENT_PLATFORM_H #endif // KHRN_CLIENT_PLATFORM_H
diff --git a/interface/khronos/common/khrn_client_unmangle.h b/interface/khronos/common/khrn_client_unmangle.h Index: git/interface/khronos/common/khrn_client_unmangle.h
index 4f3ce49..84f6ec0 100644 ===================================================================
--- a/interface/khronos/common/khrn_client_unmangle.h --- git.orig/interface/khronos/common/khrn_client_unmangle.h
+++ b/interface/khronos/common/khrn_client_unmangle.h +++ git/interface/khronos/common/khrn_client_unmangle.h
@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
#undef eglReleaseGlobalImageBRCM #undef eglReleaseGlobalImageBRCM
#undef eglInitGlobalImageBRCM #undef eglInitGlobalImageBRCM
#undef eglTermGlobalImageBRCM #undef eglTermGlobalImageBRCM
@@ -341,11 +348,11 @@ index 4f3ce49..84f6ec0 100644
/* OpenGL ES 1.1 and 2.0 functions */ /* OpenGL ES 1.1 and 2.0 functions */
diff --git a/interface/khronos/common/linux/khrn_client_platform_linux.c b/interface/khronos/common/linux/khrn_client_platform_linux.c Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
index 710d20f..50d60a6 100644 ===================================================================
--- a/interface/khronos/common/linux/khrn_client_platform_linux.c --- git.orig/interface/khronos/common/linux/khrn_client_platform_linux.c
+++ b/interface/khronos/common/linux/khrn_client_platform_linux.c +++ git/interface/khronos/common/linux/khrn_client_platform_linux.c
@@ -37,6 +37,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @@ -37,6 +37,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
#include "X11/Xlib.h" #include "X11/Xlib.h"
#endif #endif
@@ -357,7 +364,7 @@ index 710d20f..50d60a6 100644
extern VCOS_LOG_CAT_T khrn_client_log; extern VCOS_LOG_CAT_T khrn_client_log;
extern void vc_vchi_khronos_init(); extern void vc_vchi_khronos_init();
@@ -464,13 +469,36 @@ EGLDisplay khrn_platform_set_display_id(EGLNativeDisplayType display_id) @@ -464,14 +469,37 @@ EGLDisplay khrn_platform_set_display_id(
return EGL_NO_DISPLAY; return EGL_NO_DISPLAY;
} }
#else #else
@@ -385,18 +392,19 @@ index 710d20f..50d60a6 100644
+#endif +#endif
+ return EGL_NO_DISPLAY; + return EGL_NO_DISPLAY;
+ } + }
} +}
+ +
+#ifdef BUILD_WAYLAND +#ifdef BUILD_WAYLAND
+struct wl_display *khrn_platform_get_wl_display() +struct wl_display *khrn_platform_get_wl_display()
+{ +{
+ return hacky_display; + return hacky_display;
+} }
+#endif
#endif #endif
+#endif
#ifdef WANT_X #ifdef WANT_X
@@ -805,22 +833,81 @@ static EGL_DISPMANX_WINDOW_T *check_default(EGLNativeWindowType win) static void dump_hierarchy(Window w, Window thisw, Window look, int level)
@@ -805,22 +833,81 @@ static EGL_DISPMANX_WINDOW_T *check_defa
void platform_get_dimensions(EGLDisplay dpy, EGLNativeWindowType win, void platform_get_dimensions(EGLDisplay dpy, EGLNativeWindowType win,
uint32_t *width, uint32_t *height, uint32_t *swapchain_count) uint32_t *width, uint32_t *height, uint32_t *swapchain_count)
{ {
@@ -427,8 +435,8 @@ index 710d20f..50d60a6 100644
+#ifdef BUILD_WAYLAND +#ifdef BUILD_WAYLAND
+ } + }
+#endif +#endif
} +}
+
+#ifdef BUILD_WAYLAND +#ifdef BUILD_WAYLAND
+static DISPMANX_ELEMENT_HANDLE_T create_dummy_element() +static DISPMANX_ELEMENT_HANDLE_T create_dummy_element()
+{ +{
@@ -459,9 +467,9 @@ index 710d20f..50d60a6 100644
+ vc_dispmanx_display_close(display); + vc_dispmanx_display_close(display);
+ +
+ return element; + return element;
+} }
+#endif +#endif
+
uint32_t platform_get_handle(EGLDisplay dpy, EGLNativeWindowType win) uint32_t platform_get_handle(EGLDisplay dpy, EGLNativeWindowType win)
{ {
- EGL_DISPMANX_WINDOW_T *dwin = check_default(win); - EGL_DISPMANX_WINDOW_T *dwin = check_default(win);
@@ -490,11 +498,10 @@ index 710d20f..50d60a6 100644
} }
#endif #endif
diff --git a/interface/khronos/common/linux/khrn_wayland.c b/interface/khronos/common/linux/khrn_wayland.c Index: git/interface/khronos/common/linux/khrn_wayland.c
new file mode 100644 ===================================================================
index 0000000..0e1b9e7
--- /dev/null --- /dev/null
+++ b/interface/khronos/common/linux/khrn_wayland.c +++ git/interface/khronos/common/linux/khrn_wayland.c
@@ -0,0 +1,215 @@ @@ -0,0 +1,215 @@
+/* +/*
+Copyright (c) 2013, Raspberry Pi Foundation +Copyright (c) 2013, Raspberry Pi Foundation
@@ -711,74 +718,72 @@ index 0000000..0e1b9e7
+ +
+ return wl_dispmanx_client_buffer; + return wl_dispmanx_client_buffer;
+} +}
diff --git a/interface/vmcs_host/vc_vchi_dispmanx.h b/interface/khronos/common/linux/khrn_wayland.h Index: git/interface/vmcs_host/vc_vchi_dispmanx.h
similarity index 56% ===================================================================
copy from interface/vmcs_host/vc_vchi_dispmanx.h --- git.orig/interface/vmcs_host/vc_vchi_dispmanx.h
copy to interface/khronos/common/linux/khrn_wayland.h +++ git/interface/vmcs_host/vc_vchi_dispmanx.h
index b723b76..b9bf08c 100644 @@ -66,4 +66,19 @@ typedef struct {
--- a/interface/vmcs_host/vc_vchi_dispmanx.h #define ELEMENT_CHANGE_MASK_RESOURCE (1<<4)
+++ b/interface/khronos/common/linux/khrn_wayland.h #define ELEMENT_CHANGE_TRANSFORM (1<<5)
@@ -1,5 +1,5 @@
/* +#ifdef BUILD_WAYLAND
-Copyright (c) 2012, Broadcom Europe Ltd +/* XXX: This should be in a private header that can be included from EGL and vc_* */
+#include <wayland-server.h>
+#include "interface/vmcs_host/wayland-dispmanx-server-protocol.h"
+struct wl_dispmanx_server_buffer {
+ struct wl_resource *resource;
+ struct wl_dispmanx *dispmanx;
+ enum wl_dispmanx_format format;
+ DISPMANX_RESOURCE_HANDLE_T handle;
+ int32_t width;
+ int32_t height;
+ int in_use;
+};
+#endif
+
#endif
Index: git/interface/khronos/common/linux/khrn_wayland.h
===================================================================
--- /dev/null
+++ git/interface/khronos/common/linux/khrn_wayland.h
@@ -0,0 +1,33 @@
+/*
+Copyright (c) 2013, Raspberry Pi Foundation +Copyright (c) 2013, Raspberry Pi Foundation
All rights reserved. +All rights reserved.
+
Redistribution and use in source and binary forms, with or without +Redistribution and use in source and binary forms, with or without
@@ -25,45 +25,9 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +modification, are permitted provided that the following conditions are met:
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * Redistributions of source code must retain the above copyright
*/ + notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
-#ifndef VC_VCHI_DISPMANX_H + notice, this list of conditions and the following disclaimer in the
-#define VC_VCHI_DISPMANX_H + documentation and/or other materials provided with the distribution.
+ * Neither the name of the copyright holder nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "interface/khronos/common/khrn_client.h" +#include "interface/khronos/common/khrn_client.h"
+
-#include "interface/peer/vc_vchi_dispmanx_common.h"
+int init_process_wayland(CLIENT_PROCESS_STATE_T *process); +int init_process_wayland(CLIENT_PROCESS_STATE_T *process);
+int do_wl_roundtrip(); +int do_wl_roundtrip();
+
-#define VC_NUM_HOST_RESOURCES 64
-#define DISPMANX_MSGFIFO_SIZE 1024
-#define DISPMANX_CLIENT_NAME MAKE_FOURCC("DISP")
-#define DISPMANX_NOTIFY_NAME MAKE_FOURCC("UPDH")
-
-//Or with command to indicate we don't need a response
-#define DISPMANX_NO_REPLY_MASK (1<<31)
-
-typedef struct {
- char description[32];
- uint32_t width;
- uint32_t height;
- uint32_t aspect_pixwidth;
- uint32_t aspect_pixheight;
- uint32_t fieldrate_num;
- uint32_t fieldrate_denom;
- uint32_t fields_per_frame;
- uint32_t transform;
-} GET_MODES_DATA_T;
-
-typedef struct {
- int32_t response;
- uint32_t width;
- uint32_t height;
- uint32_t transform;
- uint32_t input_format;
-} GET_INFO_DATA_T;
-
-//Attributes changes flag mask
-#define ELEMENT_CHANGE_LAYER (1<<0)
-#define ELEMENT_CHANGE_OPACITY (1<<1)
-#define ELEMENT_CHANGE_DEST_RECT (1<<2)
-#define ELEMENT_CHANGE_SRC_RECT (1<<3)
-#define ELEMENT_CHANGE_MASK_RESOURCE (1<<4)
-#define ELEMENT_CHANGE_TRANSFORM (1<<5)
-
-#endif
+struct wl_dispmanx_client_buffer *allocate_wl_buffer(struct wl_egl_window *window, KHRN_IMAGE_FORMAT_T color); +struct wl_dispmanx_client_buffer *allocate_wl_buffer(struct wl_egl_window *window, KHRN_IMAGE_FORMAT_T color);
diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c Index: git/interface/khronos/egl/egl_client.c
index b8bb374..03fe67b 100644 ===================================================================
--- a/interface/khronos/egl/egl_client.c --- git.orig/interface/khronos/egl/egl_client.c
+++ b/interface/khronos/egl/egl_client.c +++ git/interface/khronos/egl/egl_client.c
@@ -153,6 +153,10 @@ by an attribute value" @@ -153,6 +153,10 @@ by an attribute value"
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
@@ -790,7 +795,7 @@ index b8bb374..03fe67b 100644
#include "interface/khronos/egl/egl_client_cr.c" #include "interface/khronos/egl/egl_client_cr.c"
@@ -162,17 +166,6 @@ static void egl_current_release(CLIENT_PROCESS_STATE_T *process, EGL_CURRENT_T * @@ -162,17 +166,6 @@ static void egl_current_release(CLIENT_P
void egl_gl_flush_callback(bool wait); void egl_gl_flush_callback(bool wait);
void egl_vg_flush_callback(bool wait); void egl_vg_flush_callback(bool wait);
@@ -808,7 +813,7 @@ index b8bb374..03fe67b 100644
/* /*
TODO: do an RPC call to make sure the Khronos vll is loaded (and that it stays loaded until eglTerminate) TODO: do an RPC call to make sure the Khronos vll is loaded (and that it stays loaded until eglTerminate)
Also affects global image (and possibly others?) Also affects global image (and possibly others?)
@@ -451,6 +444,9 @@ EGLAPI const char EGLAPIENTRY * eglQueryString(EGLDisplay dpy, EGLint name) @@ -451,6 +444,9 @@ EGLAPI const char EGLAPIENTRY * eglQuery
"EGL_KHR_fence_sync " "EGL_KHR_fence_sync "
#endif #endif
#endif #endif
@@ -818,7 +823,7 @@ index b8bb374..03fe67b 100644
; ;
break; break;
case EGL_VENDOR: case EGL_VENDOR:
@@ -655,8 +651,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig c @@ -655,8 +651,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateW
false, false,
EGL_NO_TEXTURE, EGL_NO_TEXTURE,
EGL_NO_TEXTURE, EGL_NO_TEXTURE,
@@ -828,7 +833,7 @@ index b8bb374..03fe67b 100644
if (surface) { if (surface) {
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) { if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
@@ -901,7 +896,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig @@ -901,7 +896,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateP
mipmap_texture, mipmap_texture,
texture_format, texture_format,
texture_target, texture_target,
@@ -837,7 +842,7 @@ index b8bb374..03fe67b 100644
if (surface) { if (surface) {
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) { if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
@@ -1043,7 +1038,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig c @@ -1043,7 +1038,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateP
false, false,
EGL_NO_TEXTURE, EGL_NO_TEXTURE,
EGL_NO_TEXTURE, EGL_NO_TEXTURE,
@@ -846,7 +851,7 @@ index b8bb374..03fe67b 100644
if (surface) { if (surface) {
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) { if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
@@ -2245,6 +2240,9 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf) @@ -2245,6 +2240,9 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuf
CLIENT_THREAD_STATE_T *thread; CLIENT_THREAD_STATE_T *thread;
CLIENT_PROCESS_STATE_T *process; CLIENT_PROCESS_STATE_T *process;
EGLBoolean result; EGLBoolean result;
@@ -856,7 +861,7 @@ index b8bb374..03fe67b 100644
vcos_log_trace("eglSwapBuffers start. dpy=%d. surf=%d.", (int)dpy, (int)surf); vcos_log_trace("eglSwapBuffers start. dpy=%d. surf=%d.", (int)dpy, (int)surf);
@@ -2315,18 +2313,58 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf) @@ -2315,18 +2313,58 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuf
vcos_log_trace("eglSwapBuffers server call"); vcos_log_trace("eglSwapBuffers server call");
@@ -927,11 +932,11 @@ index b8bb374..03fe67b 100644
RPC_CALL6(eglIntSwapBuffers_impl, RPC_CALL6(eglIntSwapBuffers_impl,
thread, thread,
EGLINTSWAPBUFFERS_ID, EGLINTSWAPBUFFERS_ID,
diff --git a/interface/khronos/egl/egl_client_get_proc.c b/interface/khronos/egl/egl_client_get_proc.c Index: git/interface/khronos/egl/egl_client_get_proc.c
index 4cfa9ff..6a715af 100644 ===================================================================
--- a/interface/khronos/egl/egl_client_get_proc.c --- git.orig/interface/khronos/egl/egl_client_get_proc.c
+++ b/interface/khronos/egl/egl_client_get_proc.c +++ git/interface/khronos/egl/egl_client_get_proc.c
@@ -254,6 +254,17 @@ EGLAPI void EGLAPIENTRY (* eglGetProcAddress(const char *procname))(void) @@ -254,6 +254,17 @@ EGLAPI void EGLAPIENTRY (* eglGetProcAdd
return (void(*)(void))eglQueryGlobalImageBRCM; return (void(*)(void))eglQueryGlobalImageBRCM;
#endif #endif
@@ -949,11 +954,11 @@ index 4cfa9ff..6a715af 100644
return (void(*)(void)) NULL; return (void(*)(void)) NULL;
} }
diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c Index: git/interface/khronos/egl/egl_client_surface.c
index 128325e..42350bf 100644 ===================================================================
--- a/interface/khronos/egl/egl_client_surface.c --- git.orig/interface/khronos/egl/egl_client_surface.c
+++ b/interface/khronos/egl/egl_client_surface.c +++ git/interface/khronos/egl/egl_client_surface.c
@@ -46,6 +46,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @@ -46,6 +46,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
#include "interface/khronos/egl/egl_int_impl.h" #include "interface/khronos/egl/egl_int_impl.h"
#endif #endif
@@ -1027,7 +1032,7 @@ index 128325e..42350bf 100644
RPC_CALL15_OUT_CTRL(eglIntCreateSurface_impl, RPC_CALL15_OUT_CTRL(eglIntCreateSurface_impl,
thread, thread,
EGLINTCREATESURFACE_ID, EGLINTCREATESURFACE_ID,
@@ -663,6 +685,18 @@ void egl_surface_free(EGL_SURFACE_T *surface) @@ -663,6 +685,18 @@ void egl_surface_free(EGL_SURFACE_T *sur
if( surface->type == WINDOW ) { if( surface->type == WINDOW ) {
vcos_log_trace("egl_surface_free: calling platform_destroy_winhandle..."); vcos_log_trace("egl_surface_free: calling platform_destroy_winhandle...");
platform_destroy_winhandle( surface->win, surface->internal_handle ); platform_destroy_winhandle( surface->win, surface->internal_handle );
@@ -1046,10 +1051,10 @@ index 128325e..42350bf 100644
} }
/* return value ignored -- read performed to ensure blocking. we want this to /* return value ignored -- read performed to ensure blocking. we want this to
* block so clients can safely destroy the surface's window as soon as the * block so clients can safely destroy the surface's window as soon as the
diff --git a/interface/khronos/egl/egl_client_surface.h b/interface/khronos/egl/egl_client_surface.h Index: git/interface/khronos/egl/egl_client_surface.h
index b5bf70a..e328b77 100644 ===================================================================
--- a/interface/khronos/egl/egl_client_surface.h --- git.orig/interface/khronos/egl/egl_client_surface.h
+++ b/interface/khronos/egl/egl_client_surface.h +++ git/interface/khronos/egl/egl_client_surface.h
@@ -288,6 +288,41 @@ typedef struct { @@ -288,6 +288,41 @@ typedef struct {
type == PIXMAP type == PIXMAP
*/ */
@@ -1092,7 +1097,7 @@ index b5bf70a..e328b77 100644
} EGL_SURFACE_T; } EGL_SURFACE_T;
extern bool egl_surface_check_attribs( extern bool egl_surface_check_attribs(
@@ -322,8 +357,7 @@ extern EGL_SURFACE_T *egl_surface_create( @@ -322,8 +357,7 @@ extern EGL_SURFACE_T *egl_surface_create
EGLenum texture_format, EGLenum texture_format,
EGLenum texture_target, EGLenum texture_target,
EGLNativePixmapType pixmap, EGLNativePixmapType pixmap,
@@ -1102,10 +1107,10 @@ index b5bf70a..e328b77 100644
extern EGL_SURFACE_T *egl_surface_from_vg_image( extern EGL_SURFACE_T *egl_surface_from_vg_image(
VGImage vg_handle, VGImage vg_handle,
EGLSurface name, EGLSurface name,
diff --git a/interface/khronos/egl/egl_int_impl.h b/interface/khronos/egl/egl_int_impl.h Index: git/interface/khronos/egl/egl_int_impl.h
index 51b3580..6863a3b 100644 ===================================================================
--- a/interface/khronos/egl/egl_int_impl.h --- git.orig/interface/khronos/egl/egl_int_impl.h
+++ b/interface/khronos/egl/egl_int_impl.h +++ git/interface/khronos/egl/egl_int_impl.h
@@ -57,7 +57,7 @@ FN(int, eglIntCreateSurface_impl, ( @@ -57,7 +57,7 @@ FN(int, eglIntCreateSurface_impl, (
uint32_t sem, uint32_t sem,
uint32_t type, uint32_t type,
@@ -1115,11 +1120,10 @@ index 51b3580..6863a3b 100644
FN(int, eglIntCreatePbufferFromVGImage_impl, ( FN(int, eglIntCreatePbufferFromVGImage_impl, (
VGImage vg_handle, VGImage vg_handle,
diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c Index: git/interface/khronos/ext/egl_wayland.c
new file mode 100644 ===================================================================
index 0000000..5730743
--- /dev/null --- /dev/null
+++ b/interface/khronos/ext/egl_wayland.c +++ git/interface/khronos/ext/egl_wayland.c
@@ -0,0 +1,246 @@ @@ -0,0 +1,246 @@
+/* +/*
+Copyright (c) 2013, Raspberry Pi Foundation +Copyright (c) 2013, Raspberry Pi Foundation
@@ -1367,11 +1371,11 @@ index 0000000..5730743
+ +
+ return EGL_FALSE; + return EGL_FALSE;
+} +}
diff --git a/interface/khronos/include/EGL/eglext.h b/interface/khronos/include/EGL/eglext.h Index: git/interface/khronos/include/EGL/eglext.h
index 89a3369..d7e5ba7 100755 ===================================================================
--- a/interface/khronos/include/EGL/eglext.h --- git.orig/interface/khronos/include/EGL/eglext.h
+++ b/interface/khronos/include/EGL/eglext.h +++ git/interface/khronos/include/EGL/eglext.h
@@ -191,6 +191,29 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EG @@ -191,6 +191,29 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLG
#endif #endif
@@ -1401,11 +1405,10 @@ index 89a3369..d7e5ba7 100755
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
diff --git a/interface/khronos/wayland-egl/wayland-egl-priv.h b/interface/khronos/wayland-egl/wayland-egl-priv.h Index: git/interface/khronos/wayland-egl/wayland-egl-priv.h
new file mode 100644 ===================================================================
index 0000000..8e38d36
--- /dev/null --- /dev/null
+++ b/interface/khronos/wayland-egl/wayland-egl-priv.h +++ git/interface/khronos/wayland-egl/wayland-egl-priv.h
@@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
+/* Copied from Mesa */ +/* Copied from Mesa */
+ +
@@ -1460,11 +1463,10 @@ index 0000000..8e38d36
+#endif +#endif
+ +
+#endif +#endif
diff --git a/interface/khronos/wayland-egl/wayland-egl.c b/interface/khronos/wayland-egl/wayland-egl.c Index: git/interface/khronos/wayland-egl/wayland-egl.c
new file mode 100644 ===================================================================
index 0000000..b8f050b
--- /dev/null --- /dev/null
+++ b/interface/khronos/wayland-egl/wayland-egl.c +++ git/interface/khronos/wayland-egl/wayland-egl.c
@@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
+/* Copied from Mesa */ +/* Copied from Mesa */
+ +
@@ -1525,11 +1527,10 @@ index 0000000..b8f050b
+ if (height) + if (height)
+ *height = egl_window->attached_height; + *height = egl_window->attached_height;
+} +}
diff --git a/interface/khronos/wayland-egl/wayland-egl.pc.in b/interface/khronos/wayland-egl/wayland-egl.pc.in Index: git/interface/khronos/wayland-egl/wayland-egl.pc.in
new file mode 100644 ===================================================================
index 0000000..8bafc15
--- /dev/null --- /dev/null
+++ b/interface/khronos/wayland-egl/wayland-egl.pc.in +++ git/interface/khronos/wayland-egl/wayland-egl.pc.in
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
+prefix=@CMAKE_INSTALL_PREFIX@ +prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${prefix} +exec_prefix=${prefix}
@@ -1541,10 +1542,10 @@ index 0000000..8bafc15
+Version: @PROJECT_APIVER@ +Version: @PROJECT_APIVER@
+Libs: -L${libdir} -lwayland-egl +Libs: -L${libdir} -lwayland-egl
+Cflags: -I${includedir} +Cflags: -I${includedir}
diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt Index: git/interface/vmcs_host/CMakeLists.txt
index fde18da..6718215 100755 ===================================================================
--- a/interface/vmcs_host/CMakeLists.txt --- git.orig/interface/vmcs_host/CMakeLists.txt
+++ b/interface/vmcs_host/CMakeLists.txt +++ git/interface/vmcs_host/CMakeLists.txt
@@ -9,13 +9,24 @@ add_definitions(-fno-strict-aliasing) @@ -9,13 +9,24 @@ add_definitions(-fno-strict-aliasing)
include_directories(${VMCS_TARGET}/vcfiled) include_directories(${VMCS_TARGET}/vcfiled)
@@ -1575,11 +1576,11 @@ index fde18da..6718215 100755
#add_library(bufman vc_vchi_bufman.c ) #add_library(bufman vc_vchi_bufman.c )
# OpenMAX/IL component service # OpenMAX/IL component service
diff --git a/interface/vmcs_host/vc_dispmanx.h b/interface/vmcs_host/vc_dispmanx.h Index: git/interface/vmcs_host/vc_dispmanx.h
index 37fdae1..fe3619a 100755 ===================================================================
--- a/interface/vmcs_host/vc_dispmanx.h --- git.orig/interface/vmcs_host/vc_dispmanx.h
+++ b/interface/vmcs_host/vc_dispmanx.h +++ git/interface/vmcs_host/vc_dispmanx.h
@@ -39,6 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @@ -39,6 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@@ -1591,7 +1592,7 @@ index 37fdae1..fe3619a 100755
// Same function as above, to aid migration of code. // Same function as above, to aid migration of code.
VCHPRE_ int VCHPOST_ vc_dispman_init( void ); VCHPRE_ int VCHPOST_ vc_dispman_init( void );
// Stop the service from being used // Stop the service from being used
@@ -135,6 +140,11 @@ VCHPRE_ int VCHPOST_ vc_dispmanx_resource_set_palette( DISPMANX_RESOURCE_HANDLE_ @@ -135,6 +140,11 @@ VCHPRE_ int VCHPOST_ vc_dispmanx_resourc
// Start triggering callbacks synced to vsync // Start triggering callbacks synced to vsync
VCHPRE_ int VCHPOST_ vc_dispmanx_vsync_callback( DISPMANX_DISPLAY_HANDLE_T display, DISPMANX_CALLBACK_FUNC_T cb_func, void *cb_arg ); VCHPRE_ int VCHPOST_ vc_dispmanx_vsync_callback( DISPMANX_DISPLAY_HANDLE_T display, DISPMANX_CALLBACK_FUNC_T cb_func, void *cb_arg );
@@ -1603,11 +1604,11 @@ index 37fdae1..fe3619a 100755
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c Index: git/interface/vmcs_host/vc_vchi_dispmanx.c
index 7a6cdcd..eab146e 100755 ===================================================================
--- a/interface/vmcs_host/vc_vchi_dispmanx.c --- git.orig/interface/vmcs_host/vc_vchi_dispmanx.c
+++ b/interface/vmcs_host/vc_vchi_dispmanx.c +++ git/interface/vmcs_host/vc_vchi_dispmanx.c
@@ -1319,3 +1319,45 @@ static void *dispmanx_notify_func( void *arg ) { @@ -1319,3 +1319,45 @@ static void *dispmanx_notify_func( void
} }
return 0; return 0;
} }
@@ -1653,35 +1654,10 @@ index 7a6cdcd..eab146e 100755
+ buffer->in_use = in_use; + buffer->in_use = in_use;
+} +}
+#endif +#endif
diff --git a/interface/vmcs_host/vc_vchi_dispmanx.h b/interface/vmcs_host/vc_vchi_dispmanx.h Index: git/interface/wayland/dispmanx.xml
index b723b76..f0bae30 100644 ===================================================================
--- a/interface/vmcs_host/vc_vchi_dispmanx.h
+++ b/interface/vmcs_host/vc_vchi_dispmanx.h
@@ -66,4 +66,19 @@ typedef struct {
#define ELEMENT_CHANGE_MASK_RESOURCE (1<<4)
#define ELEMENT_CHANGE_TRANSFORM (1<<5)
+#ifdef BUILD_WAYLAND
+/* XXX: This should be in a private header that can be included from EGL and vc_* */
+#include <wayland-server.h>
+#include "interface/vmcs_host/wayland-dispmanx-server-protocol.h"
+struct wl_dispmanx_server_buffer {
+ struct wl_resource *resource;
+ struct wl_dispmanx *dispmanx;
+ enum wl_dispmanx_format format;
+ DISPMANX_RESOURCE_HANDLE_T handle;
+ int32_t width;
+ int32_t height;
+ int in_use;
+};
+#endif
+
#endif
diff --git a/interface/wayland/dispmanx.xml b/interface/wayland/dispmanx.xml
new file mode 100644
index 0000000..c18626d
--- /dev/null --- /dev/null
+++ b/interface/wayland/dispmanx.xml +++ git/interface/wayland/dispmanx.xml
@@ -0,0 +1,123 @@ @@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="dispmanx"> +<protocol name="dispmanx">
@@ -1806,11 +1782,10 @@ index 0000000..c18626d
+ </interface> + </interface>
+ +
+</protocol> +</protocol>
diff --git a/makefiles/cmake/Wayland.cmake b/makefiles/cmake/Wayland.cmake Index: git/makefiles/cmake/Wayland.cmake
new file mode 100644 ===================================================================
index 0000000..ad90d30
--- /dev/null --- /dev/null
+++ b/makefiles/cmake/Wayland.cmake +++ git/makefiles/cmake/Wayland.cmake
@@ -0,0 +1,72 @@ @@ -0,0 +1,72 @@
+#============================================================================= +#=============================================================================
+# Copyright (C) 2012-2013 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> +# Copyright (C) 2012-2013 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
@@ -1884,6 +1859,3 @@ index 0000000..ad90d30
+ list(APPEND ${_sources} "${_server_header}") + list(APPEND ${_sources} "${_server_header}")
+ set(${_sources} ${${_sources}} PARENT_SCOPE) + set(${_sources} ${${_sources}} PARENT_SCOPE)
+endfunction() +endfunction()
--
2.12.2

View File

@@ -1,7 +1,7 @@
From 08679675740d92f022e0fd46207a42589c9f6c51 Mon Sep 17 00:00:00 2001 From 20ac7c6af4e826b5c536b6a7c8b2d1d266ced81e Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com> From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Tue, 1 Oct 2013 13:19:20 +0200 Date: Tue, 1 Oct 2013 13:19:20 +0200
Subject: [PATCH 03/13] wayland: Add Wayland example Subject: [PATCH 03/16] wayland: Add Wayland example
--- ---
.../linux/apps/hello_pi/CMakeLists.txt | 1 + .../linux/apps/hello_pi/CMakeLists.txt | 1 +
@@ -862,5 +862,5 @@ index 8225dd5..0be6ce7 100755
make -C libs/ilclient make -C libs/ilclient
make -C libs/vgfont make -C libs/vgfont
@@ -31,4 +32,4 @@ make -C hello_videocube @@ -31,4 +32,4 @@ make -C hello_videocube
make -C hello_teapot make -C hello_teapot
make -C hello_fft make -C hello_fft

View File

@@ -1,7 +1,7 @@
From eb9d0eb386b9b3df519a299887b45962c03e732c Mon Sep 17 00:00:00 2001 From f17879b691984b5c4950e4b94ebf102c78797ede Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 10 Aug 2015 02:38:27 -0700 Date: Mon, 10 Aug 2015 02:38:27 -0700
Subject: [PATCH 04/13] wayland-egl: Add bcm_host to dependencies Subject: [PATCH 04/16] wayland-egl: Add bcm_host to dependencies
It uses headers like vcos_platform_types.h but does not It uses headers like vcos_platform_types.h but does not
depend on module which should add the required include paths depend on module which should add the required include paths
@@ -24,5 +24,5 @@ index 8bafc15..fd259c9 100644
Libs: -L${libdir} -lwayland-egl Libs: -L${libdir} -lwayland-egl
Cflags: -I${includedir} Cflags: -I${includedir}
-- --
2.12.0 2.16.1

View File

@@ -1,7 +1,7 @@
From ef3162e061a3231fbf836208f98c38c7c5581a9e Mon Sep 17 00:00:00 2001 From 0273b7b9d7a27d8fe7d3ad8680b799f997e75dca Mon Sep 17 00:00:00 2001
From: "Yann E. MORIN" <yann.morin.1998@free.fr> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Date: Sat, 24 Jan 2015 22:07:19 +0100 Date: Sat, 24 Jan 2015 22:07:19 +0100
Subject: [PATCH 05/13] interface: remove faulty assert() to make weston happy Subject: [PATCH 05/16] interface: remove faulty assert() to make weston happy
at runtime at runtime
This was removed after a discussion on IRC with the weston guys This was removed after a discussion on IRC with the weston guys
@@ -13,7 +13,7 @@ Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
1 file changed, 1 deletion(-) 1 file changed, 1 deletion(-)
diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c
index 45f4cff..5d0368c 100755 index eab146e..29e0dee 100755
--- a/interface/vmcs_host/vc_vchi_dispmanx.c --- a/interface/vmcs_host/vc_vchi_dispmanx.c
+++ b/interface/vmcs_host/vc_vchi_dispmanx.c +++ b/interface/vmcs_host/vc_vchi_dispmanx.c
@@ -1306,7 +1306,6 @@ static void *dispmanx_notify_func( void *arg ) { @@ -1306,7 +1306,6 @@ static void *dispmanx_notify_func( void *arg ) {
@@ -25,5 +25,5 @@ index 45f4cff..5d0368c 100755
} }
} else { } else {
-- --
2.12.0 2.16.1

View File

@@ -1,7 +1,7 @@
From 846e9271cf6a264e7e1f4e33be64df990ff39a74 Mon Sep 17 00:00:00 2001 From 0d678cd2042551cc4e26ec42fa3aba7c72d033b4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:10:47 -0800 Date: Sat, 6 Feb 2016 11:10:47 -0800
Subject: [PATCH 06/13] zero-out wl buffers in egl_surface_free Subject: [PATCH 06/16] zero-out wl buffers in egl_surface_free
origins from buildroot origins from buildroot
@@ -29,5 +29,5 @@ index 42350bf..1f923d9 100644
#endif #endif
} }
-- --
2.12.0 2.16.1

View File

@@ -1,7 +1,7 @@
From 15510fdf1c753c967b509046616b1e1a11b5b772 Mon Sep 17 00:00:00 2001 From ec2e00989bf614b259bc9a47b5035f8586e8a214 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:11:41 -0800 Date: Sat, 6 Feb 2016 11:11:41 -0800
Subject: [PATCH 07/13] initialize front back wayland buffers Subject: [PATCH 07/16] initialize front back wayland buffers
origins from metrological wayland support origins from metrological wayland support
@@ -30,5 +30,5 @@ index 1f923d9..9a9582c 100644
} }
#endif #endif
-- --
2.12.0 2.16.1

View File

@@ -1,7 +1,7 @@
From 1df080ab9528b82321cf87d71927314294ef7121 Mon Sep 17 00:00:00 2001 From 59ba66c2ea17f7a57124b9fd6c9bdff4325ff5c9 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:09:18 -0800 Date: Sat, 6 Feb 2016 11:09:18 -0800
Subject: [PATCH 08/13] Remove RPC_FLUSH Subject: [PATCH 08/16] Remove RPC_FLUSH
Origins from buildroot Origins from buildroot
@@ -23,5 +23,5 @@ index f9b7287..b04ffef 100644
} }
#endif #endif
-- --
2.12.0 2.16.1

View File

@@ -1,7 +1,7 @@
From 11842307cc0e32bac6ef7622e7791ca7a0e9fa61 Mon Sep 17 00:00:00 2001 From 264d82387ea1e607b2e5c899ff6bd46807c7b185 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 13:12:47 -0800 Date: Sat, 6 Feb 2016 13:12:47 -0800
Subject: [PATCH 09/13] fix cmake dependency race Subject: [PATCH 09/16] fix cmake dependency race
Fixes errors like Fixes errors like
@@ -74,5 +74,5 @@ index f0bae30..8c44c58 100644
struct wl_resource *resource; struct wl_resource *resource;
struct wl_dispmanx *dispmanx; struct wl_dispmanx *dispmanx;
-- --
2.12.0 2.16.1

View File

@@ -1,7 +1,7 @@
From 532dc7dc11877a9dae0f3d101c9bfdacc50840ca Mon Sep 17 00:00:00 2001 From 7c51c2d37bfadaabbbf205237d932b685b09d34f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 29 Mar 2016 20:38:30 -0700 Date: Tue, 29 Mar 2016 20:38:30 -0700
Subject: [PATCH 10/13] Fix for framerate with nested composition Subject: [PATCH 10/16] Fix for framerate with nested composition
frame rate appears irregular and lower than expected when using nested composition. frame rate appears irregular and lower than expected when using nested composition.
@@ -56,5 +56,5 @@ index 03fe67b..13a110c 100644
#ifdef ANDROID #ifdef ANDROID
CLIENT_UNLOCK(); CLIENT_UNLOCK();
-- --
2.12.0 2.16.1

View File

@@ -1,7 +1,7 @@
From 37ff90075102407d3abb3899b8c6ef64f6230207 Mon Sep 17 00:00:00 2001 From fb3002f77a175633af31019c513754d2ef5f3ac0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Apr 2016 10:37:24 -0700 Date: Sat, 2 Apr 2016 10:37:24 -0700
Subject: [PATCH 11/13] build shared library for vchostif Subject: [PATCH 11/16] build shared library for vchostif
Fixes #149 Fixes #149
@@ -24,5 +24,5 @@ index c415176..d0cca1a 100755
#add_library(bufman vc_vchi_bufman.c ) #add_library(bufman vc_vchi_bufman.c )
-- --
2.12.0 2.16.1

View File

@@ -1,7 +1,7 @@
From ce130bff946c3b78fc4dbbf98d9b16b5152f2e85 Mon Sep 17 00:00:00 2001 From df8b9633a45069bdd1bf256d974636ef11aa39cb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Apr 2016 10:54:59 -0700 Date: Sat, 2 Apr 2016 10:54:59 -0700
Subject: [PATCH 12/13] implement buffer wrapping interface for dispmanx Subject: [PATCH 12/16] implement buffer wrapping interface for dispmanx
Courtesy: Zan Dobersek Courtesy: Zan Dobersek
@@ -88,5 +88,5 @@ index c18626d..11ed1ef 100644
</protocol> </protocol>
-- --
2.12.0 2.16.1

View File

@@ -1,7 +1,7 @@
From 14d915a63a4e69290966543ce12edd615bfa9a25 Mon Sep 17 00:00:00 2001 From 2e0e331da8556fecd841349cfae294baf0f14485 Mon Sep 17 00:00:00 2001
From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com> From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
Date: Thu, 19 Jan 2017 18:56:07 +0000 Date: Thu, 19 Jan 2017 18:56:07 +0000
Subject: [PATCH 13/13] Implement triple buffering for wayland Subject: [PATCH 13/16] Implement triple buffering for wayland
Change from double to triple buffering for wayland. Change from double to triple buffering for wayland.
This enables higher frame rates without tearing artifacts This enables higher frame rates without tearing artifacts
@@ -67,10 +67,11 @@ diff --git a/interface/khronos/egl/egl_client_surface.h b/interface/khronos/egl/
index e328b77..58a3184 100644 index e328b77..58a3184 100644
--- a/interface/khronos/egl/egl_client_surface.h --- a/interface/khronos/egl/egl_client_surface.h
+++ b/interface/khronos/egl/egl_client_surface.h +++ b/interface/khronos/egl/egl_client_surface.h
@@ -313,6 +313,17 @@ typedef struct { @@ -312,6 +312,17 @@ typedef struct {
*/
struct wl_dispmanx_client_buffer *front_wl_buffer; struct wl_dispmanx_client_buffer *front_wl_buffer;
/* + /*
+ middle_wl_buffer + middle_wl_buffer
+ +
+ Validity: + Validity:
@@ -81,10 +82,9 @@ index e328b77..58a3184 100644
+ */ + */
+ struct wl_dispmanx_client_buffer *middle_wl_buffer; + struct wl_dispmanx_client_buffer *middle_wl_buffer;
+ +
+ /* /*
back_wl_buffer back_wl_buffer
Validity:
-- --
2.12.0 2.16.1

View File

@@ -1,7 +1,7 @@
From 55a66f56a14eb8c3ae8294860e49efc9c9598c46 Mon Sep 17 00:00:00 2001 From 8d9299d219a2a4f76f8278973584e1a9f7116c78 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 10 May 2017 06:39:34 +0000 Date: Wed, 10 May 2017 06:39:34 +0000
Subject: [PATCH] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT Subject: [PATCH 14/16] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT
weston code uses these defines weston code uses these defines
Upstream-Status: Pending Upstream-Status: Pending
@@ -26,5 +26,5 @@ index 4eacf7f..283e3e1 100644
#ifndef GL_EXT_texture_type_2_10_10_10_REV #ifndef GL_EXT_texture_type_2_10_10_10_REV
#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
-- --
1.9.1 2.16.1

View File

@@ -0,0 +1,32 @@
From a2182e5437a6664cdb0f3330f6cbee873b6f975a Mon Sep 17 00:00:00 2001
From: Andrea Galbusera <gizero@gmail.com>
Date: Fri, 14 Jul 2017 09:52:54 +0200
Subject: [PATCH 15/16] EGL/glplatform.h: define EGL_CAST
C++ / C typecast macros for special EGL handle values: used by libepoxy code
The definition comes from the updated version of this header in mesa.
Upstream-Status: Pending
---
interface/khronos/include/EGL/eglplatform.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/interface/khronos/include/EGL/eglplatform.h b/interface/khronos/include/EGL/eglplatform.h
index 1f7c930..c39d425 100644
--- a/interface/khronos/include/EGL/eglplatform.h
+++ b/interface/khronos/include/EGL/eglplatform.h
@@ -202,4 +202,11 @@ EGLAPI void EGLAPIENTRY BEGL_GetDefaultDriverInterfaces(BEGL_DriverInterfaces *i
#include "interface/khronos/common/khrn_client_mangle.h"
#endif
+/* C++ / C typecast macros for special EGL handle values */
+#if defined(__cplusplus)
+#define EGL_CAST(type, value) (static_cast<type>(value))
+#else
+#define EGL_CAST(type, value) ((type) (value))
+#endif
+
#endif /* __eglplatform_h */
--
2.16.1

View File

@@ -0,0 +1,145 @@
From 6b4c4d469d435bfcfb464356b6ccc9421c6b8fd5 Mon Sep 17 00:00:00 2001
From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
Date: Sat, 27 Jan 2018 12:28:31 -0500
Subject: [PATCH 16/16] Allow multiple wayland compositor state data per
process
When eglBindWaylandDisplayWL is called store the wl_global
created in a list associated with the wayland display.
This allows multiple wayland compositor instances to be
created and used per process. This scenario is common for
applications integrating externl process UI elements
via embedded composition e.g. westeros
Signed-off-by: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
interface/khronos/common/khrn_client.c | 2 +-
interface/khronos/common/khrn_client.h | 11 +++++++-
interface/khronos/ext/egl_wayland.c | 50 ++++++++++++++++++++++++++++++----
3 files changed, 55 insertions(+), 8 deletions(-)
diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c
index d7e798e..60bdb63 100644
--- a/interface/khronos/common/khrn_client.c
+++ b/interface/khronos/common/khrn_client.c
@@ -147,7 +147,7 @@ bool client_process_state_init(CLIENT_PROCESS_STATE_T *process)
{
if (!process->inited) {
#ifdef BUILD_WAYLAND
- process->wl_global = NULL;
+ process->wlStateMap = NULL;
#endif
if (!khrn_pointer_map_init(&process->contexts, 64))
diff --git a/interface/khronos/common/khrn_client.h b/interface/khronos/common/khrn_client.h
index 615f7b4..4fa86f7 100644
--- a/interface/khronos/common/khrn_client.h
+++ b/interface/khronos/common/khrn_client.h
@@ -170,6 +170,15 @@ static INLINE CLIENT_THREAD_STATE_T *CLIENT_GET_CHECK_THREAD_STATE(void)
return (CLIENT_THREAD_STATE_T *)platform_tls_get_check(client_tls);
}
+#ifdef BUILD_WAYLAND
+typedef struct WAYLAND_STATE
+{
+ struct WAYLAND_STATE *next;
+ struct wl_display *display;
+ struct wl_global *wl_global;
+} WAYLAND_STATE_T;
+#endif
+
/*
per-process state
@@ -318,7 +327,7 @@ struct CLIENT_PROCESS_STATE {
struct wl_event_queue *wl_queue;
/* Compositor-side Wayland state */
- struct wl_global *wl_global;
+ WAYLAND_STATE_T *wlStateMap;
#endif
};
diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c
index 9ef89cd..abd5ab3 100644
--- a/interface/khronos/ext/egl_wayland.c
+++ b/interface/khronos/ext/egl_wayland.c
@@ -208,17 +208,38 @@ eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display)
{
CLIENT_THREAD_STATE_T *thread;
CLIENT_PROCESS_STATE_T *process;
+ WAYLAND_STATE_T *stateIter;
+ WAYLAND_STATE_T *stateNew;
+ struct wl_global *wl_global;
if (!CLIENT_LOCK_AND_GET_STATES(dpy, &thread, &process))
return EGL_FALSE;
- if (process->wl_global != NULL)
+ stateIter= process->wlStateMap;
+ while( stateIter )
+ {
+ if ( stateIter->display == display )
+ goto error;
+ stateIter= stateIter->next;
+ }
+
+ wl_global = wl_global_create(display, &wl_dispmanx_interface, 1,
+ NULL, bind_dispmanx);
+ if (wl_global == NULL)
goto error;
- process->wl_global = wl_global_create(display, &wl_dispmanx_interface, 1,
- NULL, bind_dispmanx);
- if (process->wl_global == NULL)
+ stateNew= (WAYLAND_STATE_T*)calloc( 1, sizeof(WAYLAND_STATE_T));
+ if (stateNew == NULL )
+ {
+ wl_global_destroy(wl_global);
goto error;
+ }
+
+ stateNew->next= process->wlStateMap;
+ stateNew->display= display;
+ stateNew->wl_global= wl_global;
+ process->wlStateMap= stateNew;
+ CLIENT_UNLOCK();
return EGL_TRUE;
@@ -232,12 +253,29 @@ eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display)
{
CLIENT_THREAD_STATE_T *thread;
CLIENT_PROCESS_STATE_T *process;
+ WAYLAND_STATE_T *stateIter;
+ WAYLAND_STATE_T *statePrev;
if (!CLIENT_LOCK_AND_GET_STATES(dpy, &thread, &process))
return EGL_FALSE;
- wl_global_destroy(process->wl_global);
- process->wl_global = NULL;
+ statePrev= NULL;
+ stateIter= process->wlStateMap;
+ while( stateIter )
+ {
+ if ( stateIter->display == display )
+ {
+ wl_global_destroy(stateIter->wl_global);
+ if ( statePrev )
+ statePrev->next= stateIter->next;
+ else
+ process->wlStateMap= stateIter->next;
+ free( stateIter );
+ break;
+ }
+ statePrev= stateIter;
+ stateIter= stateIter->next;
+ }
CLIENT_UNLOCK();
--
2.16.1

View File

@@ -5,18 +5,20 @@ vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG."
LICENSE = "BSD-3-Clause" LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENCE;md5=0448d6488ef8cc380632b1569ee6d196" LIC_FILES_CHKSUM = "file://LICENCE;md5=0448d6488ef8cc380632b1569ee6d196"
PR = "r5"
PROVIDES = "virtual/libgles2 \ PROVIDES = "virtual/libgles2 \
virtual/egl" virtual/egl"
RPROVIDES_${PN} += "libgles2 egl" RPROVIDES_${PN} += "libgles2 egl libegl"
COMPATIBLE_MACHINE = "raspberrypi" COMPATIBLE_MACHINE = "^rpi$"
SRCBRANCH = "master" SRCBRANCH = "master"
SRCFORK = "raspberrypi" SRCFORK = "raspberrypi"
SRCREV = "50d3cb5f4ee95a9513bb9f94d661947e9e6ac085" SRCREV = "11389772c79685442e0ab8aa9be8ad0e32703f68"
# Use the date of the above commit as the package version. Update this when
# SRCREV is changed.
PV = "20180219"
SRC_URI = "\ SRC_URI = "\
git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \ git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \
@@ -34,6 +36,8 @@ SRC_URI = "\
file://0012-implement-buffer-wrapping-interface-for-dispmanx.patch \ file://0012-implement-buffer-wrapping-interface-for-dispmanx.patch \
file://0013-Implement-triple-buffering-for-wayland.patch \ file://0013-Implement-triple-buffering-for-wayland.patch \
file://0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch \ file://0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch \
file://0015-EGL-glplatform.h-define-EGL_CAST.patch \
file://0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch \
" "
S = "${WORKDIR}/git" S = "${WORKDIR}/git"

View File

@@ -4,7 +4,9 @@ LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://LICENCE;md5=86e53f5f5909ee66900418028de11780" LIC_FILES_CHKSUM = "file://LICENCE;md5=86e53f5f5909ee66900418028de11780"
PROVIDES = "virtual/libgles2 virtual/egl" PROVIDES = "virtual/libgles2 virtual/egl"
COMPATIBLE_MACHINE = "raspberrypi" COMPATIBLE_MACHINE = "^rpi$"
INHIBIT_DEFAULT_DEPS = "1"
include recipes-bsp/common/firmware.inc include recipes-bsp/common/firmware.inc

View File

@@ -1,12 +1,10 @@
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)}" PACKAGECONFIG_remove_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'fbdev', '', d)}"
EXTRA_OECONF += "--disable-xwayland-test \ EXTRA_OECONF_append_rpi = " \
--disable-xwayland-test \
--disable-simple-egl-clients \ --disable-simple-egl-clients \
${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' \
--disable-resize-optimization \
--disable-setuid-install \
', 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)}"

View File

@@ -0,0 +1,6 @@
#
Section "Device"
Identifier "modeset"
Driver "modesetting"
Option "AccelMethod" "None"
EndSection

View File

@@ -3,15 +3,19 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_append_rpi = " \ SRC_URI_append_rpi = " \
file://xorg.conf.d/98-pitft.conf \ file://xorg.conf.d/98-pitft.conf \
file://xorg.conf.d/99-calibration.conf \ file://xorg.conf.d/99-calibration.conf \
file://xorg.conf.d/10-noglamor.conf \
" "
do_install_append_rpi () { do_install_append_rpi () {
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}" PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
VC4="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
if [ "${PITFT}" = "1" ]; then if [ "${PITFT}" = "1" ]; then
install -d ${D}/${sysconfdir}/X11/xorg.conf.d/ install -d ${D}/${sysconfdir}/X11/xorg.conf.d/
install -m 0644 ${WORKDIR}/xorg.conf.d/98-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/ install -m 0644 ${WORKDIR}/xorg.conf.d/98-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
install -m 0644 ${WORKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/ install -m 0644 ${WORKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
fi fi
if [ "${VC4}" = "1" ]; then
install -Dm 0644 ${WORKDIR}/xorg.conf.d/10-noglamor.conf ${D}/${sysconfdir}/X11/xorg.conf.d/10-noglamor.conf
fi
} }
FILES_${PN}_rpi += "${sysconfdir}/X11/xorg.conf ${sysconfdir}/X11/xorg.conf.d/*" FILES_${PN}_rpi += "${sysconfdir}/X11/xorg.conf ${sysconfdir}/X11/xorg.conf.d/*"

View File

@@ -1,66 +0,0 @@
# NVRAM file for BCM943430WLPTH
# 2.4 GHz, 20 MHz BW mode
# The following parameter values are just placeholders, need to be updated.
manfid=0x2d0
prodid=0x0727
vendid=0x14e4
devid=0x43e2
boardtype=0x0727
boardrev=0x1101
boardnum=22
macaddr=00:90:4c:c5:12:38
sromrev=11
boardflags=0x00404201
boardflags3=0x08000000
xtalfreq=37400
nocrc=1
ag0=255
aa2g=1
ccode=ALL
pa0itssit=0x20
extpagain2g=0
#PA parameters for 2.4GHz, measured at CHIP OUTPUT
pa2ga0=-168,7161,-820
AvVmid_c0=0x0,0xc8
cckpwroffset0=5
# PPR params
maxp2ga0=84
txpwrbckof=6
cckbw202gpo=0
legofdmbw202gpo=0x66111111
mcsbw202gpo=0x77711111
propbw202gpo=0xdd
# OFDM IIR :
ofdmdigfilttype=18
ofdmdigfilttypebe=18
# PAPD mode:
papdmode=1
papdvalidtest=1
pacalidx2g=42
papdepsoffset=-22
papdendidx=58
# LTECX flags
ltecxmux=0
ltecxpadnum=0x0102
ltecxfnsel=0x44
ltecxgcigpio=0x01
il0macaddr=00:90:4c:c5:12:38
wl0id=0x431b
deadman_to=0xffffffff
# muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG
muxenab=0x1
# CLDO PWM voltage settings - 0x4 - 1.1 volt
#cldo_pwm=0x4
#VCO freq 326.4MHz
spurconfig=0x3
edonthd20l=-75
edoffthd20ul=-80

View File

@@ -1,12 +1,69 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/files:" # Augments upstream linux-firmware with additional and updated images
# from Raspbian:
# https://github.com/RPi-Distro/firmware-nonfree
# https://github.com/RPi-Distro/bluez-firmware
SRC_URI += "file://brcmfmac43430-sdio.txt" SRC_URI_append_rpi = " \
git://github.com/RPi-Distro/firmware-nonfree;destsuffix=raspbian-nf;name=raspbian-nf \
do_install_append() { git://github.com/RPi-Distro/bluez-firmware;destsuffix=raspbian-bluez;name=raspbian-bluez \
install -D -m 0644 ${WORKDIR}/brcmfmac43430-sdio.txt ${D}/lib/firmware/brcm/brcmfmac43430-sdio.txt
}
FILES_${PN}-bcm43430 += " \
/lib/firmware/brcm/brcmfmac43430-sdio.txt \
" "
SRCREV_raspbian-nf = "86e88fbf0345da49555d0ec34c80b4fbae7d0cd3"
SRCREV_raspbian-bluez = "e28cd7ee8615de33aa7ec2b41d556af61a4a2707"
SRCREV_FORMAT_rpi = "default+raspbian-nf+raspbian-bluez"
do_install_append_rpi() {
install -d ${D}${nonarch_base_libdir}/firmware/brcm/
# Replace outdated linux-firmware files with updated ones from
# raspbian firmware-nonfree. Raspbian adds blobs and nvram
# definitions that are also necessary so copy those too.
for fw in brcmfmac43430-sdio brcmfmac43455-sdio ; do
install -m 0644 ${WORKDIR}/raspbian-nf/brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/
done
# Add missing Cypress Bluetooth files from raspbian bluez-firmware
for fw in BCM43430A1.hcd BCM4345C0.hcd ; do
install -m 0644 ${WORKDIR}/raspbian-bluez/broadcom/${fw} ${D}${nonarch_base_libdir}/firmware/brcm/
done
}
# NB: Must prepend, else these become empty and their content is left in
# the roll-up package which precedes them.
PACKAGES_prepend_rpi = "\
${PN}-bcm43430a1-hcd \
${PN}-bcm4345c0-hcd \
"
# ${PN}-bcm43455 package and brcmfmac43455-sdio from linux-firmware
# is already included in the oe-core recipe, so don't add it to PACKAGES
# again, the version from raspbian-nf seems a bit newer:
# $ strings ./1_0.0+gitAUTOINC+d114732723+86e88fbf03+e28cd7ee86-r0/git/brcm/brcmfmac43455-sdio.bin | grep Ver
# Version: 7.45.18.0 CRC: d7226371 Date: Sun 2015-03-01 07:31:57 PST Ucode Ver: 1026.2 FWID: 01-6a2c8ad4
# $ strings ./1_0.0+gitAUTOINC+d114732723+86e88fbf03+e28cd7ee86-r0/raspbian-nf/brcm/brcmfmac43455-sdio.bin | grep Ver
# Version: 7.45.154 (r684107 CY) CRC: b1f79383 Date: Tue 2018-02-27 03:18:17 PST Ucode Ver: 1043.2105 FWID 01-4fbe0b04
# For additional Broadcom
LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx"
FILES_${PN}-bcm43430_append_rpi = " \
${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt \
"
FILES_${PN}-bcm43455 = " \
${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.* \
"
RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license"
LICENSE_${PN}-bcm43430a1-hcd = "Firmware-cypress"
LICENSE_${PN}-bcm4345c0-hcd = "Firmware-cypress"
FILES_${PN}-bcm43430a1-hcd = " \
${nonarch_base_libdir}/firmware/brcm/BCM43430A1.hcd \
"
FILES_${PN}-bcm4345c0-hcd = " \
${nonarch_base_libdir}/firmware/brcm/BCM4345C0.hcd \
"
RDEPENDS_${PN}-bcm43430a1-hcd += "${PN}-cypress-license"
RDEPENDS_${PN}-bcm4345c0-hcd += "${PN}-cypress-license"

View File

@@ -0,0 +1,62 @@
From e6ebc8e654bba53f28af5229a1069fc74fa58b7b Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Thu, 25 Sep 2014 11:26:49 -0700
Subject: [PATCH] menuconfig,check-lxdiaglog.sh: Allow specification of ncurses
location
In some cross build environments such as the Yocto Project build
environment it provides an ncurses library that is compiled
differently than the host's version. This causes display corruption
problems when the host's curses includes are used instead of the
includes from the provided compiler are overridden. There is a second
case where there is no curses libraries at all on the host system and
menuconfig will just fail entirely.
The solution is simply to allow an override variable in
check-lxdialog.sh for environments such as the Yocto Project. Adding
a CROSS_CURSES_LIB and CROSS_CURSES_INC solves the issue and allowing
compiling and linking against the right headers and libraries.
Upstream-Status: submitted [https://lkml.org/lkml/2013/3/3/103]
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
cc: Michal Marek <mmarek@suse.cz>
cc: linux-kbuild@vger.kernel.org
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
---
scripts/kconfig/lxdialog/check-lxdialog.sh | 8 ++++++++
1 file changed, 8 insertions(+)
mode change 100755 => 100644 scripts/kconfig/lxdialog/check-lxdialog.sh
diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
old mode 100755
new mode 100644
index 5075ebf2d3b9..ba9242101190
--- a/scripts/kconfig/lxdialog/check-lxdialog.sh
+++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
@@ -4,6 +4,10 @@
# What library to link
ldflags()
{
+ if [ "$CROSS_CURSES_LIB" != "" ]; then
+ echo "$CROSS_CURSES_LIB"
+ exit
+ fi
pkg-config --libs ncursesw 2>/dev/null && exit
pkg-config --libs ncurses 2>/dev/null && exit
for ext in so a dll.a dylib ; do
@@ -21,6 +25,10 @@ ldflags()
# Where is ncurses.h?
ccflags()
{
+ if [ x"$CROSS_CURSES_INC" != x ]; then
+ echo "$CROSS_CURSES_INC"
+ exit
+ fi
if pkg-config --cflags ncursesw 2>/dev/null; then
echo '-DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1'
elif pkg-config --cflags ncurses 2>/dev/null; then
--
2.14.3

View File

@@ -0,0 +1 @@
CONFIG_SENSORS_RPI_POE_FAN=m

View File

@@ -7,20 +7,16 @@ python __anonymous() {
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-raspberrypi:" FILESEXTRAPATHS_prepend := "${THISDIR}/linux-raspberrypi:"
LINUX_VERSION ?= "4.11" LINUX_VERSION ?= "4.16"
LINUX_RPI_DEV_BRANCH ?= "rpi-4.11.y" LINUX_RPI_DEV_BRANCH ?= "rpi-4.16.y"
SRCREV = "${AUTOREV}" SRCREV = "${AUTOREV}"
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=${LINUX_RPI_DEV_BRANCH} \ SRC_URI = " \
file://0001-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch \ git://github.com/raspberrypi/linux.git;protocol=git;branch=${LINUX_RPI_DEV_BRANCH} \
file://0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch \
" "
require linux-raspberrypi.inc 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 # Disable version check so that we don't have to edit this recipe every time
# upstream bumps the version # upstream bumps the version
KERNEL_VERSION_SANITY_SKIP = "1" KERNEL_VERSION_SANITY_SKIP = "1"

View File

@@ -1,29 +0,0 @@
From 922ce1fd0eb810b713f6ffa9a7ab97c11b6e38cf Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 10 Feb 2017 17:57:08 -0800
Subject: [PATCH] build/arm64: Add rules for .dtbo files for dts overlays
We now create overlays as .dtbo files.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
arch/arm64/Makefile | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 3635b8662724..822fefeb1cd0 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -113,6 +113,9 @@ zinstall install:
%.dtb: scripts
$(Q)$(MAKE) $(build)=$(boot)/dts $(boot)/dts/$@
+%.dtbo: | scripts
+ $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
+
PHONY += dtbs dtbs_install
dtbs: prepare scripts
--
2.11.1

View File

@@ -1,49 +1,130 @@
require linux-rpi.inc
inherit linux-raspberrypi-base
DESCRIPTION = "Linux Kernel for Raspberry Pi" DESCRIPTION = "Linux Kernel for Raspberry Pi"
SECTION = "kernel" SECTION = "kernel"
LICENSE = "GPLv2" LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
SRC_URI += " \ COMPATIBLE_MACHINE = "^rpi$"
file://defconfig \
"
COMPATIBLE_MACHINE = "raspberrypi"
PE = "1" PE = "1"
PV = "${LINUX_VERSION}+git${SRCPV}" PV = "${LINUX_VERSION}+git${SRCPV}"
# NOTE: For now we pull in the default config from the RPi kernel GIT tree. inherit kernel siteinfo
KERNEL_DEFCONFIG_raspberrypi ?= "bcmrpi_defconfig" require recipes-kernel/linux/linux-yocto.inc
KERNEL_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig"
KERNEL_DEFCONFIG_raspberrypi3-64 ?= "bcmrpi3_defconfig" SRC_URI += "file://rpi-kernel-misc.cfg"
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"
# CMDLINE for raspberrypi # CMDLINE for raspberrypi
CMDLINE ?= "dwc_otg.lpm_enable=0 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait" SERIAL = "${@oe.utils.conditional("ENABLE_UART", "1", "console=serial0,115200", "", d)}"
CMDLINE ?= "dwc_otg.lpm_enable=0 ${SERIAL} root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
# Add the kernel debugger over console kernel command line option if enabled # Add the kernel debugger over console kernel command line option if enabled
CMDLINE_append = ' ${@base_conditional("ENABLE_KGDB", "1", "kgdboc=serial0,115200", "", d)}' CMDLINE_append = ' ${@oe.utils.conditional("ENABLE_KGDB", "1", "kgdboc=serial0,115200", "", d)}'
UDEV_GE_141 ?= "1" # Disable rpi logo on boot
CMDLINE_append += ' ${@oe.utils.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}"
KERNEL_INITRAMFS ?= '${@oe.utils.conditional("INITRAMFS_IMAGE_BUNDLE", "1", "1", "", d)}'
KERNEL_MODULE_AUTOLOAD += "${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "stmpe-ts", "", d)}" KERNEL_MODULE_AUTOLOAD += "${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "stmpe-ts", "", d)}"
# Set programmatically some variables during recipe parsing # A LOADADDR is needed when building a uImage format kernel. This value is not
# See http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html#anonymous-python-functions # set by default in rpi-4.8.y and later branches so we need to provide it
python __anonymous () { # manually. This value unused if KERNEL_IMAGETYPE is not uImage.
kerneltype = d.getVar('KERNEL_IMAGETYPE') KERNEL_EXTRA_ARGS += "LOADADDR=0x00008000"
kerneldt = get_dts(d, d.getVar('LINUX_VERSION'))
d.setVar("KERNEL_DEVICETREE", kerneldt) # 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_kernel_configme_prepend() { config_setup() {
install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE} / ${KERNEL_DEFCONFIG} available." # From kernel.bbclass. Unfortunately, this is needed to support builds that
# use devtool. The reason is as follows:
#
# - In devtool builds, externalsrc.bbclass gets inherited and sets a list of
# SRCTREECOVEREDTASKS, which don't get run because they affect the source
# tree and, when using devtool, we want the developer's changes to be the
# single source of truth. kernel-yocto.bbclass adds do_kernel_configme to
# SRCTREECOVEREDTASKS, so it doesn't run in a devtool build., In a normal
# non-devtool build, do_kernel_configme creates ${B}.config.
#
# - Normally (e.g. in linux-yocto), it would be OK that do_kernel_configme
# doesn't run, because the first few lines of do_configure in kernel.bbclass
# populate ${B}.config from either ${S}.config (if it exists) for custom
# developer changes, or otherwise from ${WORDIR}/defconfig.
#
# - In linux-raspberrypi, we add do_configure_prepend, which tweaks
# ${B}.config. Since this runs *before* the kernel.bbclass do_configure,
# ${B}.config doesn't yet exist and we hit an error. Thus we need to move
# the logic from do_configure up to before our do_configure_prepend. Because
# we are copying only a portion of do_configure and not the whole thing,
# there is no clean way to do it using OE functionality, so we just
# copy-and-paste.
if [ "${S}" != "${B}" ] && [ -f "${S}/.config" ] && [ ! -f "${B}/.config" ]; then
mv "${S}/.config" "${B}/.config"
fi
# Copy defconfig to .config if .config does not exist. This allows
# recipes to manage the .config themselves in do_configure_prepend().
if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then
cp "${WORKDIR}/defconfig" "${B}/.config"
fi
} }
do_install_prepend() { do_configure_prepend() {
install -d ${D}/lib/firmware config_setup
mv -f ${B}/.config ${B}/.config.patched
CONF_SED_SCRIPT=""
# Localversion
kernel_configure_variable LOCALVERSION "\"\""
if [ ! -z "${KERNEL_INITRAMFS}" ]; then
kernel_configure_variable OVERLAY_FS y
kernel_configure_variable SQUASHFS y
kernel_configure_variable UBIFS_FS y
fi
# 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
}
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_deploy_append() { do_deploy_append() {

View File

@@ -1 +0,0 @@
# Dummy file to get through do_kernel_configme.

View File

@@ -0,0 +1,9 @@
LINUX_VERSION ?= "4.14.68"
SRCREV = "8c8666ff6c1254d325cfa300d16f9928b3f31fc0"
SRC_URI = " \
git://github.com/raspberrypi/linux.git;branch=rpi-4.14.y \
file://0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch \
"
require linux-raspberrypi.inc

View File

@@ -1,13 +1,11 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
LINUX_VERSION ?= "4.9.27" LINUX_VERSION ?= "4.9.80"
SRCREV = "9a5f215eda12bad29b35040dff00d0346fe517e2" SRCREV = "7f9c648dad6473469b4133898fa6bb8d818ecff9"
SRC_URI = "git://github.com/raspberrypi/linux.git;branch=rpi-4.9.y" SRC_URI = " \
git://github.com/raspberrypi/linux.git;branch=rpi-4.9.y \
file://0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch \
"
require linux-raspberrypi.inc 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"

View File

@@ -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()
}

View File

@@ -1,16 +0,0 @@
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index 0d4e7a1..a0d9c74 100644
--- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c
@@ -1697,9 +1697,9 @@ gst_omx_video_dec_stop (GstVideoDecoder * decoder)
g_cond_broadcast (&self->drain_cond);
g_mutex_unlock (&self->drain_lock);
- gst_omx_component_get_state (self->dec, 5 * GST_SECOND);
+ gst_omx_component_get_state (self->dec, 0);
#if defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL)
- gst_omx_component_get_state (self->egl_render, 1 * GST_SECOND);
+ gst_omx_component_get_state (self->egl_render, 0);
#endif
gst_buffer_replace (&self->codec_data, NULL);

View File

@@ -1,30 +0,0 @@
From 12103842d5f347cf245e71071d0c44297bcdb1f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
Date: Fri, 4 Dec 2015 18:39:59 +0100
Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a
timeout releasing the buffers taken by the egl_render out port
---
omx/gstomxvideodec.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index 2368f34..da35e0d 100644
--- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c
@@ -1905,8 +1905,11 @@ gst_omx_video_dec_set_format (GstVideoDecoder * decoder,
5 * GST_SECOND) != OMX_ErrorNone)
return FALSE;
if (gst_omx_port_wait_buffers_released (out_port,
- 1 * GST_SECOND) != OMX_ErrorNone)
+ 1 * GST_SECOND) != OMX_ErrorNone) {
+#if !(defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL))
return FALSE;
+#endif
+ }
if (gst_omx_port_deallocate_buffers (self->dec_in_port) != OMX_ErrorNone)
return FALSE;
if (gst_omx_video_dec_deallocate_output_buffers (self) != OMX_ErrorNone)
--
2.1.4

View File

@@ -1,4 +1,4 @@
From 2e111e52f96f0b942abda120c30a876629bd73fc Mon Sep 17 00:00:00 2001 From cfb432fcd8868c7a4f32010c61e47e2bf0ff80c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com> From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
Date: Mon, 25 May 2015 14:53:35 +0200 Date: Mon, 25 May 2015 14:53:35 +0200
Subject: [PATCH] Don't try to acquire buffer when src pad isn't active Subject: [PATCH] Don't try to acquire buffer when src pad isn't active
@@ -23,15 +23,16 @@ arrive:
gst_omx_video_dec_loop() gst_omx_video_dec_loop()
gst_omx_port_acquire_buffer() gst_omx_port_acquire_buffer()
gst_omx_component_wait_message() gst_omx_component_wait_message()
--- ---
omx/gstomxvideodec.c | 5 +++++ omx/gstomxvideodec.c | 5 +++++
1 file changed, 5 insertions(+) 1 file changed, 5 insertions(+)
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index cd24944..57a61dd 100644 index d12ee8f..fb0100a 100644
--- a/omx/gstomxvideodec.c --- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c +++ b/omx/gstomxvideodec.c
@@ -1247,6 +1247,11 @@ gst_omx_video_dec_loop (GstOMXVideoDec * self) @@ -1250,6 +1250,11 @@ gst_omx_video_dec_loop (GstOMXVideoDec * self)
GstClockTimeDiff deadline; GstClockTimeDiff deadline;
OMX_ERRORTYPE err; OMX_ERRORTYPE err;
@@ -43,6 +44,3 @@ index cd24944..57a61dd 100644
#if defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL) #if defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL)
port = self->eglimage ? self->egl_out_port : self->dec_out_port; port = self->eglimage ? self->egl_out_port : self->dec_out_port;
#else #else
--
1.8.3.2

View File

@@ -1,3 +1,14 @@
From 0dc88ed881eb8420dad4cf0934a900d85b6ef313 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 11 Feb 2016 12:53:20 -0800
---
config/bellagio/gstomx.conf | 8 ++++----
config/rpi/gstomx.conf | 22 +++++++++++-----------
2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/config/bellagio/gstomx.conf b/config/bellagio/gstomx.conf
index 5ca8ba6..8931255 100644
--- a/config/bellagio/gstomx.conf --- a/config/bellagio/gstomx.conf
+++ b/config/bellagio/gstomx.conf +++ b/config/bellagio/gstomx.conf
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
@@ -6,18 +17,18 @@
-core-name=/usr/local/lib/libomxil-bellagio.so.0 -core-name=/usr/local/lib/libomxil-bellagio.so.0
+core-name=/usr/lib/libomxil-bellagio.so.0 +core-name=/usr/lib/libomxil-bellagio.so.0
component-name=OMX.st.video_decoder.mpeg4 component-name=OMX.st.video_decoder.mpeg4
rank=256 rank=257
in-port-index=0 in-port-index=0
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@ hacks=event-port-settings-changed-ndata-parameter-swap;event-port-settings-chang
[omxh264dec] [omxh264dec]
type-name=GstOMXH264Dec type-name=GstOMXH264Dec
-core-name=/usr/local/lib/libomxil-bellagio.so.0 -core-name=/usr/local/lib/libomxil-bellagio.so.0
+core-name=/usr/lib/libomxil-bellagio.so.0 +core-name=/usr/lib/libomxil-bellagio.so.0
component-name=OMX.st.video_decoder.avc component-name=OMX.st.video_decoder.avc
rank=256 rank=257
in-port-index=0 in-port-index=0
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@ hacks=event-port-settings-changed-ndata-parameter-swap;event-port-settings-chang
[omxmpeg4videoenc] [omxmpeg4videoenc]
type-name=GstOMXMPEG4VideoEnc type-name=GstOMXMPEG4VideoEnc
@@ -26,7 +37,7 @@
component-name=OMX.st.video_encoder.mpeg4 component-name=OMX.st.video_encoder.mpeg4
rank=0 rank=0
in-port-index=0 in-port-index=0
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@ hacks=event-port-settings-changed-ndata-parameter-swap;video-framerate-integer;s
[omxaacenc] [omxaacenc]
type-name=GstOMXAACEnc type-name=GstOMXAACEnc
@@ -35,6 +46,8 @@
component-name=OMX.st.audio_encoder.aac component-name=OMX.st.audio_encoder.aac
rank=0 rank=0
in-port-index=0 in-port-index=0
diff --git a/config/rpi/gstomx.conf b/config/rpi/gstomx.conf
index d3ea56a..2508dae 100644
--- a/config/rpi/gstomx.conf --- a/config/rpi/gstomx.conf
+++ b/config/rpi/gstomx.conf +++ b/config/rpi/gstomx.conf
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
@@ -45,7 +58,7 @@
component-name=OMX.broadcom.video_decode component-name=OMX.broadcom.video_decode
rank=257 rank=257
in-port-index=130 in-port-index=130
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@ hacks=no-component-role
[omxmpeg4videodec] [omxmpeg4videodec]
type-name=GstOMXMPEG4VideoDec type-name=GstOMXMPEG4VideoDec
@@ -54,7 +67,7 @@
component-name=OMX.broadcom.video_decode component-name=OMX.broadcom.video_decode
rank=257 rank=257
in-port-index=130 in-port-index=130
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@ hacks=no-component-role
[omxh263dec] [omxh263dec]
type-name=GstOMXH263Dec type-name=GstOMXH263Dec
@@ -63,7 +76,7 @@
component-name=OMX.broadcom.video_decode component-name=OMX.broadcom.video_decode
rank=257 rank=257
in-port-index=130 in-port-index=130
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@ hacks=no-component-role
[omxh264dec] [omxh264dec]
type-name=GstOMXH264Dec type-name=GstOMXH264Dec
@@ -72,7 +85,7 @@
component-name=OMX.broadcom.video_decode component-name=OMX.broadcom.video_decode
rank=257 rank=257
in-port-index=130 in-port-index=130
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@ hacks=no-component-role;signals-premature-eos
[omxtheoradec] [omxtheoradec]
type-name=GstOMXTheoraDec type-name=GstOMXTheoraDec
@@ -81,7 +94,7 @@
component-name=OMX.broadcom.video_decode component-name=OMX.broadcom.video_decode
rank=257 rank=257
in-port-index=130 in-port-index=130
@@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@ hacks=no-component-role
[omxvp8dec] [omxvp8dec]
type-name=GstOMXVP8Dec type-name=GstOMXVP8Dec
@@ -90,7 +103,7 @@
component-name=OMX.broadcom.video_decode component-name=OMX.broadcom.video_decode
rank=257 rank=257
in-port-index=130 in-port-index=130
@@ -54,7 +54,7 @@ @@ -54,7 +54,7 @@ hacks=no-component-role
[omxmjpegdec] [omxmjpegdec]
type-name=GstOMXMJPEGDec type-name=GstOMXMJPEGDec
@@ -99,16 +112,16 @@
component-name=OMX.broadcom.video_decode component-name=OMX.broadcom.video_decode
rank=257 rank=257
in-port-index=130 in-port-index=130
@@ -63,7 +63,7 @@ @@ -63,7 +63,7 @@ hacks=no-component-role
[omxvc1dec] [omxvc1dec]
type-name=GstOMXWMVDec type-name=GstOMXWMVDec
-core-name=/opt/vc/lib/libopenmaxil.so -core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so +core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.video_decode component-name=OMX.broadcom.video_decode
rank=256 rank=257
in-port-index=130 in-port-index=130
@@ -73,7 +73,7 @@ @@ -73,7 +73,7 @@ sink-template-caps=video/x-wmv,wmvversion=(int)3,format=(string){WMV3,WVC1},widt
[omxh264enc] [omxh264enc]
type-name=GstOMXH264Enc type-name=GstOMXH264Enc
@@ -117,21 +130,21 @@
component-name=OMX.broadcom.video_encode component-name=OMX.broadcom.video_encode
rank=257 rank=257
in-port-index=200 in-port-index=200
@@ -82,7 +82,7 @@ @@ -82,7 +82,7 @@ hacks=no-component-role;no-component-reconfigure
[omxanalogaudiosink] [omxanalogaudiosink]
type-name=GstOMXAnalogAudioSink type-name=GstOMXAnalogAudioSink
-core-name=/opt/vc/lib/libopenmaxil.so -core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so +core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.audio_render component-name=OMX.broadcom.audio_render
rank=256 rank=257
in-port-index=100 in-port-index=100
@@ -92,7 +92,7 @@ @@ -92,7 +92,7 @@ sink-template-caps=audio/x-raw,format=(string){S16LE,S32LE},layout=(string)inter
[omxhdmiaudiosink] [omxhdmiaudiosink]
type-name=GstOMXHdmiAudioSink type-name=GstOMXHdmiAudioSink
-core-name=/opt/vc/lib/libopenmaxil.so -core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so +core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.audio_render component-name=OMX.broadcom.audio_render
rank=257 rank=258
in-port-index=100 in-port-index=100

View File

@@ -1,8 +1,16 @@
From fc4773f36aa31b4ae0fc97d3aa3f94db0c88f194 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 11 Feb 2016 12:53:20 -0800
---
omx/gstomx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/omx/gstomx.c b/omx/gstomx.c diff --git a/omx/gstomx.c b/omx/gstomx.c
index 69696c4..c382019 100644 index 0237f3c..45732c3 100644
--- a/omx/gstomx.c --- a/omx/gstomx.c
+++ b/omx/gstomx.c +++ b/omx/gstomx.c
@@ -1508,8 +1508,8 @@ gst_omx_port_set_flushing (GstOMXPort * port, GstClockTime timeout, @@ -1538,8 +1538,8 @@ gst_omx_port_set_flushing (GstOMXPort * port, GstClockTime timeout,
last_error = OMX_ErrorNone; last_error = OMX_ErrorNone;
gst_omx_component_handle_messages (comp); gst_omx_component_handle_messages (comp);
while (signalled && last_error == OMX_ErrorNone && !port->flushed while (signalled && last_error == OMX_ErrorNone && !port->flushed
@@ -13,4 +21,3 @@ index 69696c4..c382019 100644
signalled = gst_omx_component_wait_message (comp, timeout); signalled = gst_omx_component_wait_message (comp, timeout);
if (signalled) if (signalled)
gst_omx_component_handle_messages (comp); gst_omx_component_handle_messages (comp);

View File

@@ -1,8 +1,16 @@
From 02e49cba402a783fa1b30e445b83a5c280949c1e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 13 Feb 2016 11:42:29 -0800
---
omx/gstomxvideodec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index 0d4e7a1..a0d9c74 100644 index fb0100a..bad6335 100644
--- a/omx/gstomxvideodec.c --- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c +++ b/omx/gstomxvideodec.c
@@ -1697,9 +1697,9 @@ gst_omx_video_dec_stop (GstVideoDecoder * decoder) @@ -1713,9 +1713,9 @@ gst_omx_video_dec_stop (GstVideoDecoder * decoder)
g_cond_broadcast (&self->drain_cond); g_cond_broadcast (&self->drain_cond);
g_mutex_unlock (&self->drain_lock); g_mutex_unlock (&self->drain_lock);

View File

@@ -1,20 +1,20 @@
From 80dddfd13aaf2fe7272765f8cf291215fe375e28 Mon Sep 17 00:00:00 2001 From f00912f0628aff15e882bdc1619f5de1ddf5c720 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com> From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
Date: Tue, 17 Nov 2015 16:51:27 +0000 Date: Tue, 17 Nov 2015 16:51:27 +0000
Subject: [PATCH] Properly handle drain requests while flushing Subject: [PATCH] Properly handle drain requests while flushing
Without this commit the decoder streaming thread stops without ever attending Without this commit the decoder streaming thread stops without ever attending
the drain request, leaving the decoder input thread waiting forever. the drain request, leaving the decoder input thread waiting forever.
--- ---
omx/gstomx.c | 7 +++++++ omx/gstomx.c | 7 +++++++
omx/gstomxvideodec.c | 13 +++++++++++++ 1 file changed, 7 insertions(+)
2 files changed, 20 insertions(+)
Index: gst-omx-1.10.2/omx/gstomx.c diff --git a/omx/gstomx.c b/omx/gstomx.c
=================================================================== index 45732c3..784a5d7 100644
--- gst-omx-1.10.2.orig/omx/gstomx.c --- a/omx/gstomx.c
+++ gst-omx-1.10.2/omx/gstomx.c +++ b/omx/gstomx.c
@@ -737,6 +737,13 @@ gst_omx_component_new (GstObject * paren @@ -737,6 +737,13 @@ gst_omx_component_new (GstObject * parent, const gchar * core_name,
g_mutex_lock (&comp->lock); g_mutex_lock (&comp->lock);
gst_omx_component_handle_messages (comp); gst_omx_component_handle_messages (comp);

View File

@@ -1,4 +1,4 @@
From 12103842d5f347cf245e71071d0c44297bcdb1f9 Mon Sep 17 00:00:00 2001 From 0d2ad639e6158c8023c157e206ef3ff7abdc089c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com> From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
Date: Fri, 4 Dec 2015 18:39:59 +0100 Date: Fri, 4 Dec 2015 18:39:59 +0100
Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a
@@ -9,10 +9,10 @@ Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a
1 file changed, 4 insertions(+), 1 deletion(-) 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index 2368f34..da35e0d 100644 index bad6335..c63b972 100644
--- a/omx/gstomxvideodec.c --- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c +++ b/omx/gstomxvideodec.c
@@ -1905,8 +1905,11 @@ gst_omx_video_dec_set_format (GstVideoDecoder * decoder, @@ -1911,8 +1911,11 @@ gst_omx_video_dec_set_format (GstVideoDecoder * decoder,
5 * GST_SECOND) != OMX_ErrorNone) 5 * GST_SECOND) != OMX_ErrorNone)
return FALSE; return FALSE;
if (gst_omx_port_wait_buffers_released (out_port, if (gst_omx_port_wait_buffers_released (out_port,
@@ -25,6 +25,3 @@ index 2368f34..da35e0d 100644
if (gst_omx_port_deallocate_buffers (self->dec_in_port) != OMX_ErrorNone) if (gst_omx_port_deallocate_buffers (self->dec_in_port) != OMX_ErrorNone)
return FALSE; return FALSE;
if (gst_omx_video_dec_deallocate_output_buffers (self) != OMX_ErrorNone) if (gst_omx_video_dec_deallocate_output_buffers (self) != OMX_ErrorNone)
--
2.1.4

View File

@@ -1,137 +0,0 @@
--- a/config/bellagio/gstomx.conf
+++ b/config/bellagio/gstomx.conf
@@ -1,6 +1,6 @@
[omxmpeg4videodec]
type-name=GstOMXMPEG4VideoDec
-core-name=/usr/local/lib/libomxil-bellagio.so.0
+core-name=/usr/lib/libomxil-bellagio.so.0
component-name=OMX.st.video_decoder.mpeg4
rank=256
in-port-index=0
@@ -9,7 +9,7 @@
[omxh264dec]
type-name=GstOMXH264Dec
-core-name=/usr/local/lib/libomxil-bellagio.so.0
+core-name=/usr/lib/libomxil-bellagio.so.0
component-name=OMX.st.video_decoder.avc
rank=256
in-port-index=0
@@ -18,7 +18,7 @@
[omxmpeg4videoenc]
type-name=GstOMXMPEG4VideoEnc
-core-name=/usr/local/lib/libomxil-bellagio.so.0
+core-name=/usr/lib/libomxil-bellagio.so.0
component-name=OMX.st.video_encoder.mpeg4
rank=0
in-port-index=0
@@ -27,7 +27,7 @@
[omxaacenc]
type-name=GstOMXAACEnc
-core-name=/usr/local/lib/libomxil-bellagio.so.0
+core-name=/usr/lib/libomxil-bellagio.so.0
component-name=OMX.st.audio_encoder.aac
rank=0
in-port-index=0
--- a/config/rpi/gstomx.conf
+++ b/config/rpi/gstomx.conf
@@ -1,6 +1,6 @@
[omxmpeg2videodec]
type-name=GstOMXMPEG2VideoDec
-core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.video_decode
rank=257
in-port-index=130
@@ -9,7 +9,7 @@
[omxmpeg4videodec]
type-name=GstOMXMPEG4VideoDec
-core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.video_decode
rank=257
in-port-index=130
@@ -18,7 +18,7 @@
[omxh263dec]
type-name=GstOMXH263Dec
-core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.video_decode
rank=257
in-port-index=130
@@ -27,7 +27,7 @@
[omxh264dec]
type-name=GstOMXH264Dec
-core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.video_decode
rank=257
in-port-index=130
@@ -36,7 +36,7 @@
[omxtheoradec]
type-name=GstOMXTheoraDec
-core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.video_decode
rank=257
in-port-index=130
@@ -45,7 +45,7 @@
[omxvp8dec]
type-name=GstOMXVP8Dec
-core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.video_decode
rank=257
in-port-index=130
@@ -54,7 +54,7 @@
[omxmjpegdec]
type-name=GstOMXMJPEGDec
-core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.video_decode
rank=257
in-port-index=130
@@ -63,7 +63,7 @@
[omxvc1dec]
type-name=GstOMXWMVDec
-core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.video_decode
rank=256
in-port-index=130
@@ -73,7 +73,7 @@
[omxh264enc]
type-name=GstOMXH264Enc
-core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.video_encode
rank=257
in-port-index=200
@@ -82,7 +82,7 @@
[omxanalogaudiosink]
type-name=GstOMXAnalogAudioSink
-core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.audio_render
rank=256
in-port-index=100
@@ -92,7 +92,7 @@
[omxhdmiaudiosink]
type-name=GstOMXHdmiAudioSink
-core-name=/opt/vc/lib/libopenmaxil.so
+core-name=/usr/lib/libopenmaxil.so
component-name=OMX.broadcom.audio_render
rank=257
in-port-index=100

View File

@@ -1,47 +0,0 @@
From 2e111e52f96f0b942abda120c30a876629bd73fc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
Date: Mon, 25 May 2015 14:53:35 +0200
Subject: [PATCH] Don't try to acquire buffer when src pad isn't active
This solves a race condition when setting the pipeline from PAUSE to
NULL while the decoder loop is still running. Without this patch, the
thread which interacts with the decode sink pad gets blocked here:
gst_element_change_state()
gst_element_change_state_func()
gst_element_pads_activate() --> Deactivating pads
activate_pads()
gst_pad_set_active()
gst_pad_activate_mode()
post_activate()
GST_PAD_STREAM_LOCK()
while gst_omx_port_acquire_buffer() gets stalled forever in
gst_omx_component_wait_message() waiting for a message that will never
arrive:
gst_omx_video_dec_loop()
gst_omx_port_acquire_buffer()
gst_omx_component_wait_message()
---
omx/gstomxvideodec.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index cd24944..57a61dd 100644
--- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c
@@ -1247,6 +1247,11 @@ gst_omx_video_dec_loop (GstOMXVideoDec * self)
GstClockTimeDiff deadline;
OMX_ERRORTYPE err;
+ if (!gst_pad_is_active(GST_VIDEO_DECODER_SRC_PAD (self))) {
+ GST_DEBUG_OBJECT (self, "Src pad not active, not acquiring buffer and flushing instead");
+ goto flushing;
+ }
+
#if defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL)
port = self->eglimage ? self->egl_out_port : self->dec_out_port;
#else
--
1.8.3.2

View File

@@ -1,15 +0,0 @@
diff --git a/omx/gstomx.c b/omx/gstomx.c
index 69696c4..c382019 100644
--- a/omx/gstomx.c
+++ b/omx/gstomx.c
@@ -1508,8 +1508,8 @@ gst_omx_port_set_flushing (GstOMXPort * port, GstClockTime timeout,
last_error = OMX_ErrorNone;
gst_omx_component_handle_messages (comp);
while (signalled && last_error == OMX_ErrorNone && !port->flushed
- && port->buffers
- && port->buffers->len > g_queue_get_length (&port->pending_buffers)) {
+ /* && port->buffers
+ && port->buffers->len > g_queue_get_length (&port->pending_buffers) */) {
signalled = gst_omx_component_wait_message (comp, timeout);
if (signalled)
gst_omx_component_handle_messages (comp);

View File

@@ -1,69 +0,0 @@
From 80dddfd13aaf2fe7272765f8cf291215fe375e28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
Date: Tue, 17 Nov 2015 16:51:27 +0000
Subject: [PATCH] Properly handle drain requests while flushing
Without this commit the decoder streaming thread stops without ever attending
the drain request, leaving the decoder input thread waiting forever.
---
omx/gstomx.c | 7 +++++++
omx/gstomxvideodec.c | 13 +++++++++++++
2 files changed, 20 insertions(+)
diff --git a/omx/gstomx.c b/omx/gstomx.c
index 69696c4..f0cd890 100644
--- a/omx/gstomx.c
+++ b/omx/gstomx.c
@@ -830,6 +830,13 @@ gst_omx_component_set_state (GstOMXComponent * comp, OMX_STATETYPE state)
done:
gst_omx_component_handle_messages (comp);
+
+ if (err != OMX_ErrorNone && comp->last_error == OMX_ErrorNone) {
+ GST_ERROR_OBJECT (comp->parent,
+ "Last operation returned an error. Setting last_error manually.");
+ comp->last_error = err;
+ }
+
g_mutex_unlock (&comp->lock);
if (err != OMX_ErrorNone) {
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index d531f75..a26c4a6 100644
--- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c
@@ -1539,9 +1539,16 @@ component_error:
flushing:
{
GST_DEBUG_OBJECT (self, "Flushing -- stopping task");
+
+ g_mutex_lock (&self->drain_lock);
+ if (self->draining) {
+ self->draining = FALSE;
+ g_cond_broadcast (&self->drain_cond);
+ }
gst_pad_pause_task (GST_VIDEO_DECODER_SRC_PAD (self));
self->downstream_flow_ret = GST_FLOW_FLUSHING;
self->started = FALSE;
+ g_mutex_unlock (&self->drain_lock);
return;
}
@@ -1599,8 +1606,14 @@ flow_error:
self->started = FALSE;
} else if (flow_ret == GST_FLOW_FLUSHING) {
GST_DEBUG_OBJECT (self, "Flushing -- stopping task");
+ g_mutex_lock (&self->drain_lock);
+ if (self->draining) {
+ self->draining = FALSE;
+ g_cond_broadcast (&self->drain_cond);
+ }
gst_pad_pause_task (GST_VIDEO_DECODER_SRC_PAD (self));
self->started = FALSE;
+ g_mutex_unlock (&self->drain_lock);
}
GST_VIDEO_DECODER_STREAM_UNLOCK (self);
return;
--
1.8.3.2

View File

@@ -10,4 +10,4 @@ SRC_URI_append_rpi = " \
file://0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch \ 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:"

View File

@@ -0,0 +1,56 @@
From 97cb9405f281f54d4083f3126d441c8b44eafb89 Mon Sep 17 00:00:00 2001
From: Paul Barker <pbarker@toganlabs.com>
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 <pbarker@toganlabs.com>
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

View File

@@ -0,0 +1,39 @@
From 4a13419e3805b541fc58e57f1f27c4a388609ef5 Mon Sep 17 00:00:00 2001
From: Paul Barker <pbarker@toganlabs.com>
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 <pbarker@toganlabs.com>
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

View File

@@ -7,17 +7,30 @@ SECTION = "console/utils"
LICENSE = "GPLv2" LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "libpcre libav virtual/egl boost freetype dbus openssl samba libssh libomxil coreutils-native curl-native" DEPENDS = "libpcre libav virtual/egl boost freetype dbus openssl libssh libomxil coreutils-native curl-native"
PR = "r4" 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 \ 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://0001-Remove-Makefile.include-which-includes-hardcoded.patch \
file://0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch \ file://0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch \
file://0003-Remove-strip-step-in-Makefile.patch \ file://0003-Remove-strip-step-in-Makefile.patch \
file://0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch \ file://0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch \
file://fix-tar-command-with-DIST.patch \ file://fix-tar-command-with-DIST.patch \
file://use-native-pkg-config.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" S = "${WORKDIR}/git"
@@ -27,6 +40,11 @@ COMPATIBLE_MACHINE_rpi = "(.*)"
inherit autotools-brokensep pkgconfig inherit autotools-brokensep pkgconfig
# This isn't used directly by omxplayer, but applied to Makefile.ffmpeg which
# runs the ffmpeg configuration
PACKAGECONFIG ??= ""
PACKAGECONFIG[samba] = "--enable-libsmbclient,--disable-libsmbclient,samba"
# Needed in ffmpeg configure # Needed in ffmpeg configure
export TEMPDIR = "${S}/tmp" export TEMPDIR = "${S}/tmp"
@@ -53,7 +71,10 @@ do_compile() {
# Needed for compiler test in ffmpeg's configure # Needed for compiler test in ffmpeg's configure
mkdir -p tmp mkdir -p tmp
oe_runmake ffmpeg sed -i 's/--enable-libsmbclient/${@bb.utils.contains("PACKAGECONFIG", "samba", "--enable-libsmbclient", "--disable-libsmbclient", d)}/g' Makefile.ffmpeg
oe_runmake -f Makefile.ffmpeg
oe_runmake -f Makefile.ffmpeg install
oe_runmake oe_runmake
} }

View File

@@ -0,0 +1,2 @@
EXTRA_OECONF_append_raspberrypi = " --disable-asm"
EXTRA_OECONF_append_raspberrypi0-wifi = " --disable-asm"

View File

@@ -1 +0,0 @@
EXTRA_OECONF_append_raspberrypi = " --disable-asm"

View File

@@ -0,0 +1 @@
EXTRA_OECMAKE_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', ' -DUSE_GSTREAMER_GL=OFF ', '', d)}"

View File

@@ -2,5 +2,5 @@
# long-description: Creates a partitioned SD card image for use with # long-description: Creates a partitioned SD card image for use with
# Raspberry Pi. Boot files are located in the first vfat partition. # Raspberry Pi. Boot files are located in the first vfat partition.
part /boot --source bootimg-partition --ondisk mmcblk --fstype=vfat --label boot --active --align 4096 --size 20 part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4096 --size 20
part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4096 part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label root --align 4096