diff --git a/README.md b/README.md index 9f2c2e1c3..6ef239754 100644 --- a/README.md +++ b/README.md @@ -67,11 +67,19 @@ Documentation is available online on the Digi documentation site: * Release based on [Yocto 2.2 (Morty)](https://www.yoctoproject.org/downloads/core/morty22) including: * New toolchain based on GCC-6.2.0 and GLIBC-2.24 * Updated Qt 5.7 - * Cellular support, including the new Quectel EC21 cellular modem + * Updated ModemManager with validated support for: + * Digi's XBee Cellular LTE Cat 1 (USA/Verizon), with P/N XBC-V1-UT-001 + * Telit's LE910 and HE910 + * Huawei's ME909u + * Quectel's EC21 + * Modified default networking settings: + * Defalt to dynamic IP addresses assignments + * Default station and softAP concurrent wireless mode * TrustFence enabled * Remote manager * Local and remote manager firmware update * Package upgrades and security fixes + * U-boot support for 1GB DDR3 RAM on CC6UL # Known Issues and Limitations @@ -94,6 +102,15 @@ boot a signed U-Boot only. control. To work around this issue, UART1 of these SOM versions has been configured to operate at 115200 bps and without hardware flow control, reducing the maximum throughput of this interface. +* When using wireless concurrent mode as the wireless interface is shared + between several different functionalities performance is reduced. +* When using wireless concurrent mode Digi recommends to keep the different + modes on the same frequency channels. For example, when configuring access + point mode on channel 36 on band A, the recommendation would be to connect + to the same channel both in station mode and WiFi direct so that the radio + performance is optimized +* When working as an access point, DFS capable channels in band A are not + currently supported. ## Digi ConnectCore 6 diff --git a/meta-digi-arm/conf/machine/ccimx6ulsbc.conf b/meta-digi-arm/conf/machine/ccimx6ulsbc.conf index f3448a6e5..224813415 100644 --- a/meta-digi-arm/conf/machine/ccimx6ulsbc.conf +++ b/meta-digi-arm/conf/machine/ccimx6ulsbc.conf @@ -7,7 +7,8 @@ include conf/machine/include/ccimx6ul.inc # U-Boot configurations # Last one is the default (the one the symlinks point at) -UBOOT_CONFIG ??= "ccimx6ulsbc" +UBOOT_CONFIG ??= "ccimx6ulsbc1GB ccimx6ulsbc" +UBOOT_CONFIG[ccimx6ulsbc1GB] = "ccimx6ulsbc1GB_defconfig" UBOOT_CONFIG[ccimx6ulsbc] = "ccimx6ulsbc_defconfig" KERNEL_DEVICETREE ?= " \ diff --git a/meta-digi-arm/conf/machine/ccimx6ulstarter.conf b/meta-digi-arm/conf/machine/ccimx6ulstarter.conf index 184b980a8..317b38ee5 100644 --- a/meta-digi-arm/conf/machine/ccimx6ulstarter.conf +++ b/meta-digi-arm/conf/machine/ccimx6ulstarter.conf @@ -7,7 +7,8 @@ include conf/machine/include/ccimx6ul.inc # U-Boot configurations # Last one is the default (the one the symlinks point at) -UBOOT_CONFIG ??= "ccimx6ulstarter" +UBOOT_CONFIG ??= "ccimx6ulstarter1GB ccimx6ulstarter" +UBOOT_CONFIG[ccimx6ulstarter1GB] = "ccimx6ulstarter1GB_defconfig" UBOOT_CONFIG[ccimx6ulstarter] = "ccimx6ulstarter_defconfig" KERNEL_DEVICETREE ?= " \ 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 517869ccf..6bf486f38 100644 --- a/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm.bb +++ b/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm.bb @@ -19,8 +19,6 @@ FW_QCA6564-WIFI = " \ file://otp30.bin \ file://qwlan30.bin \ file://utf30.bin \ - file://wlan/cfg.dat \ - file://wlan/qcom_cfg.ini \ " SRC_URI = " \ @@ -41,7 +39,7 @@ do_install() { ${D}${base_libdir}/firmware/qca # Wifi firmware - install -d ${D}${base_libdir}/firmware/wlan + install -d ${D}${base_libdir}/firmware install -m 0644 \ bdwlan30_US.bin \ bdwlan30_World.bin \ @@ -50,10 +48,6 @@ do_install() { qwlan30.bin \ utf30.bin \ ${D}${base_libdir}/firmware - install -m 0644 \ - wlan/cfg.dat \ - wlan/qcom_cfg.ini \ - ${D}${base_libdir}/firmware/wlan } # Do not create empty debug and development packages (PN-dbg PN-dev PN-staticdev) diff --git a/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/bdwlan30_US.bin b/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/bdwlan30_US.bin index de39f2ebd..a0ada33f0 100644 Binary files a/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/bdwlan30_US.bin and b/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/bdwlan30_US.bin differ diff --git a/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/bdwlan30_World.bin b/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/bdwlan30_World.bin index 23e8469f7..65f13b87e 100644 Binary files a/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/bdwlan30_World.bin and b/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/bdwlan30_World.bin differ diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulsbc/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulsbc/boot.txt index ae259dac9..41fabd40f 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulsbc/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulsbc/boot.txt @@ -11,7 +11,7 @@ else # # Set device tree filename depending on the hardware variant # - if test "${module_variant}" = "0x02"; then + if test "${module_variant}" = "0x02" || test "${module_variant}" = "0x04"; then setenv fdt_file zImage-imx6ul-ccimx6ulsbc-wb.dtb elif test "${module_variant}" = "0x03"; then setenv fdt_file zImage-imx6ul-ccimx6ulsbc.dtb diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulsbc/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulsbc/install_linux_fw_sd.txt index 2240940a9..45907a03c 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulsbc/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulsbc/install_linux_fw_sd.txt @@ -19,8 +19,36 @@ if test $? -eq 1; then exit; fi +# Determine U-Boot file to program basing on module variant +if test -n "${module_variant}"; then + if test "${module_variant}" = "0x02" || test "${module_variant}" = "0x03"; then + setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc.imx; + elif test "${module_variant}" = "0x04"; then + setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc1GB.imx; + fi +fi +# Use 'test -n ...' because 'test -z ...' does not work well on old versions of +# u-boot when the checked value is empty. +if test -n "${INSTALL_UBOOT_FILENAME}"; then + true; +else + echo ""; + echo "[ERROR] Cannot determine U-Boot file for this module!"; + echo ""; + echo "1. Set variable 'INSTALL_UBOOT_FILENAME' depending on your ConnectCore 6UL variant:"; + echo " - For a SOM with 1GB DDR3, run:"; + echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc1GB.imx"; + echo " - For a SOM with 256MB DDR3, run:"; + echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc.imx"; + echo ""; + echo "2. Run the install script again."; + echo ""; + echo "Aborted"; + echo ""; + exit; +fi; + setenv INSTALL_MMCDEV 0 -setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc.imx setenv INSTALL_LINUX_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulsbc.boot.ubifs setenv INSTALL_RECOVERY_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulsbc.recovery.ubifs setenv INSTALL_ROOTFS_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulsbc.ubifs diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulstarter/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulstarter/boot.txt index 728e6e4c7..875f453de 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulstarter/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulstarter/boot.txt @@ -11,7 +11,7 @@ else # # Set device tree filename depending on the hardware variant # - if test "${module_variant}" = "0x02"; then + if test "${module_variant}" = "0x02" || test "${module_variant}" = "0x04"; then setenv fdt_file zImage-imx6ul-ccimx6ulstarter-wb.dtb elif test "${module_variant}" = "0x03"; then setenv fdt_file zImage-imx6ul-ccimx6ulstarter.dtb diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulstarter/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulstarter/install_linux_fw_sd.txt index 24ba14447..9720807f2 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulstarter/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey-2015.04/ccimx6ulstarter/install_linux_fw_sd.txt @@ -19,8 +19,36 @@ if test $? -eq 1; then exit; fi +# Determine U-Boot file to program basing on module variant +if test -n "${module_variant}"; then + if test "${module_variant}" = "0x02" || test "${module_variant}" = "0x03"; then + setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulstarter.imx; + elif test "${module_variant}" = "0x04"; then + setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulstarter1GB.imx; + fi +fi +# Use 'test -n ...' because 'test -z ...' does not work well on old versions of +# u-boot when the checked value is empty. +if test -n "${INSTALL_UBOOT_FILENAME}"; then + true; +else + echo ""; + echo "[ERROR] Cannot determine U-Boot file for this module!"; + echo ""; + echo "1. Set variable 'INSTALL_UBOOT_FILENAME' depending on your ConnectCore 6UL variant:"; + echo " - For a SOM with 1GB DDR3, run:"; + echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulstarter1GB.imx"; + echo " - For a SOM with 256MB DDR3, run:"; + echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulstarter.imx"; + echo ""; + echo "2. Run the install script again."; + echo ""; + echo "Aborted"; + echo ""; + exit; +fi; + setenv INSTALL_MMCDEV 0 -setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulstarter.imx setenv INSTALL_LINUX_FILENAME core-image-base-ccimx6ulstarter.boot.ubifs setenv INSTALL_RECOVERY_FILENAME core-image-base-ccimx6ulstarter.recovery.ubifs setenv INSTALL_ROOTFS_FILENAME core-image-base-ccimx6ulstarter.ubifs diff --git a/meta-digi-arm/recipes-digi/mca/mca-tool_1.3.bb b/meta-digi-arm/recipes-digi/mca/mca-tool_1.6.bb similarity index 52% rename from meta-digi-arm/recipes-digi/mca/mca-tool_1.3.bb rename to meta-digi-arm/recipes-digi/mca/mca-tool_1.6.bb index fb130b91e..86ed5c3e1 100644 --- a/meta-digi-arm/recipes-digi/mca/mca-tool_1.3.bb +++ b/meta-digi-arm/recipes-digi/mca/mca-tool_1.6.bb @@ -1,4 +1,4 @@ -# Copyright (C) 2016 Digi International. +# Copyright (C) 2016, 2017 Digi International. SUMMARY = "MCA firmware management tool" SECTION = "console/tools" @@ -7,11 +7,13 @@ LICENSE = "CLOSED" PKGNAME = "mca_tool" SRC_URI = "${DIGI_PKG_SRC}/${PKGNAME}-${PV}.tar.gz" -SRC_URI[md5sum] = "d54692090bf0820e6116364822f6433f" -SRC_URI[sha256sum] = "e8267e66ba496a1e77b2dec70d6555bdeb8e06b267e776c86b9d4b01e9d13eb5" +SRC_URI[md5sum] = "20992b6b30904ee4d75d196c957077e0" +SRC_URI[sha256sum] = "49458475dd5df11f0c4f4593ffc930fbcdaa457120f73ab18587d711eb9036f6" S = "${WORKDIR}/${PKGNAME}-${PV}" inherit bin_package +INSANE_SKIP_${PN} = "already-stripped" + COMPATIBLE_MACHINE = "(ccimx6ul)" diff --git a/meta-digi-arm/recipes-kernel/kernel-module-qualcomm/kernel-module-qualcomm.bb b/meta-digi-arm/recipes-kernel/kernel-module-qualcomm/kernel-module-qualcomm.bb index 8208088ed..ef6e6e3c2 100644 --- a/meta-digi-arm/recipes-kernel/kernel-module-qualcomm/kernel-module-qualcomm.bb +++ b/meta-digi-arm/recipes-kernel/kernel-module-qualcomm/kernel-module-qualcomm.bb @@ -42,11 +42,16 @@ do_install_append() { install -m 0755 ${WORKDIR}/qualcomm-pre-up ${D}${sysconfdir}/network/if-pre-up.d/qualcomm install -d ${D}${sysconfdir}/modprobe.d install -m 0644 ${WORKDIR}/modprobe-qualcomm.conf ${D}${sysconfdir}/modprobe.d/qualcomm.conf + install -d ${D}${base_libdir}/firmware/wlan/ + install -m 0644 ${WORKDIR}/git/firmware_bin/WCNSS_cfg.dat ${D}${base_libdir}/firmware/wlan/cfg.dat + install -m 0644 ${WORKDIR}/git/firmware_bin/WCNSS_qcom_cfg.ini ${D}${base_libdir}/firmware/wlan/qcom_cfg.ini } FILES_${PN} += " \ ${sysconfdir}/network/if-pre-up.d/qualcomm \ ${sysconfdir}/modprobe.d/qualcomm.conf \ + ${base_libdir}/firmware/wlan/cfg.dat \ + ${base_libdir}/firmware/wlan/qcom_cfg.ini \ " COMPATIBLE_MACHINE = "(ccimx6ul)" diff --git a/meta-digi-arm/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv/0003-gpu-Get-GPU-reserved-memory-from-DT.patch b/meta-digi-arm/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv/0003-gpu-Get-GPU-reserved-memory-from-DT.patch new file mode 100644 index 000000000..3655df14e --- /dev/null +++ b/meta-digi-arm/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv/0003-gpu-Get-GPU-reserved-memory-from-DT.patch @@ -0,0 +1,38 @@ +From: Mike Engel +Date: Tue, 11 Apr 2017 11:13:23 +0200 +Subject: [PATCH] gpu: Get GPU reserved memory from DT. + +This commit adds support to specify the GPU reserved memory in +the DT. + +Signed-off-by: Mike Engel + +https://jira.digi.com/browse/DEL-3868 +--- + .../linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/kernel-module-imx-gpu-viv-src/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c b/kernel-module-imx-gpu-viv-src/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c +index dc7c976..fd2dbd3 100644 +--- a/kernel-module-imx-gpu-viv-src/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c ++++ b/kernel-module-imx-gpu-viv-src/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c +@@ -444,7 +444,7 @@ gckPLATFORM_AdjustParam( + Args->registerMemSizeVG = res->end - res->start + 1; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "contiguous_mem"); + if (res) + { +@@ -453,8 +453,6 @@ gckPLATFORM_AdjustParam( + if( Args->contiguousSize == ~0U ) + Args->contiguousSize = res->end - res->start + 1; + } +-#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) +- Args->contiguousBase = 0; + #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0) + prop = of_get_property(dn, "contiguousbase", NULL); + if(prop) + + diff --git a/meta-digi-arm/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_%.bbappend b/meta-digi-arm/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_%.bbappend index 7e4262858..a6c6597d8 100644 --- a/meta-digi-arm/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_%.bbappend +++ b/meta-digi-arm/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_%.bbappend @@ -1,8 +1,9 @@ -# Copyright (C) 2015 Digi International +# Copyright (C) 2015-2017 Digi International FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" SRC_URI += " \ file://0001-mxc-gpu-use-recommended-values-for-minimum-GPU-frequ.patch \ file://0002-Use-busfreq-imx6.h-up-to-3.15-kernel.patch \ + file://0003-gpu-Get-GPU-reserved-memory-from-DT.patch \ " diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey-4.1/ccimx6ul/defconfig b/meta-digi-arm/recipes-kernel/linux/linux-dey-4.1/ccimx6ul/defconfig index c0161eb88..165bec2c8 100644 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey-4.1/ccimx6ul/defconfig +++ b/meta-digi-arm/recipes-kernel/linux/linux-dey-4.1/ccimx6ul/defconfig @@ -42,7 +42,6 @@ CONFIG_ARM_IMX6Q_CPUFREQ=y CONFIG_CPU_IDLE=y CONFIG_VFP=y CONFIG_NEON=y -CONFIG_BINFMT_MISC=m CONFIG_PM_DEBUG=y CONFIG_NET=y CONFIG_PACKET=y @@ -141,8 +140,6 @@ CONFIG_USB_NET_CDC_MBIM=y # CONFIG_USB_NET_ZAURUS is not set CONFIG_USB_NET_QMI_WWAN=y CONFIG_USB_SIERRA_NET=y -CONFIG_ATH_CARDS=m -CONFIG_ATH_DEBUG=y CONFIG_HOSTAP=y CONFIG_HOSTAP_FIRMWARE=y CONFIG_HOSTAP_FIRMWARE_NVRAM=y @@ -157,7 +154,7 @@ CONFIG_TOUCHSCREEN_FUSION_7_10=y CONFIG_TOUCHSCREEN_IMX6UL_TSC=y CONFIG_INPUT_MISC=y CONFIG_INPUT_MCA_CC6UL_PWRKEY=y -CONFIG_SERIO_SERPORT=m +# CONFIG_SERIO_SERPORT is not set # CONFIG_LEGACY_PTYS is not set # CONFIG_DEVKMEM is not set CONFIG_SERIAL_IMX=y @@ -167,8 +164,6 @@ CONFIG_FSL_OTP=y CONFIG_I2C_CHARDEV=y # CONFIG_I2C_HELPER_AUTO is not set CONFIG_I2C_ALGOBIT=y -CONFIG_I2C_ALGOPCF=m -CONFIG_I2C_ALGOPCA=m CONFIG_I2C_IMX=y CONFIG_SPI=y CONFIG_SPI_GPIO=y @@ -249,7 +244,6 @@ CONFIG_USB_CHIPIDEA_UDC=y CONFIG_USB_CHIPIDEA_HOST=y CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_QUALCOMM=y CONFIG_USB_SERIAL_SIERRAWIRELESS=y CONFIG_USB_SERIAL_OPTION=y @@ -257,25 +251,9 @@ CONFIG_USB_EHSET_TEST_FIXTURE=y CONFIG_NOP_USB_XCEIV=y CONFIG_USB_MXS_PHY=y CONFIG_USB_GADGET=y -CONFIG_USB_CONFIGFS=m -CONFIG_USB_CONFIGFS_SERIAL=y -CONFIG_USB_CONFIGFS_ACM=y -CONFIG_USB_CONFIGFS_OBEX=y -CONFIG_USB_CONFIGFS_NCM=y -CONFIG_USB_CONFIGFS_ECM=y -CONFIG_USB_CONFIGFS_ECM_SUBSET=y -CONFIG_USB_CONFIGFS_RNDIS=y -CONFIG_USB_CONFIGFS_EEM=y -CONFIG_USB_CONFIGFS_MASS_STORAGE=y -CONFIG_USB_CONFIGFS_F_LB_SS=y -CONFIG_USB_CONFIGFS_F_FS=y -CONFIG_USB_ZERO=m CONFIG_USB_ETH=m -CONFIG_USB_G_NCM=m -CONFIG_USB_GADGETFS=m CONFIG_USB_MASS_STORAGE=m CONFIG_USB_G_SERIAL=m -CONFIG_USB_CDC_COMPOSITE=m CONFIG_MMC=y CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_PLTFM=y @@ -326,7 +304,6 @@ CONFIG_NLS_DEFAULT="cp437" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y -CONFIG_NLS_ISO8859_15=m CONFIG_NLS_UTF8=y CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y @@ -335,7 +312,6 @@ CONFIG_MAGIC_SYSRQ=y # CONFIG_FTRACE is not set CONFIG_CRYPTO_USER=y CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=y @@ -361,9 +337,6 @@ CONFIG_CRYPTO_DEV_FSL_CAAM=y CONFIG_CRYPTO_DEV_FSL_CAAM_SM=y CONFIG_CRYPTO_DEV_FSL_CAAM_SECVIO=y CONFIG_CRC_T10DIF=y -CONFIG_CRC_ITU_T=m -CONFIG_CRC7=m -CONFIG_LIBCRC32C=m CONFIG_FONTS=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y diff --git a/meta-digi-dey/classes/dey-image-installer.bbclass b/meta-digi-dey/classes/dey-image-installer.bbclass index 9c29b4c65..e3d0f1f9e 100644 --- a/meta-digi-dey/classes/dey-image-installer.bbclass +++ b/meta-digi-dey/classes/dey-image-installer.bbclass @@ -22,8 +22,8 @@ generate_installer_zip () { # Get list of files to pack INSTALLER_FILELIST="${DEPLOY_DIR_IMAGE}/install_linux_fw_sd.scr" for ext in ${FSTYPES_WHITELIST}; do - if readlink -e "${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.${ext}" >/dev/null; then - INSTALLER_FILELIST="${INSTALLER_FILELIST} ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.${ext}" + if readlink -e "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${ext}" >/dev/null; then + INSTALLER_FILELIST="${INSTALLER_FILELIST} ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${ext}" fi done for ubconf in ${UBOOT_CONFIG}; do @@ -33,19 +33,20 @@ generate_installer_zip () { done # Create README file - cat >README.txt <<_EOF_ + cat >${IMGDEPLOYDIR}/README.txt <<_EOF_ Digi Embedded Yocto kit installer --------------------------------- _EOF_ - md5sum ${INSTALLER_FILELIST} | sed -e "s,${DEPLOY_DIR_IMAGE}/,,g" >> README.txt + md5sum ${INSTALLER_FILELIST} | sed -e "s,${DEPLOY_DIR_IMAGE}/,,g;s,${IMGDEPLOYDIR}/,,g" >> ${IMGDEPLOYDIR}/README.txt - # Pack the files - zip -j ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.installer.zip ${INSTALLER_FILELIST} README.txt + # Pack the files and remove the temporary readme file + zip -j ${IMGDEPLOYDIR}/${IMAGE_NAME}.installer.zip ${INSTALLER_FILELIST} ${IMGDEPLOYDIR}/README.txt + rm -f ${IMGDEPLOYDIR}/README.txt # Create the symlink - if [ -n "${IMAGE_LINK_NAME}" ] && [ -e "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.installer.zip" ]; then - ln -sf ${IMAGE_NAME}.installer.zip ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.installer.zip + if [ -n "${IMAGE_LINK_NAME}" ] && [ -e "${IMGDEPLOYDIR}/${IMAGE_NAME}.installer.zip" ]; then + ln -sf ${IMAGE_NAME}.installer.zip ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.installer.zip fi } diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5_5.41.bbappend b/meta-digi-dey/recipes-connectivity/bluez/bluez5_5.41.bbappend index 2bb3bf356..2e7c7e210 100644 --- a/meta-digi-dey/recipes-connectivity/bluez/bluez5_5.41.bbappend +++ b/meta-digi-dey/recipes-connectivity/bluez/bluez5_5.41.bbappend @@ -51,5 +51,6 @@ FILES_${PN}-init = "${sysconfdir}/init.d/bluetooth-init" INITSCRIPT_PACKAGES += "${PN}-init" INITSCRIPT_NAME_${PN}-init = "bluetooth-init" +INITSCRIPT_PARAMS_${PN}-init = "start 19 2 3 4 5 . stop 21 0 1 6 ." PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/meta-digi-dey/recipes-connectivity/hostapd/hostapd/ccimx6ul/hostapd.conf b/meta-digi-dey/recipes-connectivity/hostapd/hostapd/ccimx6ul/hostapd_wlan1.conf similarity index 93% rename from meta-digi-dey/recipes-connectivity/hostapd/hostapd/ccimx6ul/hostapd.conf rename to meta-digi-dey/recipes-connectivity/hostapd/hostapd/ccimx6ul/hostapd_wlan1.conf index 43ea0206a..94e4895be 100644 --- a/meta-digi-dey/recipes-connectivity/hostapd/hostapd/ccimx6ul/hostapd.conf +++ b/meta-digi-dey/recipes-connectivity/hostapd/hostapd/ccimx6ul/hostapd_wlan1.conf @@ -4,7 +4,7 @@ interface=wlan1 driver=nl80211 # WPA2-AES encryption -ssid=ap-wpa2aes_a +ssid=ap-wlan1-wpa2aes_a auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK diff --git a/meta-digi-dey/recipes-connectivity/hostapd/hostapd/hostapd.conf b/meta-digi-dey/recipes-connectivity/hostapd/hostapd/hostapd_wlan0.conf similarity index 93% rename from meta-digi-dey/recipes-connectivity/hostapd/hostapd/hostapd.conf rename to meta-digi-dey/recipes-connectivity/hostapd/hostapd/hostapd_wlan0.conf index 552971e25..ba479d91b 100644 --- a/meta-digi-dey/recipes-connectivity/hostapd/hostapd/hostapd.conf +++ b/meta-digi-dey/recipes-connectivity/hostapd/hostapd/hostapd_wlan0.conf @@ -4,7 +4,7 @@ interface=wlan0 driver=nl80211 # WPA2-AES encryption -ssid=ap-wpa2aes_a +ssid=ap-wlan0-wpa2aes_a auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK diff --git a/meta-digi-dey/recipes-connectivity/hostapd/hostapd/init b/meta-digi-dey/recipes-connectivity/hostapd/hostapd/init new file mode 100644 index 000000000..cfd6eee7b --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/hostapd/hostapd/init @@ -0,0 +1,59 @@ +#!/bin/sh +DAEMON=/usr/sbin/hostapd +NAME=hostapd +DESC="HOSTAP Daemon" +PIDFILE="/var/run/hostapd.${IFACE}.pid" +ARGS="/etc/hostapd_${IFACE}.conf" + +test -f $DAEMON || exit 0 + +set -e + +# source function library +. /etc/init.d/functions + +delay_stop() { + count=0 + while [ $count -lt 9 ] ; do + if pidof $DAEMON >/dev/null; then + sleep 1 + else + return 0 + fi + count=`expr $count + 1` + done + echo "Failed to stop $DESC." + return 1 +} + +case "$1" in + start) + echo -n "Starting $DESC: " + start-stop-daemon -S -x $DAEMON -m -p ${PIDFILE} -b -- $ARGS + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + start-stop-daemon -K --oknodo -x $DAEMON -p ${PIDFILE} + echo "$NAME." + ;; + restart) + $0 stop + delay_stop && $0 start + ;; + reload) + echo -n "Reloading $DESC: " + killall -HUP $(basename ${DAEMON}) + echo "$NAME." + ;; + status) + status $DAEMON + exit $? + ;; + *) + echo "Usage: $0 {start|stop|restart|reload|status}" + exit 1 + ;; +esac + +exit 0 diff --git a/meta-digi-dey/recipes-connectivity/hostapd/hostapd_%.bbappend b/meta-digi-dey/recipes-connectivity/hostapd/hostapd_%.bbappend index 08ff287bc..4134c7993 100644 --- a/meta-digi-dey/recipes-connectivity/hostapd/hostapd_%.bbappend +++ b/meta-digi-dey/recipes-connectivity/hostapd/hostapd_%.bbappend @@ -2,11 +2,19 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" -SRC_URI += "file://hostapd.conf" +SRC_URI_append = " file://hostapd_wlan0.conf" +SRC_URI_append_ccimx6ul = " file://hostapd_wlan1.conf" do_install_append() { - # Overwrite the default hostapd.conf with our custom file - install -m 0644 ${WORKDIR}/hostapd.conf ${D}${sysconfdir} + # Remove the default hostapd.conf + rm -f ${WORKDIR}/hostapd.conf + # Install custom hostapd_IFACE.conf file + install -m 0644 ${WORKDIR}/hostapd_wlan0.conf ${D}${sysconfdir} +} + +do_install_append_ccimx6ul() { + # Install custom hostapd_IFACE.conf file + install -m 0644 ${WORKDIR}/hostapd_wlan1.conf ${D}${sysconfdir} } # Do not autostart hostapd daemon, it will conflict with wpa-supplicant. diff --git a/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch b/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch new file mode 100644 index 000000000..e13404387 --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch @@ -0,0 +1,82 @@ +From 8333cf300f6010243117aae6da4b823d9d7f30b2 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 20 Oct 2016 04:42:26 +0000 +Subject: [PATCH] Detect clang + +Check for clang compiler since we need to disable +unused-function warning for clang, at same time +pass werror when checking for compiler options if +werror is enabled so spurious options do not get +enabled. Only the ones that are supported by given +compiler are accepted. + +Signed-off-by: Khem Raj +Upstream-Status: Pending + +--- + m4/compiler-warnings.m4 | 29 +++++++++++++++++++++++++---- + 1 file changed, 25 insertions(+), 4 deletions(-) + +diff --git a/m4/compiler-warnings.m4 b/m4/compiler-warnings.m4 +index 5ba490c884dc..92022746487f 100644 +--- a/m4/compiler-warnings.m4 ++++ b/m4/compiler-warnings.m4 +@@ -2,10 +2,30 @@ AC_DEFUN([LIBQMI_COMPILER_WARNINGS], + [AC_ARG_ENABLE(more-warnings, + AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]), + set_more_warnings="$enableval",set_more_warnings=error) ++ ++# Clang throws a lot of warnings when it does not understand a flag. Disable ++# this warning for now so other warnings are visible. ++AC_MSG_CHECKING([if compiling with clang]) ++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ ++#ifndef __clang__ ++ not clang ++#endif ++ ]])], ++ [CLANG=yes], ++ [CLANG=no] ++) ++AC_MSG_RESULT([$CLANG]) ++AS_IF([test "x$CLANG" = "xyes"], [CLANG_FLAGS=-Wno-error=unused-function]) ++CFLAGS="$CFLAGS $CLANG_FLAGS" ++LDFLAGS="$LDFLAGS $CLANG_FLAGS" ++ + AC_MSG_CHECKING(for more warnings) + if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then + AC_MSG_RESULT(yes) + CFLAGS="-Wall -std=gnu89 $CFLAGS" ++ if test "x$set_more_warnings" = xerror; then ++ WERROR="-Werror" ++ fi + + for option in -Wmissing-declarations -Wmissing-prototypes \ + -Wdeclaration-after-statement -Wstrict-prototypes \ +@@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then + -Wmissing-include-dirs -Waggregate-return \ + -Wformat-security -Wtype-limits; do + SAVE_CFLAGS="$CFLAGS" +- CFLAGS="$CFLAGS $option" ++ CFLAGS="$CFLAGS $option $WERROR" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + if test $has_option = no; then + CFLAGS="$SAVE_CFLAGS" ++ else ++ CFLAGS="$SAVE_CFLAGS $option" + fi + AC_MSG_RESULT($has_option) + unset has_option + unset SAVE_CFLAGS + done ++ CFLAGS="$CFLAGS $WERROR" + unset option +- if test "x$set_more_warnings" = xerror; then +- CFLAGS="$CFLAGS -Werror" +- fi ++ unset WERROR + else + AC_MSG_RESULT(no) + fi diff --git a/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-meta-digi-dey-Added-libqmi-patch-to-DMS-version-miss-match.patch b/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-meta-digi-dey-Added-libqmi-patch-to-DMS-version-miss-match.patch deleted file mode 100755 index edcfdb07f..000000000 --- a/meta-digi-dey/recipes-connectivity/libqmi/libqmi/0001-meta-digi-dey-Added-libqmi-patch-to-DMS-version-miss-match.patch +++ /dev/null @@ -1,74 +0,0 @@ -From: Mike Engel -Date: Wed, 15 Mar 2017 18:20:25 +0100 -Subject: [PATCH] meta-digi-dey: Added libqmi patch to DMS version miss match. - -Signed-off-by: Mike Engel ---- - .../src/libqmi-glib/qmi-device.c | 32 +++++++++++++++++----- - 1 file changed, 25 insertions(+), 7 deletions(-) - -diff --git a/src/libqmi-glib/qmi-device.c b/src/libqmi-glib/qmi-device.c -index 5cee156..ef636f0 100644 ---- a/src/libqmi-glib/qmi-device.c -+++ b/src/libqmi-glib/qmi-device.c -@@ -485,8 +485,10 @@ check_message_supported (QmiDevice *self, - GError **error) - { - const QmiMessageCtlGetVersionInfoOutputServiceListService *info; -- guint major = 0; -- guint minor = 0; -+ guint message_major = 0; -+ guint message_minor = 0; -+ guint device_major = 0; -+ guint device_minor = 0; - - /* If we didn't check supported services, just assume it is supported */ - if (!self->priv->supported_services) -@@ -498,7 +500,7 @@ check_message_supported (QmiDevice *self, - - /* If we cannot get in which version this message was introduced, we'll just - * assume it's supported */ -- if (!qmi_message_get_version_introduced (message, &major, &minor)) -+ if (!qmi_message_get_version_introduced (message, &message_major, &message_minor)) - return TRUE; - - /* Get version info. It MUST exist because we allowed creating a client -@@ -506,18 +508,34 @@ check_message_supported (QmiDevice *self, - info = find_service_version_info (self, qmi_message_get_service (message)); - g_assert (info != NULL); - g_assert (info->service == qmi_message_get_service (message)); -+ device_major = info->major_version; -+ device_minor = info->minor_version; -+ -+ /* Some device firmware versions (Quectel EC21) lie about their supported -+ * DMS version, so assume a reasonable DMS version if the WDS version is -+ * high enough */ -+ if (info->service == QMI_SERVICE_DMS && device_major == 1 && device_minor == 0) { -+ const QmiMessageCtlGetVersionInfoOutputServiceListService *wds; -+ -+ wds = find_service_version_info (self, QMI_SERVICE_WDS); -+ g_assert (wds != NULL); -+ if (wds->major_version >= 1 && wds->minor_version >= 9) { -+ device_major = 1; -+ device_minor = 3; -+ } -+ } - - /* If the version of the message is greater than the version of the service, - * report unsupported */ -- if (major > info->major_version || -- (major == info->major_version && -- minor > info->minor_version)) { -+ if (message_major > device_major || -+ (message_major == device_major && -+ message_minor > device_minor)) { - g_set_error (error, - QMI_CORE_ERROR, - QMI_CORE_ERROR_UNSUPPORTED, - "QMI service '%s' version '%u.%u' required, got version '%u.%u'", - qmi_service_get_string (qmi_message_get_service (message)), -- major, minor, -+ message_major, message_minor, - info->major_version, - info->minor_version); - return FALSE; diff --git a/meta-digi-dey/recipes-connectivity/libqmi/libqmi_%.bbappend b/meta-digi-dey/recipes-connectivity/libqmi/libqmi_%.bbappend deleted file mode 100644 index ba7df7d50..000000000 --- a/meta-digi-dey/recipes-connectivity/libqmi/libqmi_%.bbappend +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (C) 2017 Digi International Inc. - -FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" - -SRC_URI += " \ - file://0001-meta-digi-dey-Added-libqmi-patch-to-DMS-version-miss-match.patch \ -" - diff --git a/meta-digi-dey/recipes-connectivity/libqmi/libqmi_1.18.0.bb b/meta-digi-dey/recipes-connectivity/libqmi/libqmi_1.18.0.bb new file mode 100644 index 000000000..e732dae3a --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/libqmi/libqmi_1.18.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "libqmi is a library for talking to WWAN devices by QMI protocol" +DESCRIPTION = "libqmi is a glib-based library for talking to WWAN modems \ +and devices which speak the Qualcomm MSM Interface (QMI) protocol" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libqmi" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ +" + +DEPENDS = "glib-2.0 libgudev libmbim" + +inherit autotools pkgconfig bash-completion + +SRC_URI = " \ + http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \ + file://0001-Detect-clang.patch \ +" +SRC_URI[md5sum] = "25bae4e383ad77f491ad49b49e04fdcf" +SRC_URI[sha256sum] = "a0a42c55935e75a630208e2f70840bd4407f56fe1c5258f5b0f6c0aaedf88cec" diff --git a/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/0001-configure.ac-add-foreign-automake-option.patch b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/0001-configure.ac-add-foreign-automake-option.patch new file mode 100644 index 000000000..f9df8b367 --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/0001-configure.ac-add-foreign-automake-option.patch @@ -0,0 +1,25 @@ +From: Javier Viguera +Date: Thu, 6 Apr 2017 11:17:46 +0200 +Subject: [PATCH] configure.ac: add foreign automake option + +Needed to build the repository directly in Yocto, so the missing +autotools files are generated. + +Signed-off-by: Javier Viguera +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index c8a35d1b1a3f..24ed761d8e42 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -26,7 +26,7 @@ dnl----------------------------------------------------------------------------- + dnl autoconf, automake, libtool initialization + dnl + AC_INIT([ModemManager],[mm_version],[modemmanager-devel@lists.freedesktop.org],[ModemManager]) +-AM_INIT_AUTOMAKE([1.11.2 subdir-objects tar-ustar no-dist-gzip dist-xz -Wno-portability]) ++AM_INIT_AUTOMAKE([1.11.2 foreign subdir-objects tar-ustar no-dist-gzip dist-xz -Wno-portability]) + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + + AM_MAINTAINER_MODE([enable]) diff --git a/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/0001-telit-lock-unlock-CSIM-operations-by-default.patch b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/0001-telit-lock-unlock-CSIM-operations-by-default.patch deleted file mode 100644 index 07a55dbe2..000000000 --- a/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/0001-telit-lock-unlock-CSIM-operations-by-default.patch +++ /dev/null @@ -1,144 +0,0 @@ -From: Aleksander Morgado -Date: Wed, 15 Mar 2017 00:03:35 +0100 -Subject: [PATCH] telit: lock/unlock CSIM operations by default - -Wrap the AT+CSIM=XX commands between lock (CSIM=1) and -unlock (CSIM=0) operations. - -This seems to avoid the TTY lockup seen in several different Telit -modules. - -https://bugs.freedesktop.org/show_bug.cgi?id=100205 - -Reported-by: Penalva, Salvador -(cherry picked from commit 9384817a14c8706909f619e773a76edd65a0fdef) ---- - plugins/telit/mm-broadband-modem-telit.c | 69 +++++++++++++++++++++++++++++++- - 1 file changed, 68 insertions(+), 1 deletion(-) - -diff --git a/plugins/telit/mm-broadband-modem-telit.c b/plugins/telit/mm-broadband-modem-telit.c -index 8baf2cf..264dd58 100644 ---- a/plugins/telit/mm-broadband-modem-telit.c -+++ b/plugins/telit/mm-broadband-modem-telit.c -@@ -278,8 +278,17 @@ modem_load_supported_bands (MMIfaceModem *self, - } - - /*****************************************************************************/ --/* Load unlock retries (Modem interface) */ -+/* Load unlock retries (Modem interface) -+ * -+ * NOTE: the logic must make sure that LOAD_UNLOCK_RETRIES_STEP_UNLOCK is always -+ * run if LOAD_UNLOCK_RETRIES_STEP_LOCK has been run. Currently, the logic just -+ * runs all intermediate steps ignoring errors (i.e. not completing the -+ * operation if something fails), so the LOAD_UNLOCK_RETRIES_STEP_UNLOCK is -+ * always run. -+ */ - -+#define CSIM_LOCK_STR "+CSIM=1" -+#define CSIM_UNLOCK_STR "+CSIM=0" - #define CSIM_QUERY_PIN_RETRIES_STR "+CSIM=10,0020000100" - #define CSIM_QUERY_PUK_RETRIES_STR "+CSIM=10,002C000100" - #define CSIM_QUERY_PIN2_RETRIES_STR "+CSIM=10,0020008100" -@@ -288,10 +297,12 @@ modem_load_supported_bands (MMIfaceModem *self, - - typedef enum { - LOAD_UNLOCK_RETRIES_STEP_FIRST, -+ LOAD_UNLOCK_RETRIES_STEP_LOCK, - LOAD_UNLOCK_RETRIES_STEP_PIN, - LOAD_UNLOCK_RETRIES_STEP_PUK, - LOAD_UNLOCK_RETRIES_STEP_PIN2, - LOAD_UNLOCK_RETRIES_STEP_PUK2, -+ LOAD_UNLOCK_RETRIES_STEP_UNLOCK, - LOAD_UNLOCK_RETRIES_STEP_LAST - } LoadUnlockRetriesStep; - -@@ -328,6 +339,25 @@ modem_load_unlock_retries_finish (MMIfaceModem *self, - } - - static void -+csim_unlock_ready (MMBaseModem *self, -+ GAsyncResult *res, -+ LoadUnlockRetriesContext *ctx) -+{ -+ const gchar *response; -+ GError *error = NULL; -+ -+ /* Ignore errors */ -+ response = mm_base_modem_at_command_finish (self, res, &error); -+ if (!response) { -+ mm_warn ("Couldn't unlock SIM card: %s", error->message); -+ g_error_free (error); -+ } -+ -+ ctx->step++; -+ load_unlock_retries_step (ctx); -+} -+ -+static void - csim_query_ready (MMBaseModem *self, - GAsyncResult *res, - LoadUnlockRetriesContext *ctx) -@@ -370,6 +400,7 @@ csim_query_ready (MMBaseModem *self, - mm_unlock_retries_set (ctx->retries, MM_MODEM_LOCK_SIM_PUK2, unlock_retries); - break; - default: -+ g_assert_not_reached (); - break; - } - -@@ -379,12 +410,40 @@ next_step: - } - - static void -+csim_lock_ready (MMBaseModem *self, -+ GAsyncResult *res, -+ LoadUnlockRetriesContext *ctx) -+{ -+ const gchar *response; -+ GError *error = NULL; -+ -+ response = mm_base_modem_at_command_finish (self, res, &error); -+ if (!response) { -+ g_prefix_error (&error, "Couldn't lock SIM card: "); -+ g_simple_async_result_take_error (ctx->result, error); -+ load_unlock_retries_context_complete_and_free (ctx); -+ return; -+ } -+ -+ ctx->step++; -+ load_unlock_retries_step (ctx); -+} -+ -+static void - load_unlock_retries_step (LoadUnlockRetriesContext *ctx) - { - switch (ctx->step) { - case LOAD_UNLOCK_RETRIES_STEP_FIRST: - /* Fall back on next step */ - ctx->step++; -+ case LOAD_UNLOCK_RETRIES_STEP_LOCK: -+ mm_base_modem_at_command (MM_BASE_MODEM (ctx->self), -+ CSIM_LOCK_STR, -+ CSIM_QUERY_TIMEOUT, -+ FALSE, -+ (GAsyncReadyCallback) csim_lock_ready, -+ ctx); -+ break; - case LOAD_UNLOCK_RETRIES_STEP_PIN: - mm_base_modem_at_command (MM_BASE_MODEM (ctx->self), - CSIM_QUERY_PIN_RETRIES_STR, -@@ -417,6 +476,14 @@ load_unlock_retries_step (LoadUnlockRetriesContext *ctx) - (GAsyncReadyCallback) csim_query_ready, - ctx); - break; -+ case LOAD_UNLOCK_RETRIES_STEP_UNLOCK: -+ mm_base_modem_at_command (MM_BASE_MODEM (ctx->self), -+ CSIM_UNLOCK_STR, -+ CSIM_QUERY_TIMEOUT, -+ FALSE, -+ (GAsyncReadyCallback) csim_unlock_ready, -+ ctx); -+ break; - case LOAD_UNLOCK_RETRIES_STEP_LAST: - if (ctx->succeded_requests == 0) { - g_simple_async_result_set_error (ctx->result, diff --git a/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/0003-port-serial-add-B230400-and-B921600-missing-baudrate.patch b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/0003-port-serial-add-B230400-and-B921600-missing-baudrate.patch new file mode 100644 index 000000000..2eedc9ea2 --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/0003-port-serial-add-B230400-and-B921600-missing-baudrate.patch @@ -0,0 +1,33 @@ +From: Javier Viguera +Date: Wed, 19 Apr 2017 14:13:56 +0200 +Subject: [PATCH] port-serial: add B230400 and B921600 missing baudrates + +So MM can use them when opening a specific serial port. + +Upstream-Status: Pending + +Signed-off-by: Javier Viguera +--- + src/mm-port-serial.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/mm-port-serial.c b/src/mm-port-serial.c +index 04ab17fe1675..b6359d28acd3 100644 +--- a/src/mm-port-serial.c ++++ b/src/mm-port-serial.c +@@ -260,9 +260,15 @@ parse_baudrate (guint baudrate_num, + case 115200: + speed = B115200; + break; ++ case 230400: ++ speed = B230400; ++ break; + case 460800: + speed = B460800; + break; ++ case 921600: ++ speed = B921600; ++ break; + default: + return FALSE; + } diff --git a/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/78-mm-digi-xbee-cellular.rules b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/78-mm-digi-xbee-cellular.rules new file mode 100644 index 000000000..9fc89ca41 --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/78-mm-digi-xbee-cellular.rules @@ -0,0 +1,12 @@ +ACTION!="add|change|move", GOTO="mm_digi_xbee_cellular_modem_end" + +# By default, ModemManager expects a default baudrate of 57600bps. Different +# baudrates may be used by setting the ID_MM_TTY_BAUDRATE udev tag. + +# ConnectCore 6 SBC +DEVPATH=="/devices/soc0/soc.0/2100000.aips-bus/21f4000.serial/tty/ttymxc4", ENV{ID_MM_PLATFORM_DRIVER_PROBE}="1" + +# ConnectCore 6UL SBC Pro +DEVPATH=="/devices/platform/soc/2100000.aips-bus/21e8000.serial/tty/ttymxc1", ENV{ID_MM_PLATFORM_DRIVER_PROBE}="1" + +LABEL="mm_digi_xbee_cellular_modem_end" diff --git a/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/cellularifupdown b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/cellularifupdown index 88e2072aa..15e993c8d 100644 --- a/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/cellularifupdown +++ b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager/cellularifupdown @@ -7,8 +7,15 @@ POLLING_WAIT=5 [ -z "${IF_APN}" ] && exit 0 background_connect() { + # The XBee Cellular needs more time to settle down before MM is able + # to detect it. As the XBee is connected to a 'ttymxc' serial port, + # we check those ports to conditionally delay the launch of MM. + if echo "${IF_PORT}" | grep -qs ttymxc; then + sleep 25 + fi + # Ensure ModemManager is running - killall -0 ModemManager 2>/dev/null || ModemManager --log-file=/dev/null & + killall -0 ModemManager 2>/dev/null || ModemManager --log-file=/var/log/modemmanager.log & # Wait for modem detection while [ "${RETRIES}" -gt "0" ]; do diff --git a/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager_%.bbappend b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager_%.bbappend index 4b9ab0d6c..1a67116d7 100644 --- a/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager_%.bbappend +++ b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager_%.bbappend @@ -4,7 +4,7 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" SRC_URI += " \ file://cellularifupdown \ - file://0001-telit-lock-unlock-CSIM-operations-by-default.patch \ + file://78-mm-digi-xbee-cellular.rules \ " # 'polkit' depends on 'consolekit', and this requires 'x11' distro feature. So @@ -17,4 +17,8 @@ do_install_append() { install -d ${D}${sysconfdir}/network/if-pre-up.d/ ${D}${sysconfdir}/network/if-post-down.d/ install -m 0755 ${WORKDIR}/cellularifupdown ${D}${sysconfdir}/network/if-pre-up.d/ ln -sf ../if-pre-up.d/cellularifupdown ${D}${sysconfdir}/network/if-post-down.d/cellularifupdown + + # Install udev rules for XBee cellular + install -d ${D}${nonarch_base_libdir}/udev/rules.d + install -m 0644 ${WORKDIR}/78-mm-digi-xbee-cellular.rules ${D}${nonarch_base_libdir}/udev/rules.d/ } diff --git a/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager_git.bb b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager_git.bb new file mode 100644 index 000000000..620720075 --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/modemmanager/modemmanager_git.bb @@ -0,0 +1,45 @@ +SUMMARY = "ModemManager is a daemon controlling broadband devices/connections" +DESCRIPTION = "ModemManager is a DBus-activated daemon which controls mobile \ +broadband (2G/3G/4G) devices and connections" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/ModemManager/" +LICENSE = "GPL-2.0 & LGPL-2.1" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \ +" + +DEPENDS = "dbus-glib glib-2.0 intltool-native libgudev" + +PV = "1.7.0+git${SRCPV}" + +SRC_URI = " \ + git://anongit.freedesktop.org/git/ModemManager/ModemManager.git;protocol=https \ + file://0001-configure.ac-add-foreign-automake-option.patch \ + file://0003-port-serial-add-B230400-and-B921600-missing-baudrate.patch \ +" +SRCREV = "d09bc8baaa9fe93a72bb715530b1403a7a81c891" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "mbim qmi polkit \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ +" +PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,," +PACKAGECONFIG[polkit] = "--with-polkit=yes,--with-polkit=no,polkit" +PACKAGECONFIG[mbim] = "--with-mbim,--enable-mbim=no,libmbim" +PACKAGECONFIG[qmi] = "--with-qmi,--without-qmi,libqmi" + +inherit autotools bash-completion gettext gobject-introspection gtk-doc pkgconfig systemd vala + +FILES_${PN} += " \ + ${datadir}/icons \ + ${datadir}/polkit-1 \ + ${datadir}/dbus-1 \ + ${libdir}/ModemManager \ + ${systemd_unitdir}/system \ +" +FILES_${PN}-dev += "${libdir}/ModemManager/*.la" +FILES_${PN}-staticdev += "${libdir}/ModemManager/*.a" +FILES_${PN}-dbg += "${libdir}/ModemManager/.debug" + +SYSTEMD_SERVICE_${PN} = "ModemManager.service" diff --git a/meta-digi-dey/recipes-core/busybox/busybox-1.24.1/ccimx6/suspend b/meta-digi-dey/recipes-core/busybox/busybox-1.24.1/ccimx6/suspend index 6888311e4..ceded7b74 100755 --- a/meta-digi-dey/recipes-core/busybox/busybox-1.24.1/ccimx6/suspend +++ b/meta-digi-dey/recipes-core/busybox/busybox-1.24.1/ccimx6/suspend @@ -21,6 +21,7 @@ lockfile="/var/lock/${scriptname}.lock" lockfd="9" BT_INIT="/etc/init.d/bluetooth-init" +BT_DAEMON="/etc/init.d/bluetooth" usage() { printf "\nSuspend system to RAM memory\n" @@ -37,6 +38,7 @@ suspend_interfaces() { # Suspend bluetooth interface hciconfig hci0 2>&1 | grep -qs UP && up_bt_on_resume="1" + ${BT_DAEMON} stop >/dev/null ${BT_INIT} stop >/dev/null } @@ -47,7 +49,10 @@ resume_interfaces() { fi # Resume bluetooth interface - [ -n "${up_bt_on_resume}" ] && ${BT_INIT} start >/dev/null + if [ -n "${up_bt_on_resume}" ]; then + ${BT_INIT} start >/dev/null + ${BT_DAEMON} start >/dev/null + fi } enter_critical_section() { diff --git a/meta-digi-dey/recipes-core/busybox/busybox-1.24.1/ccimx6ul/suspend b/meta-digi-dey/recipes-core/busybox/busybox-1.24.1/ccimx6ul/suspend index e213f45fe..33086f979 100755 --- a/meta-digi-dey/recipes-core/busybox/busybox-1.24.1/ccimx6ul/suspend +++ b/meta-digi-dey/recipes-core/busybox/busybox-1.24.1/ccimx6ul/suspend @@ -21,6 +21,7 @@ lockfile="/var/lock/${scriptname}.lock" lockfd="9" BT_INIT="/etc/init.d/bluetooth-init" +BT_DAEMON="/etc/init.d/bluetooth" usage() { printf "\nSuspend system to RAM memory\n" @@ -40,6 +41,7 @@ suspend_interfaces() { # Suspend bluetooth interface hciconfig hci0 2>&1 | grep -qs UP && up_bt_on_resume="1" + ${BT_DAEMON} stop >/dev/null ${BT_INIT} stop >/dev/null } @@ -50,7 +52,10 @@ resume_interfaces() { fi # Resume bluetooth interface - [ -n "${up_bt_on_resume}" ] && ${BT_INIT} start >/dev/null + if [ -n "${up_bt_on_resume}" ]; then + ${BT_INIT} start >/dev/null + ${BT_DAEMON} start >/dev/null + fi } enter_critical_section() { diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend index 9a37c83b8..99a1c3890 100644 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend +++ b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend @@ -1,4 +1,4 @@ -# Copyright (C) 2013 Digi International. +# Copyright (C) 2013-2017 Digi International Inc. FILESEXTRAPATHS_prepend := "${THISDIR}/${BP}:" @@ -82,7 +82,6 @@ do_install_append() { if [ -n "${CELLULAR_PORT}" ]; then sed -i -e 's/^\([[:blank:]]*\)port/\1port ${CELLULAR_PORT}/g' ${D}${sysconfdir}/network/interfaces - sed -i -e 's,dhcp,manual,g' ${D}${sysconfdir}/network/interfaces else sed -i -e '/^[[:blank:]]*port/d' ${D}${sysconfdir}/network/interfaces fi @@ -139,3 +138,21 @@ do_install_append_ccimx6ul() { sed -i -e "s,##WLAN1_STATIC_GATEWAY##,${WLAN1_STATIC_GATEWAY},g" ${D}${sysconfdir}/network/interfaces sed -i -e "s,##WLAN1_STATIC_DNS##,${WLAN1_STATIC_DNS},g" ${D}${sysconfdir}/network/interfaces } + +# Disable wireless interfaces on first boot for non-wireless variants +pkg_postinst_${PN}() { + if [ -n "$D" ]; then + exit 1 + fi + + if [ ! -d "/proc/device-tree/wireless" ]; then + sed -i -e '/^auto wlan/{s,^,#,g};/^auto p2p/{s,^,#,g}' /etc/network/interfaces + fi + + # Create the symlinks in the different runlevels + if type update-rc.d >/dev/null 2>/dev/null; then + update-rc.d ${INITSCRIPT_NAME} ${INITSCRIPT_PARAMS} + fi + + exit 0 +} diff --git a/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init b/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init index 12e68ea36..07bdf4439 100644 --- a/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init +++ b/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init @@ -38,7 +38,7 @@ REBOOT_TIME=10 # @param ${1} - Text to print. #------------------------------------------------------------------------------ log() { - echo "[RECOVERY] ${1}" + echo "[RECOVERY] ${1}" 1>&2 } #------------------------------------------------------------------------------ @@ -254,21 +254,56 @@ format_emmc_block() { # # Get absolute path of update package searching in local media # -# @param ${1} - SWU package name +# @param ${1} - SWU package #------------------------------------------------------------------------------ swu_package_path() { - for i in ${UPDATE_MOUNT_DIR} $(echo ${USB_MOUNT_DIR}/*); do - echo $i | grep -qs "${USB_MOUNT_DIR}/\*" && continue - if [ -f "${i}/${1}" ]; then - swu_abspath="${i}/${1}" - break - fi - done + # Check whether the package is local and get the absolute path. + if echo "${1}" | grep -qs '^file://'; then + local pkg_name="$(basename ${1})" - if [ -n "${swu_abspath}" ]; then - echo "${swu_abspath}" + for i in ${UPDATE_MOUNT_DIR} $(echo ${USB_MOUNT_DIR}/*); do + echo $i | grep -qs "${USB_MOUNT_DIR}/\*" && continue + if [ -f "${i}/${pkg_name}" ]; then + swu_abspath="${i}/${pkg_name}" + break + fi + done + + if [ -n "${swu_abspath}" ]; then + echo "${swu_abspath}" + else + quit_with_error "Unable to find update package '${pkg_name}'" + fi else - quit_with_error "Unable to find update package '${1}'" + echo "${1}" + fi +} + +#------------------------------------------------------------------------------ +# Function - check_swu_package +# +# Check if the update package is a valid one and get its absolute path +# +# @param ${1} - SWU package +#------------------------------------------------------------------------------ +check_swu_package() { + log "Checking update package '$(basename ${1})'" + + if [ -z "${1}" ]; then + quit_with_error "Firmware update package not specified" + fi + + update_package="$(swu_package_path ${1})" + + # Check software update package. + if [ -f "${PUBLIC_KEY}" ]; then + swupdate -c -i "${update_package}" -k "${PUBLIC_KEY}" + else + swupdate -c -i "${update_package}" + fi + + if [ "$?" != "0" ]; then + quit_with_error "Invalid update package '$(basename ${1})'" fi } @@ -395,11 +430,17 @@ for arg in ${COMMAND}; do esac done +# Sanity checks. +if [ -n "${update_package_bool}" ]; then + check_swu_package "${update_package}" +fi + # Check if encryption key command is configured. if [ -n "${encryption_key_bool}" ]; then log "Trustfence encryption key setup requested (new key: ${encryption_key:-random})" psplash_message "Configuring new encryption key..." psplash_progress "0" + trustfence-tool "--newkey${encryption_key:+=${encryption_key}}" if [ "$?" = "0" ]; then psplash_progress "10" @@ -425,35 +466,27 @@ if [ -n "${update_package_bool}" ]; then log "Firmware update requested" psplash_message "Updating firmware..." psplash_progress "0" - if [ -z "${update_package}" ]; then - quit_with_error "Firmware update package not specified" + + # Format the UBI volume before updating. + if [ "$(is_nand)" = "yes" ]; then + psplash_message "Formatting rootfs partition..." + format_ubi_volume rootfs + psplash_progress "0" + fi + + log "Update package location: ${update_package}" + # Execute the progress binary. + progress -wp & + # Execute the software update. + if [ -f "${PUBLIC_KEY}" ]; then + swupdate -f "${SW_CONFIG}" -i "${update_package}" -k "${PUBLIC_KEY}" else - # Format the UBI volume before updating. - if [ "$(is_nand)" = "yes" ]; then - psplash_message "Formatting rootfs partition..." - format_ubi_volume rootfs - psplash_progress "0" - fi - - # Check whether the package is local and get the absolute path - if echo "${update_package}" | grep -qs '^file://'; then - update_package="$(swu_package_path $(basename ${update_package}))" - fi - - log "Update package location: ${update_package}" - # Execute the progress binary. - progress -wp & - # Execute the software update. - if [ -f "${PUBLIC_KEY}" ]; then - swupdate -f "${SW_CONFIG}" -i "${update_package}" -k "${PUBLIC_KEY}" - else - swupdate -f "${SW_CONFIG}" -i "${update_package}" - fi - if [ "$?" = "0" ]; then - log "Firmware update process succeed!" - else - quit_with_error "Error executing the firmware update" - fi + swupdate -f "${SW_CONFIG}" -i "${update_package}" + fi + if [ "$?" = "0" ]; then + log "Firmware update process succeed!" + else + quit_with_error "Error executing the firmware update" fi fi diff --git a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-hdp.bb b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-hdp.bb index b306b3a9f..e5642292f 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-hdp.bb +++ b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-hdp.bb @@ -14,6 +14,6 @@ do_install() { install -m 0755 hdp-test.py ${D}${bindir} } -RDEPENDS_${PN} = "python python-argparse python-crypt python-dbus python-pygobject" +RDEPENDS_${PN} = "python3 python3-argparse python3-crypt python3-dbus python3-pygobject" COMPATIBLE_MACHINE = "(ccardimx28|ccimx6$|ccimx6ul)" diff --git a/meta-digi-dey/recipes-digi/dey-examples/files/hdp_test/hdp-test.py b/meta-digi-dey/recipes-digi/dey-examples/files/hdp_test/hdp-test.py index 38930676a..4f417cd09 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/files/hdp_test/hdp-test.py +++ b/meta-digi-dey/recipes-digi/dey-examples/files/hdp_test/hdp-test.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @@ -9,12 +9,13 @@ import sys import os -import glib +from gi.repository import GLib import dbus import socket import dbus.service -import gobject +from gi.repository import GObject from dbus.mainloop.glib import DBusGMainLoop +from dbus.exceptions import DBusException import argparse # from hdp_utils import * @@ -31,18 +32,8 @@ class MessageType: Release_Confirmation, Data, Unknown) = range(0, 6) class HdpMessage: - def s2b(self, msg): - if msg is None: - return None - return [ord(x) for x in msg] - - def b2s(self, msg): - if msg is None: - return None - return "".join([chr(int(x)) for x in msg]) - def getAssociationResponse(self, invokeId): - return self.b2s(( + return bytes(( 0xe3, 0x00, #APDU CHOICE Type(AareApdu) 0x00, 0x2c, #CHOICE.length = 44 0x00, 0x00, #result=accept (known config) @@ -62,7 +53,7 @@ class HdpMessage: )) def getConfigurationResp(self, invokeId): - return self.b2s(( + return bytes(( 0xe7, 0x00, #APDU CHOICE Type(PrstApdu) 0x00, 0x16, #CHOICE.length = 22 0x00, 0x14, #OCTET STRING.length = 20 @@ -78,24 +69,24 @@ class HdpMessage: )) def getReleaseRequest(self, invokeId): - return self.b2s((0xe4, 0x00, 0x00, 0x02, 0x00, 0x00)) + return bytes((0xe4, 0x00, 0x00, 0x02, 0x00, 0x00)) def getReleaseResponse(self, invokeId): - return self.b2s((0xe5, 0x00, 0x00, 0x02, 0x00, 0x00)) + return bytes((0xe5, 0x00, 0x00, 0x02, 0x00, 0x00)) def getDataResponse(self, invokeId): - return self.b2s(( - 0xe7, 0x00, #APDU CHOICE Type(PrstApdu) - 0x00, 0x12, #CHOICE.length = 18 - 0x00, 0x10, #OCTET STRING.length = 16 - invokeId[0], invokeId[1], #invoke-id (mirrored from invocation) - 0x02, 0x01, #CHOICE(Remote Operation Response | Confirmed Event Report) - 0x00, 0x0a, #CHOICE.length = 10 - 0x00, 0x00, #obj-handle = 0 (MDS object) - 0x00, 0x00, 0x00, 0x00, #currentTime = 0 - 0x0d, 0x1d, #event-type = MDC_NOTI_SCAN_REPORT_FIXED - 0x00, 0x00, #event-reply-info.length = 0 - )) + return bytes(( + 0xe7, 0x00, #APDU CHOICE Type(PrstApdu) + 0x00, 0x12, #CHOICE.length = 18 + 0x00, 0x10, #OCTET STRING.length = 16 + invokeId[0], invokeId[1], #invoke-id (mirrored from invocation) + 0x02, 0x01, #CHOICE(Remote Operation Response | Confirmed Event Report) + 0x00, 0x0a, #CHOICE.length = 10 + 0x00, 0x00, #obj-handle = 0 (MDS object) + 0x00, 0x00, 0x00, 0x00, #currentTime = 0 + 0x0d, 0x1d, #event-type = MDC_NOTI_SCAN_REPORT_FIXED + 0x00, 0x00, #event-reply-info.length = 0 + )) def parse(self, string_msg): # @@ -113,28 +104,27 @@ class HdpMessage: invokeId = (0, 0) sp02 = 0 pulse = 0 - msg = self.s2b(string_msg) if debugOn: - print "IEEE opcode received: %x, length = %d" % (int(msg[0]), len(msg)) - for i in range(len(msg)): - if ((i & 15) == 0): - print - print '%2.2X' % int(msg[i]), - print + print("IEEE opcode received: %x, length = %d" % (int(string_msg[0]), len(string_msg))) + for i in range(len(string_msg)): + if ((i & 15) == 0): + print + print('%2.2X' % int(string_msg[i]),) + print - if int(msg[0]) == 0xe2: + if int(string_msg[0]) == 0xe2: msg_type = MessageType.Association - elif int(msg[0]) == 0xe7: - invokeId = int(msg[6]), int(msg[7]) - if int(msg[18]) == 0x0d and int(msg[19]) == 0x1c: + elif int(string_msg[0]) == 0xe7: + invokeId = int(string_msg[6]), int(string_msg[7]) + if int(string_msg[18]) == 0x0d and int(string_msg[19]) == 0x1c: msg_type = MessageType.Configuration else: msg_type = MessageType.Data - sp02 = int(msg[35]) - pulse = int(msg[49]) - elif int(msg[0]) == 0xe4: + sp02 = int(string_msg[35]) + pulse = int(string_msg[49]) + elif int(string_msg[0]) == 0xe4: msg_type = MessageType.Release_Request - elif int(msg[0]) == 0xe5: + elif int(string_msg[0]) == 0xe5: msg_type = MessageType.Release_Confirmation else: msg_type = MessageType.Unknown @@ -152,7 +142,7 @@ def receive_data(sk, evt): data = None disconnecting = False hdp = HdpMessage() - if evt & glib.IO_IN: + if evt & GLib.IO_IN: try: data = sk.recv(1024) except IOError: @@ -163,44 +153,44 @@ def receive_data(sk, evt): invokeId = result[1] if msgType == MessageType.Association: if debugOn: - print "Oximeter has associated" + print("Oximeter has associated") sk.send(hdp.getAssociationResponse(invokeId)) elif msgType == MessageType.Configuration: if debugOn: - print "Received configuration data" + print("Received configuration data") sk.send(hdp.getConfigurationResponse(invokeId)) elif msgType == MessageType.Release_Request: if debugOn: - print "Received release request" + print("Received release request") sk.send(hdp.getReleaseResponse(invokeId)) disconnecting = True elif msgType == MessageType.Release_Confirmation: if debugOn: - print "Received release confirmation" + print("Received release confirmation") disconnecting = True elif msgType == MessageType.Data: sk.send(hdp.getDataResponse(invokeId)) sp02 = result[2] pulse = result[3] if debugOn: - print "Received data from oximeter" - print "SpO2 Level: %d, Beats/second: %d" % \ - (result[2], result[3]) + print("Received data from oximeter") + print("SpO2 Level: %d, Beats/second: %d" % \ + (result[2], result[3])) if debugOn: - print "Sending disconnect" + print("Sending disconnect") sk.send(hdp.getReleaseRequest(invokeId)) else: - print "Received unknown message, disconnecting" + print("Received unknown message, disconnecting") sk.send(hdp.getReleaseRequest(invokeId)) disconnecting = True - if disconnecting or evt != glib.IO_IN or not data: + if disconnecting or evt != GLib.IO_IN or not data: try: sk.shutdown(2) except IOError: pass sk.close() - print "Disconnected from oximeter" + print("Disconnected from oximeter") return False else: return True @@ -223,9 +213,9 @@ class SignalHandler(object): dbus_interface=HEALTH_DEVICE_INTERFACE) def ChannelConnected(self, channel, interface, device): - print "%s has connected" % device + print("%s has connected" % device) if debugOn: - print "Channel: %s" % channel + print("Channel: %s" % channel) # # The oximeter has connected to us. Let's get # a socket for the connection. @@ -241,14 +231,14 @@ class SignalHandler(object): # Now set up our receiver function to be called # when interesting events are detected on that # socket - watch_bitmap = glib.IO_IN | glib.IO_ERR| glib.IO_HUP | glib.IO_NVAL - glib.io_add_watch(sk, watch_bitmap, receive_data) + watch_bitmap = GLib.IO_IN | GLib.IO_ERR| GLib.IO_HUP | GLib.IO_NVAL + GLib.io_add_watch(sk, watch_bitmap, receive_data) except DBusException: - print "Error communicating with Oximeter." - print "Please make sure the Oximeter has fresh batteries." + print("Error communicating with Oximeter.") + print("Please make sure the Oximeter has fresh batteries.") def ChannelDeleted(self, channel, interface, device): - print "Device %s channel %s deleted" % (device, channel) + print("Device %s channel %s deleted" % (device, channel)) parser = argparse.ArgumentParser() parser.add_argument("-d", "--debug", help="supply debug output", @@ -257,7 +247,7 @@ args = parser.parse_args() debugOn = args.debug DBusGMainLoop(set_as_default=True) -loop = gobject.MainLoop() +loop = GObject.MainLoop() bus = dbus.SystemBus() signal_handler = SignalHandler() @@ -275,16 +265,16 @@ config = dbus.Dictionary({"Role": "Sink", "DataType": dbus.types.UInt16(0x1004), manager = dbus.Interface(bus.get_object(BUS_NAME, PATH), HEALTH_MANAGER_INTERFACE) app = manager.CreateApplication(config) -print "HDP application created, waiting for connection from" -print "a pulse oximeter. Press control-c to terminate." +print("HDP application created, waiting for connection from") +print("a pulse oximeter. Press control-c to terminate.") try: - loop = glib.MainLoop() + loop = GLib.MainLoop() loop.run() except KeyboardInterrupt: pass finally: manager.DestroyApplication(app) print - print "Application stopped" + print("Application stopped") print diff --git a/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo b/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo index c09669029..0ad16d112 100755 --- a/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo +++ b/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo @@ -90,7 +90,7 @@ make_report(){ echo "- -" echo "--------------------------------------" echo "" - for f in $(find /var/log/ -name *.log); do + for f in $(find /var/log/ -name "*.log"); do echo "${f} FILE"; echo "---------------------------------------"; cat ${f}; @@ -196,8 +196,15 @@ make_report(){ else echo "[NOT FOUND] /etc/wpa_supplicant.conf" fi - echo "" + if [ -f "/etc/wpa_supplicant_p2p.conf" ]; then + echo "wpa_supplicant_p2p.conf:" + cat "/etc/wpa_supplicant_p2p.conf" + else + echo "[NOT FOUND] /etc/wpa_supplicant_p2p.conf" + fi + echo "" + hostapd -v 2>&1 echo "" if [ -f "/etc/hostapd.conf" ]; then @@ -206,6 +213,20 @@ make_report(){ else echo "[NOT FOUND] hostapd.conf" fi + echo "" + if [ -f "/etc/hostapd_wlan0.conf" ]; then + echo "hostapd_wlan0.conf:" + cat "/etc/hostapd_wlan0.conf" + else + echo "[NOT FOUND] /etc/hostapd_wlan0.conf" + fi + echo "" + if [ -f "/etc/hostapd_wlan1.conf" ]; then + echo "hostapd_wlan1.conf:" + cat "/etc/hostapd_wlan1.conf" + else + echo "[NOT FOUND] /etc/hostapd_wlan1.conf" + fi printf "\n\n" echo "--------------------------------------" diff --git a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend index 9ebc49186..1889c09a0 100644 --- a/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend +++ b/meta-digi-dey/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend @@ -9,6 +9,8 @@ SRC_URI_append_ccimx6sbc = " \ file://dey-audio-sgtl5000.conf \ " +EXTRA_OECONF_append_ccimx6sbc = " --disable-memfd" + do_install_append_ccimx6sbc() { install -d ${D}${sysconfdir}/udev/scripts install -m 0755 ${WORKDIR}/hdmi_hotplug.sh ${D}${sysconfdir}/udev/scripts