diff --git a/README.md b/README.md index 6dd5b08db..c93029719 100644 --- a/README.md +++ b/README.md @@ -20,29 +20,55 @@ OS versions: Software for the following hardware platforms is in production support: +## ConnectCore 8X +* ConnectCore 8X System-on-Module (SOM) + * [CC-WMX-JM8E-NN](https://www.digi.com/products/models/cc-wmx-jm8e-nn) + * [CC-MX-JM8D-ZN](https://www.digi.com/products/models/cc-mx-jm8d-zn) + * [CC-MX-JM7D-ZN](https://www.digi.com/cc8x) + * [CC-WMX-JM7D-NN](https://www.digi.com/products/models/cc-wmx-jm7d-nn) + * [CC-MX-JQ6D-ZN](https://www.digi.com/cc8x) + * [CC-MX-JQ7D-ZN](https://www.digi.com/cc8x) + * [CC-WMX-JQ7D-ZN](https://www.digi.com/cc8x) +* ConnectCore 8X SBC Pro + * [CC-WMX8-PRO](https://www.digi.com/products/embedded-systems/single-board-computers/digi-connectcore-8x-sbc-pro) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/2.6/cc8x/yocto-gs_index)) + ## ConnectCore 6UL * ConnectCore 6UL System-on-Module (SOM) * [CC-WMX-JN58-NE](https://www.digi.com/products/models/cc-wmx-jn58-ne) * [CC-MX-JN58-Z1](https://www.digi.com/products/models/cc-mx-jn58-z1) * CC-WMX-JN7A-NE * ConnectCore 6UL SBC Express - * [CC-WMX6UL-START](https://www.digi.com/products/models/cc-wmx6ul-start) ([Get Started](https://www.digi.com/resources/documentation/digidocs/90001548/default.htm#concept/yocto/c_get_started_with_yocto.htm)) + * [CC-WMX6UL-START](https://www.digi.com/products/models/cc-wmx6ul-start) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/2.6/cc6ul/yocto-gs_index)) * [CC-SBE-WMX-JN58](https://www.digi.com/products/models/cc-sbe-wmx-jn58) * ConnectCore 6UL SBC Pro - * [CC-WMX6UL-KIT](https://www.digi.com/products/models/cc-wmx6ul-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/90001547/default.htm#concept/yocto/c_get_started_with_yocto.htm)) + * [CC-WMX6UL-KIT](https://www.digi.com/products/models/cc-wmx6ul-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/2.6/cc6ul/yocto-gs_index)) * [CC-SBP-WMX-JN58](https://www.digi.com/products/models/cc-sbp-wmx-jn58) -## ConnectCore 8X -* ConnectCore 8X System-on-Module (SOM) - * [CC-WMX-JM7D-NN](https://www.digi.com/cc8x) - * [CC-WMX-JM8E-NN](https://www.digi.com/cc8x) - * [CC-MX-JM8D-ZN](https://www.digi.com/cc8x) - * [CC-WMX-JN7D-NN](https://www.digi.com/cc8x) - * [CC-MX-JN7D-ZN](https://www.digi.com/cc8x) -* ConnectCore 8X SBC Express - * [CC-WMX8-EXPRESS](https://www.digi.com/cc8x) -* ConnectCore 8X SBC Pro - * [CC-WMX8-PRO](https://www.digi.com/cc8x) +## ConnectCore 6 Plus +* ConnectCore 6 Plus System-on-Module (SOM) + * [CC-WMX-KK8D-TN](https://www.digi.com/products/models/cc-wmx-kk8d-tn) +* ConnectCore 6 Plus professional development kit + * [CC-WMX6P-KIT](https://www.digi.com/products/models/cc-wmx6p-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/2.6/cc6plus/yocto-gs_index)) + +## ConnectCore 6 +* ConnectCore 6 System-on-Module (SOM) + * [CC-WMX-J97C-TN](https://www.digi.com/products/models/cc-wmx-j97c-tn) + * [CC-WMX-L96C-TE](https://www.digi.com/products/models/cc-wmx-l96c-te) + * [CC-WMX-L87C-TE](https://www.digi.com/products/models/cc-wmx-l87c-te) + * [CC-MX-L76C-Z1](https://www.digi.com/products/models/cc-mx-l76c-z1) + * [CC-MX-L86C-Z1](https://www.digi.com/products/models/cc-mx-l86c-z1) + * [CC-MX-L96C-Z1](https://www.digi.com/products/models/cc-mx-l96c-z1) + * [CC-WMX-L76C-TE](https://www.digi.com/products/models/cc-wmx-l76c-te) + * CC-WMX-K87C-FJA + * CC-WMX-K77C-TE + * CC-WMX-L97D-TN + * CC-WMX-J98C-FJA + * CC-WMX-J98C-FJA-1 +* ConnectCore 6 Jumpstart Development Kit (SBC with Connectore 6 module) + * [CC-WMX6-KIT](https://www.digi.com/products/models/cc-wmx6-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/2.6/cc6/yocto-gs_index)) + * [CC-SB-WMX-J97C-1](https://www.digi.com/products/models/cc-sb-wmx-j97c-1) + * [CC-SB-WMX-L87C-1](https://www.digi.com/products/models/cc-sb-wmx-l87c-1) + * [CC-SB-WMX-L76C-1](https://www.digi.com/products/models/cc-sb-wmx-l76c-1) Previous versions of Digi Embedded Yocto include support for additional Digi hardware. @@ -60,11 +86,28 @@ Documentation is available online at https://www.digi.com/resources/documentatio # Downloads -* Demo images: ftp://ftp1.digi.com/support/digiembeddedyocto/2.6/r1/images/ -* Software Development Kit (SDK): ftp://ftp1.digi.com/support/digiembeddedyocto/2.6/r1/sdk/ +* Demo images: ftp://ftp1.digi.com/support/digiembeddedyocto/2.6/r2/images/ +* Software Development Kit (SDK): ftp://ftp1.digi.com/support/digiembeddedyocto/2.6/r2/sdk/ # Release Changelog +## 2.6-r2 + +* Release based on [Yocto 2.6 (Thud)](https://www.yoctoproject.org/software-overview/downloads) including: + * Updated GCC toolchain to v8.2.0 (from v7.3.0) + * Updated gstreamer1.0 to v1.14.4 + * Updated busybox to v1.29.3 + * Updated OpenSSL to v1.1.1b + * Package upgrades and security fixes +* Added support for ConnetCore 6 and ConnectCore 6 Plus platforms +* Updated kernel version to v4.14.141 for i.MX8X and i.MX6UL platforms +* Updated kernel version to v4.9.190 for i.MX6 platforms +* Updated U-Boot to version 2018.03-r2 for i.MX8X platform +* Updated U-Boot to version 2017.03-r4 for i.MX6 and i.MX6UL platforms +* Updated AWS Greengrass core to v1.9.2 +* Updated i.MX8 SCU firmware to v1.2.5 (see [important note](#scfw-note)) +* Updated QCA65x4 Wi-Fi and Bluetooth firmware + ## 2.6-r1 * Release based on [Yocto 2.6 (Thud)](https://www.yoctoproject.org/software-overview/downloads) including: @@ -99,10 +142,37 @@ updated list can be found on the online documentation. * Remote file system management fails with long file names and paths (over 255 characters). * For P2P connections Digi recommends "Negotiated GO" modes. The QCA6564 - devices (ConnectCore 6UL) running a 4.14 kernel version fail to join to - autonomous groups. + devices (ConnectCore 6UL, ConnectCore 6 Plus) fail to join autonomous groups. * Trustfence is not yet supported on U-Boot v2018.03. +## ConnectCore 8X + +* i.MX8QXP Processor + * GPU maximum performance reduced. The maximum frequency targets are 850 MHz + for the shaders and 700 MHz for the core. However, in this hardware release + the maximum frequency is limited to 650 MHz for the shaders and 600 MHz for + the core, with the corresponding performance reduction. These targets will + be met in future releases of the hardware. + * BSDL operation is not supported. It will be available in future releases + of the hardware. +* Digi Embedded Yocto + * The following features are not supported in this release for the ConnectCore 8X platform: + * Trustfence (TM) + + + +--- + **IMPORTANT**: This release updates the firmware of the _System Control Unit_ (SCU). + This is an NXP proprietary firmware and its last version is **not compatible** with + the previous one released on DEY-2.6-r1. As a consequence: + +* Old U-Boot v2018.03-r1 **cannot boot** images from this release DEY-2.6-r2. +* New U-Boot v2018.03-r2 **cannot boot** images from previous release DEY-2.6-r1. + + To succesfully run DEY-2.6-r2 images you need to update the U-Boot on your device. + + --- + ## ConnectCore 6UL * ConnectCore 6UL System-on-Module (SOM) @@ -122,20 +192,33 @@ updated list can be found on the online documentation. currently supported. * The QCA6564 wireless chip does not support Wake On Wireless LAN. -## ConnectCore 8X +## ConnectCore 6 Plus -* i.MX8QXP Processor - * GPU maximum performance reduced. The maximum frequency targets are 850 MHz - for the shaders and 700 MHz for the core. However, in this hardware release - the maximum frequency is limited to 650 MHz for the shaders and 600 MHz for - the core, with the corresponding performance reduction. These targets will - be met in future releases of the hardware. - * BSDL operation is not supported. It will be available in future releases - of the hardware. -* Digi Embedded Yocto - * The following features are not supported in this release for the ConnectCore 8X platform: - * Trustfence (TM) - * Digi Remote Manager +* ConnectCore 6 Plus System-on-Module (SOM) + * NXP i.MX6QP processor has a documented errata (ERR004512) whereby the maximum + performance of the Gigabit FEC is limited to 400Mbps (total for Tx and Rx). +* ConnectCore 6 Plus SBC + * The Micrel PHY KSZ9031 may take between five and six seconds to + auto-negotiate with Gigabit switches. + +## ConnectCore 6 + +* ConnectCore 6 System-on-Module (SOM) + * NXP i.MX6 processor has a documented errata (ERR004512) whereby the maximum + performance of the Gigabit FEC is limited to 400Mbps (total for Tx and Rx). + * When using softAP mode on Band A on the Qualcomm AR6233, channels used for + Dynamic Frequency Selection (DFS) are not supported. + * The Qualcomm AR6233 firmware does not support the following configuration + modes: + * Concurrent modes involving P2P mode, such as P2P + softAP or P2P + STA. + * Bluetooth + softAP + STA concurrent mode. + * A maximum of five clients are supported when using Qualcomm's AR6233 in + softAP mode. + * A maximum of ten connected devices are supported when using Qualcomm's AR6233 + Bluetooth Low Energy mode. +* ConnectCore 6 SBC + * The Micrel PHY KSZ9031 may take between five and six seconds to + auto-negotiate with Gigabit switches. # Support Contact Information diff --git a/meta-digi-arm/conf/machine/include/ccimx6ul.inc b/meta-digi-arm/conf/machine/include/ccimx6ul.inc index 1c2cb5abd..fda7ce35d 100644 --- a/meta-digi-arm/conf/machine/include/ccimx6ul.inc +++ b/meta-digi-arm/conf/machine/include/ccimx6ul.inc @@ -41,6 +41,7 @@ MACHINE_EXTRA_RRECOMMENDS += " \ MACHINE_EXTRA_RRECOMMENDS_remove_use-mainline-bsp = "${@bb.utils.contains('COMBINED_FEATURES', 'alsa', 'imx-alsa-plugins', '', d)}" MACHINE_FEATURES += "wifi bluetooth cryptochip" +MACHINE_FEATURES_remove_use-mainline-bsp = "wifi" # mkfs.ubifs parameters for boot partition (the one holding kernel and device tree files) # Max LEB count (-c 255) calculated for a partition of up to 32 MiB considering 128 KiB erase-block size. diff --git a/meta-digi-arm/recipes-bsp/digi-sc-firmware/digi-sc-firmware_1.2.2.2.bb b/meta-digi-arm/recipes-bsp/digi-sc-firmware/digi-sc-firmware_1.2.5.bb similarity index 84% rename from meta-digi-arm/recipes-bsp/digi-sc-firmware/digi-sc-firmware_1.2.2.2.bb rename to meta-digi-arm/recipes-bsp/digi-sc-firmware/digi-sc-firmware_1.2.5.bb index 761216a0f..e496ee6d0 100644 --- a/meta-digi-arm/recipes-bsp/digi-sc-firmware/digi-sc-firmware_1.2.2.2.bb +++ b/meta-digi-arm/recipes-bsp/digi-sc-firmware/digi-sc-firmware_1.2.5.bb @@ -4,15 +4,15 @@ DESCRIPTION = "i.MX System Controller Firmware, customized for Digi platforms" LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://COPYING;md5=fb0303e4ee8b0e71c094171e2272bd44" +LIC_FILES_CHKSUM = "file://COPYING;md5=72c0f70181bb6e83eee6aab8de12a9f3" SECTION = "BSP" inherit pkgconfig deploy SRC_URI = "${DIGI_PKG_SRC}/${PN}-${PV}.tar.gz" -SRC_URI[md5sum] = "3cf34f428d9a0e98ffc7f0cd326d5dc8" -SRC_URI[sha256sum] = "5b0022857fdcbbd4c641f3753d99b8afa8f605b798be3dfd8433696657911f86" +SRC_URI[md5sum] = "4a1a7a99cda9e55388d1c491011853c6" +SRC_URI[sha256sum] = "852cdd37d37905b08cfdc4b753ce33b7364749065bac91d78cc2292481e6d6a7" S = "${WORKDIR}/${PN}-${PV}" diff --git a/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm.bb b/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm.bb index b8ac552df..474713043 100644 --- a/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm.bb +++ b/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm.bb @@ -62,23 +62,22 @@ do_install() { # Wifi firmware if [ "${QUALCOMM_WIFI_DRIVER}" = "community" ]; then - WIFI_FW_PATH="${D}${base_libdir}/firmware/ath10k/QCA6174/hw3.0" + WIFI_FW_PATH="${base_libdir}/firmware/ath10k/QCA6174/hw3.0" else - WIFI_FW_PATH="${D}${base_libdir}/firmware" + WIFI_FW_PATH="${base_libdir}/firmware" fi - install -d ${WIFI_FW_PATH} + install -d ${D}${WIFI_FW_PATH} # Remove preceeding 'file://' from variable with files list FW_WIFI_FILES="$(echo ${FW_QUALCOMM_WIFI} | sed -e 's,file\:\/\/,,g')" - install -m 0644 ${FW_WIFI_FILES} ${WIFI_FW_PATH} - cd ${WIFI_FW_PATH} + install -m 0644 ${FW_WIFI_FILES} ${D}${WIFI_FW_PATH} if [ "${QUALCOMM_WIFI_DRIVER}" = "community" ]; then # If using community driver, create symlink 'board.bin' to # proprietary 'fakeboar.bin' - ln -s fakeboar.bin board.bin + ln -s fakeboar.bin ${D}${WIFI_FW_PATH}/board.bin else if [ "${FW_QUALCOMM_WIFI}" = "${FW_QCA6574_WIFI_PROPRIETARY}" ]; then - ln -s qwlan30.bin athwlan.bin - ln -s otp.bin athsetup.bin + ln -s qwlan30.bin ${D}${WIFI_FW_PATH}/athwlan.bin + ln -s otp.bin ${D}${WIFI_FW_PATH}/athsetup.bin fi fi } diff --git a/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/qca6574_proprietary/fakeboar.bin b/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/qca6574_proprietary/fakeboar.bin index ecd89a847..d51ffbe44 100644 Binary files a/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/qca6574_proprietary/fakeboar.bin and b/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/qca6574_proprietary/fakeboar.bin differ diff --git a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend index 4efffd116..d308ac393 100644 --- a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend +++ b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_0.2.bbappend @@ -1,9 +1,9 @@ # Copyright 2019 Digi International, Inc. inherit boot-artifacts -# Use the v4.14 ga BSP branch -SRCBRANCH = "imx_4.14.98_2.0.0_ga" -SRCREV = "dd0234001713623c79be92b60fa88bc07b07f24f" +# Use the v4.14 latest BSP branch +SRCBRANCH = "imx_4.14.98_2.1.0" +SRCREV = "abd6ce551a7b81fc6953d32d92b24a4a1d4b214e" FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" SRC_URI_append_ccimx8x = " file://0001-iMX8QX-remove-SC_BD_FLAGS_ALT_CONFIG-flag-in-flash_r.patch" @@ -106,9 +106,6 @@ do_deploy () { # copy makefile (soc.mak) for reference install -m 0644 ${BOOT_STAGING}/soc.mak ${DEPLOYDIR}/${BOOT_TOOLS} - # Move all M4 demo artifacts to the imx-boot-tools folder - mv ${DEPLOY_DIR_IMAGE}/imx8qx_m4_* ${DEPLOYDIR}/${BOOT_TOOLS}/ - # copy the generated boot image to deploy path for ramc in ${UBOOT_RAM_COMBINATIONS}; do IMAGE_IMXBOOT_TARGET="" diff --git a/meta-digi-arm/recipes-core/udev/udev-extraconf/automount.rules b/meta-digi-arm/recipes-core/udev/udev-extraconf/automount.rules index 388c485f8..22534848d 100644 --- a/meta-digi-arm/recipes-core/udev/udev-extraconf/automount.rules +++ b/meta-digi-arm/recipes-core/udev/udev-extraconf/automount.rules @@ -13,19 +13,17 @@ # %% the '%' char itself # -# Boot partitions -SUBSYSTEM=="block", ENV{ID_PART_ENTRY_NAME}=="linux*", ACTION=="add", RUN+="/etc/udev/scripts/mount_bootparts.sh", GOTO="automount_rules_end" +# Digi-mounted partitions: linux, update +SUBSYSTEM=="block", ENV{ID_PART_ENTRY_NAME}=="linux*|update*", ACTION=="add", RUN+="/etc/udev/scripts/mount_digiparts.sh", GOTO="automount_rules_end" +SUBSYSTEM=="mtd", ATTRS{name}=="linux*|update*", ACTION=="add", RUN+="/etc/udev/scripts/mount_digiparts.sh", GOTO="automount_rules_end" -# Update partition -SUBSYSTEM=="block", ENV{ID_PART_ENTRY_NAME}=="update*", ACTION=="add", RUN+="/etc/udev/scripts/mount_partition.sh 'update'", GOTO="automount_rules_end" -SUBSYSTEM=="mtd", ATTRS{name}=="update", ACTION=="add", RUN+="/etc/udev/scripts/mount_partition.sh 'update'", GOTO="automount_rules_end" - -# Recovery partition +# Avoid mounting recovery partition SUBSYSTEM=="block", ENV{ID_PART_ENTRY_NAME}=="recovery*", ACTION=="add", GOTO="automount_rules_end" -SUBSYSTEM=="mtd", ATTRS{name}=="recovery", ACTION=="add", GOTO="automount_rules_end" +SUBSYSTEM=="mtd", ATTRS{name}=="recovery*", ACTION=="add", GOTO="automount_rules_end" # Media automounting SUBSYSTEM=="block", ACTION=="add" RUN+="/etc/udev/scripts/mount.sh" SUBSYSTEM=="block", ACTION=="remove" RUN+="/etc/udev/scripts/mount.sh" SUBSYSTEM=="block", ACTION=="change", ENV{DISK_MEDIA_CHANGE}=="1" RUN+="/etc/udev/scripts/mount.sh" + LABEL="automount_rules_end" diff --git a/meta-digi-arm/recipes-core/udev/udev-extraconf/mount.sh b/meta-digi-arm/recipes-core/udev/udev-extraconf/mount.sh new file mode 100644 index 000000000..89d06b66a --- /dev/null +++ b/meta-digi-arm/recipes-core/udev/udev-extraconf/mount.sh @@ -0,0 +1,157 @@ +#!/bin/sh +# +# Called from udev +# +# Attempt to mount any added block devices and umount any removed devices + +BASE_INIT="`readlink -f "@base_sbindir@/init"`" +INIT_SYSTEMD="@systemd_unitdir@/systemd" + +if [ "x$BASE_INIT" = "x$INIT_SYSTEMD" ];then + # systemd as init uses systemd-mount to mount block devices + MOUNT="/usr/bin/systemd-mount" + UMOUNT="/usr/bin/systemd-umount" + + if [ -x $MOUNT ] && [ -x $UMOUNT ]; + then + logger "Using systemd-mount to finish mount" + else + logger "Linux init is using systemd, so please install systemd-mount to finish mount" + exit 1 + fi +else + MOUNT="/bin/mount" + UMOUNT="/bin/umount" +fi + +PMOUNT="/usr/bin/pmount" + +for line in `grep -h -v ^# /etc/udev/mount.blacklist /etc/udev/mount.blacklist.d/*` +do + if [ ` expr match "$DEVNAME" "$line" ` -gt 0 ]; + then + logger "udev/mount.sh" "[$DEVNAME] is blacklisted, ignoring" + exit 0 + fi +done + +automount_systemd() { + name="`basename "$DEVNAME"`" + + # Skip already mounted partitions + if [ -f /run/systemd/transient/run-media-$name.mount ]; then + logger "mount.sh/automount" "/run/media/$name already mounted" + return + fi + + # Skip the partition which are already in /etc/fstab + grep "^[[:space:]]*$DEVNAME" /etc/fstab && return + for n in LABEL PARTLABEL UUID PARTUUID; do + tmp="$(lsblk -o $n $DEVNAME | sed -e '1d')" + test -z "$tmp" && continue + tmp="$n=$tmp" + grep "^[[:space:]]*$tmp" /etc/fstab && return + done + + [ -d "/run/media/$name" ] || mkdir -p "/run/media/$name" + + MOUNT="$MOUNT -o silent" + + # If filesystemtype is vfat, change the ownership group to 'disk', and + # grant it with w/r/x permissions. + case $ID_FS_TYPE in + vfat|fat) + MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`" + ;; + # TODO + *) + ;; + esac + + if ! $MOUNT --no-block -t auto $DEVNAME "/run/media/$name" + then + #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/run/media/$name\" failed!" + rm_dir "/run/media/$name" + else + logger "mount.sh/automount" "Auto-mount of [/run/media/$name] successful" + touch "/tmp/.automount-$name" + fi +} + +automount() { + name="`basename "$DEVNAME"`" + + if [ -x "$PMOUNT" ]; then + $PMOUNT $DEVNAME 2> /dev/null + elif [ -x $MOUNT ]; then + $MOUNT $DEVNAME 2> /dev/null + fi + + # If the device isn't mounted at this point, it isn't + # configured in fstab + grep -q "^$DEVNAME " /proc/mounts && return + + ! test -d "/run/media/$name" && mkdir -p "/run/media/$name" + # Silent util-linux's version of mounting auto + if [ "x`readlink $MOUNT`" = "x/bin/mount.util-linux" ] ; + then + MOUNT="$MOUNT -o silent" + fi + + # If filesystem type is vfat, change the ownership group to 'disk', and + # grant it with w/r/x permissions. + case $ID_FS_TYPE in + vfat|fat) + MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`" + ;; + # TODO + *) + ;; + esac + + if ! $MOUNT -t auto $DEVNAME "/run/media/$name" + then + #logger "mount.sh/automount" "$MOUNT -t auto $DEVNAME \"/run/media/$name\" failed!" + rm_dir "/run/media/$name" + else + logger "mount.sh/automount" "Auto-mount of [/run/media/$name] successful" + touch "/tmp/.automount-$name" + fi +} + +rm_dir() { + # We do not want to rm -r populated directories + if test "`find "$1" | wc -l | tr -d " "`" -lt 2 -a -d "$1" + then + ! test -z "$1" && rm -r "$1" + else + logger "mount.sh/automount" "Not removing non-empty directory [$1]" + fi +} + +# No ID_FS_TYPE for cdrom device, yet it should be mounted +name="`basename "$DEVNAME"`" +[ -e /sys/block/$name/device/media ] && media_type=`cat /sys/block/$name/device/media` + +if [ "$ACTION" = "add" ] && [ -n "$DEVNAME" ] && [ -n "$ID_FS_TYPE" -o "$media_type" = "cdrom" ]; then + # Note the root filesystem can show up as /dev/root in /proc/mounts, + # so check the device number too + if expr $MAJOR "*" 256 + $MINOR != `stat -c %d /`; then + if [ "`basename $MOUNT`" = "systemd-mount" ];then + automount_systemd + else + automount + fi + fi +fi + +if [ "$ACTION" = "remove" ] || [ "$ACTION" = "change" ] && [ -x "$UMOUNT" ] && [ -n "$DEVNAME" ]; then + for mnt in `cat /proc/mounts | grep "$DEVNAME" | cut -f 2 -d " " ` + do + $UMOUNT $mnt + done + + # Remove empty directories from auto-mounter + name="`basename "$DEVNAME"`" + test -e "/tmp/.automount-$name" && rm_dir "/run/media/$name" +fi diff --git a/meta-digi-arm/recipes-core/udev/udev-extraconf/mount_bootparts.sh b/meta-digi-arm/recipes-core/udev/udev-extraconf/mount_bootparts.sh deleted file mode 100644 index 1e5982d93..000000000 --- a/meta-digi-arm/recipes-core/udev/udev-extraconf/mount_bootparts.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -#=============================================================================== -# -# mount_bootparts.sh -# -# Copyright (C) 2014 by Digi International Inc. -# All rights reserved. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# -# !Description: Attempt to mount boot partitions read-only (called from udev) -# -#=============================================================================== - -MOUNT="/bin/mount" - -# Use 'silent' if util-linux's mount (busybox's does not support that option) -[ "$(readlink ${MOUNT})" = "/bin/mount.util-linux" ] && MOUNT="${MOUNT} -o silent" - -MOUNTPOINT="/mnt/${ID_PART_ENTRY_NAME}" -mkdir -p ${MOUNTPOINT} -if ! ${MOUNT} -t auto -r ${DEVNAME} ${MOUNTPOINT}; then - logger -t udev "mount_bootparts.sh: mount ${DEVNAME} under ${MOUNTPOINT} failed!" - rmdir --ignore-fail-on-non-empty ${MOUNTPOINT} -fi diff --git a/meta-digi-arm/recipes-core/udev/udev-extraconf/mount_digiparts.sh b/meta-digi-arm/recipes-core/udev/udev-extraconf/mount_digiparts.sh new file mode 100644 index 000000000..08772a222 --- /dev/null +++ b/meta-digi-arm/recipes-core/udev/udev-extraconf/mount_digiparts.sh @@ -0,0 +1,92 @@ +#!/bin/sh +#=============================================================================== +# +# mount_bootparts.sh +# +# Copyright (C) 2014-2019 by Digi International Inc. +# All rights reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 as published by +# the Free Software Foundation. +# +# !Description: Attempt to mount boot partitions read-only (called from udev) +# +#=============================================================================== + +BASE_INIT="$(readlink -f "@base_sbindir@/init")" +INIT_SYSTEMD="@systemd_unitdir@/systemd" + +if [ "${SUBSYSTEM}" = "block" ]; then + PARTNAME="${ID_PART_ENTRY_NAME}" +elif [ "${SUBSYSTEM}" = "mtd" ]; then + MTDN="$(echo ${DEVNAME} | cut -f 3 -d /)" + PARTNAME="$(grep ${MTDN} /proc/mtd | sed -ne 's,.*"\(.*\)",\1,g;T;p')" +fi + +MOUNT_PARAMS="-o silent" +# Mount 'linux' partition as read-only +if [ "${PARTNAME}" = "linux" ]; then + MOUNT_PARAMS="${MOUNT_PARAMS} -o ro" +fi + +if [ "x$BASE_INIT" = "x$INIT_SYSTEMD" ];then + # systemd as init uses systemd-mount to mount block devices + MOUNT="/usr/bin/systemd-mount" + MOUNT_PARAMS="${MOUNT_PARAMS} --no-block" + + if [ -x "$MOUNT" ]; + then + logger "Using systemd-mount to finish mount" + else + logger "Linux init is using systemd, so please install systemd-mount to finish mount" + exit 1 + fi +else + MOUNT="/bin/mount" + if [ "$(readlink ${MOUNT})" != "/bin/mount.util-linux" ]; then + # Busybox mount. Clear default params + MOUNT_PARAMS="" + # Mount 'linux' partition as read-only + if [ "${PARTNAME}" = "linux" ]; then + MOUNT_PARAMS="${MOUNT_PARAMS} -r" + fi + fi +fi + +# Create mount point if needed +MOUNTPOINT="/mnt/${PARTNAME}" +[ -d "${MOUNTPOINT}" ] || mkdir -p ${MOUNTPOINT} + +if [ "${SUBSYSTEM}" = "block" ]; then + if ! ${MOUNT} -t auto ${MOUNT_PARAMS} ${DEVNAME} ${MOUNTPOINT}; then + logger -t udev "ERROR: Could not mount ${DEVNAME} under ${MOUNTPOINT}" + rmdir --ignore-fail-on-non-empty ${MOUNTPOINT} + fi +elif [ "${SUBSYSTEM}" = "mtd" ]; then + # Before attaching, find out if partition already attached + MTD_NUM="$(echo ${MTDN} | sed -ne 's,.*mtd\([0-9]\+\),\1,g;T;p')" + for ubidev in /sys/devices/virtual/ubi/*; do + echo "${ubidev}" | grep -qs '/sys/devices/virtual/ubi/\*' && continue + mtd_att="$(cat ${ubidev}/mtd_num)" + if [ "${mtd_att}" = "${MTD_NUM}" ]; then + dev_number="$(echo ${ubidev} | sed -ne 's,.*ubi\([0-9]\+\),\1,g;T;p')" + fi + done + + # If not already attached, attach and get UBI device number + if [ -z "${dev_number}" ]; then + dev_number="$(ubiattach -p ${DEVNAME} 2>/dev/null | sed -ne 's,.*device number \([0-9]\).*,\1,g;T;p' 2>/dev/null)" + fi + # Check if volume exists. + if ubinfo /dev/ubi${dev_number} -N ${PARTNAME} >/dev/null 2>&1; then + # Mount the volume. + if ! mount -t ubifs ubi${dev_number}:${PARTNAME} ${MOUNT_PARAMS} ${MOUNTPOINT}; then + logger -t udev "ERROR: Could not mount '${PARTNAME}' partition" + rmdir --ignore-fail-on-non-empty ${MOUNTPOINT} + fi + else + logger -t udev "ERROR: Could not mount '${PARTNAME}' partition, volume not found" + rmdir --ignore-fail-on-non-empty ${MOUNTPOINT} + fi +fi diff --git a/meta-digi-arm/recipes-core/udev/udev-extraconf/mount_partition.sh b/meta-digi-arm/recipes-core/udev/udev-extraconf/mount_partition.sh deleted file mode 100644 index 05f719b18..000000000 --- a/meta-digi-arm/recipes-core/udev/udev-extraconf/mount_partition.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -#=============================================================================== -# -# mount_partition.sh -# -# Copyright (C) 2017 by Digi International Inc. -# All rights reserved. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# -# !Description: Attempt to mount the partition triggered by udev -# -#=============================================================================== - -MOUNT="/bin/mount" -PARTITION_NAME="${1}" -MOUNTPOINT="/mnt/${PARTITION_NAME}" - -# Use 'silent' if util-linux's mount (busybox's does not support that option) -[ "$(readlink ${MOUNT})" = "/bin/mount.util-linux" ] && MOUNT="${MOUNT} -o silent" - -if mkdir -p "${MOUNTPOINT}" && ! mountpoint -q "${MOUNTPOINT}"; then - if [ "${SUBSYSTEM}" = "block" ]; then - FSTYPE="$(blkid ${DEVNAME} | sed -e 's,.*TYPE="\([^"]\+\)".*,\1,g')" - if ! mount ${FSTYPE:+-t ${FSTYPE}} "${DEVNAME}" "${MOUNTPOINT}"; then - logger -t udev "ERROR: Could not mount '${PARTITION_NAME}' partition" - rmdir --ignore-fail-on-non-empty ${MOUNTPOINT} - fi - elif [ "${SUBSYSTEM}" = "mtd" ]; then - # Attach and get UBI device number - dev_number="$(ubiattach -p ${DEVNAME} 2>/dev/null | sed -ne 's,.*device number \([0-9]\).*,\1,g;T;p' 2>/dev/null)" - # Check if volume exists. - if ubinfo "/dev/ubi${dev_number}" -N "${PARTITION_NAME}" >/dev/null 2>&1; then - # Mount the volume. - if ! mount -t ubifs "ubi${dev_number}:${PARTITION_NAME}" "${MOUNTPOINT}"; then - logger -t udev "ERROR: Could not mount '${PARTITION_NAME}' partition" - rmdir --ignore-fail-on-non-empty ${MOUNTPOINT} - fi - else - logger -t udev "ERROR: Could not mount '${PARTITION_NAME}' partition, volume not found" - rmdir --ignore-fail-on-non-empty ${MOUNTPOINT} - fi - fi -fi diff --git a/meta-digi-arm/recipes-core/udev/udev-extraconf_1.1.bbappend b/meta-digi-arm/recipes-core/udev/udev-extraconf_1.1.bbappend index 954c41f74..2657a90d9 100644 --- a/meta-digi-arm/recipes-core/udev/udev-extraconf_1.1.bbappend +++ b/meta-digi-arm/recipes-core/udev/udev-extraconf_1.1.bbappend @@ -3,15 +3,15 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" SRC_URI += " \ - file://mount_bootparts.sh \ - file://mount_partition.sh \ + file://mount_digiparts.sh \ file://81-spi-spidev.rules \ file://blacklist.conf \ " do_install_append() { - install -m 0755 ${WORKDIR}/mount_bootparts.sh ${D}${sysconfdir}/udev/scripts/ - install -m 0755 ${WORKDIR}/mount_partition.sh ${D}${sysconfdir}/udev/scripts/ + install -m 0755 ${WORKDIR}/mount_digiparts.sh ${D}${sysconfdir}/udev/scripts/ + sed -i -e 's|@base_sbindir@|${base_sbindir}|g' ${D}${sysconfdir}/udev/scripts/mount_digiparts.sh + sed -i -e 's|@systemd_unitdir@|${systemd_unitdir}|g' ${D}${sysconfdir}/udev/scripts/mount_digiparts.sh install -m 0644 ${WORKDIR}/81-spi-spidev.rules ${D}${sysconfdir}/udev/rules.d/ # Bluetooth tty symlink diff --git a/meta-digi-arm/recipes-digi/mca/mca-tool_1.17.bb b/meta-digi-arm/recipes-digi/mca/mca-tool_1.18.bb similarity index 61% rename from meta-digi-arm/recipes-digi/mca/mca-tool_1.17.bb rename to meta-digi-arm/recipes-digi/mca/mca-tool_1.18.bb index 2e00d985e..d410e90fb 100644 --- a/meta-digi-arm/recipes-digi/mca/mca-tool_1.17.bb +++ b/meta-digi-arm/recipes-digi/mca/mca-tool_1.18.bb @@ -8,13 +8,13 @@ PKGNAME = "mca_tool" # ARM tarball SRC_URI_arm = "${DIGI_PKG_SRC}/${PKGNAME}-${PV}-${TUNE_ARCH}.tar.gz;name=arm" -SRC_URI[arm.md5sum] = "c1eefe3113c4915b92fadebc7f769d21" -SRC_URI[arm.sha256sum] = "9a9d962e549fdb0f22fc1037f74ca21c7356dded7033c28a1b4b325a44b579aa" +SRC_URI[arm.md5sum] = "aa2037b93dadafe160824f7d63dd8582" +SRC_URI[arm.sha256sum] = "7dbc07672d5cce52e3ec611a1bcef1b6c0aed278fbcd6a150b3f528d8da66065" # AARCH64 tarball SRC_URI_aarch64 = "${DIGI_PKG_SRC}/${PKGNAME}-${PV}-${TUNE_ARCH}.tar.gz;name=aarch64" -SRC_URI[aarch64.md5sum] = "92a3d3d3a63c749efc4761cdb5efe77e" -SRC_URI[aarch64.sha256sum] = "6b3cd2e9aa879ebd5aba628731855112db69ab01cedc5e203c10917e51f93a08" +SRC_URI[aarch64.md5sum] = "40d8113353daf8e426597c289f6659d8" +SRC_URI[aarch64.sha256sum] = "a0f7d8bae72f9dcdb1102bcf3e42a4b66d4f66b4bef43f80a4fd63282562a9d4" S = "${WORKDIR}/${PKGNAME}-${PV}" diff --git a/meta-digi-dey/classes/trustfence.bbclass b/meta-digi-dey/classes/trustfence.bbclass index 058de583f..c9e391132 100644 --- a/meta-digi-dey/classes/trustfence.bbclass +++ b/meta-digi-dey/classes/trustfence.bbclass @@ -36,6 +36,10 @@ python () { import hashlib import os + if ("ccimx8x" in d.getVar("MACHINE", True)): + bb.fatal("Trustfence is not currently supported on the ccimx8x SOM") + return + # Secure console configuration if (d.getVar("TRUSTFENCE_CONSOLE_DISABLE", True) == "1"): d.appendVar("UBOOT_EXTRA_CONF", "CONFIG_CONSOLE_DISABLE=y ") diff --git a/meta-digi-dey/recipes-aws/greengrass/greengrass_1.9.0.bb b/meta-digi-dey/recipes-aws/greengrass/greengrass_1.9.2.bb similarity index 81% rename from meta-digi-dey/recipes-aws/greengrass/greengrass_1.9.0.bb rename to meta-digi-dey/recipes-aws/greengrass/greengrass_1.9.2.bb index 68bbb471a..5e9afe5d5 100644 --- a/meta-digi-dey/recipes-aws/greengrass/greengrass_1.9.0.bb +++ b/meta-digi-dey/recipes-aws/greengrass/greengrass_1.9.2.bb @@ -21,9 +21,9 @@ LIC_FILES_CHKSUM = " \ file://ggc/core/THIRD-PARTY-LICENSES;md5=53b6a4caa097863bc3971d5e0ac6d1db \ " -SRC_URI[arm.md5sum] = "57e408134eccbbda40f08dbbf52101c2" -SRC_URI[arm.sha256sum] ="ded5d88a3ec1479d79c842b16fef11f91ee331bd4b79dbba1ca639b3e51922a3" +SRC_URI[arm.md5sum] = "63a1f6aae22260be19f34f278f7e7833" +SRC_URI[arm.sha256sum] ="4bc0bc8a938cdb3d846df92e502155c6ec8cbaf1b63dfa9f3cc3a51372d95af5" # For ARCH64 we use another tarball. -SRC_URI[aarch64.md5sum] = "c8e5488e302905583829f95d55d7a912" -SRC_URI[aarch64.sha256sum] ="9cd00902090e8fc34de18bf1ff21dca5e90af12ced886e6ac46e1f6899b059e1" +SRC_URI[aarch64.md5sum] = "967cd25ac77e733b0a1b42d83dc96ed1" +SRC_URI[aarch64.sha256sum] ="4cbaf91e5354fe49ded160415394413f068426c2bba13089e6b8a28775990a9c" diff --git a/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/ifdownup b/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/ifdownup index 75ff4985d..56ead40f4 100644 --- a/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/ifdownup +++ b/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/ifdownup @@ -19,7 +19,11 @@ # log() { - systemd-cat -p "${1}" -t ifdownup printf "%s" "${2}" + if type "systemd-cat" >/dev/null 2>/dev/null; then + systemd-cat -p "${1}" -t ifdownup printf "%s" "${2}" + else + logger -p "${1}" -t ifdownup "${2}" + fi } log info "device-connectivity-change detected on interface ${DEVICE_IP_IFACE}" diff --git a/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/p2pbridge b/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/p2pbridge index 5e3270fa4..5e3599868 100644 --- a/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/p2pbridge +++ b/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager/p2pbridge @@ -22,7 +22,11 @@ [ "${CONNECTION_ID}" = "p2p-bridge" ] || exit 0 log() { - systemd-cat -p "${1}" -t p2pbridge printf "%s" "${2}" + if type "systemd-cat" >/dev/null 2>/dev/null; then + systemd-cat -p "${1}" -t p2pbridge printf "%s" "${2}" + else + logger -p "${1}" -t p2pbridge "${2}" + fi } case "${NM_DISPATCHER_ACTION}" in diff --git a/meta-digi-dey/recipes-connectivity/wpa-supplicant/wpa-supplicant/defconfig b/meta-digi-dey/recipes-connectivity/wpa-supplicant/wpa-supplicant/defconfig index fd023e6cd..619eccc6b 100644 --- a/meta-digi-dey/recipes-connectivity/wpa-supplicant/wpa-supplicant/defconfig +++ b/meta-digi-dey/recipes-connectivity/wpa-supplicant/wpa-supplicant/defconfig @@ -20,6 +20,59 @@ # used to fix build issues on such systems (krb5.h not found). #CFLAGS += -I/usr/include/kerberos +# Example configuration for various cross-compilation platforms + +#### sveasoft (e.g., for Linksys WRT54G) ###################################### +#CC=mipsel-uclibc-gcc +#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc +#CFLAGS += -Os +#CPPFLAGS += -I../src/include -I../../src/router/openssl/include +#LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl +############################################################################### + +#### openwrt (e.g., for Linksys WRT54G) ####################################### +#CC=mipsel-uclibc-gcc +#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc +#CFLAGS += -Os +#CPPFLAGS=-I../src/include -I../openssl-0.9.7d/include \ +# -I../WRT54GS/release/src/include +#LIBS = -lssl +############################################################################### + +# Driver interface for Agere driver +#CONFIG_DRIVER_HERMES=y +# Change include directories to match with the local setup +#CFLAGS += -I../../hcf -I../../include -I../../include/hcf +#CFLAGS += -I../../include/wireless + +# Driver interface for madwifi driver +# Deprecated; use CONFIG_DRIVER_WEXT=y instead. +#CONFIG_DRIVER_MADWIFI=y +# Set include directory to the madwifi source tree +#CFLAGS += -I../../madwifi + +# Driver interface for ndiswrapper +# Deprecated; use CONFIG_DRIVER_WEXT=y instead. +#CONFIG_DRIVER_NDISWRAPPER=y + +# Driver interface for Atmel driver +# CONFIG_DRIVER_ATMEL=y + +# Driver interface for old Broadcom driver +# Please note that the newer Broadcom driver ("hybrid Linux driver") supports +# Linux wireless extensions and does not need (or even work) with the old +# driver wrapper. Use CONFIG_DRIVER_WEXT=y with that driver. +#CONFIG_DRIVER_BROADCOM=y +# Example path for wlioctl.h; change to match your configuration +#CFLAGS += -I/opt/WRT54GS/release/src/include + +# Driver interface for Intel ipw2100/2200 driver +# Deprecated; use CONFIG_DRIVER_WEXT=y instead. +#CONFIG_DRIVER_IPW=y + +# Driver interface for Ralink driver +#CONFIG_DRIVER_RALINK=y + # Driver interface for generic Linux wireless extensions # Note: WEXT is deprecated in the current Linux kernel version and no new # functionality is added to it. nl80211-based interface is the new @@ -31,6 +84,9 @@ CONFIG_DRIVER_WEXT=y # Driver interface for Linux drivers using the nl80211 kernel interface CONFIG_DRIVER_NL80211=y +# QCA vendor extensions to nl80211 +#CONFIG_DRIVER_NL80211_QCA=y + # driver_nl80211.c requires libnl. If you are compiling it yourself # you may need to point hostapd to your version of libnl. # @@ -67,6 +123,9 @@ CONFIG_LIBNL32=y # wpa_supplicant. # CONFIG_USE_NDISUIO=y +# Driver interface for development testing +#CONFIG_DRIVER_TEST=y + # Driver interface for wired Ethernet drivers #CONFIG_DRIVER_WIRED=y @@ -149,6 +208,8 @@ CONFIG_EAP_GPSK=y # Wi-Fi Protected Setup (WPS) CONFIG_WPS=y +# Enable WSC 2.0 support +#CONFIG_WPS2=y # Enable WPS external registrar functionality #CONFIG_WPS_ER=y # Disable credentials for an open network by default when acting as a WPS @@ -267,6 +328,9 @@ CONFIG_BACKEND=file # Should we use epoll instead of select? Select is used by default. #CONFIG_ELOOP_EPOLL=y +# Should we use kqueue instead of select? Select is used by default. +#CONFIG_ELOOP_KQUEUE=y + # Select layer 2 packet implementation # linux = Linux packet socket (default) # pcap = libpcap/libdnet/WinPcap @@ -276,6 +340,12 @@ CONFIG_BACKEND=file # none = Empty template #CONFIG_L2_PACKET=linux +# Disable Linux packet socket workaround applicable for station interface +# in a bridge for EAPOL frames. This should be uncommented only if the kernel +# is known to not have the regression issue in packet socket behavior with +# bridge interfaces (commit 'bridge: respect RFC2863 operational state')'). +#CONFIG_NO_LINUX_PACKET_SOCKET_WAR=y + # PeerKey handshake for Station to Station Link (IEEE 802.11e DLS) CONFIG_PEERKEY=y @@ -455,6 +525,9 @@ CONFIG_IEEE80211N=y # Hotspot 2.0 #CONFIG_HS20=y +# Enable interface matching in wpa_supplicant +#CONFIG_MATCH_IFACE=y + # Disable roaming in wpa_supplicant #CONFIG_NO_ROAMING=y @@ -495,3 +568,41 @@ CONFIG_P2P=y # # External password backend for testing purposes (developer use) #CONFIG_EXT_PASSWORD_TEST=y + +# Enable Fast Session Transfer (FST) +#CONFIG_FST=y + +# Enable CLI commands for FST testing +#CONFIG_FST_TEST=y + +# OS X builds. This is only for building eapol_test. +#CONFIG_OSX=y + +# Automatic Channel Selection +# This will allow wpa_supplicant to pick the channel automatically when channel +# is set to "0". +# +# TODO: Extend parser to be able to parse "channel=acs_survey" as an alternative +# to "channel=0". This would enable us to eventually add other ACS algorithms in +# similar way. +# +# Automatic selection is currently only done through initialization, later on +# we hope to do background checks to keep us moving to more ideal channels as +# time goes by. ACS is currently only supported through the nl80211 driver and +# your driver must have survey dump capability that is filled by the driver +# during scanning. +# +# TODO: In analogy to hostapd be able to customize the ACS survey algorithm with +# a newly to create wpa_supplicant.conf variable acs_num_scans. +# +# Supported ACS drivers: +# * ath9k +# * ath5k +# * ath10k +# +# For more details refer to: +# http://wireless.kernel.org/en/users/Documentation/acs +#CONFIG_ACS=y + +# Support Multi Band Operation +#CONFIG_MBO=y diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/p2plink b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/p2plink index 539127e16..f0f617962 100644 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/p2plink +++ b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/p2plink @@ -24,13 +24,18 @@ # p2p-freq # p2p-local-address # p2p-local-netmask +# p2p-network-id # # Execute only for the p2p0 interface [ "${IFACE}" = "p2p0" ] || exit 0 log() { - systemd-cat -p "${1}" -t p2plink printf "%s" "${2}" + if type "systemd-cat" >/dev/null 2>/dev/null; then + systemd-cat -p "${1}" -t p2plink printf "%s" "${2}" + else + logger -p "${1}" -t p2plink "${2}" + fi } # Exit without error if the peer MAC address is not available @@ -50,7 +55,7 @@ if [ "${MODE}" = "start" ]; then # Peer found, establish the link log info "establish P2P link" - wpa_cli -i"${IFACE}" p2p_connect "${IF_P2P_PEER_MAC}" pbc go_intent=7 ${IF_P2P_FREQ:+freq=${IF_P2P_FREQ}} + wpa_cli -i"${IFACE}" p2p_connect "${IF_P2P_PEER_MAC}" pbc ${IF_P2P_NETWORK_ID:+persistent=${IF_P2P_NETWORK_ID}} ${IF_P2P_FREQ:+freq=${IF_P2P_FREQ}} auto for _ in $(seq 20); do if wpa_cli status 2>&1 | grep -qs "^wpa_state=COMPLETED$"; then if wpa_cli status 2>&1 | grep -qs "^mode=P2P GO$"; then diff --git a/meta-digi-dey/recipes-core/system-monitor/files/system-monitor.sh b/meta-digi-dey/recipes-core/system-monitor/files/system-monitor.sh index 267aca492..309d871bb 100644 --- a/meta-digi-dey/recipes-core/system-monitor/files/system-monitor.sh +++ b/meta-digi-dey/recipes-core/system-monitor/files/system-monitor.sh @@ -23,7 +23,11 @@ WDOG_TIME_SEC=$((WATCHDOG_USEC / 1000000 / 4)) log() { - systemd-cat -p "${1}" -t system-monitor printf "%s" "${2}" + if type "systemd-cat" >/dev/null 2>/dev/null; then + systemd-cat -p "${1}" -t system-monitor printf "%s" "${2}" + else + logger -p "${1}" -t system-monitor "${2}" + fi } checks_failed=0 diff --git a/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.2.bb b/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.2.bb deleted file mode 100644 index 68daf94fb..000000000 --- a/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.2.bb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2016-2018 Digi International. - -SUMMARY = "Trustfence command line tool" -SECTION = "console/tools" -LICENSE = "CLOSED" - -SRC_URI_arm = "${DIGI_PKG_SRC}/${BP}-${TUNE_ARCH}.tar.gz;name=arm" - -SRC_URI[arm.md5sum] = "443fe53304c2c3021150abc4dd7cf5d2" -SRC_URI[arm.sha256sum] = "d52b0ecd11d69a88341b01c1fdf9789500ef8ef9b0e8e12747aa85ded4d0b315" - -SRC_URI_aarch64 = "${DIGI_PKG_SRC}/${BP}-${TUNE_ARCH}.tar.gz;name=aarch64" - -SRC_URI[aarch64.md5sum] = "4608cc2594ac222578575e5ca4aecc1c" -SRC_URI[aarch64.sha256sum] = "f599e8627f798dcb43254ec52200d4d406662ad0fb79b95e57f75da870828625" - -inherit bin_package diff --git a/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.3.bb b/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.3.bb new file mode 100644 index 000000000..fb9d7a042 --- /dev/null +++ b/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.3.bb @@ -0,0 +1,17 @@ +# Copyright (C) 2016-2019 Digi International. + +SUMMARY = "Trustfence command line tool" +SECTION = "console/tools" +LICENSE = "CLOSED" + +SRC_URI_arm = "${DIGI_PKG_SRC}/${BP}-${TUNE_ARCH}.tar.gz;name=arm" + +SRC_URI[arm.md5sum] = "ef253e2c781d76820f38832ceec22ada" +SRC_URI[arm.sha256sum] = "5fc478f76848b438cc28cbdc7f8eabd63f7db4b2998a5a46d75602a80365a596" + +SRC_URI_aarch64 = "${DIGI_PKG_SRC}/${BP}-${TUNE_ARCH}.tar.gz;name=aarch64" + +SRC_URI[aarch64.md5sum] = "a109efb8a2c7b57f2e83136ada24938d" +SRC_URI[aarch64.sha256sum] = "ddb9cb94b4ffa182e479cfbcc0f57774a6c68ac813b4af747aa493c259970c5b" + +inherit bin_package diff --git a/meta-digi-dey/recipes-digi/dey-examples/awsiotsdk-demo_git.bb b/meta-digi-dey/recipes-digi/dey-examples/awsiotsdk-demo_git.bb index 6b9a696a6..1c3ee5f33 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/awsiotsdk-demo_git.bb +++ b/meta-digi-dey/recipes-digi/dey-examples/awsiotsdk-demo_git.bb @@ -16,8 +16,6 @@ AWS_USER_LED_ccimx6ulsbc ?= "488" AWS_USER_LED_ccimx6sbc ?= "34" AWS_USER_LED_ccimx6qpsbc ?= "34" -SRC_URI = "${DEY_EXAMPLES_GIT_URI};branch=${SRCBRANCH}" - S = "${WORKDIR}/git/awsiot-sample" inherit aws-iot pkgconfig diff --git a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-bt-gatt-server.bb b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-bt-gatt-server.bb index c91792622..dfb5fa273 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-bt-gatt-server.bb +++ b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-bt-gatt-server.bb @@ -11,8 +11,6 @@ inherit bluetooth DEPENDS = "${BLUEZ}" -SRC_URI = "${DEY_EXAMPLES_GIT_URI};branch=${SRCBRANCH}" - S = "${WORKDIR}/git/ble-gatt-server-example" do_install() { diff --git a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-caamblob.bb b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-caamblob.bb index a5d40e17b..c211b02ca 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-caamblob.bb +++ b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-caamblob.bb @@ -7,8 +7,6 @@ SECTION = "examples" LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" -SRC_URI = "${DEY_EXAMPLES_GIT_URI};branch=${SRCBRANCH}" - S = "${WORKDIR}/git/caam-blob-example" inherit pkgconfig diff --git a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-cryptochip.bb b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-cryptochip.bb index ba7235f4d..685ba4fc4 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-cryptochip.bb +++ b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-cryptochip.bb @@ -9,8 +9,6 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425 DEPENDS = "cryptoauthlib" -SRC_URI = "${DEY_EXAMPLES_GIT_URI};branch=${SRCBRANCH}" - S = "${WORKDIR}/git/cryptochip-get-random" inherit pkgconfig diff --git a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-digiapix.bb b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-digiapix.bb index f5551e11e..14945028e 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-digiapix.bb +++ b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-digiapix.bb @@ -9,8 +9,6 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/ISC;md5=f3b90e78ea0cffb20bf5cca DEPENDS = "libdigiapix" -SRC_URI = "${DEY_EXAMPLES_GIT_URI};branch=${SRCBRANCH}" - S = "${WORKDIR}/git" inherit pkgconfig diff --git a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-src.inc b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-src.inc index 6a9e2b579..ba8ece33b 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-src.inc +++ b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-src.inc @@ -7,3 +7,5 @@ DEY_EXAMPLES_STASH = "${DIGI_MTK_GIT}dey/dey-examples.git;protocol=ssh" DEY_EXAMPLES_GITHUB = "${DIGI_GITHUB_GIT}/dey-examples.git;protocol=https" DEY_EXAMPLES_GIT_URI ?= "${@oe.utils.conditional('DIGI_INTERNAL_GIT', '1' , '${DEY_EXAMPLES_STASH}', '${DEY_EXAMPLES_GITHUB}', d)}" + +SRC_URI = "${DEY_EXAMPLES_GIT_URI};branch=${SRCBRANCH}" diff --git a/meta-digi-dey/recipes-graphics/wayland/weston/0001-make-error-portable.patch b/meta-digi-dey/recipes-graphics/wayland/weston/0001-make-error-portable.patch index dc6fbaab9..3adc358a6 100644 --- a/meta-digi-dey/recipes-graphics/wayland/weston/0001-make-error-portable.patch +++ b/meta-digi-dey/recipes-graphics/wayland/weston/0001-make-error-portable.patch @@ -1,4 +1,3 @@ -From 6ef33e86557c59b31c9b731c0360ec1d404cc801 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 29 May 2015 20:56:00 -0700 Subject: [PATCH] make error() portable @@ -17,7 +16,7 @@ Upstream-Status: Submitted create mode 100644 libweston/weston-error.h diff --git a/configure.ac b/configure.ac -index 9d98e84..8f6b80d 100644 +index 9d98e84bcf9e..8f6b80d932a7 100644 --- a/configure.ac +++ b/configure.ac @@ -109,6 +109,8 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[], @@ -31,7 +30,7 @@ index 9d98e84..8f6b80d 100644 # check for libdrm as a build-time dependency only diff --git a/libweston/weston-error.h b/libweston/weston-error.h new file mode 100644 -index 0000000..2089d02 +index 000000000000..2089d02c2892 --- /dev/null +++ b/libweston/weston-error.h @@ -0,0 +1,20 @@ @@ -56,7 +55,7 @@ index 0000000..2089d02 +#endif + diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c -index bf73e0d..9064439 100644 +index bf73e0d616a0..90644394309f 100644 --- a/libweston/weston-launch.c +++ b/libweston/weston-launch.c @@ -33,7 +33,6 @@ diff --git a/meta-digi-dey/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/meta-digi-dey/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch index cbb1c3271..f3bccf44f 100644 --- a/meta-digi-dey/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch +++ b/meta-digi-dey/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch @@ -1,4 +1,3 @@ -From d5fb8567868866665502106def90017243a968a8 Mon Sep 17 00:00:00 2001 From: Tom Hochstein Date: Wed, 22 Feb 2017 15:53:30 +0200 Subject: [PATCH] weston-launch: Provide a default version that doesn't require @@ -21,7 +20,7 @@ Signed-off-by: Jussi Kukkonen 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac -index 8f6b80d..603fcb3 100644 +index 8f6b80d932a7..603fcb3ee5ab 100644 --- a/configure.ac +++ b/configure.ac @@ -494,13 +494,17 @@ AC_ARG_ENABLE(resize-optimization, @@ -53,7 +52,7 @@ index 8f6b80d..603fcb3 100644 systemd notify support ${enable_systemd_notify} diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c -index 9064439..c6abe92 100644 +index 90644394309f..c6abe92877d5 100644 --- a/libweston/weston-launch.c +++ b/libweston/weston-launch.c @@ -51,7 +51,9 @@ diff --git a/meta-digi-dey/recipes-graphics/wayland/weston/0003-weston-touch-calibrator-Advertise-the-touchscreen-ca.patch b/meta-digi-dey/recipes-graphics/wayland/weston/0003-weston-touch-calibrator-Advertise-the-touchscreen-ca.patch index 7ea07ed64..1e3a129c3 100644 --- a/meta-digi-dey/recipes-graphics/wayland/weston/0003-weston-touch-calibrator-Advertise-the-touchscreen-ca.patch +++ b/meta-digi-dey/recipes-graphics/wayland/weston/0003-weston-touch-calibrator-Advertise-the-touchscreen-ca.patch @@ -1,4 +1,3 @@ -From 46843c8681ddafbea6f491b7af4de6529e93f5bd Mon Sep 17 00:00:00 2001 From: Jun Zhu Date: Sun, 30 Sep 2018 15:31:26 +0800 Subject: [PATCH] weston-touch-calibrator: Advertise the touchscreen calibrator @@ -15,12 +14,12 @@ Signed-off-by: Jun Zhu 1 file changed, 3 insertions(+) diff --git a/weston.ini.in b/weston.ini.in -index 83dd56e..6e20e11 100644 +index d9094b1f58f5..8adcc646a30b 100644 --- a/weston.ini.in +++ b/weston.ini.in -@@ -3,6 +3,9 @@ - idle-time=0 - #use-g2d=1 +@@ -7,6 +7,9 @@ idle-time=0 + #[shell] + #size=1920x1080 +[libinput] +touchscreen_calibrator=true diff --git a/meta-digi-dey/recipes-multimedia/alsa/imx-alsa-plugins_git.bb b/meta-digi-dey/recipes-multimedia/alsa/imx-alsa-plugins_git.bb new file mode 100644 index 000000000..a642c563b --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/alsa/imx-alsa-plugins_git.bb @@ -0,0 +1,37 @@ +# Copyright (C) 2013-2016 Freescale Semiconductor +# Copyright (C) 2017-2019 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "Freescale alsa-lib plugins" +LICENSE = "GPLv2" +SECTION = "multimedia" +DEPENDS = "alsa-lib" + +# For backwards compatibility +PROVIDES += "fsl-alsa-plugins" +RREPLACES_${PN} = "fsl-alsa-plugins" +RPROVIDES_${PN} = "fsl-alsa-plugins" +RCONFLICTS_${PN} = "fsl-alsa-plugins" + +LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit autotools pkgconfig use-imx-headers + +IMXALSA_SRC ?= "git://source.codeaurora.org/external/imx/imx-alsa-plugins.git;protocol=https" +SRCBRANCH = "MM_04.04.07_1906_L4.14.98" + +SRC_URI = "${IMXALSA_SRC};branch=${SRCBRANCH}" +SRCREV = "cde60d68ab2acee913dbfacb8aabb53d87dd3e38" +S = "${WORKDIR}/git" + +INCLUDE_DIR = "-I${STAGING_INCDIR_IMX}" + +EXTRA_OECONF = "CFLAGS="${INCLUDE_DIR}"" + +INSANE_SKIP_${PN} = "dev-so" + +FILES_${PN} += "${libdir}/alsa-lib/libasound_*.so" +FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug" +FILES_${PN}-dev += "${libdir}/alsa-lib/*.la" + +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" diff --git a/meta-digi-dey/recipes-multimedia/alsa/imx-alsa-plugins_git.bbappend b/meta-digi-dey/recipes-multimedia/alsa/imx-alsa-plugins_git.bbappend new file mode 100644 index 000000000..18d480d34 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/alsa/imx-alsa-plugins_git.bbappend @@ -0,0 +1,7 @@ +# Copyright (C) 2019, Digi International Inc. + +# ccimx6/ccimx6qp platforms use kernel v4.9, which is incompatible with the +# latest revision of the imx-alsa-plugins code due to UAPI changes. For these +# platforms, use an older revision which is functionally the same, but using +# the v4.9 UAPI. +SRCREV_ccimx6 = "9a63071e7734bd164017f3761b8d1944c017611f" diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-init b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-init new file mode 100644 index 000000000..14096506d --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-init @@ -0,0 +1,11 @@ +#!/bin/sh + +# Export the XDG_RUNTIME_DIR and DBUS_SESSION_BUS_ADDRESS variables +# prior to starting pulseaudio. XDG_RUNTIME_DIR is sourced from a +# different file depending on the backend (xwayland or x11). +[ -f "/etc/profile.d/weston.sh" ] && source /etc/profile.d/weston.sh +[ -f "/etc/X11/Xsession.d/13xdgbasedirs.sh" ] && source /etc/X11/Xsession.d/13xdgbasedirs.sh + +export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus + +pulseaudio --start diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-system.service b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-system.service new file mode 100644 index 000000000..f1fa28d69 --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-system.service @@ -0,0 +1,11 @@ +[Unit] +Description=System-wide sound service +After=dbus.service + +[Service] +Type=forking +ExecStart=/etc/pulseaudio-init +ExecStop=kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend index 3ef776924..6246227fc 100644 --- a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend +++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend @@ -30,6 +30,8 @@ SRC_URI_append = " \ ${@oe.utils.conditional('SOUND_CARD', 'sgtl5000', '${CFG_SGTL5000}', '', d)} \ ${@oe.utils.conditional('SOUND_CARD', 'max98089', '${CFG_MAX98089}', '', d)} \ ${@oe.utils.conditional('AUDIO_HDMI', 'yes', '${CFG_HDMI}', '', d)} \ + file://pulseaudio-init \ + file://pulseaudio-system.service \ " SRC_URI_append_ccimx6ulsbc = " \ @@ -38,6 +40,11 @@ SRC_URI_append_ccimx6ulsbc = " \ EXTRA_OECONF_append_ccimx6 = " --disable-memfd" +FILES_${PN}-server_append = " ${systemd_unitdir}/* ${sysconfdir}/pulseaudio-init" + +SYSTEMD_SERVICE_${PN}-server = "pulseaudio-system.service" +SYSTEMD_PACKAGES = "${PN}-server" + do_install_append() { install -d ${D}${datadir}/pulseaudio/alsa-mixer/profile-sets install -m 0644 ${WORKDIR}/${SOUND_CARD}/dey-audio-*.conf ${D}${datadir}/pulseaudio/alsa-mixer/profile-sets @@ -45,6 +52,12 @@ do_install_append() { install -d ${D}${base_libdir}/udev/rules.d install -m 0644 ${WORKDIR}/${SOUND_CARD}/90-pulseaudio.rules ${D}${base_libdir}/udev/rules.d + install -d ${D}${sysconfdir} + install -m 0755 ${WORKDIR}/pulseaudio-init ${D}/${sysconfdir} + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/pulseaudio-system.service ${D}/${systemd_unitdir}/system + # Configuration files for HDMI sound card if [ "${AUDIO_HDMI}" = "yes" ]; then install -d ${D}${sysconfdir}/udev/scripts