mirror of
https://github.com/agherzan/meta-raspberrypi.git
synced 2025-12-06 06:19:11 +00:00
Compare commits
188 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d40b00002 | ||
|
|
c7330ac5e4 | ||
|
|
aea27ba4c7 | ||
|
|
50ee8d7e17 | ||
|
|
ade31d6d01 | ||
|
|
2a6e4883f9 | ||
|
|
99ebafd75a | ||
|
|
3204425178 | ||
|
|
cf26c996ff | ||
|
|
235036c3a8 | ||
|
|
f9e1ce03c5 | ||
|
|
2637389adb | ||
|
|
391ea937a9 | ||
|
|
e0149506ce | ||
|
|
5cd289ac1b | ||
|
|
2cae48218b | ||
|
|
1801aa319c | ||
|
|
a4ba2982e4 | ||
|
|
e1f746fa66 | ||
|
|
690e196f02 | ||
|
|
42de47506a | ||
|
|
a15dbd32c6 | ||
|
|
ed0cfd5b9e | ||
|
|
05f21adb99 | ||
|
|
b35e827e53 | ||
|
|
cdb2dad529 | ||
|
|
d45f13b11b | ||
|
|
f2e2a4376e | ||
|
|
8632069f29 | ||
|
|
092d42cd82 | ||
|
|
6aa54e92e3 | ||
|
|
df56f0c6cc | ||
|
|
1027038db7 | ||
|
|
dbee7838b7 | ||
|
|
0fd3728b1d | ||
|
|
8cd71e771a | ||
|
|
d3709fa688 | ||
|
|
07d06b04dd | ||
|
|
cf9971fa8b | ||
|
|
4d689a792c | ||
|
|
014408d1ac | ||
|
|
070c894321 | ||
|
|
693f36dded | ||
|
|
2c7eab2d0d | ||
|
|
d2ead7c039 | ||
|
|
66103edbb8 | ||
|
|
be2d9b1bf6 | ||
|
|
92aac38577 | ||
|
|
9b2cbacb07 | ||
|
|
e059aaffdf | ||
|
|
9e3a5ef513 | ||
|
|
2bea3356a9 | ||
|
|
51249c9c78 | ||
|
|
3175e7f3e2 | ||
|
|
5641ac3730 | ||
|
|
35234a0bfa | ||
|
|
4bf40b2d32 | ||
|
|
963761aac3 | ||
|
|
292e00099b | ||
|
|
519da94776 | ||
|
|
279b14730a | ||
|
|
3934ba7127 | ||
|
|
0059905a90 | ||
|
|
c717e7359a | ||
|
|
d5f252ef23 | ||
|
|
9209f20c7a | ||
|
|
e99afb0c89 | ||
|
|
857db4a496 | ||
|
|
a4c79714d6 | ||
|
|
63e53f9190 | ||
|
|
415c1998a6 | ||
|
|
f86f9f0013 | ||
|
|
790e100a90 | ||
|
|
4230fae1de | ||
|
|
712558c64e | ||
|
|
b588825238 | ||
|
|
79ea44b997 | ||
|
|
abd453d7da | ||
|
|
ad7693c9a0 | ||
|
|
0e1e2c6e0a | ||
|
|
207efc6fcf | ||
|
|
81a9e9d450 | ||
|
|
ad0443b3d2 | ||
|
|
37f6523aa1 | ||
|
|
8501a33253 | ||
|
|
69d9fa2a69 | ||
|
|
0deabddb14 | ||
|
|
0f145057c3 | ||
|
|
6d0830b26f | ||
|
|
72bc798ff5 | ||
|
|
a2ba56f74e | ||
|
|
ee668d8072 | ||
|
|
073f1e845e | ||
|
|
ea35d07b5b | ||
|
|
8643e28c3a | ||
|
|
dfa7f00bab | ||
|
|
1c9986257e | ||
|
|
6235b0a854 | ||
|
|
0202bc2881 | ||
|
|
f864b1068f | ||
|
|
15d2ea0f5a | ||
|
|
a50e19695f | ||
|
|
61c2a965a2 | ||
|
|
c47caaca32 | ||
|
|
ab5ef24ef8 | ||
|
|
58d86c0986 | ||
|
|
9c9c2bac61 | ||
|
|
f900a6568c | ||
|
|
24ffe9fb59 | ||
|
|
337a419c0e | ||
|
|
9bf918014b | ||
|
|
8124f87175 | ||
|
|
ea6dc59cd7 | ||
|
|
0c41915260 | ||
|
|
ef9c8cb092 | ||
|
|
14fd58b881 | ||
|
|
e0fe589092 | ||
|
|
9b1a796cb7 | ||
|
|
4d3a148b8e | ||
|
|
4c09f3e6db | ||
|
|
50fd319205 | ||
|
|
c07d7055e5 | ||
|
|
abe5e31a89 | ||
|
|
536c15bab9 | ||
|
|
76f5a7df71 | ||
|
|
6a7606a1e4 | ||
|
|
1ab83ec30a | ||
|
|
be340eec3f | ||
|
|
a1cfeb3324 | ||
|
|
fe99478aa9 | ||
|
|
9d84186870 | ||
|
|
f6fecae825 | ||
|
|
c716e0d30c | ||
|
|
70b9c3ec57 | ||
|
|
04b37dbdb7 | ||
|
|
e2432d3bb4 | ||
|
|
f1e2bf782f | ||
|
|
47da217fda | ||
|
|
c26e9d3df5 | ||
|
|
37e4e18f4a | ||
|
|
134e7dd943 | ||
|
|
e9bb7f0c6d | ||
|
|
43e0169ab7 | ||
|
|
129107837d | ||
|
|
49f1a94512 | ||
|
|
e7bac0bed5 | ||
|
|
46f78e37e3 | ||
|
|
cbd2412fb4 | ||
|
|
8311d16e59 | ||
|
|
b00d914e78 | ||
|
|
acd5869235 | ||
|
|
f2896b0e5c | ||
|
|
6c4de0b5fe | ||
|
|
bb51049ebe | ||
|
|
d31377b81a | ||
|
|
5a2b34e56c | ||
|
|
a120ece0e4 | ||
|
|
6abd752bd0 | ||
|
|
91f59ae288 | ||
|
|
aea2129fe3 | ||
|
|
50cbbb0151 | ||
|
|
b6b6ecb6cb | ||
|
|
fa82321af2 | ||
|
|
d2acb3ffda | ||
|
|
b934304e43 | ||
|
|
e59132bdcc | ||
|
|
7a7d871cc1 | ||
|
|
88478c3874 | ||
|
|
f70b24b1f1 | ||
|
|
2aa08e4f97 | ||
|
|
c098439ac1 | ||
|
|
94e2929f74 | ||
|
|
1a06502656 | ||
|
|
1b589998f4 | ||
|
|
ff02bf92e6 | ||
|
|
56d0bdb5fe | ||
|
|
ab4006bb2e | ||
|
|
f6a2ca21c7 | ||
|
|
1e1b50c55d | ||
|
|
4cff21e243 | ||
|
|
16a8384a9a | ||
|
|
04a33eadfb | ||
|
|
fc17cd7419 | ||
|
|
d9dbfe6536 | ||
|
|
ca77a583c3 | ||
|
|
a6bb80c935 | ||
|
|
11fec46133 | ||
|
|
df901c2915 |
@@ -10,10 +10,11 @@ Yocto BSP layer for the Raspberry Pi boards - <http://www.raspberrypi.org/>.
|
||||
## Quick links
|
||||
|
||||
* 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>
|
||||
* Issues management (Github Issues):
|
||||
<https://github.com/agherzan/meta-raspberrypi/issues>
|
||||
* Documentation: <http://meta-raspberrypi.readthedocs.io/en/latest/>
|
||||
|
||||
## Description
|
||||
|
||||
@@ -46,7 +47,7 @@ This layer depends on:
|
||||
1. source poky/oe-init-build-env rpi-build
|
||||
2. Add this layer to bblayers.conf and the dependencies above
|
||||
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)
|
||||
6. Boot your RPI.
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -1,8 +1,7 @@
|
||||
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:
|
||||
#
|
||||
@@ -48,16 +47,19 @@ IMAGE_ROOTFS_ALIGNMENT = "4096"
|
||||
|
||||
# Use an uncompressed ext3 by default as rootfs
|
||||
SDIMG_ROOTFS_TYPE ?= "ext3"
|
||||
SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.${SDIMG_ROOTFS_TYPE}"
|
||||
SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${SDIMG_ROOTFS_TYPE}"
|
||||
|
||||
IMAGE_DEPENDS_rpi-sdimg = " \
|
||||
parted-native \
|
||||
mtools-native \
|
||||
dosfstools-native \
|
||||
virtual/kernel:do_deploy \
|
||||
${IMAGE_BOOTLOADER} \
|
||||
${@bb.utils.contains('KERNEL_IMAGETYPE', 'uImage', 'u-boot', '',d)} \
|
||||
"
|
||||
do_image_rpi_sdimg[depends] = " \
|
||||
parted-native:do_populate_sysroot \
|
||||
mtools-native:do_populate_sysroot \
|
||||
dosfstools-native:do_populate_sysroot \
|
||||
virtual/kernel:do_deploy \
|
||||
${IMAGE_BOOTLOADER}:do_deploy \
|
||||
${@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
|
||||
SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg"
|
||||
@@ -72,113 +74,125 @@ SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg"
|
||||
# Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS.
|
||||
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 () {
|
||||
|
||||
# Align partitions
|
||||
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
|
||||
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
|
||||
SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTFS_SIZE)
|
||||
# Align partitions
|
||||
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
|
||||
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
|
||||
SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTFS_SIZE)
|
||||
|
||||
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
|
||||
DTS="${@get_dts(d)}"
|
||||
# Check if we are building with device tree support
|
||||
DTS="${KERNEL_DEVICETREE}"
|
||||
|
||||
# Initialize sdcard image file
|
||||
dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
|
||||
# Initialize sdcard image file
|
||||
dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
|
||||
|
||||
# Create partition table
|
||||
parted -s ${SDIMG} mklabel msdos
|
||||
# Create boot partition and mark it as bootable
|
||||
parted -s ${SDIMG} unit KiB mkpart primary fat32 ${IMAGE_ROOTFS_ALIGNMENT} $(expr ${BOOT_SPACE_ALIGNED} \+ ${IMAGE_ROOTFS_ALIGNMENT})
|
||||
parted -s ${SDIMG} set 1 boot on
|
||||
# Create rootfs partition to the end of disk
|
||||
parted -s ${SDIMG} -- unit KiB mkpart primary ext2 $(expr ${BOOT_SPACE_ALIGNED} \+ ${IMAGE_ROOTFS_ALIGNMENT}) -1s
|
||||
parted ${SDIMG} print
|
||||
# Create partition table
|
||||
parted -s ${SDIMG} mklabel msdos
|
||||
# Create boot partition and mark it as bootable
|
||||
parted -s ${SDIMG} unit KiB mkpart primary fat32 ${IMAGE_ROOTFS_ALIGNMENT} $(expr ${BOOT_SPACE_ALIGNED} \+ ${IMAGE_ROOTFS_ALIGNMENT})
|
||||
parted -s ${SDIMG} set 1 boot on
|
||||
# Create rootfs partition to the end of disk
|
||||
parted -s ${SDIMG} -- unit KiB mkpart primary ext2 $(expr ${BOOT_SPACE_ALIGNED} \+ ${IMAGE_ROOTFS_ALIGNMENT}) -1s
|
||||
parted ${SDIMG} print
|
||||
|
||||
# Create a vfat image with boot files
|
||||
BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDIMG} unit b print | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 512 /2 }')
|
||||
rm -f ${WORKDIR}/boot.img
|
||||
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/* ::/
|
||||
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)}"
|
||||
# Create a vfat image with boot files
|
||||
BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDIMG} unit b print | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 512 /2 }')
|
||||
rm -f ${WORKDIR}/boot.img
|
||||
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/* ::/
|
||||
if test -n "${DTS}"; then
|
||||
# Copy board device trees to root folder
|
||||
for dtbf in ${@split_overlays(d, True)}; do
|
||||
dtb=`basename $dtbf`
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::$dtb
|
||||
done
|
||||
|
||||
# Copy board device trees to root folder
|
||||
for DTB in $DT_ROOT; do
|
||||
DTB_BASE_NAME=`basename ${DTB} .dtb`
|
||||
# Copy device tree overlays to dedicated folder
|
||||
mmd -i ${WORKDIR}/boot.img overlays
|
||||
for dtbf in ${@split_overlays(d, False)}; do
|
||||
dtb=`basename $dtbf`
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::overlays/$dtb
|
||||
done
|
||||
fi
|
||||
if [ "${RPI_USE_U_BOOT}" = "1" ]; then
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot.bin ::${SDIMG_KERNELIMAGE}
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${KERNEL_IMAGETYPE}
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/boot.scr ::boot.scr
|
||||
else
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${SDIMG_KERNELIMAGE}
|
||||
fi
|
||||
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb ::${DTB_BASE_NAME}.dtb
|
||||
done
|
||||
if [ -n ${FATPAYLOAD} ] ; then
|
||||
echo "Copying payload into VFAT"
|
||||
for entry in ${FATPAYLOAD} ; do
|
||||
# add the || true to stop aborting on vfat issues like not supporting .~lock files
|
||||
mcopy -i ${WORKDIR}/boot.img -s -v ${IMAGE_ROOTFS}$entry :: || true
|
||||
done
|
||||
fi
|
||||
|
||||
# Copy device tree overlays to dedicated folder
|
||||
mmd -i ${WORKDIR}/boot.img overlays
|
||||
for DTB in $DT_OVERLAYS; do
|
||||
DTB_EXT=${DTB##*.}
|
||||
DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
|
||||
# Add stamp file
|
||||
echo "${IMAGE_NAME}" > ${WORKDIR}/image-version-info
|
||||
mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}/image-version-info ::
|
||||
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.${DTB_EXT} ::overlays/${DTB_BASE_NAME}.${DTB_EXT}
|
||||
done
|
||||
fi
|
||||
case "${KERNEL_IMAGETYPE}" in
|
||||
"uImage")
|
||||
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}/boot.scr ::boot.scr
|
||||
;;
|
||||
*)
|
||||
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${SDIMG_KERNELIMAGE}
|
||||
;;
|
||||
esac
|
||||
# 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
|
||||
|
||||
if [ -n ${FATPAYLOAD} ] ; then
|
||||
echo "Copying payload into VFAT"
|
||||
for entry in ${FATPAYLOAD} ; do
|
||||
# add the || true to stop aborting on vfat issues like not supporting .~lock files
|
||||
mcopy -i ${WORKDIR}/boot.img -s -v ${IMAGE_ROOTFS}$entry :: || true
|
||||
done
|
||||
fi
|
||||
# Burn Partitions
|
||||
dd if=${WORKDIR}/boot.img of=${SDIMG} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024)
|
||||
# If SDIMG_ROOTFS_TYPE is a .xz file use xzcat
|
||||
if echo "${SDIMG_ROOTFS_TYPE}" | egrep -q "*\.xz"
|
||||
then
|
||||
xzcat ${SDIMG_ROOTFS} | dd of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024)
|
||||
else
|
||||
dd if=${SDIMG_ROOTFS} of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024)
|
||||
fi
|
||||
|
||||
# Add stamp file
|
||||
echo "${IMAGE_NAME}" > ${WORKDIR}/image-version-info
|
||||
mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}/image-version-info ::
|
||||
|
||||
# Burn Partitions
|
||||
dd if=${WORKDIR}/boot.img of=${SDIMG} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
|
||||
# If SDIMG_ROOTFS_TYPE is a .xz file use xzcat
|
||||
if echo "${SDIMG_ROOTFS_TYPE}" | egrep -q "*\.xz"
|
||||
then
|
||||
xzcat ${SDIMG_ROOTFS} | dd of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
|
||||
else
|
||||
dd if=${SDIMG_ROOTFS} of=${SDIMG} conv=notrunc seek=1 bs=$(expr 1024 \* ${BOOT_SPACE_ALIGNED} + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
|
||||
fi
|
||||
|
||||
# Optionally apply compression
|
||||
case "${SDIMG_COMPRESSION}" in
|
||||
"gzip")
|
||||
gzip -k9 "${SDIMG}"
|
||||
;;
|
||||
"bzip2")
|
||||
bzip2 -k9 "${SDIMG}"
|
||||
;;
|
||||
"xz")
|
||||
xz -k "${SDIMG}"
|
||||
;;
|
||||
esac
|
||||
# Optionally apply compression
|
||||
case "${SDIMG_COMPRESSION}" in
|
||||
"gzip")
|
||||
gzip -k9 "${SDIMG}"
|
||||
;;
|
||||
"bzip2")
|
||||
bzip2 -k9 "${SDIMG}"
|
||||
;;
|
||||
"xz")
|
||||
xz -k "${SDIMG}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
ROOTFS_POSTPROCESS_COMMAND += " rpi_generate_sysctl_config ; "
|
||||
|
||||
rpi_generate_sysctl_config() {
|
||||
# systemd sysctl config
|
||||
test -d ${IMAGE_ROOTFS}${sysconfdir}/sysctl.d && \
|
||||
echo "vm.min_free_kbytes = 8192" > ${IMAGE_ROOTFS}${sysconfdir}/sysctl.d/rpi-vm.conf
|
||||
# systemd sysctl config
|
||||
test -d ${IMAGE_ROOTFS}${sysconfdir}/sysctl.d && \
|
||||
echo "vm.min_free_kbytes = 8192" > ${IMAGE_ROOTFS}${sysconfdir}/sysctl.d/rpi-vm.conf
|
||||
|
||||
# sysv sysctl config
|
||||
IMAGE_SYSCTL_CONF="${IMAGE_ROOTFS}${sysconfdir}/sysctl.conf"
|
||||
test -e ${IMAGE_ROOTFS}${sysconfdir}/sysctl.conf && \
|
||||
sed -e "/vm.min_free_kbytes/d" -i ${IMAGE_SYSCTL_CONF}
|
||||
echo "" >> ${IMAGE_SYSCTL_CONF} && echo "vm.min_free_kbytes = 8192" >> ${IMAGE_SYSCTL_CONF}
|
||||
# sysv sysctl config
|
||||
IMAGE_SYSCTL_CONF="${IMAGE_ROOTFS}${sysconfdir}/sysctl.conf"
|
||||
test -e ${IMAGE_ROOTFS}${sysconfdir}/sysctl.conf && \
|
||||
sed -e "/vm.min_free_kbytes/d" -i ${IMAGE_SYSCTL_CONF}
|
||||
echo "" >> ${IMAGE_SYSCTL_CONF} && echo "vm.min_free_kbytes = 8192" >> ${IMAGE_SYSCTL_CONF}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,17 @@ BBFILE_COLLECTIONS += "raspberrypi"
|
||||
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_raspberrypi = "9"
|
||||
|
||||
LAYERSERIES_COMPAT_raspberrypi = "sumo"
|
||||
|
||||
# Additional license directories.
|
||||
LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
|
||||
|
||||
# The dynamic-layers directory hosts the extensions and layer specific
|
||||
# modifications.
|
||||
#
|
||||
# The .bbappend and .bb files are included if the respective layer
|
||||
# collection is available.
|
||||
BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bbappend' % layer \
|
||||
for layer in BBFILE_COLLECTIONS.split())}"
|
||||
BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bb' % layer \
|
||||
for layer in BBFILE_COLLECTIONS.split())}"
|
||||
|
||||
@@ -6,6 +6,7 @@ SOC_FAMILY = "rpi"
|
||||
include conf/machine/include/soc-family.inc
|
||||
|
||||
IMAGE_FSTYPES ?= "tar.bz2 ext3 rpi-sdimg"
|
||||
WKS_FILE ?= "sdimage-raspberrypi.wks"
|
||||
|
||||
XSERVER = " \
|
||||
xserver-xorg \
|
||||
@@ -13,15 +14,8 @@ XSERVER = " \
|
||||
${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "xf86-video-modesetting", "xf86-video-fbdev", d)} \
|
||||
"
|
||||
|
||||
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 \
|
||||
bcm2708-rpi-cm.dtb \
|
||||
bcm2710-rpi-cm3.dtb \
|
||||
\
|
||||
RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
|
||||
overlays/dwc2.dtbo \
|
||||
overlays/hifiberry-amp.dtbo \
|
||||
overlays/hifiberry-dac.dtbo \
|
||||
overlays/hifiberry-dacplus.dtbo \
|
||||
@@ -35,20 +29,50 @@ KERNEL_DEVICETREE ?= " \
|
||||
overlays/pitft35-resistive.dtbo \
|
||||
overlays/pps-gpio.dtbo \
|
||||
overlays/rpi-ft5406.dtbo \
|
||||
overlays/rpi-poe.dtbo \
|
||||
overlays/w1-gpio.dtbo \
|
||||
overlays/w1-gpio-pullup.dtbo \
|
||||
overlays/pi3-disable-bt.dtbo \
|
||||
overlays/pi3-miniuart-bt.dtbo \
|
||||
overlays/vc4-kms-v3d.dtbo \
|
||||
overlays/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"
|
||||
|
||||
# Raspberry Pi has no hardware clock
|
||||
MACHINE_FEATURES_BACKFILL_CONSIDERED = "rtc"
|
||||
|
||||
MACHINE_EXTRA_RRECOMMENDS += " kernel-modules"
|
||||
MACHINE_EXTRA_RRECOMMENDS += " kernel-modules udev-rules-rpi"
|
||||
|
||||
# Set Raspberrypi splash image
|
||||
SPLASH = "psplash-raspberrypi"
|
||||
@@ -83,9 +107,17 @@ def make_dtb_boot_files(d):
|
||||
|
||||
IMAGE_BOOT_FILES ?= "bcm2835-bootfiles/* \
|
||||
${@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
|
||||
# to also be installed into the rootfs.
|
||||
RDEPENDS_kernel-base = ""
|
||||
RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# RaspberryPi BSP default versions
|
||||
|
||||
PREFERRED_VERSION_linux-raspberrypi ??= "4.9.%"
|
||||
PREFERRED_VERSION_linux-raspberrypi ??= "4.14.%"
|
||||
|
||||
@@ -6,10 +6,12 @@ DEFAULTTUNE ?= "arm1176jzfshf"
|
||||
require conf/machine/include/tune-arm1176jzf-s.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"
|
||||
KERNEL_DEFCONFIG ?= "bcmrpi_defconfig"
|
||||
UBOOT_MACHINE ?= "rpi_config"
|
||||
UBOOT_MACHINE ?= "rpi_0_w_defconfig"
|
||||
SERIAL_CONSOLE ?= "115200 ttyS0"
|
||||
VC4_CMA_SIZE ?= "cma-128"
|
||||
|
||||
@@ -2,35 +2,22 @@
|
||||
#@NAME: RaspberryPi 3 Development Board
|
||||
#@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
|
||||
include conf/machine/include/rpi-base.inc
|
||||
|
||||
KERNEL_DEVICETREE = " \
|
||||
RPI_KERNEL_DEVICETREE = " \
|
||||
broadcom/bcm2710-rpi-3-b.dtb \
|
||||
broadcom/bcm2710-rpi-3-b-plus.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"
|
||||
@@ -38,3 +25,10 @@ VC4_CMA_SIZE ?= "cma-256"
|
||||
|
||||
UBOOT_MACHINE = "rpi_3_config"
|
||||
MACHINE_FEATURES_append = " vc4graphics"
|
||||
|
||||
# When u-boot is enabled we need to use the "Image" format and the "booti"
|
||||
# command to load the kernel
|
||||
KERNEL_IMAGETYPE_UBOOT ?= "Image"
|
||||
# "zImage" not supported on arm64 and ".gz" images not supported by bootloader yet
|
||||
KERNEL_IMAGETYPE_DIRECT ?= "Image"
|
||||
KERNEL_BOOTCMD ?= "booti"
|
||||
|
||||
@@ -6,10 +6,14 @@ DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
|
||||
require conf/machine/include/tune-cortexa7.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"
|
||||
KERNEL_DEFCONFIG ?= "bcm2709_defconfig"
|
||||
UBOOT_MACHINE = "rpi_3_32b_config"
|
||||
SERIAL_CONSOLE ?= "115200 ttyS0"
|
||||
VC4_CMA_SIZE ?= "cma-256"
|
||||
|
||||
@@ -120,7 +120,7 @@ todo_include_todos = False
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# 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
|
||||
# further. For a list of options available for each theme, see the
|
||||
|
||||
@@ -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
|
||||
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
|
||||
|
||||
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"
|
||||
|
||||
See: <https://www.raspberrypi.org/documentation/configuration/config-txt/codeclicence.md>
|
||||
|
||||
## Disable overscan
|
||||
|
||||
@@ -53,18 +56,57 @@ local.conf:
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
the config.txt for a detailed description of options and modes. Example turbo
|
||||
mode:
|
||||
the config.txt for a detailed description of options and modes. The following
|
||||
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"
|
||||
CORE_FREQ = "500"
|
||||
SDRAM_FREQ = "500"
|
||||
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
|
||||
|
||||
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"
|
||||
|
||||
## Disable rpi boot logo
|
||||
|
||||
To disable rpi boot logo, set this variable in local.conf:
|
||||
|
||||
DISABLE_RPI_BOOT_LOGO = "1"
|
||||
|
||||
## Boot to U-Boot
|
||||
|
||||
To have u-boot load kernel image, set in your local.conf:
|
||||
|
||||
KERNEL_IMAGETYPE = "uImage"
|
||||
RPI_USE_U_BOOT = "1"
|
||||
|
||||
This will make kernel.img be u-boot image which will load uImage. By default,
|
||||
kernel.img is the actual kernel image (ex. Image).
|
||||
This will select the appropriate image format for use with u-boot automatically.
|
||||
For further customisation the KERNEL_IMAGETYPE and KERNEL_BOOTCMD variables can
|
||||
be overridden to select the exact kernel image type (eg. zImage) and u-boot
|
||||
command (eg. bootz) to be used.
|
||||
|
||||
## Image with Initramfs
|
||||
|
||||
@@ -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
|
||||
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
|
||||
RaspberryPi3 will have to explicitely set in local.conf:
|
||||
RaspberryPi3 will have to explicitly set in local.conf:
|
||||
|
||||
ENABLE_UART = "1"
|
||||
|
||||
Ref.:
|
||||
* <https://github.com/raspberrypi/firmware/issues/553>
|
||||
* <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 \
|
||||
'
|
||||
|
||||
@@ -11,14 +11,24 @@
|
||||
* raspberrypi-cm (dummy alias for raspberrypi)
|
||||
* raspberrypi-cm3 (dummy alias for raspberrypi2)
|
||||
|
||||
Note: The raspberrypi3 machines include support for Raspberry Pi 3B+.
|
||||
|
||||
## Images
|
||||
|
||||
* rpi-hwup-image
|
||||
* Hardware up image
|
||||
|
||||
* rpi-basic-image
|
||||
* Based on rpi-hwup-image with some added features (ex: splash)
|
||||
|
||||
* 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.
|
||||
|
||||
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.
|
||||
|
||||
@@ -3,13 +3,15 @@ LICENSE = "Proprietary"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENCE.broadcom;md5=4a4d169737c0786fb9482bb6d30401d1"
|
||||
|
||||
inherit deploy
|
||||
inherit deploy nopackages
|
||||
|
||||
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"
|
||||
|
||||
@@ -32,7 +34,7 @@ do_deploy() {
|
||||
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}"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
@@ -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 \
|
||||
system configuration parameters."
|
||||
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"
|
||||
SRC_URI = "git://github.com/Evilpaul/RPi-config.git;protocol=git;branch=master \
|
||||
@@ -15,14 +15,18 @@ S = "${WORKDIR}/git"
|
||||
|
||||
PR = "r5"
|
||||
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
|
||||
PITFT22="${@bb.utils.contains("MACHINE_FEATURES", "pitft22", "1", "0", d)}"
|
||||
PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"
|
||||
PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"
|
||||
|
||||
VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
|
||||
VC4DTBO_raspberrypi3-64 ?= "vc4-fkms-v3d"
|
||||
VC4DTBO ?= "vc4-kms-v3d"
|
||||
|
||||
inherit deploy
|
||||
inherit deploy nopackages
|
||||
|
||||
do_deploy() {
|
||||
install -d ${DEPLOYDIR}/bcm2835-bootfiles
|
||||
@@ -30,25 +34,33 @@ do_deploy() {
|
||||
cp ${S}/config.txt ${DEPLOYDIR}/bcm2835-bootfiles/
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
# GPU memory
|
||||
@@ -56,13 +68,47 @@ do_deploy() {
|
||||
sed -i '/#gpu_mem=/ c\gpu_mem=${GPU_MEM}' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
# Video camera support
|
||||
@@ -83,6 +129,7 @@ do_deploy() {
|
||||
echo "dtparam=spi=on" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
|
||||
# I2C support
|
||||
if [ -n "${ENABLE_I2C}" ] || [ "${PITFT}" = "1" ]; then
|
||||
echo "# Enable I2C" >>${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 "dtoverlay=pitft22,rotate=270,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
|
||||
if [ "${PITFT28r}" = "1" ]; then
|
||||
echo "# Enable PITFT28r display" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
echo "dtoverlay=pitft28-resistive,rotate=90,speed=32000000,txbuflen=32768" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
|
||||
if [ "${PITFT35r}" = "1" ]; then
|
||||
echo "# Enable PITFT35r display" >>${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
|
||||
if [ "${VC4GRAPHICS}" = "1" ]; then
|
||||
echo "# Enable VC4 Graphics" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
echo "dtoverlay=vc4-kms-v3d,${VC4_CMA_SIZE}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
echo "dtoverlay=${VC4DTBO},${VC4_CMA_SIZE}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
fi
|
||||
|
||||
# Waveshare "C" 1024x600 7" Rev2.1 IPS capacitive touch (http://www.waveshare.com/7inch-HDMI-LCD-C.htm)
|
||||
@@ -126,15 +171,32 @@ do_deploy() {
|
||||
echo "hdmi_cvt 1024 600 60 6 0 0 0" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
echo "hdmi_drive=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
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() {
|
||||
# Device Tree support
|
||||
echo "# Load correct Device Tree for Aarch64" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
echo "device_tree=bcm2710-rpi-3-b.dtb" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
echo "# have a properly sized image" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
echo "disable_overscan=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
|
||||
echo "# Enable audio (loads snd_bcm2835)" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
echo "dtparam=audio=on" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
|
||||
}
|
||||
|
||||
addtask deploy before do_package after do_install
|
||||
addtask deploy before do_build after do_install
|
||||
do_deploy[dirs] += "${DEPLOYDIR}/bcm2835-bootfiles"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
RPIFW_DATE ?= "20170405"
|
||||
RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/1.${RPIFW_DATE}.tar.gz"
|
||||
RPIFW_S ?= "${WORKDIR}/firmware-1.${RPIFW_DATE}"
|
||||
RPIFW_DATE ?= "20180817"
|
||||
SRCREV ?= "53ac68e1eb02138f72a5056efed9dac9d3883a3f"
|
||||
RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz"
|
||||
RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}"
|
||||
|
||||
SRC_URI = "${RPIFW_SRC_URI}"
|
||||
SRC_URI[md5sum] = "ea82d14a7cd8cfae9b78e00d4e56bc71"
|
||||
SRC_URI[sha256sum] = "2f4e5bddbac1372590db203002c35cbba3fb9d6172a93c314ee27bf05ae13bff"
|
||||
SRC_URI[md5sum] = "6b3d901decf2fe4fad151e3ebb28cb62"
|
||||
SRC_URI[sha256sum] = "3680de3ea9817b10fa8998b0dfa6811e58c96945474f4c782710dcd0a56c8cf0"
|
||||
|
||||
|
||||
PV = "${RPIFW_DATE}"
|
||||
|
||||
|
||||
@@ -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}
|
||||
3
recipes-bsp/rpi-u-boot-scr/files/boot.cmd.in
Normal file
3
recipes-bsp/rpi-u-boot-scr/files/boot.cmd.in
Normal 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}
|
||||
@@ -1,17 +1,22 @@
|
||||
SUMMARY = "U-boot boot scripts for Raspberry Pi"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
||||
COMPATIBLE_MACHINE = "rpi"
|
||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
|
||||
DEPENDS = "u-boot-mkimage-native"
|
||||
|
||||
SRC_URI = "file://boot.cmd"
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
SRC_URI = "file://boot.cmd.in"
|
||||
|
||||
do_compile() {
|
||||
sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \
|
||||
-e 's/@@KERNEL_BOOTCMD@@/${KERNEL_BOOTCMD}/' \
|
||||
"${WORKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd"
|
||||
mkimage -A arm -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
|
||||
}
|
||||
|
||||
inherit deploy
|
||||
inherit deploy nopackages
|
||||
|
||||
do_deploy() {
|
||||
install -d ${DEPLOYDIR}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Binary file not shown.
@@ -2,11 +2,13 @@
|
||||
Description=Broadcom BCM43438 bluetooth HCI
|
||||
ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins
|
||||
Before=bluetooth.service
|
||||
After=dev-ttyAMA0.device
|
||||
BindsTo=dev-serial1.device
|
||||
After=dev-serial1.device
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/hciattach -n /dev/ttyAMA0 bcm43xx 921600 noflow -
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/bin/btuart
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI_append_raspberrypi3 = " \
|
||||
file://BCM43430A1.hcd \
|
||||
BCM_BT_SOURCES = " \
|
||||
file://0001-bcm43xx-Add-bcm43xx-3wire-variant.patch \
|
||||
file://0002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch \
|
||||
file://0003-Increase-firmware-load-timeout-to-30s.patch \
|
||||
@@ -9,18 +8,38 @@ SRC_URI_append_raspberrypi3 = " \
|
||||
file://brcm43438.service \
|
||||
"
|
||||
|
||||
do_install_append_raspberrypi3() {
|
||||
install -d ${D}/lib/firmware/brcm/
|
||||
install -m 0644 ${WORKDIR}/BCM43430A1.hcd ${D}/lib/firmware/brcm/BCM43430A1.hcd
|
||||
BCM_BT_SERVICE = "brcm43438.service"
|
||||
|
||||
enable_bcm_bluetooth() {
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
||||
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
|
||||
}
|
||||
|
||||
FILES_${PN}_append_raspberrypi3 = " \
|
||||
/lib/firmware/brcm/BCM43430A1.hcd \
|
||||
"
|
||||
BCM_BT_RDEPENDS = "\
|
||||
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}"
|
||||
|
||||
22
recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb
Normal file
22
recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb
Normal 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}"
|
||||
@@ -1,6 +1,15 @@
|
||||
# Base this image on rpi-hwup-image
|
||||
include rpi-hwup-image.bb
|
||||
# Base this image on core-image-minimal
|
||||
include recipes-core/images/core-image-minimal.bb
|
||||
|
||||
# Include modules in rootfs
|
||||
IMAGE_INSTALL += " \
|
||||
kernel-modules \
|
||||
"
|
||||
|
||||
SPLASH = "psplash-raspberrypi"
|
||||
|
||||
IMAGE_FEATURES += "ssh-server-dropbear splash"
|
||||
|
||||
do_image_prepend() {
|
||||
bb.warn("The image 'rpi-basic-image' is deprecated, please use 'core-image-base' instead")
|
||||
}
|
||||
|
||||
@@ -5,3 +5,7 @@ include recipes-core/images/core-image-minimal.bb
|
||||
IMAGE_INSTALL += " \
|
||||
kernel-modules \
|
||||
"
|
||||
|
||||
do_image_prepend() {
|
||||
bb.warn("The image 'rpi-hwup-image' is deprecated, please use 'core-image-base' instead")
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
# Base this image on rpi-basic-image
|
||||
include rpi-basic-image.bb
|
||||
# Base this image on core-image-base
|
||||
include recipes-core/images/core-image-base.bb
|
||||
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
|
||||
IMAGE_INSTALL_append = " packagegroup-rpi-test"
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
DESCRIPTION = "RaspberryPi Test Packagegroup"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
||||
|
||||
inherit packagegroup
|
||||
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
|
||||
OMXPLAYER_rpi = "omxplayer"
|
||||
OMXPLAYER_rpi_aarch64 = ""
|
||||
|
||||
RDEPENDS_${PN} = "\
|
||||
omxplayer \
|
||||
${OMXPLAYER} \
|
||||
bcm2835-tests \
|
||||
wiringpi \
|
||||
rpio \
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
DESCRIPTION = "udev rules for Raspberry Pi Boards"
|
||||
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"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${sysconfdir}/udev/rules.d
|
||||
install -m 0644 ${WORKDIR}/99-com.rules ${D}${sysconfdir}/udev/rules.d/
|
||||
|
||||
10
recipes-core/udev/udev-rules-udisks-rpi/80-udisks-rpi.rules
Normal file
10
recipes-core/udev/udev-rules-udisks-rpi/80-udisks-rpi.rules
Normal 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"
|
||||
|
||||
##############################################################################################################
|
||||
13
recipes-core/udev/udev-rules-udisks-rpi_1.0.bb
Normal file
13
recipes-core/udev/udev-rules-udisks-rpi_1.0.bb
Normal 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"
|
||||
@@ -8,7 +8,7 @@ AUTHOR = "Mike McCauley (mikem@open.com.au)"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
|
||||
SRC_URI = "http://www.airspayce.com/mikem/bcm2835/bcm2835-${PV}.tar.gz"
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
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
|
||||
--- git.org/pi-blaster.boot.sh 2014-05-20 14:49:44.378582168 +0100
|
||||
+++ git/pi-blaster.boot.sh 2014-05-20 14:51:08.330582386 +0100
|
||||
@@ -28,12 +28,12 @@
|
||||
diff --git a/debian/pi-blaster.init b/debian/pi-blaster.init
|
||||
index b142d70..01a686c 100644
|
||||
--- a/debian/pi-blaster.init
|
||||
+++ b/debian/pi-blaster.init
|
||||
@@ -28,12 +28,12 @@ SCRIPTNAME=/etc/init.d/$NAME
|
||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
||||
|
||||
# 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
|
||||
@@ -77,48 +77,23 @@
|
||||
@@ -77,48 +77,24 @@ do_stop()
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
@@ -52,6 +67,7 @@ diff -ur git.org/pi-blaster.boot.sh git/pi-blaster.boot.sh
|
||||
# 'force-reload' alias
|
||||
#
|
||||
- log_daemon_msg "Restarting $DESC" "$NAME"
|
||||
+ echo "Restarting $DESC" "$NAME"
|
||||
do_stop
|
||||
- case "$?" in
|
||||
- 0|1)
|
||||
@@ -67,11 +83,14 @@ diff -ur git.org/pi-blaster.boot.sh git/pi-blaster.boot.sh
|
||||
- log_end_msg 1
|
||||
- ;;
|
||||
- esac
|
||||
+ do_start
|
||||
+ do_start
|
||||
;;
|
||||
*)
|
||||
- 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
|
||||
;;
|
||||
esac
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
@@ -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}"
|
||||
@@ -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}"
|
||||
|
||||
@@ -4,16 +4,12 @@ SECTION = "devel/python"
|
||||
LICENSE = "BSD"
|
||||
LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=d80fe312e1ff5fbd97369b093bf21cda"
|
||||
|
||||
SRCNAME = "sense-hat"
|
||||
inherit setuptools pypi
|
||||
|
||||
SRC_URI = "https://pypi.python.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
|
||||
PYPI_PACKAGE = "sense-hat"
|
||||
|
||||
SRC_URI[md5sum] = "71217f15ea963040f06e2f50722186ca"
|
||||
SRC_URI[sha256sum] = "c6c76707c0ea514e4b0f1f96f1b5b79755875891aae037df7434b6aad7b9dbca"
|
||||
|
||||
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
||||
|
||||
inherit setuptools
|
||||
SRC_URI[md5sum] = "69929250cb72349a8a82edf2584b1d83"
|
||||
SRC_URI[sha256sum] = "f000998d042d96ed722d459312e1bebd0107f9f3015cd34b3e4fabcab9c800af"
|
||||
|
||||
DEPENDS += " \
|
||||
jpeg \
|
||||
@@ -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"
|
||||
|
||||
14
recipes-devtools/python/rpi-gpio_0.6.3.bb
Normal file
14
recipes-devtools/python/rpi-gpio_0.6.3.bb
Normal 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$"
|
||||
@@ -5,16 +5,19 @@ SECTION = "devel/python"
|
||||
LICENSE = "LGPLv3+"
|
||||
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 \
|
||||
file://0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch \
|
||||
"
|
||||
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
||||
SRC_URI += "file://0001-include-sys-types.h-explicitly-for-getting-caddr_t-d.patch"
|
||||
|
||||
inherit setuptools
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
|
||||
RDEPENDS_${PN} = "\
|
||||
python-logging \
|
||||
python-threading \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "cefc45422833dcafcd59b78dffc540f4"
|
||||
SRC_URI[sha256sum] = "b89f75dec9de354681209ebfaedfe22b7c178aacd91a604a7bd6d92024e4cf7e"
|
||||
|
||||
@@ -1,23 +1,18 @@
|
||||
From 4ed727aa9e528f130fdc8798df771037a1f22fc9 Mon Sep 17 00:00:00 2001
|
||||
From: Andrea Galbusera <gizero@gmail.com>
|
||||
Date: Mon, 3 Apr 2017 14:48:14 +0200
|
||||
Subject: [PATCH] =?UTF-8?q?Add=20initial=20cross=20compile=20support=20(re?=
|
||||
=?UTF-8?q?base=20from=20Petter=20Mab=C3=A4cker=20<petter@technux.se>=20ve?=
|
||||
=?UTF-8?q?rsion)?=
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
From ca25788e2563bad0d554deb9f4300d1e7d062825 Mon Sep 17 00:00:00 2001
|
||||
From: Aurelian Zanoschi <aurelian17@gmail.com>
|
||||
Date: Mon, 31 Jul 2017 20:25:15 +0300
|
||||
Subject: [PATCH] Add initial cross compile support
|
||||
|
||||
---
|
||||
devLib/Makefile | 54 +++++++++++++++++++++++++--------------------
|
||||
examples/Gertboard/Makefile | 20 +++++++++++------
|
||||
examples/Makefile | 20 +++++++++++------
|
||||
examples/PiFace/Makefile | 20 +++++++++++------
|
||||
examples/Gertboard/Makefile | 22 +++++++++++-------
|
||||
examples/Makefile | 22 +++++++++++-------
|
||||
examples/PiFace/Makefile | 22 +++++++++++-------
|
||||
examples/PiGlow/Makefile | 4 ++--
|
||||
examples/q2w/Makefile | 4 ++--
|
||||
gpio/Makefile | 29 ++++++++++++------------
|
||||
wiringPi/Makefile | 50 +++++++++++++++++++++++------------------
|
||||
8 files changed, 116 insertions(+), 85 deletions(-)
|
||||
wiringPi/Makefile | 52 ++++++++++++++++++++++++-------------------
|
||||
8 files changed, 120 insertions(+), 89 deletions(-)
|
||||
|
||||
diff --git a/devLib/Makefile b/devLib/Makefile
|
||||
index cf665d6..040c03a 100644
|
||||
@@ -132,11 +127,12 @@ index 1939ad6..98d1415 100644
|
||||
-CC = gcc
|
||||
-INCLUDE = -I/usr/local/include
|
||||
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
+DESTDIR?=/usr
|
||||
+PREFIX?=/local
|
||||
|
||||
-
|
||||
-LDFLAGS = -L/usr/local/lib
|
||||
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
|
||||
+DESTDIR?=/usr
|
||||
+PREFIX?=/local
|
||||
+
|
||||
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
|
||||
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
|
||||
+
|
||||
@@ -164,11 +160,12 @@ index 6d87885..8623816 100644
|
||||
-CC = gcc
|
||||
-INCLUDE = -I/usr/local/include
|
||||
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
+DESTDIR?=/usr
|
||||
+PREFIX?=/local
|
||||
|
||||
-
|
||||
-LDFLAGS = -L/usr/local/lib
|
||||
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt
|
||||
+DESTDIR?=/usr
|
||||
+PREFIX?=/local
|
||||
+
|
||||
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
|
||||
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
|
||||
+
|
||||
@@ -196,11 +193,12 @@ index f937c14..ad030b3 100644
|
||||
-CC = gcc
|
||||
-INCLUDE = -I/usr/local/include
|
||||
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
+DESTDIR?=/usr
|
||||
+PREFIX?=/local
|
||||
|
||||
-
|
||||
-LDFLAGS = -L/usr/local/lib
|
||||
-LDLIBS = -lwiringPi -lwiringPiDev -lpthread -lm
|
||||
+DESTDIR?=/usr
|
||||
+PREFIX?=/local
|
||||
+
|
||||
+INCLUDE_DIR?=$(DESTDIR)$(PREFIX)/include
|
||||
+LIB_DIR?=$(DESTDIR)$(PREFIX)/lib
|
||||
+
|
||||
@@ -305,10 +303,10 @@ index f41a005..22753ee 100644
|
||||
|
||||
.PHONY: depend
|
||||
diff --git a/wiringPi/Makefile b/wiringPi/Makefile
|
||||
index e1868b9..e39f75a 100644
|
||||
index e1868b9..750d290 100644
|
||||
--- a/wiringPi/Makefile
|
||||
+++ b/wiringPi/Makefile
|
||||
@@ -25,19 +25,23 @@ VERSION=$(shell cat ../VERSION)
|
||||
@@ -25,21 +25,25 @@ VERSION=$(shell cat ../VERSION)
|
||||
DESTDIR?=/usr
|
||||
PREFIX?=/local
|
||||
|
||||
@@ -336,19 +334,22 @@ index e1868b9..e39f75a 100644
|
||||
+CC ?= gcc
|
||||
+INCLUDE ?= -I.
|
||||
DEFS = -D_GNU_SOURCE
|
||||
CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Winline $(INCLUDE) -pipe -fPIC
|
||||
-CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Winline $(INCLUDE) -pipe -fPIC
|
||||
+CFLAGS = $(DEBUG) $(DEFS) $(INCLUDE) -Wformat=2 -Wall -Wextra -Winline -pipe -fPIC
|
||||
|
||||
LIBS = -lm -lpthread -lrt -lcrypt
|
||||
|
||||
@@ -78,17 +82,17 @@ $(STATIC): $(OBJ)
|
||||
|
||||
$(DYNAMIC): $(OBJ)
|
||||
$Q echo "[Link (Dynamic)]"
|
||||
- $Q $(CC) -shared -Wl,-soname,libwiringPi.so$(WIRINGPI_SONAME_SUFFIX) -o libwiringPi.so.$(VERSION) $(LIBS) $(OBJ)
|
||||
+ $Q $(CC) $(LDFLAGS) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so $(LIBS) $(OBJ)
|
||||
+ $Q $(CC) $(LDFLAGS) -shared -Wl,-soname,$(BASE_NAME).so.$(DYN_VERS_MAJ) -o $(BASE_NAME).so $(OBJ) $(LIBS)
|
||||
|
||||
.c.o:
|
||||
$Q echo [Compile] $<
|
||||
- $Q $(CC) -c $(CFLAGS) $< -o $@
|
||||
+ $Q $(CC) -c $(CFLAGS) -fPIC $< -o $@
|
||||
+ $Q $(CC) $(CFLAGS) $(LIBS) -c $< -o $@
|
||||
|
||||
|
||||
.PHONY: clean
|
||||
@@ -13,7 +13,7 @@ SRC_URI = "git://git.drogon.net/wiringPi \
|
||||
file://0001-Add-initial-cross-compile-support.patch \
|
||||
"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
|
||||
CFLAGS_prepend = "-I${S}/wiringPi -I${S}/devLib "
|
||||
|
||||
@@ -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"
|
||||
DRIDRIVERS_rpi = ""
|
||||
|
||||
@@ -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>
|
||||
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
|
||||
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))
|
||||
--
|
||||
2.12.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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>
|
||||
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 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
|
||||
vc_vchi_dispmanx.h
|
||||
---
|
||||
.gitignore | 2 +
|
||||
.gitignore | 1 +
|
||||
CMakeLists.txt | 11 +
|
||||
README.md | 4 +
|
||||
buildme | 10 +-
|
||||
@@ -47,7 +47,7 @@ vc_vchi_dispmanx.h
|
||||
interface/vmcs_host/vc_vchi_dispmanx.h | 15 ++
|
||||
interface/wayland/dispmanx.xml | 123 +++++++++++
|
||||
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
|
||||
copy interface/{vmcs_host/vc_vchi_dispmanx.h => khronos/common/linux/khrn_wayland.h} (56%)
|
||||
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 makefiles/cmake/Wayland.cmake
|
||||
|
||||
diff --git a/.gitignore b/.gitignore
|
||||
index 4a88665..5da71a9 100644
|
||||
--- a/.gitignore
|
||||
+++ b/.gitignore
|
||||
@@ -13,3 +13,5 @@ build/
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
+
|
||||
Index: git/.gitignore
|
||||
===================================================================
|
||||
--- git.orig/.gitignore
|
||||
+++ git/.gitignore
|
||||
@@ -30,3 +30,4 @@ build/
|
||||
*.pts
|
||||
*.ppm
|
||||
*.mkv
|
||||
+*~
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index cfc8ae5..673a5ad 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -24,6 +24,17 @@ include(makefiles/cmake/global_settings.cmake)
|
||||
Index: git/CMakeLists.txt
|
||||
===================================================================
|
||||
--- git.orig/CMakeLists.txt
|
||||
+++ git/CMakeLists.txt
|
||||
@@ -24,6 +24,17 @@ include(makefiles/cmake/global_settings.
|
||||
include(makefiles/cmake/arm-linux.cmake)
|
||||
include(makefiles/cmake/vmcs.cmake)
|
||||
|
||||
@@ -89,22 +88,22 @@ index cfc8ae5..673a5ad 100644
|
||||
enable_language(ASM)
|
||||
|
||||
# Global include paths
|
||||
diff --git a/README.md b/README.md
|
||||
index 358d2b4..4da4448 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -4,3 +4,7 @@ EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG.
|
||||
|
||||
Use buildme to build. It requires cmake to be installed and an arm cross compiler. It is set up to use this one:
|
||||
Index: git/README.md
|
||||
===================================================================
|
||||
--- git.orig/README.md
|
||||
+++ git/README.md
|
||||
@@ -6,3 +6,7 @@ Use buildme to build. It requires cmake
|
||||
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:
|
||||
+
|
||||
+$ BUILD_WAYLAND=1 ./buildme.
|
||||
diff --git a/buildme b/buildme
|
||||
index b8fd440..a780bb6 100755
|
||||
--- a/buildme
|
||||
+++ b/buildme
|
||||
Index: git/buildme
|
||||
===================================================================
|
||||
--- git.orig/buildme
|
||||
+++ git/buildme
|
||||
@@ -8,6 +8,10 @@ fi
|
||||
|
||||
BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`;
|
||||
@@ -131,11 +130,11 @@ index b8fd440..a780bb6 100755
|
||||
make -j `nproc`
|
||||
|
||||
if [ "$1" != "" ]; then
|
||||
diff --git a/host_applications/linux/apps/raspicam/CMakeLists.txt b/host_applications/linux/apps/raspicam/CMakeLists.txt
|
||||
index e6aa6b8..69059cb 100644
|
||||
--- a/host_applications/linux/apps/raspicam/CMakeLists.txt
|
||||
+++ b/host_applications/linux/apps/raspicam/CMakeLists.txt
|
||||
@@ -28,7 +28,7 @@ add_executable(raspividyuv ${COMMON_SOURCES} RaspiVidYUV.c)
|
||||
Index: git/host_applications/linux/apps/raspicam/CMakeLists.txt
|
||||
===================================================================
|
||||
--- git.orig/host_applications/linux/apps/raspicam/CMakeLists.txt
|
||||
+++ git/host_applications/linux/apps/raspicam/CMakeLists.txt
|
||||
@@ -28,7 +28,7 @@ add_executable(raspividyuv ${COMMON_SOU
|
||||
|
||||
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(raspivid ${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 9ad615b..3d3571a 100644
|
||||
--- a/interface/khronos/CMakeLists.txt
|
||||
+++ b/interface/khronos/CMakeLists.txt
|
||||
Index: git/interface/khronos/CMakeLists.txt
|
||||
===================================================================
|
||||
--- git.orig/interface/khronos/CMakeLists.txt
|
||||
+++ git/interface/khronos/CMakeLists.txt
|
||||
@@ -6,6 +6,12 @@
|
||||
# have quite a few circular dependencies, and so the only way
|
||||
# to make it work seems to be to have everything static.
|
||||
@@ -161,7 +160,7 @@ index 9ad615b..3d3571a 100644
|
||||
set(EGL_SOURCE
|
||||
egl/egl_client_config.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_client_cache.c)
|
||||
|
||||
@@ -169,8 +168,7 @@ index 9ad615b..3d3571a 100644
|
||||
+ khrn_client
|
||||
+ vchiq_arm
|
||||
+ vcos
|
||||
+ bcm_host
|
||||
+ -lm)
|
||||
+ bcm_host)
|
||||
+
|
||||
+if (BUILD_WAYLAND)
|
||||
+ 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?
|
||||
add_library(EGL_static STATIC ${EGL_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)
|
||||
add_definitions(-DKHRONOS_HAVE_VCSM)
|
||||
endif()
|
||||
-
|
||||
-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(WFC EGL)
|
||||
target_link_libraries(OpenVG EGL)
|
||||
diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c
|
||||
index ef4babd..d7e798e 100644
|
||||
--- a/interface/khronos/common/khrn_client.c
|
||||
+++ b/interface/khronos/common/khrn_client.c
|
||||
@@ -54,6 +54,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@@ -87,7 +135,7 @@ add_library(brcmGLESv2 ${SHARED} ${GLES_
|
||||
add_library(brcmOpenVG ${SHARED} ${VG_SOURCE})
|
||||
add_library(brcmWFC ${SHARED} ${WFC_SOURCE})
|
||||
|
||||
-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"
|
||||
#endif
|
||||
|
||||
@@ -243,7 +250,7 @@ index ef4babd..d7e798e 100644
|
||||
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)
|
||||
{
|
||||
if (!process->inited) {
|
||||
@@ -254,7 +261,7 @@ index ef4babd..d7e798e 100644
|
||||
if (!khrn_pointer_map_init(&process->contexts, 64))
|
||||
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
|
||||
|
||||
@@ -268,10 +275,10 @@ index ef4babd..d7e798e 100644
|
||||
process->inited = true;
|
||||
}
|
||||
|
||||
diff --git a/interface/khronos/common/khrn_client.h b/interface/khronos/common/khrn_client.h
|
||||
index 804039b..615f7b4 100644
|
||||
--- a/interface/khronos/common/khrn_client.h
|
||||
+++ b/interface/khronos/common/khrn_client.h
|
||||
Index: git/interface/khronos/common/khrn_client.h
|
||||
===================================================================
|
||||
--- git.orig/interface/khronos/common/khrn_client.h
|
||||
+++ git/interface/khronos/common/khrn_client.h
|
||||
@@ -310,6 +310,16 @@ struct CLIENT_PROCESS_STATE {
|
||||
#ifdef RPC_LIBRARY
|
||||
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);
|
||||
diff --git a/interface/khronos/common/khrn_client_mangle.h b/interface/khronos/common/khrn_client_mangle.h
|
||||
index b3c04f4..b7b21c5 100644
|
||||
--- a/interface/khronos/common/khrn_client_mangle.h
|
||||
+++ b/interface/khronos/common/khrn_client_mangle.h
|
||||
@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
Index: git/interface/khronos/common/khrn_client_mangle.h
|
||||
===================================================================
|
||||
--- git.orig/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 POSSIBI
|
||||
#define eglReleaseGlobalImageBRCM mangled_eglReleaseGlobalImageBRCM
|
||||
#define eglInitGlobalImageBRCM mangled_eglInitGlobalImageBRCM
|
||||
#define eglTermGlobalImageBRCM mangled_eglTermGlobalImageBRCM
|
||||
@@ -303,11 +310,11 @@ index b3c04f4..b7b21c5 100644
|
||||
|
||||
/* 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 1c9da3a..715c67e 100644
|
||||
--- a/interface/khronos/common/khrn_client_platform.h
|
||||
+++ b/interface/khronos/common/khrn_client_platform.h
|
||||
@@ -48,6 +48,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
Index: git/interface/khronos/common/khrn_client_platform.h
|
||||
===================================================================
|
||||
--- git.orig/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 POSSIBI
|
||||
#include "interface/khronos/common/vcos/khrn_client_platform_filler_vcos.h"
|
||||
#endif
|
||||
|
||||
@@ -327,11 +334,11 @@ index 1c9da3a..715c67e 100644
|
||||
+#endif
|
||||
+
|
||||
#endif // KHRN_CLIENT_PLATFORM_H
|
||||
diff --git a/interface/khronos/common/khrn_client_unmangle.h b/interface/khronos/common/khrn_client_unmangle.h
|
||||
index 4f3ce49..84f6ec0 100644
|
||||
--- a/interface/khronos/common/khrn_client_unmangle.h
|
||||
+++ b/interface/khronos/common/khrn_client_unmangle.h
|
||||
@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
Index: git/interface/khronos/common/khrn_client_unmangle.h
|
||||
===================================================================
|
||||
--- git.orig/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 POSSIBI
|
||||
#undef eglReleaseGlobalImageBRCM
|
||||
#undef eglInitGlobalImageBRCM
|
||||
#undef eglTermGlobalImageBRCM
|
||||
@@ -341,11 +348,11 @@ index 4f3ce49..84f6ec0 100644
|
||||
|
||||
/* 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 710d20f..50d60a6 100644
|
||||
--- a/interface/khronos/common/linux/khrn_client_platform_linux.c
|
||||
+++ b/interface/khronos/common/linux/khrn_client_platform_linux.c
|
||||
@@ -37,6 +37,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
|
||||
===================================================================
|
||||
--- git.orig/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 POSSIBI
|
||||
#include "X11/Xlib.h"
|
||||
#endif
|
||||
|
||||
@@ -357,7 +364,7 @@ index 710d20f..50d60a6 100644
|
||||
extern VCOS_LOG_CAT_T khrn_client_log;
|
||||
|
||||
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;
|
||||
}
|
||||
#else
|
||||
@@ -385,18 +392,19 @@ index 710d20f..50d60a6 100644
|
||||
+#endif
|
||||
+ return EGL_NO_DISPLAY;
|
||||
+ }
|
||||
}
|
||||
+}
|
||||
+
|
||||
+#ifdef BUILD_WAYLAND
|
||||
+struct wl_display *khrn_platform_get_wl_display()
|
||||
+{
|
||||
+ return hacky_display;
|
||||
+}
|
||||
+#endif
|
||||
}
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#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,
|
||||
uint32_t *width, uint32_t *height, uint32_t *swapchain_count)
|
||||
{
|
||||
@@ -427,8 +435,8 @@ index 710d20f..50d60a6 100644
|
||||
+#ifdef BUILD_WAYLAND
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
|
||||
+}
|
||||
+
|
||||
+#ifdef BUILD_WAYLAND
|
||||
+static DISPMANX_ELEMENT_HANDLE_T create_dummy_element()
|
||||
+{
|
||||
@@ -459,9 +467,9 @@ index 710d20f..50d60a6 100644
|
||||
+ vc_dispmanx_display_close(display);
|
||||
+
|
||||
+ return element;
|
||||
+}
|
||||
}
|
||||
+#endif
|
||||
+
|
||||
|
||||
uint32_t platform_get_handle(EGLDisplay dpy, EGLNativeWindowType win)
|
||||
{
|
||||
- EGL_DISPMANX_WINDOW_T *dwin = check_default(win);
|
||||
@@ -490,11 +498,10 @@ index 710d20f..50d60a6 100644
|
||||
}
|
||||
|
||||
#endif
|
||||
diff --git a/interface/khronos/common/linux/khrn_wayland.c b/interface/khronos/common/linux/khrn_wayland.c
|
||||
new file mode 100644
|
||||
index 0000000..0e1b9e7
|
||||
Index: git/interface/khronos/common/linux/khrn_wayland.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ b/interface/khronos/common/linux/khrn_wayland.c
|
||||
+++ git/interface/khronos/common/linux/khrn_wayland.c
|
||||
@@ -0,0 +1,215 @@
|
||||
+/*
|
||||
+Copyright (c) 2013, Raspberry Pi Foundation
|
||||
@@ -711,74 +718,72 @@ index 0000000..0e1b9e7
|
||||
+
|
||||
+ return wl_dispmanx_client_buffer;
|
||||
+}
|
||||
diff --git a/interface/vmcs_host/vc_vchi_dispmanx.h b/interface/khronos/common/linux/khrn_wayland.h
|
||||
similarity index 56%
|
||||
copy from interface/vmcs_host/vc_vchi_dispmanx.h
|
||||
copy to interface/khronos/common/linux/khrn_wayland.h
|
||||
index b723b76..b9bf08c 100644
|
||||
--- a/interface/vmcs_host/vc_vchi_dispmanx.h
|
||||
+++ b/interface/khronos/common/linux/khrn_wayland.h
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
-Copyright (c) 2012, Broadcom Europe Ltd
|
||||
Index: git/interface/vmcs_host/vc_vchi_dispmanx.h
|
||||
===================================================================
|
||||
--- git.orig/interface/vmcs_host/vc_vchi_dispmanx.h
|
||||
+++ git/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
|
||||
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
|
||||
All rights reserved.
|
||||
|
||||
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
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
-#ifndef VC_VCHI_DISPMANX_H
|
||||
-#define VC_VCHI_DISPMANX_H
|
||||
+All rights reserved.
|
||||
+
|
||||
+Redistribution and use in source and binary forms, with or without
|
||||
+modification, are permitted provided that the following conditions are met:
|
||||
+ * 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
|
||||
+ notice, this list of conditions and the following disclaimer in the
|
||||
+ 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/peer/vc_vchi_dispmanx_common.h"
|
||||
+
|
||||
+int init_process_wayland(CLIENT_PROCESS_STATE_T *process);
|
||||
+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);
|
||||
diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c
|
||||
index b8bb374..03fe67b 100644
|
||||
--- a/interface/khronos/egl/egl_client.c
|
||||
+++ b/interface/khronos/egl/egl_client.c
|
||||
Index: git/interface/khronos/egl/egl_client.c
|
||||
===================================================================
|
||||
--- git.orig/interface/khronos/egl/egl_client.c
|
||||
+++ git/interface/khronos/egl/egl_client.c
|
||||
@@ -153,6 +153,10 @@ by an attribute value"
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -790,7 +795,7 @@ index b8bb374..03fe67b 100644
|
||||
|
||||
#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_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)
|
||||
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 "
|
||||
#endif
|
||||
#endif
|
||||
@@ -818,7 +823,7 @@ index b8bb374..03fe67b 100644
|
||||
;
|
||||
break;
|
||||
case EGL_VENDOR:
|
||||
@@ -655,8 +651,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig c
|
||||
@@ -655,8 +651,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateW
|
||||
false,
|
||||
EGL_NO_TEXTURE,
|
||||
EGL_NO_TEXTURE,
|
||||
@@ -828,7 +833,7 @@ index b8bb374..03fe67b 100644
|
||||
|
||||
if (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,
|
||||
texture_format,
|
||||
texture_target,
|
||||
@@ -837,7 +842,7 @@ index b8bb374..03fe67b 100644
|
||||
|
||||
if (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,
|
||||
EGL_NO_TEXTURE,
|
||||
EGL_NO_TEXTURE,
|
||||
@@ -846,7 +851,7 @@ index b8bb374..03fe67b 100644
|
||||
|
||||
if (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_PROCESS_STATE_T *process;
|
||||
EGLBoolean result;
|
||||
@@ -856,7 +861,7 @@ index b8bb374..03fe67b 100644
|
||||
|
||||
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");
|
||||
|
||||
@@ -927,11 +932,11 @@ index b8bb374..03fe67b 100644
|
||||
RPC_CALL6(eglIntSwapBuffers_impl,
|
||||
thread,
|
||||
EGLINTSWAPBUFFERS_ID,
|
||||
diff --git a/interface/khronos/egl/egl_client_get_proc.c b/interface/khronos/egl/egl_client_get_proc.c
|
||||
index 4cfa9ff..6a715af 100644
|
||||
--- a/interface/khronos/egl/egl_client_get_proc.c
|
||||
+++ b/interface/khronos/egl/egl_client_get_proc.c
|
||||
@@ -254,6 +254,17 @@ EGLAPI void EGLAPIENTRY (* eglGetProcAddress(const char *procname))(void)
|
||||
Index: git/interface/khronos/egl/egl_client_get_proc.c
|
||||
===================================================================
|
||||
--- git.orig/interface/khronos/egl/egl_client_get_proc.c
|
||||
+++ git/interface/khronos/egl/egl_client_get_proc.c
|
||||
@@ -254,6 +254,17 @@ EGLAPI void EGLAPIENTRY (* eglGetProcAdd
|
||||
return (void(*)(void))eglQueryGlobalImageBRCM;
|
||||
#endif
|
||||
|
||||
@@ -949,11 +954,11 @@ index 4cfa9ff..6a715af 100644
|
||||
return (void(*)(void)) NULL;
|
||||
}
|
||||
|
||||
diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
|
||||
index 128325e..42350bf 100644
|
||||
--- a/interface/khronos/egl/egl_client_surface.c
|
||||
+++ b/interface/khronos/egl/egl_client_surface.c
|
||||
@@ -46,6 +46,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
Index: git/interface/khronos/egl/egl_client_surface.c
|
||||
===================================================================
|
||||
--- git.orig/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 POSSIBI
|
||||
#include "interface/khronos/egl/egl_int_impl.h"
|
||||
#endif
|
||||
|
||||
@@ -1027,7 +1032,7 @@ index 128325e..42350bf 100644
|
||||
RPC_CALL15_OUT_CTRL(eglIntCreateSurface_impl,
|
||||
thread,
|
||||
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 ) {
|
||||
vcos_log_trace("egl_surface_free: calling platform_destroy_winhandle...");
|
||||
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
|
||||
* 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 b5bf70a..e328b77 100644
|
||||
--- 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
|
||||
===================================================================
|
||||
--- git.orig/interface/khronos/egl/egl_client_surface.h
|
||||
+++ git/interface/khronos/egl/egl_client_surface.h
|
||||
@@ -288,6 +288,41 @@ typedef struct {
|
||||
type == PIXMAP
|
||||
*/
|
||||
@@ -1092,7 +1097,7 @@ index b5bf70a..e328b77 100644
|
||||
} EGL_SURFACE_T;
|
||||
|
||||
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_target,
|
||||
EGLNativePixmapType pixmap,
|
||||
@@ -1102,10 +1107,10 @@ index b5bf70a..e328b77 100644
|
||||
extern EGL_SURFACE_T *egl_surface_from_vg_image(
|
||||
VGImage vg_handle,
|
||||
EGLSurface name,
|
||||
diff --git a/interface/khronos/egl/egl_int_impl.h b/interface/khronos/egl/egl_int_impl.h
|
||||
index 51b3580..6863a3b 100644
|
||||
--- 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
|
||||
===================================================================
|
||||
--- git.orig/interface/khronos/egl/egl_int_impl.h
|
||||
+++ git/interface/khronos/egl/egl_int_impl.h
|
||||
@@ -57,7 +57,7 @@ FN(int, eglIntCreateSurface_impl, (
|
||||
uint32_t sem,
|
||||
uint32_t type,
|
||||
@@ -1115,11 +1120,10 @@ index 51b3580..6863a3b 100644
|
||||
|
||||
FN(int, eglIntCreatePbufferFromVGImage_impl, (
|
||||
VGImage vg_handle,
|
||||
diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c
|
||||
new file mode 100644
|
||||
index 0000000..5730743
|
||||
Index: git/interface/khronos/ext/egl_wayland.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ b/interface/khronos/ext/egl_wayland.c
|
||||
+++ git/interface/khronos/ext/egl_wayland.c
|
||||
@@ -0,0 +1,246 @@
|
||||
+/*
|
||||
+Copyright (c) 2013, Raspberry Pi Foundation
|
||||
@@ -1367,11 +1371,11 @@ index 0000000..5730743
|
||||
+
|
||||
+ return EGL_FALSE;
|
||||
+}
|
||||
diff --git a/interface/khronos/include/EGL/eglext.h b/interface/khronos/include/EGL/eglext.h
|
||||
index 89a3369..d7e5ba7 100755
|
||||
--- a/interface/khronos/include/EGL/eglext.h
|
||||
+++ b/interface/khronos/include/EGL/eglext.h
|
||||
@@ -191,6 +191,29 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EG
|
||||
Index: git/interface/khronos/include/EGL/eglext.h
|
||||
===================================================================
|
||||
--- git.orig/interface/khronos/include/EGL/eglext.h
|
||||
+++ git/interface/khronos/include/EGL/eglext.h
|
||||
@@ -191,6 +191,29 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLG
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1401,11 +1405,10 @@ index 89a3369..d7e5ba7 100755
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
diff --git a/interface/khronos/wayland-egl/wayland-egl-priv.h b/interface/khronos/wayland-egl/wayland-egl-priv.h
|
||||
new file mode 100644
|
||||
index 0000000..8e38d36
|
||||
Index: git/interface/khronos/wayland-egl/wayland-egl-priv.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ b/interface/khronos/wayland-egl/wayland-egl-priv.h
|
||||
+++ git/interface/khronos/wayland-egl/wayland-egl-priv.h
|
||||
@@ -0,0 +1,53 @@
|
||||
+/* Copied from Mesa */
|
||||
+
|
||||
@@ -1460,11 +1463,10 @@ index 0000000..8e38d36
|
||||
+#endif
|
||||
+
|
||||
+#endif
|
||||
diff --git a/interface/khronos/wayland-egl/wayland-egl.c b/interface/khronos/wayland-egl/wayland-egl.c
|
||||
new file mode 100644
|
||||
index 0000000..b8f050b
|
||||
Index: git/interface/khronos/wayland-egl/wayland-egl.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ b/interface/khronos/wayland-egl/wayland-egl.c
|
||||
+++ git/interface/khronos/wayland-egl/wayland-egl.c
|
||||
@@ -0,0 +1,59 @@
|
||||
+/* Copied from Mesa */
|
||||
+
|
||||
@@ -1525,11 +1527,10 @@ index 0000000..b8f050b
|
||||
+ if (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
|
||||
new file mode 100644
|
||||
index 0000000..8bafc15
|
||||
Index: git/interface/khronos/wayland-egl/wayland-egl.pc.in
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ b/interface/khronos/wayland-egl/wayland-egl.pc.in
|
||||
+++ git/interface/khronos/wayland-egl/wayland-egl.pc.in
|
||||
@@ -0,0 +1,10 @@
|
||||
+prefix=@CMAKE_INSTALL_PREFIX@
|
||||
+exec_prefix=${prefix}
|
||||
@@ -1541,10 +1542,10 @@ index 0000000..8bafc15
|
||||
+Version: @PROJECT_APIVER@
|
||||
+Libs: -L${libdir} -lwayland-egl
|
||||
+Cflags: -I${includedir}
|
||||
diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt
|
||||
index fde18da..6718215 100755
|
||||
--- a/interface/vmcs_host/CMakeLists.txt
|
||||
+++ b/interface/vmcs_host/CMakeLists.txt
|
||||
Index: git/interface/vmcs_host/CMakeLists.txt
|
||||
===================================================================
|
||||
--- git.orig/interface/vmcs_host/CMakeLists.txt
|
||||
+++ git/interface/vmcs_host/CMakeLists.txt
|
||||
@@ -9,13 +9,24 @@ add_definitions(-fno-strict-aliasing)
|
||||
|
||||
include_directories(${VMCS_TARGET}/vcfiled)
|
||||
@@ -1575,11 +1576,11 @@ index fde18da..6718215 100755
|
||||
#add_library(bufman vc_vchi_bufman.c )
|
||||
|
||||
# OpenMAX/IL component service
|
||||
diff --git a/interface/vmcs_host/vc_dispmanx.h b/interface/vmcs_host/vc_dispmanx.h
|
||||
index 37fdae1..fe3619a 100755
|
||||
--- a/interface/vmcs_host/vc_dispmanx.h
|
||||
+++ b/interface/vmcs_host/vc_dispmanx.h
|
||||
@@ -39,6 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
Index: git/interface/vmcs_host/vc_dispmanx.h
|
||||
===================================================================
|
||||
--- git.orig/interface/vmcs_host/vc_dispmanx.h
|
||||
+++ git/interface/vmcs_host/vc_dispmanx.h
|
||||
@@ -39,6 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -1591,7 +1592,7 @@ index 37fdae1..fe3619a 100755
|
||||
// Same function as above, to aid migration of code.
|
||||
VCHPRE_ int VCHPOST_ vc_dispman_init( void );
|
||||
// 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
|
||||
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
|
||||
}
|
||||
#endif
|
||||
diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c
|
||||
index 7a6cdcd..eab146e 100755
|
||||
--- a/interface/vmcs_host/vc_vchi_dispmanx.c
|
||||
+++ b/interface/vmcs_host/vc_vchi_dispmanx.c
|
||||
@@ -1319,3 +1319,45 @@ static void *dispmanx_notify_func( void *arg ) {
|
||||
Index: git/interface/vmcs_host/vc_vchi_dispmanx.c
|
||||
===================================================================
|
||||
--- git.orig/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
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -1653,35 +1654,10 @@ index 7a6cdcd..eab146e 100755
|
||||
+ buffer->in_use = in_use;
|
||||
+}
|
||||
+#endif
|
||||
diff --git a/interface/vmcs_host/vc_vchi_dispmanx.h b/interface/vmcs_host/vc_vchi_dispmanx.h
|
||||
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
|
||||
Index: git/interface/wayland/dispmanx.xml
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ b/interface/wayland/dispmanx.xml
|
||||
+++ git/interface/wayland/dispmanx.xml
|
||||
@@ -0,0 +1,123 @@
|
||||
+<?xml version="1.0" encoding="UTF-8"?>
|
||||
+<protocol name="dispmanx">
|
||||
@@ -1806,11 +1782,10 @@ index 0000000..c18626d
|
||||
+ </interface>
|
||||
+
|
||||
+</protocol>
|
||||
diff --git a/makefiles/cmake/Wayland.cmake b/makefiles/cmake/Wayland.cmake
|
||||
new file mode 100644
|
||||
index 0000000..ad90d30
|
||||
Index: git/makefiles/cmake/Wayland.cmake
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ b/makefiles/cmake/Wayland.cmake
|
||||
+++ git/makefiles/cmake/Wayland.cmake
|
||||
@@ -0,0 +1,72 @@
|
||||
+#=============================================================================
|
||||
+# Copyright (C) 2012-2013 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
||||
@@ -1884,6 +1859,3 @@ index 0000000..ad90d30
|
||||
+ list(APPEND ${_sources} "${_server_header}")
|
||||
+ set(${_sources} ${${_sources}} PARENT_SCOPE)
|
||||
+endfunction()
|
||||
--
|
||||
2.12.2
|
||||
|
||||
|
||||
@@ -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>
|
||||
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 +
|
||||
@@ -862,5 +862,5 @@ index 8225dd5..0be6ce7 100755
|
||||
make -C libs/ilclient
|
||||
make -C libs/vgfont
|
||||
@@ -31,4 +32,4 @@ make -C hello_videocube
|
||||
make -C hello_teapot
|
||||
make -C hello_teapot
|
||||
make -C hello_fft
|
||||
|
||||
@@ -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>
|
||||
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
|
||||
depend on module which should add the required include paths
|
||||
@@ -24,5 +24,5 @@ index 8bafc15..fd259c9 100644
|
||||
Libs: -L${libdir} -lwayland-egl
|
||||
Cflags: -I${includedir}
|
||||
--
|
||||
2.12.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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>
|
||||
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
|
||||
|
||||
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(-)
|
||||
|
||||
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
|
||||
+++ b/interface/vmcs_host/vc_vchi_dispmanx.c
|
||||
@@ -1306,7 +1306,6 @@ static void *dispmanx_notify_func( void *arg ) {
|
||||
@@ -25,5 +25,5 @@ index 45f4cff..5d0368c 100755
|
||||
}
|
||||
} else {
|
||||
--
|
||||
2.12.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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>
|
||||
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
|
||||
|
||||
@@ -29,5 +29,5 @@ index 42350bf..1f923d9 100644
|
||||
#endif
|
||||
}
|
||||
--
|
||||
2.12.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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>
|
||||
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
|
||||
|
||||
@@ -30,5 +30,5 @@ index 1f923d9..9a9582c 100644
|
||||
}
|
||||
#endif
|
||||
--
|
||||
2.12.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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>
|
||||
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
|
||||
|
||||
@@ -23,5 +23,5 @@ index f9b7287..b04ffef 100644
|
||||
}
|
||||
#endif
|
||||
--
|
||||
2.12.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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>
|
||||
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
|
||||
|
||||
@@ -74,5 +74,5 @@ index f0bae30..8c44c58 100644
|
||||
struct wl_resource *resource;
|
||||
struct wl_dispmanx *dispmanx;
|
||||
--
|
||||
2.12.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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>
|
||||
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.
|
||||
|
||||
@@ -56,5 +56,5 @@ index 03fe67b..13a110c 100644
|
||||
#ifdef ANDROID
|
||||
CLIENT_UNLOCK();
|
||||
--
|
||||
2.12.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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>
|
||||
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
|
||||
|
||||
@@ -24,5 +24,5 @@ index c415176..d0cca1a 100755
|
||||
#add_library(bufman vc_vchi_bufman.c )
|
||||
|
||||
--
|
||||
2.12.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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>
|
||||
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
|
||||
|
||||
@@ -88,5 +88,5 @@ index c18626d..11ed1ef 100644
|
||||
|
||||
</protocol>
|
||||
--
|
||||
2.12.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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>
|
||||
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.
|
||||
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
|
||||
--- a/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;
|
||||
|
||||
/*
|
||||
+ /*
|
||||
+ middle_wl_buffer
|
||||
+
|
||||
+ Validity:
|
||||
@@ -81,10 +82,9 @@ index e328b77..58a3184 100644
|
||||
+ */
|
||||
+ struct wl_dispmanx_client_buffer *middle_wl_buffer;
|
||||
+
|
||||
+ /*
|
||||
/*
|
||||
back_wl_buffer
|
||||
|
||||
Validity:
|
||||
--
|
||||
2.12.0
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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>
|
||||
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
|
||||
Upstream-Status: Pending
|
||||
@@ -26,5 +26,5 @@ index 4eacf7f..283e3e1 100644
|
||||
#ifndef GL_EXT_texture_type_2_10_10_10_REV
|
||||
#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
|
||||
--
|
||||
1.9.1
|
||||
2.16.1
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,18 +5,20 @@ vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG."
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://LICENCE;md5=0448d6488ef8cc380632b1569ee6d196"
|
||||
|
||||
PR = "r5"
|
||||
|
||||
PROVIDES = "virtual/libgles2 \
|
||||
virtual/egl"
|
||||
|
||||
RPROVIDES_${PN} += "libgles2 egl"
|
||||
RPROVIDES_${PN} += "libgles2 egl libegl"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
|
||||
SRCBRANCH = "master"
|
||||
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 = "\
|
||||
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://0013-Implement-triple-buffering-for-wayland.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"
|
||||
|
||||
|
||||
@@ -4,7 +4,9 @@ LICENSE = "Proprietary"
|
||||
LIC_FILES_CHKSUM = "file://LICENCE;md5=86e53f5f5909ee66900418028de11780"
|
||||
|
||||
PROVIDES = "virtual/libgles2 virtual/egl"
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
include recipes-bsp/common/firmware.inc
|
||||
|
||||
|
||||
@@ -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)}"
|
||||
|
||||
EXTRA_OECONF += "--disable-xwayland-test \
|
||||
--disable-simple-egl-clients \
|
||||
EXTRA_OECONF_append_rpi = " \
|
||||
--disable-xwayland-test \
|
||||
--disable-simple-egl-clients \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' \
|
||||
--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)}"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#
|
||||
Section "Device"
|
||||
Identifier "modeset"
|
||||
Driver "modesetting"
|
||||
Option "AccelMethod" "None"
|
||||
EndSection
|
||||
@@ -3,15 +3,19 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
SRC_URI_append_rpi = " \
|
||||
file://xorg.conf.d/98-pitft.conf \
|
||||
file://xorg.conf.d/99-calibration.conf \
|
||||
file://xorg.conf.d/10-noglamor.conf \
|
||||
"
|
||||
|
||||
do_install_append_rpi () {
|
||||
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
|
||||
VC4="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
|
||||
if [ "${PITFT}" = "1" ]; then
|
||||
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/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
|
||||
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/*"
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
do_install_append() {
|
||||
install -D -m 0644 ${WORKDIR}/brcmfmac43430-sdio.txt ${D}/lib/firmware/brcm/brcmfmac43430-sdio.txt
|
||||
}
|
||||
|
||||
FILES_${PN}-bcm43430 += " \
|
||||
/lib/firmware/brcm/brcmfmac43430-sdio.txt \
|
||||
SRC_URI_append_rpi = " \
|
||||
git://github.com/RPi-Distro/firmware-nonfree;destsuffix=raspbian-nf;name=raspbian-nf \
|
||||
git://github.com/RPi-Distro/bluez-firmware;destsuffix=raspbian-bluez;name=raspbian-bluez \
|
||||
"
|
||||
|
||||
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"
|
||||
|
||||
@@ -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
|
||||
|
||||
1
recipes-kernel/linux/files/rpi-kernel-misc.cfg
Normal file
1
recipes-kernel/linux/files/rpi-kernel-misc.cfg
Normal file
@@ -0,0 +1 @@
|
||||
CONFIG_SENSORS_RPI_POE_FAN=m
|
||||
@@ -7,20 +7,16 @@ python __anonymous() {
|
||||
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/linux-raspberrypi:"
|
||||
|
||||
LINUX_VERSION ?= "4.11"
|
||||
LINUX_RPI_DEV_BRANCH ?= "rpi-4.11.y"
|
||||
LINUX_VERSION ?= "4.16"
|
||||
LINUX_RPI_DEV_BRANCH ?= "rpi-4.16.y"
|
||||
|
||||
SRCREV = "${AUTOREV}"
|
||||
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=${LINUX_RPI_DEV_BRANCH} \
|
||||
file://0001-build-arm64-Add-rules-for-.dtbo-files-for-dts-overla.patch \
|
||||
"
|
||||
SRC_URI = " \
|
||||
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
|
||||
|
||||
# A LOADADDR is needed when building a uImage format kernel. This value is not
|
||||
# set by default in rpi-4.8.y and later branches so we need to provide it
|
||||
# manually. This value unused if KERNEL_IMAGETYPE is not uImage.
|
||||
KERNEL_EXTRA_ARGS += "LOADADDR=0x00008000"
|
||||
|
||||
# Disable version check so that we don't have to edit this recipe every time
|
||||
# upstream bumps the version
|
||||
KERNEL_VERSION_SANITY_SKIP = "1"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,49 +1,130 @@
|
||||
require linux-rpi.inc
|
||||
inherit linux-raspberrypi-base
|
||||
|
||||
DESCRIPTION = "Linux Kernel for Raspberry Pi"
|
||||
SECTION = "kernel"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
|
||||
|
||||
SRC_URI += " \
|
||||
file://defconfig \
|
||||
"
|
||||
|
||||
COMPATIBLE_MACHINE = "raspberrypi"
|
||||
COMPATIBLE_MACHINE = "^rpi$"
|
||||
|
||||
PE = "1"
|
||||
PV = "${LINUX_VERSION}+git${SRCPV}"
|
||||
|
||||
# NOTE: For now we pull in the default config from the RPi kernel GIT tree.
|
||||
KERNEL_DEFCONFIG_raspberrypi ?= "bcmrpi_defconfig"
|
||||
KERNEL_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig"
|
||||
KERNEL_DEFCONFIG_raspberrypi3-64 ?= "bcmrpi3_defconfig"
|
||||
inherit kernel siteinfo
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
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 ?= "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
|
||||
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)}"
|
||||
|
||||
# Set programmatically some variables during recipe parsing
|
||||
# See http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html#anonymous-python-functions
|
||||
python __anonymous () {
|
||||
kerneltype = d.getVar('KERNEL_IMAGETYPE')
|
||||
kerneldt = get_dts(d, d.getVar('LINUX_VERSION'))
|
||||
d.setVar("KERNEL_DEVICETREE", kerneldt)
|
||||
# A LOADADDR is needed when building a uImage format kernel. This value is not
|
||||
# set by default in rpi-4.8.y and later branches so we need to provide it
|
||||
# manually. This value unused if KERNEL_IMAGETYPE is not uImage.
|
||||
KERNEL_EXTRA_ARGS += "LOADADDR=0x00008000"
|
||||
|
||||
# Set a variable in .configure
|
||||
# $1 - Configure variable to be set
|
||||
# $2 - value [n/y/value]
|
||||
kernel_configure_variable() {
|
||||
# Remove the config
|
||||
CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;"
|
||||
if test "$2" = "n"
|
||||
then
|
||||
echo "# CONFIG_$1 is not set" >> ${B}/.config
|
||||
else
|
||||
echo "CONFIG_$1=$2" >> ${B}/.config
|
||||
fi
|
||||
}
|
||||
|
||||
do_kernel_configme_prepend() {
|
||||
install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE} / ${KERNEL_DEFCONFIG} available."
|
||||
config_setup() {
|
||||
# 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() {
|
||||
install -d ${D}/lib/firmware
|
||||
do_configure_prepend() {
|
||||
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() {
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
# Dummy file to get through do_kernel_configme.
|
||||
9
recipes-kernel/linux/linux-raspberrypi_4.14.bb
Normal file
9
recipes-kernel/linux/linux-raspberrypi_4.14.bb
Normal 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
|
||||
@@ -1,13 +1,11 @@
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
|
||||
|
||||
LINUX_VERSION ?= "4.9.27"
|
||||
LINUX_VERSION ?= "4.9.80"
|
||||
|
||||
SRCREV = "9a5f215eda12bad29b35040dff00d0346fe517e2"
|
||||
SRC_URI = "git://github.com/raspberrypi/linux.git;branch=rpi-4.9.y"
|
||||
SRCREV = "7f9c648dad6473469b4133898fa6bb8d818ecff9"
|
||||
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
|
||||
|
||||
# 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"
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
@@ -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);
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
Date: Mon, 25 May 2015 14:53:35 +0200
|
||||
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_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
|
||||
index d12ee8f..fb0100a 100644
|
||||
--- a/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;
|
||||
OMX_ERRORTYPE err;
|
||||
|
||||
@@ -43,6 +44,3 @@ index cd24944..57a61dd 100644
|
||||
#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
|
||||
|
||||
@@ -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
|
||||
+++ b/config/bellagio/gstomx.conf
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -6,18 +17,18 @@
|
||||
-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
|
||||
rank=257
|
||||
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]
|
||||
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
|
||||
rank=257
|
||||
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]
|
||||
type-name=GstOMXMPEG4VideoEnc
|
||||
@@ -26,7 +37,7 @@
|
||||
component-name=OMX.st.video_encoder.mpeg4
|
||||
rank=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]
|
||||
type-name=GstOMXAACEnc
|
||||
@@ -35,6 +46,8 @@
|
||||
component-name=OMX.st.audio_encoder.aac
|
||||
rank=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
|
||||
+++ b/config/rpi/gstomx.conf
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -45,7 +58,7 @@
|
||||
component-name=OMX.broadcom.video_decode
|
||||
rank=257
|
||||
in-port-index=130
|
||||
@@ -9,7 +9,7 @@
|
||||
@@ -9,7 +9,7 @@ hacks=no-component-role
|
||||
|
||||
[omxmpeg4videodec]
|
||||
type-name=GstOMXMPEG4VideoDec
|
||||
@@ -54,7 +67,7 @@
|
||||
component-name=OMX.broadcom.video_decode
|
||||
rank=257
|
||||
in-port-index=130
|
||||
@@ -18,7 +18,7 @@
|
||||
@@ -18,7 +18,7 @@ hacks=no-component-role
|
||||
|
||||
[omxh263dec]
|
||||
type-name=GstOMXH263Dec
|
||||
@@ -63,7 +76,7 @@
|
||||
component-name=OMX.broadcom.video_decode
|
||||
rank=257
|
||||
in-port-index=130
|
||||
@@ -27,7 +27,7 @@
|
||||
@@ -27,7 +27,7 @@ hacks=no-component-role
|
||||
|
||||
[omxh264dec]
|
||||
type-name=GstOMXH264Dec
|
||||
@@ -72,7 +85,7 @@
|
||||
component-name=OMX.broadcom.video_decode
|
||||
rank=257
|
||||
in-port-index=130
|
||||
@@ -36,7 +36,7 @@
|
||||
@@ -36,7 +36,7 @@ hacks=no-component-role;signals-premature-eos
|
||||
|
||||
[omxtheoradec]
|
||||
type-name=GstOMXTheoraDec
|
||||
@@ -81,7 +94,7 @@
|
||||
component-name=OMX.broadcom.video_decode
|
||||
rank=257
|
||||
in-port-index=130
|
||||
@@ -45,7 +45,7 @@
|
||||
@@ -45,7 +45,7 @@ hacks=no-component-role
|
||||
|
||||
[omxvp8dec]
|
||||
type-name=GstOMXVP8Dec
|
||||
@@ -90,7 +103,7 @@
|
||||
component-name=OMX.broadcom.video_decode
|
||||
rank=257
|
||||
in-port-index=130
|
||||
@@ -54,7 +54,7 @@
|
||||
@@ -54,7 +54,7 @@ hacks=no-component-role
|
||||
|
||||
[omxmjpegdec]
|
||||
type-name=GstOMXMJPEGDec
|
||||
@@ -99,16 +112,16 @@
|
||||
component-name=OMX.broadcom.video_decode
|
||||
rank=257
|
||||
in-port-index=130
|
||||
@@ -63,7 +63,7 @@
|
||||
@@ -63,7 +63,7 @@ hacks=no-component-role
|
||||
|
||||
[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
|
||||
rank=257
|
||||
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]
|
||||
type-name=GstOMXH264Enc
|
||||
@@ -117,21 +130,21 @@
|
||||
component-name=OMX.broadcom.video_encode
|
||||
rank=257
|
||||
in-port-index=200
|
||||
@@ -82,7 +82,7 @@
|
||||
@@ -82,7 +82,7 @@ hacks=no-component-role;no-component-reconfigure
|
||||
|
||||
[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
|
||||
rank=257
|
||||
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]
|
||||
type-name=GstOMXHdmiAudioSink
|
||||
-core-name=/opt/vc/lib/libopenmaxil.so
|
||||
+core-name=/usr/lib/libopenmaxil.so
|
||||
component-name=OMX.broadcom.audio_render
|
||||
rank=257
|
||||
rank=258
|
||||
in-port-index=100
|
||||
@@ -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
|
||||
index 69696c4..c382019 100644
|
||||
index 0237f3c..45732c3 100644
|
||||
--- a/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;
|
||||
gst_omx_component_handle_messages (comp);
|
||||
while (signalled && last_error == OMX_ErrorNone && !port->flushed
|
||||
@@ -13,4 +21,3 @@ index 69696c4..c382019 100644
|
||||
signalled = gst_omx_component_wait_message (comp, timeout);
|
||||
if (signalled)
|
||||
gst_omx_component_handle_messages (comp);
|
||||
|
||||
@@ -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
|
||||
index 0d4e7a1..a0d9c74 100644
|
||||
index fb0100a..bad6335 100644
|
||||
--- a/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_mutex_unlock (&self->drain_lock);
|
||||
|
||||
@@ -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>
|
||||
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(+)
|
||||
|
||||
Index: gst-omx-1.10.2/omx/gstomx.c
|
||||
===================================================================
|
||||
--- gst-omx-1.10.2.orig/omx/gstomx.c
|
||||
+++ gst-omx-1.10.2/omx/gstomx.c
|
||||
@@ -737,6 +737,13 @@ gst_omx_component_new (GstObject * paren
|
||||
---
|
||||
omx/gstomx.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/omx/gstomx.c b/omx/gstomx.c
|
||||
index 45732c3..784a5d7 100644
|
||||
--- a/omx/gstomx.c
|
||||
+++ b/omx/gstomx.c
|
||||
@@ -737,6 +737,13 @@ gst_omx_component_new (GstObject * parent, const gchar * core_name,
|
||||
|
||||
g_mutex_lock (&comp->lock);
|
||||
gst_omx_component_handle_messages (comp);
|
||||
@@ -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>
|
||||
Date: Fri, 4 Dec 2015 18:39:59 +0100
|
||||
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(-)
|
||||
|
||||
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
|
||||
index 2368f34..da35e0d 100644
|
||||
index bad6335..c63b972 100644
|
||||
--- a/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)
|
||||
return FALSE;
|
||||
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)
|
||||
return FALSE;
|
||||
if (gst_omx_video_dec_deallocate_output_buffers (self) != OMX_ErrorNone)
|
||||
--
|
||||
2.1.4
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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);
|
||||
@@ -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
|
||||
|
||||
@@ -10,4 +10,4 @@ SRC_URI_append_rpi = " \
|
||||
file://0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch \
|
||||
"
|
||||
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/gstreamer1.0-omx-1.10:"
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/gstreamer1.0-omx-1.12:"
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -7,17 +7,30 @@ SECTION = "console/utils"
|
||||
LICENSE = "GPLv2"
|
||||
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"
|
||||
|
||||
SRCREV = "061425a5eabf6e9ee43229911c073a863d144038"
|
||||
SRCREV_default = "b8ff59dccd9307f10dad71bec2525a95bd6c603b"
|
||||
|
||||
# omxplayer builds its own copy of ffmpeg from source instead of using the
|
||||
# system's ffmpeg library. This isn't ideal but it's ok for now. We do however
|
||||
# want to keep control of the exact version of ffmpeg used instead of just
|
||||
# fetching the latest commit on a release branch (which is what the checkout job
|
||||
# in Makefile.ffmpeg in the omxplayer source tree does).
|
||||
#
|
||||
# This SRCREV corresponds to the v3.1.10 release of ffmpeg.
|
||||
SRCREV_ffmpeg = "afa34cb36edca0ff809b7e58474bbce12271ecba"
|
||||
|
||||
SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=git;branch=master \
|
||||
git://source.ffmpeg.org/ffmpeg;branch=release/3.1;protocol=git;depth=1;name=ffmpeg;destsuffix=git/ffmpeg \
|
||||
file://0001-Remove-Makefile.include-which-includes-hardcoded.patch \
|
||||
file://0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch \
|
||||
file://0003-Remove-strip-step-in-Makefile.patch \
|
||||
file://0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch \
|
||||
file://fix-tar-command-with-DIST.patch \
|
||||
file://use-native-pkg-config.patch \
|
||||
file://0005-Don-t-require-internet-connection-during-build.patch \
|
||||
file://0006-Prevent-ffmpeg-configure-compile-race-condition.patch \
|
||||
"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
@@ -27,6 +40,11 @@ COMPATIBLE_MACHINE_rpi = "(.*)"
|
||||
|
||||
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
|
||||
export TEMPDIR = "${S}/tmp"
|
||||
|
||||
@@ -53,7 +71,10 @@ do_compile() {
|
||||
# Needed for compiler test in ffmpeg's configure
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
2
recipes-multimedia/x264/x264_%.bbappend
Normal file
2
recipes-multimedia/x264/x264_%.bbappend
Normal file
@@ -0,0 +1,2 @@
|
||||
EXTRA_OECONF_append_raspberrypi = " --disable-asm"
|
||||
EXTRA_OECONF_append_raspberrypi0-wifi = " --disable-asm"
|
||||
@@ -1 +0,0 @@
|
||||
EXTRA_OECONF_append_raspberrypi = " --disable-asm"
|
||||
1
recipes-sato/webkitgtk/webkitgtk_%.bbappend
Normal file
1
recipes-sato/webkitgtk/webkitgtk_%.bbappend
Normal file
@@ -0,0 +1 @@
|
||||
EXTRA_OECMAKE_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', ' -DUSE_GSTREAMER_GL=OFF ', '', d)}"
|
||||
@@ -2,5 +2,5 @@
|
||||
# long-description: Creates a partitioned SD card image for use with
|
||||
# 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 / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4096
|
||||
part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4096 --size 20
|
||||
part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label root --align 4096
|
||||
|
||||
Reference in New Issue
Block a user