From 948be408d056adb92cade204f9e19fe85b7d5a96 Mon Sep 17 00:00:00 2001 From: Stefan Eichenberger Date: Fri, 14 Jul 2017 10:38:54 +0200 Subject: [PATCH] meta-nmrouter: remove recipes not part of bsp Remove all recipes that are not part of the bsp, move them in a separate layer. --- conf/machine/am335x-nbhw16.conf | 2 +- .../lora/lora-gateway/library.cfg | 72 ---- .../lora-gateway-add-fpga-version-28.patch | 13 - .../lora-gateway/lora-gateway-debug.patch | 13 - .../lora-gateway/lora-gateway-sync-word.patch | 40 --- .../lora/lora-gateway_1.7.0mts.bb | 59 ---- .../lora-network-server.default | 2 - .../lora-network-server.init | 80 ----- .../lora-network-server.logrotate.conf | 7 - .../lora/lora-network-server-mtp_1.0.13.bb | 46 --- .../lora-network-server.default | 2 - .../lora-network-server.init | 105 ------ .../lora-network-server.logrotate.conf | 7 - .../lora/lora-network-server_1.0.13.bb | 49 --- .../lora/lora-packet-forwarder/README.md | 38 --- .../lora-packet-forwarder/global_conf.json | 199 ----------- .../lora-packet-forwarder/local_conf.json | 14 - ...acket-forwarder-add-no-header-option.patch | 45 --- .../lora-packet-forwarder-add-queue.patch | 316 ----------------- .../lora-packet-forwarder-fixb64.patch | 66 ---- ...ra-packet-forwarder-mts-enhancements.patch | 321 ------------------ .../lora-packet-forwarder-set-spi-path.patch | 111 ------ ...ra-packet-forwarder-skip-bad-packets.patch | 109 ------ .../lora-packet-forwarder-synch-word.patch | 99 ------ .../lora/lora-packet-forwarder/lora.service | 10 - .../lora/lora-packet-forwarder/start-lora.sh | 31 -- .../lora/lora-packet-forwarder_1.4.1.bb | 70 ---- recipes-connectivity/lora/lora-query_1.0.2.bb | 21 -- .../amfeltec-usb/001_makefile.patch | 80 ----- .../amfeltec-usb/amfeltec_usb_4.0.4.tgz | Bin 143837 -> 0 bytes .../amfeltec-usb/amfeltec-usb_4.0.4.bb | 28 -- .../linux-firmware/am335x-pm-firmware.bin | Bin 0 -> 10796 bytes .../linux-firmware/am335x-pm-firmware.elf | Bin 0 -> 151064 bytes .../linux-firmware/linux-firmware_%.bbappend | 2 + 34 files changed, 3 insertions(+), 2054 deletions(-) delete mode 100644 recipes-connectivity/lora/lora-gateway/library.cfg delete mode 100644 recipes-connectivity/lora/lora-gateway/lora-gateway-add-fpga-version-28.patch delete mode 100644 recipes-connectivity/lora/lora-gateway/lora-gateway-debug.patch delete mode 100644 recipes-connectivity/lora/lora-gateway/lora-gateway-sync-word.patch delete mode 100644 recipes-connectivity/lora/lora-gateway_1.7.0mts.bb delete mode 100644 recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.default delete mode 100755 recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.init delete mode 100644 recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.logrotate.conf delete mode 100644 recipes-connectivity/lora/lora-network-server-mtp_1.0.13.bb delete mode 100644 recipes-connectivity/lora/lora-network-server/lora-network-server.default delete mode 100755 recipes-connectivity/lora/lora-network-server/lora-network-server.init delete mode 100644 recipes-connectivity/lora/lora-network-server/lora-network-server.logrotate.conf delete mode 100644 recipes-connectivity/lora/lora-network-server_1.0.13.bb delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/README.md delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/global_conf.json delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/local_conf.json delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-add-no-header-option.patch delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-add-queue.patch delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-fixb64.patch delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-mts-enhancements.patch delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-set-spi-path.patch delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-skip-bad-packets.patch delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-synch-word.patch delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/lora.service delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder/start-lora.sh delete mode 100644 recipes-connectivity/lora/lora-packet-forwarder_1.4.1.bb delete mode 100644 recipes-connectivity/lora/lora-query_1.0.2.bb delete mode 100644 recipes-kernel/amfeltec-usb/amfeltec-usb/001_makefile.patch delete mode 100644 recipes-kernel/amfeltec-usb/amfeltec-usb/amfeltec_usb_4.0.4.tgz delete mode 100644 recipes-kernel/amfeltec-usb/amfeltec-usb_4.0.4.bb create mode 100755 recipes-kernel/linux-firmware/linux-firmware/am335x-pm-firmware.bin create mode 100755 recipes-kernel/linux-firmware/linux-firmware/am335x-pm-firmware.elf diff --git a/conf/machine/am335x-nbhw16.conf b/conf/machine/am335x-nbhw16.conf index a81f481..0d01270 100644 --- a/conf/machine/am335x-nbhw16.conf +++ b/conf/machine/am335x-nbhw16.conf @@ -20,5 +20,5 @@ KERNEL_IMAGETYPE = "zImage" PREFERRED_PROVIDER_virtual/kernel = "linux-netmodule" PV_pn-linux-netmodule = "4.4-${SRCPV}" -SRC_URI_pn-linux-netmodule = "git://git@gitlab.com/eichest/linux.git;protocol=ssh;branch=nbhw16-4.4" +SRC_URI_pn-linux-netmodule = "git://git@gitlab.com/eichest/linux.git;protocol=ssh;branch=nbhw16-4.4-pm-ti" diff --git a/recipes-connectivity/lora/lora-gateway/library.cfg b/recipes-connectivity/lora/lora-gateway/library.cfg deleted file mode 100644 index 98b6cec..0000000 --- a/recipes-connectivity/lora/lora-gateway/library.cfg +++ /dev/null @@ -1,72 +0,0 @@ -# That file will be included in the Makefile files that have hardware dependencies - -### SPI interface to the concentrator ### -# Accepted values: -# native Linux native SPI driver (/dev/spidev32766.0) -# ftdi FTDI SPI-over-USB bridge using libmpsse/libftdi/libusb - -CFG_SPI= ftdi - -### Concentrator chip ### -# Accepted values: -# sx1301 Semtech SX1301 production chip -# fpga1301 FPGA containing the SX1301 IP - -CFG_CHIP= sx1301 - -### Radio chip(s) ### -# Accepted values: -# sx1257 Dual SX1257 transceivers, covering 860-1000 MHz -# sx1255 Dual SX1255 transceivers, covering 400-510 MHz - -CFG_RADIO= sx1257 - -### RF band configuration ### -# Used to configured frequency restrictions (eg. if a SAW filter is installed) -# Accepted values: -# full Full range supported by the radio(s) -# eu868 ETSI 868 (866) MHz band -# us915 FCC 915 MHz band -# cn470 China 470 MHz band -# eu433 ETSI 433 MHz band -# cn780 China 780 MHz band - -CFG_BAND= full - -### Board misc parameters & calibration ### -# Used to configure misc board options. -# RX RSSI indication and TX power are highly dependant on radio, band, filter -# and RF front-ends, and must be calibrated for each new board design. -# Available calibration parameters: -# dev_nano_868 FPGA-based nano-concentrator, with 868 MHz SAW filter -# ref_1301_868 SX1301 reference board with SX1257 radios, 868 MHz filters -# ref_1301_433 SX1301 reference board with SX1255 radios, 433 MHz filters -# kerlink_868 Kerlink LoRa 868MHz gateway -# kerlink_433 Kerlink LoRa 433MHz gateway -# cisco_433 Cisco LoRa 433MHz gateway -# cisco_470 Cisco LoRa 470MHz gateway -# cisco_780 Cisco LoRa 780MHz gateway -# Keep empty for no calibration parameters (neutral values will be used). - -# MTAC-LORA 900MHz -CFG_BRD= mtaclora - -### Network Type ### -# Accepted values: -# private Default -# lora_mac Only compliant with devices running LoRa MAC - -CFG_NET= private - -### Debug options ### -# Set the DEBUG_* to 1 to activate debug mode in individual modules. -# Warning: that makes the module *very verbose*, do not use for production - -DEBUG_AUX= 0 -DEBUG_SPI= 0 -DEBUG_REG= 0 -# jjg - turning this on is useful to get HAL-related error messages that -# don't print out otherwise. It doesn't seem to add that much printing -# under normal operation. -DEBUG_HAL= 1 -DEBUG_GPS= 0 diff --git a/recipes-connectivity/lora/lora-gateway/lora-gateway-add-fpga-version-28.patch b/recipes-connectivity/lora/lora-gateway/lora-gateway-add-fpga-version-28.patch deleted file mode 100644 index c5f47dd..0000000 --- a/recipes-connectivity/lora/lora-gateway/lora-gateway-add-fpga-version-28.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/libloragw/src/loragw_reg.c b/libloragw/src/loragw_reg.c -index 7fe0f67..dc90d93 100644 ---- a/libloragw/src/loragw_reg.c -+++ b/libloragw/src/loragw_reg.c -@@ -48,7 +48,7 @@ Maintainer: Sylvain Miermont - #define PAGE_ADDR 0x00 - #define PAGE_MASK 0x03 - --const uint8_t FPGA_VERSION[] = { 27 }; /* several versions could be supported */ -+const uint8_t FPGA_VERSION[] = { 27, 28 }; /* several versions could be supported */ - - /* - auto generated register mapping for C code : 11-Jul-2013 13:20:40 diff --git a/recipes-connectivity/lora/lora-gateway/lora-gateway-debug.patch b/recipes-connectivity/lora/lora-gateway/lora-gateway-debug.patch deleted file mode 100644 index dba4392..0000000 --- a/recipes-connectivity/lora/lora-gateway/lora-gateway-debug.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: git/libloragw/src/loragw_hal.c -=================================================================== ---- git.orig/libloragw/src/loragw_hal.c 2014-12-16 16:07:20.812506157 -0600 -+++ git/libloragw/src/loragw_hal.c 2014-12-16 16:18:34.427454833 -0600 -@@ -1626,6 +1626,8 @@ - break; - } - } -+ -+ DEBUG_PRINTF("DEBUG: Tx pow_index %d, rf_power %d\n", pow_index, tx_pow_table[pow_index].rf_power); - - /* loading TX imbalance correction */ - target_mix_gain = tx_pow_table[pow_index].mix_gain; diff --git a/recipes-connectivity/lora/lora-gateway/lora-gateway-sync-word.patch b/recipes-connectivity/lora/lora-gateway/lora-gateway-sync-word.patch deleted file mode 100644 index e51e02a..0000000 --- a/recipes-connectivity/lora/lora-gateway/lora-gateway-sync-word.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/libloragw/inc/loragw_hal.h b/libloragw/inc/loragw_hal.h -index 1516b65..24c5969 100644 ---- a/libloragw/inc/loragw_hal.h -+++ b/libloragw/inc/loragw_hal.h -@@ -302,6 +312,11 @@ struct lgw_pkt_tx_s { - - /* -------------------------------------------------------------------------- */ - /* --- PUBLIC FUNCTIONS PROTOTYPES ------------------------------------------ */ -+/** -+ * @brief Configure the lora synch word -+ * @param word for synch -+ */ -+void lgw_conf_lora_synch_word(uint8_t word); - - /** - @brief Configure an RF chain (must configure before start) -diff --git a/libloragw/src/loragw_hal.c b/libloragw/src/loragw_hal.c -index 5dbdf45..d0fe288 100644 ---- a/libloragw/src/loragw_hal.c -+++ b/libloragw/src/loragw_hal.c -@@ -827,6 +851,19 @@ void lgw_constant_adjust(void) { - /* -------------------------------------------------------------------------- */ - /* --- PUBLIC FUNCTIONS DEFINITION ------------------------------------------ */ - -+void lgw_conf_lora_synch_word(uint8_t word) { -+ uint8_t peak1 = word >> 4; -+ uint8_t peak2 = word & 0x0F; -+ -+ lgw_reg_w(LGW_FRAME_SYNCH_PEAK1_POS, peak1); /* default 1 */ -+ lgw_reg_w(LGW_FRAME_SYNCH_PEAK2_POS, peak2); /* default 2 */ -+ lgw_reg_w(LGW_MBWSSF_FRAME_SYNCH_PEAK1_POS, peak1); /* default 1 */ -+ lgw_reg_w(LGW_MBWSSF_FRAME_SYNCH_PEAK2_POS, peak2); /* default 2 */ -+ lgw_reg_w(LGW_TX_FRAME_SYNCH_PEAK1_POS, peak1); /* default 1 */ -+ lgw_reg_w(LGW_TX_FRAME_SYNCH_PEAK2_POS, peak2); /* default 2 */ -+} -+ -+ - int lgw_rxrf_setconf(uint8_t rf_chain, struct lgw_conf_rxrf_s conf) { - - /* check if the concentrator is running */ diff --git a/recipes-connectivity/lora/lora-gateway_1.7.0mts.bb b/recipes-connectivity/lora/lora-gateway_1.7.0mts.bb deleted file mode 100644 index 9b1aae2..0000000 --- a/recipes-connectivity/lora/lora-gateway_1.7.0mts.bb +++ /dev/null @@ -1,59 +0,0 @@ -DESCRIPTION = "LoRa Gateway library" -HOMEPAGE = "https://www.semtech.com/" -PRIORITY = "optional" -SECTION = "console/utils" -# Semtech license is a modified BSD-style license -LICENSE = "SEMTECH" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a2bdef95625509f821ba00460e3ae0eb" -DEPENDS = "libftdi libmpsse libusb1" -INC_PR = "r9" -PR = "${INC_PR}.1" -BRANCH = "1.7.0-mts" -SRCREV = "631dfedf1b535b6c3861d3c3868e02f48a84fb06" - -SRC_URI = "git://git.multitech.net/lora_gateway;protocol=git;branch=${BRANCH} \ - file://lora-gateway-debug.patch \ - file://lora-gateway-sync-word.patch \ - file://library.cfg \ - " - -S = "${WORKDIR}/git" - -CFLAGS += "-Iinc -I. -DLIBFTDI1=1" - -do_configure_append() { - # copy over custom library.cfg - cp ${WORKDIR}/library.cfg ${S}/libloragw/ -} - -do_compile() { - oe_runmake -} - -do_install() { - install -d ${D}${includedir}/lora - install -d ${D}${libdir}/lora - install -m 0644 libloragw/libloragw.a ${D}${libdir}/lora - install -m 0644 libloragw/library.cfg ${D}${libdir}/lora - install -m 0644 libloragw/inc/* ${D}${includedir}/lora - - install -d ${D}/opt/lora - install -m 0755 libloragw/test_* ${D}/opt/lora/ - install -m 0755 util_pkt_logger/util_pkt_logger ${D}/opt/lora/ - install -m 0755 util_band_survey/util_band_survey ${D}/opt/lora/ - install -m 0755 util_spi_stress/util_spi_stress ${D}/opt/lora/ - install -m 0755 util_tx_test/util_tx_test ${D}/opt/lora/ -} - -PACKAGES += "${PN}-utils ${PN}-utils-dbg" - -FILES_${PN}-utils = "/opt/lora/* /lib" -FILES_${PN}-utils-dbg = "/opt/lora/.debug" -FILES_${PN}-dev = "${includedir}/lora ${libdir}/lora/library.cfg" -FILES_${PN}-staticdev = "${libdir}/lora/libloragw.a" - -# disable this on purpose for dev purposes -do_rm_work() { - echo "skipping" -} - diff --git a/recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.default b/recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.default deleted file mode 100644 index be7dcd5..0000000 --- a/recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.default +++ /dev/null @@ -1,2 +0,0 @@ -# set to "yes" or "no" to control starting on boot -ENABLED="yes" diff --git a/recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.init b/recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.init deleted file mode 100755 index 86d731b..0000000 --- a/recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.init +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash - -NAME="lora-network-server" -ENABLED="yes" - -START_STOP_DAEMON="/usr/sbin/start-stop-daemon" - -[ -f /etc/default/$NAME ] && source /etc/default/$NAME - -run_dir=/var/run/lora -conf_dir=/var/config/lora -conf_file=/opt/lora/lora-network-server.conf -conf_db=$conf_dir/lora-network-server.db - -net_server=/opt/lora/lora-network-server -net_server_log=/var/log/lora-network-server.log -net_server_pidfile=$run_dir/$NAME.pid - -pkt_fwd=/opt/lora/lora_pkt_fwd -pkt_fwd_pidfile=$run_dir/lora-pkt-fwd-1.pid - -do_start() { - if ! [ -f $conf_file ]; then - echo "$0: $conf_file missing" - exit 1 - fi - - echo -n "Starting $NAME: " - mkdir -p $run_dir/1 - # start network server - $START_STOP_DAEMON --start --background --make-pidfile \ - --pidfile $net_server_pidfile --startas /bin/bash \ - --chdir "/opt/lora" -- -c "exec $net_server \ - -c $conf_file --lora-path $run_dir --db $conf_db \ - --noconsole -l $net_server_log >> $net_server_log 2>&1" - sleep 2 - # start packet forwarder - $START_STOP_DAEMON --start --background --make-pidfile \ - --pidfile $pkt_fwd_pidfile --exec $pkt_fwd --chdir "/opt/lora/" - - renice -n -20 -p $(pgrep lora-network-se) - renice -n -20 -p $(pgrep $(basename $pkt_fwd)) - - echo "OK" -} - -do_stop() { - echo -n "Stopping $NAME: " - $START_STOP_DAEMON --stop --quiet --oknodo --pidfile $net_server_pidfile --retry 15 - $START_STOP_DAEMON --stop --quiet --oknodo --pidfile $pkt_fwd_pidfile --retry 5 - rm -f $net_server_pidfile $pkt_fwd_pidfile - echo "OK" -} - -if [ "$ENABLED" != "yes" ]; then - echo "$NAME: disabled in /etc/default" - exit -fi - -case "$1" in - "start") - do_start - ;; - "stop") - do_stop - ;; - "restart") - ## Stop the service and regardless of whether it was - ## running or not, start it again. - do_stop - do_start - ;; - *) - ## If no parameters are given, print which are avaiable. - echo "Usage: $0 {start|stop|restart}" - exit 1 - ;; -esac - - diff --git a/recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.logrotate.conf b/recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.logrotate.conf deleted file mode 100644 index d2b6c9a..0000000 --- a/recipes-connectivity/lora/lora-network-server-mtp/lora-network-server.logrotate.conf +++ /dev/null @@ -1,7 +0,0 @@ -/var/log/lora-pkt-fwd*.log /var/log/lora-network-server.log { - size 512k - rotate 4 - compress - copytruncate - missingok -} diff --git a/recipes-connectivity/lora/lora-network-server-mtp_1.0.13.bb b/recipes-connectivity/lora/lora-network-server-mtp_1.0.13.bb deleted file mode 100644 index 9eb0516..0000000 --- a/recipes-connectivity/lora/lora-network-server-mtp_1.0.13.bb +++ /dev/null @@ -1,46 +0,0 @@ -# THIS RECIPE FOR PICOCELL USES PATCHED LORA NETWORK SERVER THAT SUPPORTS -# MTP HARDWARE AND V2 PACKET FORWARDER PROTOCOL -DESCRIPTION = "MultiTech LoRa Network Server" -PRIORITY = "optional" -SECTION = "console/utils" -LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://LICENSE;md5=7ffae4666a986c4ccf45e99e464f8402" -DEPENDS = "jsoncpp libmts mosquitto sqlite3" -RDEPENDS_${PN} += "lora-packet-forwarder logrotate" -PR = "r0" - -SRC_URI = "http://multitech.net/downloads/lora-network-server_${TUNE_PKGARCH}_${PV}-mtp.tar.gz \ - file://lora-network-server.init \ - file://lora-network-server.default \ - file://lora-network-server.logrotate.conf \ - " - -SRC_URI[md5sum] = "1fdcc48e8d62d4f8896e707f28596bfd" -SRC_URI[sha256sum] = "10ba082ad309b2b4bec0835ecf0741463020d962707942e5bb3e8598181591f1" - -# binaries are already stripped, so suppress warning -INSANE_SKIP_${PN} = "already-stripped" - -S = "${WORKDIR}" - -LORA_DIR = "/opt/lora" - -do_compile() { -} - -do_install() { - install -d ${D}${LORA_DIR} - install -m 0755 lora-network-server ${D}${LORA_DIR}/ - install -m 0644 lora-network-server.conf ${D}${LORA_DIR}/ - - install -d ${D}${sysconfdir}/default - install -m 0644 ${WORKDIR}/lora-network-server.default ${D}${sysconfdir}/default/lora-network-server - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/lora-network-server.init ${D}${sysconfdir}/init.d/lora-network-server - install -d ${D}${sysconfdir}/logrotate.d - install -m 0644 ${WORKDIR}/lora-network-server.logrotate.conf ${D}${sysconfdir}/logrotate.d/lora-network-server.conf -} - -CONFFILES_${PN} = "${sysconfdir}/default/lora-network-server" -FILES_${PN} += "${LORA_DIR}" -FILES_${PN}-dbg += "${LORA_DIR}/.debug" diff --git a/recipes-connectivity/lora/lora-network-server/lora-network-server.default b/recipes-connectivity/lora/lora-network-server/lora-network-server.default deleted file mode 100644 index be7dcd5..0000000 --- a/recipes-connectivity/lora/lora-network-server/lora-network-server.default +++ /dev/null @@ -1,2 +0,0 @@ -# set to "yes" or "no" to control starting on boot -ENABLED="yes" diff --git a/recipes-connectivity/lora/lora-network-server/lora-network-server.init b/recipes-connectivity/lora/lora-network-server/lora-network-server.init deleted file mode 100755 index 4b80dc7..0000000 --- a/recipes-connectivity/lora/lora-network-server/lora-network-server.init +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/bash - -NAME="lora-network-server" -ENABLED="yes" - -[ -f /etc/default/$NAME ] && source /etc/default/$NAME - -run_dir=/var/run/lora -conf_dir=/var/config/lora -conf_file=$conf_dir/lora-network-server.conf -conf_db=$conf_dir/lora-network-server.db - -net_server=/opt/lora/lora-network-server -net_server_log=/var/log/lora-network-server.log -net_server_pidfile=$run_dir/$NAME.pid - -pkt_fwd=/opt/lora/basic_pkt_fwd -pkt_fwd_log=/var/log/lora-pkt-fwd-1.log -pkt_fwd_pidfile=$run_dir/lora-pkt-fwd-1.pid - -lora_us_id="MTAC-LORA-915" -lora_eu_id="MTAC-LORA-868" - -read_card_info() { - # product-id of first lora card - lora_id=$(mts-io-sysfs show lora/product-id 2> /dev/null) - lora_eui=$(mts-io-sysfs show lora/eui 2> /dev/null) - # remove all colons - lora_eui_raw=${lora_eui//:/} -} - -card_found() { - if [ "$lora_id" = "$lora_us_id" ] || [ "$lora_id" = "$lora_eu_id" ]; then - echo "Found lora card $lora_id" - return 0 - else - return 1 - fi -} - -do_start() { - read_card_info - - if ! [ -f $conf_file ]; then - echo "$0: $conf_file missing" - exit 1 - fi - - if ! card_found; then - echo "$0: MTAC-LORA not detected" - exit 1 - fi - - echo -n "Starting $NAME: " - mkdir -p $run_dir/1 - # start network server - start-stop-daemon --start --background --make-pidfile \ - --pidfile $net_server_pidfile --startas /bin/bash -- -c "exec $net_server \ - -c $conf_file --lora-eui $lora_eui --lora-path $run_dir --db $conf_db \ - --noconsole -l $net_server_log >> $net_server_log 2>&1" - sleep 2 - # start packet forwarder - start-stop-daemon --start --background --make-pidfile \ - --pidfile $pkt_fwd_pidfile --exec $pkt_fwd -- \ - -c $run_dir/1 - - renice -n -20 -p $(pgrep lora-network-se) - renice -n -20 -p $(pgrep $(basename $pkt_fwd)) - - echo "OK" -} - -do_stop() { - echo -n "Stopping $NAME: " - start-stop-daemon --stop --quiet --oknodo --pidfile $net_server_pidfile --retry 15 - start-stop-daemon --stop --quiet --oknodo --pidfile $pkt_fwd_pidfile --retry 5 - rm -f $net_server_pidfile $pkt_fwd_pidfile - echo "OK" -} - -if [ "$ENABLED" != "yes" ]; then - echo "$NAME: disabled in /etc/default" - exit -fi - -case "$1" in - "start") - do_start - ;; - "stop") - do_stop - ;; - "restart") - ## Stop the service and regardless of whether it was - ## running or not, start it again. - do_stop - do_start - ;; - *) - ## If no parameters are given, print which are avaiable. - echo "Usage: $0 {start|stop|restart}" - exit 1 - ;; -esac - diff --git a/recipes-connectivity/lora/lora-network-server/lora-network-server.logrotate.conf b/recipes-connectivity/lora/lora-network-server/lora-network-server.logrotate.conf deleted file mode 100644 index d2b6c9a..0000000 --- a/recipes-connectivity/lora/lora-network-server/lora-network-server.logrotate.conf +++ /dev/null @@ -1,7 +0,0 @@ -/var/log/lora-pkt-fwd*.log /var/log/lora-network-server.log { - size 512k - rotate 4 - compress - copytruncate - missingok -} diff --git a/recipes-connectivity/lora/lora-network-server_1.0.13.bb b/recipes-connectivity/lora/lora-network-server_1.0.13.bb deleted file mode 100644 index 1cf41f7..0000000 --- a/recipes-connectivity/lora/lora-network-server_1.0.13.bb +++ /dev/null @@ -1,49 +0,0 @@ -DESCRIPTION = "MultiTech LoRa Network Server" -PRIORITY = "optional" -SECTION = "console/utils" -LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://LICENSE;md5=7ffae4666a986c4ccf45e99e464f8402" -DEPENDS = "jsoncpp libmts mosquitto sqlite3" -RDEPENDS_${PN} += "lora-packet-forwarder logrotate" -PR = "r0" - -SRC_URI = "http://multitech.net/downloads/lora-network-server_${TUNE_PKGARCH}_${PV}.tar.gz \ - file://lora-network-server.init \ - file://lora-network-server.default \ - file://lora-network-server.logrotate.conf \ - " - -SRC_URI[md5sum] = "8785cbe4a70ee288fa09f00593b1fdb1" -SRC_URI[sha256sum] = "5e6450244f21b4c28e780f36b3d1e7bf502ab25f835a0c21295caac11faec69b" - -# binaries are already stripped, so suppress warning -INSANE_SKIP_${PN} = "already-stripped" - -S = "${WORKDIR}" - -LORA_DIR = "/opt/lora" - -do_compile() { -} - -inherit update-rc.d - -INITSCRIPT_NAME = "lora-network-server" -INITSCRIPT_PARAMS = "defaults 80 30" - -do_install() { - install -d ${D}${LORA_DIR} - install -m 0755 lora-network-server ${D}${LORA_DIR}/ - install -m 0644 lora-network-server.conf.sample ${D}${LORA_DIR}/lora-network-server.conf.sample - - install -d ${D}${sysconfdir}/default - install -m 0644 ${WORKDIR}/lora-network-server.default ${D}${sysconfdir}/default/lora-network-server - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/lora-network-server.init ${D}${sysconfdir}/init.d/lora-network-server - install -d ${D}${sysconfdir}/logrotate.d - install -m 0644 ${WORKDIR}/lora-network-server.logrotate.conf ${D}${sysconfdir}/logrotate.d/lora-network-server.conf -} - -CONFFILES_${PN} = "${sysconfdir}/default/lora-network-server" -FILES_${PN} += "${LORA_DIR}" -FILES_${PN}-dbg += "${LORA_DIR}/.debug" diff --git a/recipes-connectivity/lora/lora-packet-forwarder/README.md b/recipes-connectivity/lora/lora-packet-forwarder/README.md deleted file mode 100644 index c927c60..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/README.md +++ /dev/null @@ -1,38 +0,0 @@ - - -(c) Senet, Inc 2016 - - - -3rd Party Licenses ------------------- - -This software incorporates the lora_gateway software which requires the -following statement to be included in its distribution. - -Copyright (c) 2013, SEMTECH S.A. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Semtech corporation nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL SEMTECH S.A. BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - diff --git a/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json b/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json deleted file mode 100644 index 3f120d2..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "SX1301_conf": { - "lorawan_public": true, - "clksrc": 0, - "clksrc_desc": "radio_0 provides clock to concentrator", - "radio_0": { - "enable": true, - "type": "SX1257", - "freq": 867500000, - "rssi_offset": -166, - "tx_enable": true - }, - "radio_1": { - "enable": true, - "type": "SX1257", - "freq": 868500000, - "rssi_offset": -166, - "tx_enable": false - }, - "chan_multiSF_0": { - "desc": "Lora MAC, 125kHz, all SF, 868.1 MHz", - "enable": true, - "radio": 1, - "if": -400000 - }, - "chan_multiSF_1": { - "desc": "Lora MAC, 125kHz, all SF, 868.3 MHz", - "enable": true, - "radio": 1, - "if": -200000 - }, - "chan_multiSF_2": { - "desc": "Lora MAC, 125kHz, all SF, 868.5 MHz", - "enable": true, - "radio": 1, - "if": 0 - }, - "chan_multiSF_3": { - "desc": "Lora MAC, 125kHz, all SF, 867.1 MHz", - "enable": true, - "radio": 0, - "if": -400000 - }, - "chan_multiSF_4": { - "desc": "Lora MAC, 125k Hz, all SF, 867.3 MHz ", - "enable": true, - "radio": 0, - "if": -200000 - }, - "chan_multiSF_5": { - "desc": "Lora MAC", - "enable": true, - "radio": 0, - "if": 0 - }, - "chan_multiSF_6": { - "desc": "Lora MAC, 125kHz, all SF, 867.7 MHz", - "enable": true, - "radio": 0, - "if": 200000 - }, - "chan_multiSF_7": { - "desc": "Lora MAC, 125kHz, all SF, 867.9 MHz", - "enable": true, - "radio": 0, - "if": 400000 - }, - "chan_Lora_std": { - "desc": "Lora MAC, 250kHz, SF7, 868.3 MHz", - "enable": true, - "radio": 1, - "if": -200000, - "bandwidth": 250000, - "spread_factor": 7 - }, - "chan_FSK": { - "desc": "FSK 50kbps, 868.8 MHz", - "enable": true, - "radio": 1, - "if": 300000, - "bandwidth": 125000, - "datarate": 50000 - }, - "tx_lut_0": { - "desc": "TX gain table, index 0", - "pa_gain": 0, - "mix_gain": 8, - "rf_power": -6, - "dig_gain": 0 - }, - "tx_lut_1": { - "desc": "TX gain table, index 1", - "pa_gain": 0, - "mix_gain": 10, - "rf_power": -3, - "dig_gain": 0 - }, - "tx_lut_2": { - "desc": "TX gain table, index 2", - "pa_gain": 0, - "mix_gain": 12, - "rf_power": 0, - "dig_gain": 0 - }, - "tx_lut_3": { - "desc": "TX gain table, index 3", - "pa_gain": 1, - "mix_gain": 8, - "rf_power": 3, - "dig_gain": 0 - }, - "tx_lut_4": { - "desc": "TX gain table, index 4", - "pa_gain": 1, - "mix_gain": 10, - "rf_power": 6, - "dig_gain": 0 - }, - "tx_lut_5": { - - "desc": "TX gain table, index 5", - "pa_gain": 1, - "mix_gain": 12, - "rf_power": 10, - "dig_gain": 0 - }, - "tx_lut_6": { - "desc": "TX gain table, index 6", - "pa_gain": 1, - "mix_gain": 13, - "rf_power": 11, - "dig_gain": 0 - }, - "tx_lut_7": { - "desc": "TX gain table, index 7", - "pa_gain": 2, - "mix_gain": 9, - "rf_power": 12, - "dig_gain": 0 - }, - "tx_lut_8": { - "desc": "TX gain table, index 8", - "pa_gain": 1, - "mix_gain": 15, - "rf_power": 13, - "dig_gain": 0 - }, - "tx_lut_9": { - "desc": "TX gain table, index 9", - "pa_gain": 2, - "mix_gain": 10, - "rf_power": 14, - "dig_gain": 0 - }, - "tx_lut_10": { - "desc": "TX gain table, index 10", - "pa_gain": 2, - "mix_gain": 11, - "rf_power": 16, - "dig_gain": 0 - }, - "tx_lut_11": { - "desc": "TX gain table, index 11", - "pa_gain": 3, - "mix_gain": 10, - "rf_power": 20, - "dig_gain": 0 - }, - "tx_lut_12": { - "desc": "TX gain table, index 12", - "pa_gain": 3, - "mix_gain": 11, - "rf_power": 23, - "dig_gain": 0 - }, - "tx_lut_13": { - "desc": "TX gain table, index 13", - "pa_gain": 3, - "mix_gain": 12, - "rf_power": 24, - "dig_gain": 0 - }, - "tx_lut_14": { - "desc": "TX gain table, index 14", - "pa_gain": 3, - "mix_gain": 13, - "rf_power": 25, - "dig_gain": 0 - }, - "tx_lut_15": { - "desc": "TX gain table, index 15", - "pa_gain": 3, - "mix_gain": 15, - "rf_power": 26, - "dig_gain": 0 - } - } -} - diff --git a/recipes-connectivity/lora/lora-packet-forwarder/local_conf.json b/recipes-connectivity/lora/lora-packet-forwarder/local_conf.json deleted file mode 100644 index 925a010..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/local_conf.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "gateway_conf": { - "server_address": "192.168.1.2", - "serv_port_up": 1700, - "serv_port_down": 1700, - "serv_enabled": true, - "fake_gps": true, - "ref_latitude": 47.142879, - "ref_longitude": 7.244233, - "ref_altitude": 481, - "contact_email": "mail@example.net", - "description": "NetModule LoRaWAN Gateway #1" - } -} diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-add-no-header-option.patch b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-add-no-header-option.patch deleted file mode 100644 index fd2fa24..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-add-no-header-option.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 03c697f2bcf538407ca6a0821dbbb65ab7679aff Mon Sep 17 00:00:00 2001 -From: Jason Reiss -Date: Thu, 16 Jul 2015 13:31:20 -0500 -Subject: [PATCH] feature: add option to send packets with no header - ---- - basic_pkt_fwd/src/basic_pkt_fwd.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/basic_pkt_fwd/src/basic_pkt_fwd.c b/basic_pkt_fwd/src/basic_pkt_fwd.c -index e20dfc1..2223b4a 100644 ---- a/basic_pkt_fwd/src/basic_pkt_fwd.c -+++ b/basic_pkt_fwd/src/basic_pkt_fwd.c -@@ -1276,6 +1276,13 @@ void thread_down(void) { - if (val != NULL) { - txpkt.no_crc = (bool)json_value_get_boolean(val); - } -+ -+ /* Parse "No Header" flag (optional field) */ -+ val = json_object_get_value(txpk_obj,"nhdr"); -+ if (val != NULL) { -+ txpkt.no_header = (bool)json_value_get_boolean(val); -+ } -+ - - /* parse target frequency (mandatory) */ - val = json_object_get_value(txpk_obj,"freq"); - -diff --git a/gps_pkt_fwd/src/gps_pkt_fwd.c b/gps_pkt_fwd/src/gps_pkt_fwd.c -index 79f7584..d073540 100644 ---- a/gps_pkt_fwd/src/gps_pkt_fwd.c -+++ b/gps_pkt_fwd/src/gps_pkt_fwd.c -@@ -1534,6 +1534,12 @@ void thread_down(void) { - txpkt.no_crc = (bool)json_value_get_boolean(val); - } - -+ /* Parse "No Header" flag (optional field) */ -+ val = json_object_get_value(txpk_obj,"nhdr"); -+ if (val != NULL) { -+ txpkt.no_header = (bool)json_value_get_boolean(val); -+ } -+ - /* parse target frequency (mandatory) */ - val = json_object_get_value(txpk_obj,"freq"); - if (val == NULL) { diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-add-queue.patch b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-add-queue.patch deleted file mode 100644 index cd9a727..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-add-queue.patch +++ /dev/null @@ -1,316 +0,0 @@ -From fdf5d6669d5132da9016840dfe2c1c99f525e4bc Mon Sep 17 00:00:00 2001 -From: Jason Reiss -Date: Tue, 29 Sep 2015 12:01:12 -0500 -Subject: [PATCH] add-queue to pkt-fwd - ---- - basic_pkt_fwd/src/basic_pkt_fwd.c | 93 +++++++++++++++++++++++++++++++++++-- - 1 file changed, 88 insertions(+), 5 deletions(-) - -diff --git a/basic_pkt_fwd/src/basic_pkt_fwd.c b/basic_pkt_fwd/src/basic_pkt_fwd.c -index e20dfc1..4d0bb35 100644 ---- a/basic_pkt_fwd/src/basic_pkt_fwd.c -+++ b/basic_pkt_fwd/src/basic_pkt_fwd.c -@@ -162,8 +162,19 @@ static int parse_gateway_configuration(const char * conf_file); - - static double difftimespec(struct timespec end, struct timespec beginning); - -+typedef struct tx_queue_s { -+ struct lgw_pkt_tx_s pkt; -+ struct tx_queue_s* next; -+} tx_queue_s; -+ -+ -+struct tx_queue_s* tx_queue = NULL; -+struct tx_queue_s* tx_queue_end = NULL; -+ -+ - /* threads */ - void thread_up(void); -+void thread_queue(void); - void thread_down(void); - - /* -------------------------------------------------------------------------- */ -@@ -479,6 +490,7 @@ int main(void) - - /* threads */ - pthread_t thrid_up; -+ pthread_t thrid_queue; - pthread_t thrid_down; - - /* network socket creation */ -@@ -649,6 +661,11 @@ int main(void) - MSG("ERROR: [main] impossible to create downstream thread\n"); - exit(EXIT_FAILURE); - } -+ i = pthread_create( &thrid_queue, NULL, (void * (*)(void *))thread_queue, NULL); -+ if (i != 0) { -+ MSG("ERROR: [main] impossible to create queue thread\n"); -+ exit(EXIT_FAILURE); -+ } - - /* configure signal handling */ - sigemptyset(&sigact.sa_mask); -@@ -744,6 +761,7 @@ int main(void) - - /* wait for upstream thread to finish (1 fetch cycle max) */ - pthread_join(thrid_up, NULL); -+ pthread_cancel(thrid_queue); - pthread_cancel(thrid_down); /* don't wait for downstream thread */ - - /* if an exit signal was received, try to quit properly */ -@@ -1121,9 +1139,9 @@ void thread_up(void) { - } - - /* -------------------------------------------------------------------------- */ --/* --- THREAD 2: POLLING SERVER AND EMITTING PACKETS ------------------------ */ -+/* --- THREAD 2: POLLING SERVER AND QUEUEING PACKETS ------------------------ */ - --void thread_down(void) { -+void thread_queue(void) { - int i; /* loop variables */ - - /* configuration and metadata for an outbound packet */ -@@ -1462,11 +1480,48 @@ void thread_down(void) { - meas_dw_dgram_rcv += 1; /* count only datagrams with no JSON errors */ - meas_dw_network_byte += msg_len; /* meas_dw_network_byte */ - meas_dw_payload_byte += txpkt.size; -+ pthread_mutex_unlock(&mx_meas_dw); -+ -+ pthread_mutex_lock(&mx_concent); /* may have to wait for a fetch to finish */ -+ if (tx_queue == NULL) { -+ tx_queue = malloc(sizeof(tx_queue_s)); -+ tx_queue_end = tx_queue; -+ tx_queue->pkt = txpkt; -+ tx_queue->next = NULL; -+ } else { -+ struct tx_queue_s* item = malloc(sizeof(tx_queue_s)); -+ item->next = NULL; -+ item->pkt = txpkt; -+ tx_queue_end->next = item; -+ tx_queue_end = item; -+ } -+ pthread_mutex_unlock(&mx_concent); -+ } -+ wait_ms(1); -+ } -+ MSG("\nINFO: End of queue thread\n"); -+} -+ -+/* -------------------------------------------------------------------------- */ -+/* --- THREAD 3: POLLING QUEUE AND EMITTING PACKETS ------------------------ */ -+ -+void thread_down(void) { -+ MSG("\nINFO: Start of downstream thread\n"); - -+ struct lgw_pkt_tx_s txpkt; -+ -+ while (!exit_sig && !quit_sig) { -+ pthread_mutex_lock(&mx_concent); /* may have to wait for a fetch to finish */ -+ if (tx_queue != NULL) { -+ struct tx_queue_s* del = tx_queue; -+ txpkt = tx_queue->pkt; -+ tx_queue = tx_queue->next; -+ free(del); - /* transfer data and metadata to the concentrator, and schedule TX */ -- pthread_mutex_lock(&mx_concent); /* may have to wait for a fetch to finish */ -- i = lgw_send(txpkt); -+ int i = lgw_send(txpkt); - pthread_mutex_unlock(&mx_concent); /* free concentrator ASAP */ -+ -+ pthread_mutex_lock(&mx_meas_dw); - if (i == LGW_HAL_ERROR) { - meas_nb_tx_fail += 1; - pthread_mutex_unlock(&mx_meas_dw); -@@ -1476,7 +1531,35 @@ void thread_down(void) { - meas_nb_tx_ok += 1; - pthread_mutex_unlock(&mx_meas_dw); - } -- } -+ -+ uint8_t tx_status_var = TX_STATUS_UNKNOWN; -+ // wait for 200 ms and ensure packet is transmitted -+ for (i=0; (i < 20) && (tx_status_var != TX_EMITTING); ++i) { -+ wait_ms(10); -+ pthread_mutex_lock(&mx_concent); -+ lgw_status(TX_STATUS, &tx_status_var); -+ pthread_mutex_unlock(&mx_concent); -+ } -+ if (tx_status_var != TX_EMITTING) { -+ MSG("WARNING: [down] packet was scheduled but failed to TX\n"); -+ } else { -+ // if packet is transmitting then wait for end of TX or timeout after 4 seconds -+ for (i=0; (i < 400) && (tx_status_var != TX_FREE); ++i) { -+ wait_ms(10); -+ pthread_mutex_lock(&mx_concent); -+ lgw_status(TX_STATUS, &tx_status_var); -+ pthread_mutex_unlock(&mx_concent); -+ } -+ -+ if (tx_status_var != TX_FREE) { -+ MSG("WARNING: [down] timedout waiting for end of TX\n"); -+ } -+ } -+ -+ } else { -+ pthread_mutex_unlock(&mx_concent); /* free concentrator ASAP */ -+ } -+ wait_ms(1); - } - MSG("\nINFO: End of downstream thread\n"); - } - -iff --git a/gps_pkt_fwd/src/gps_pkt_fwd.c b/gps_pkt_fwd/src/gps_pkt_fwd.c -index 79f7584..3d1cbf8 100644 ---- a/gps_pkt_fwd/src/gps_pkt_fwd.c -+++ b/gps_pkt_fwd/src/gps_pkt_fwd.c -@@ -192,8 +192,18 @@ static int parse_gateway_configuration(const char * conf_file); - - static double difftimespec(struct timespec end, struct timespec beginning); - -+typedef struct tx_queue_s { -+ struct lgw_pkt_tx_s pkt; -+ struct tx_queue_s* next; -+} tx_queue_s; -+ -+ -+struct tx_queue_s* tx_queue = NULL; -+struct tx_queue_s* tx_queue_end = NULL; -+ - /* threads */ - void thread_up(void); -+void thread_queue(void); - void thread_down(void); - void thread_gps(void); - void thread_valid(void); -@@ -546,6 +556,7 @@ int main(void) - - /* threads */ - pthread_t thrid_up; -+ pthread_t thrid_queue; - pthread_t thrid_down; - pthread_t thrid_gps; - pthread_t thrid_valid; -@@ -739,6 +750,12 @@ int main(void) - exit(EXIT_FAILURE); - } - -+ i = pthread_create( &thrid_queue, NULL, (void * (*)(void *))thread_queue, NULL); -+ if (i != 0) { -+ MSG("ERROR: [main] impossible to create queue thread\n"); -+ exit(EXIT_FAILURE); -+ } -+ - /* spawn thread to manage GPS */ - if (gps_enabled == true) { - i = pthread_create( &thrid_gps, NULL, (void * (*)(void *))thread_gps, NULL); -@@ -891,6 +908,7 @@ int main(void) - - /* wait for upstream thread to finish (1 fetch cycle max) */ - pthread_join(thrid_up, NULL); -+ pthread_cancel(thrid_queue); - pthread_cancel(thrid_down); /* don't wait for downstream thread */ - pthread_cancel(thrid_gps); /* don't wait for GPS thread */ - pthread_cancel(thrid_valid); /* don't wait for validation thread */ -@@ -1325,9 +1343,9 @@ void thread_up(void) { - } - - /* -------------------------------------------------------------------------- */ --/* --- THREAD 2: POLLING SERVER AND EMITTING PACKETS ------------------------ */ -+/* --- THREAD 2: POLLING SERVER AND QUEUE PACKETS ------------------------ */ - --void thread_down(void) { -+void thread_queue(void) { - int i; /* loop variables */ - - /* configuration and metadata for an outbound packet */ -@@ -1719,11 +1737,49 @@ void thread_down(void) { - meas_dw_dgram_rcv += 1; /* count only datagrams with no JSON errors */ - meas_dw_network_byte += msg_len; /* meas_dw_network_byte */ - meas_dw_payload_byte += txpkt.size; -+ pthread_mutex_unlock(&mx_meas_dw); -+ -+ pthread_mutex_lock(&mx_concent); /* may have to wait for a fetch to finish */ -+ if (tx_queue == NULL) { -+ tx_queue = malloc(sizeof(tx_queue_s)); -+ tx_queue_end = tx_queue; -+ tx_queue->pkt = txpkt; -+ tx_queue->next = NULL; -+ } else { -+ struct tx_queue_s* item = malloc(sizeof(tx_queue_s)); -+ item->next = NULL; -+ item->pkt = txpkt; -+ tx_queue_end->next = item; -+ tx_queue_end = item; -+ } -+ pthread_mutex_unlock(&mx_concent); -+ } -+ wait_ms(1); -+ } -+ MSG("\nINFO: End of queue thread\n"); -+} -+ -+/* -------------------------------------------------------------------------- */ -+/* --- THREAD 3: POLLING QUEUE AND EMITTING PACKETS ------------------------ */ -+ -+void thread_down(void) { -+ MSG("\nINFO: Start of downstream thread\n"); - -+ struct lgw_pkt_tx_s txpkt; -+ -+ while (!exit_sig && !quit_sig) { -+ pthread_mutex_lock(&mx_concent); /* may have to wait for a fetch to finish */ -+ if (tx_queue != NULL) { -+ struct tx_queue_s* del = tx_queue; -+ txpkt = tx_queue->pkt; -+ tx_queue = tx_queue->next; -+ free(del); -+ - /* transfer data and metadata to the concentrator, and schedule TX */ -- pthread_mutex_lock(&mx_concent); /* may have to wait for a fetch to finish */ -- i = lgw_send(txpkt); -+ int i = lgw_send(txpkt); - pthread_mutex_unlock(&mx_concent); /* free concentrator ASAP */ -+ -+ pthread_mutex_lock(&mx_meas_dw); - if (i == LGW_HAL_ERROR) { - meas_nb_tx_fail += 1; - pthread_mutex_unlock(&mx_meas_dw); -@@ -1733,7 +1789,35 @@ void thread_down(void) { - meas_nb_tx_ok += 1; - pthread_mutex_unlock(&mx_meas_dw); - } -- } -+ -+ uint8_t tx_status_var = TX_STATUS_UNKNOWN; -+ // wait for 200 ms and ensure packet is transmitted -+ for (i=0; (i < 20) && (tx_status_var != TX_EMITTING); ++i) { -+ wait_ms(10); -+ pthread_mutex_lock(&mx_concent); -+ lgw_status(TX_STATUS, &tx_status_var); -+ pthread_mutex_unlock(&mx_concent); -+ } -+ if (tx_status_var != TX_EMITTING) { -+ MSG("WARNING: [down] packet was scheduled but failed to TX\n"); -+ } else { -+ // if packet is transmitting then wait for end of TX or timeout after 4 seconds -+ for (i=0; (i < 400) && (tx_status_var != TX_FREE); ++i) { -+ wait_ms(10); -+ pthread_mutex_lock(&mx_concent); -+ lgw_status(TX_STATUS, &tx_status_var); -+ pthread_mutex_unlock(&mx_concent); -+ } -+ -+ if (tx_status_var != TX_FREE) { -+ MSG("WARNING: [down] timedout waiting for end of TX\n"); -+ } -+ } -+ -+ } else { -+ pthread_mutex_unlock(&mx_concent); /* free concentrator ASAP */ -+ } -+ wait_ms(1); - } - MSG("\nINFO: End of downstream thread\n"); - } - diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-fixb64.patch b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-fixb64.patch deleted file mode 100644 index dc0df42..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-fixb64.patch +++ /dev/null @@ -1,66 +0,0 @@ -Index: git/basic_pkt_fwd/src/base64.c -=================================================================== ---- git.orig/basic_pkt_fwd/src/base64.c 2015-03-31 16:00:39.479058735 -0500 -+++ git/basic_pkt_fwd/src/base64.c 2015-03-31 16:02:18.529580540 -0500 -@@ -263,7 +263,7 @@ - DEBUG("ERROR: INVALID UNPADDED BASE64 STRING\n"); - return -1; - case 2: /* 2 chars in last block, must add 2 padding char */ -- if (max_len > (ret + 2 + 1)) { -+ if (max_len >= (ret + 2 + 1)) { - out[ret] = code_pad; - out[ret+1] = code_pad; - out[ret+2] = 0; -@@ -273,7 +273,7 @@ - return -1; - } - case 3: /* 3 chars in last block, must add 1 padding char */ -- if (max_len > (ret + 1 + 1)) { -+ if (max_len >= (ret + 1 + 1)) { - out[ret] = code_pad; - out[ret+1] = 0; - return ret+1; -Index: git/beacon_pkt_fwd/src/base64.c -=================================================================== ---- git.orig/beacon_pkt_fwd/src/base64.c 2015-03-31 16:00:39.479058735 -0500 -+++ git/beacon_pkt_fwd/src/base64.c 2015-03-31 16:03:26.040561508 -0500 -@@ -263,7 +263,7 @@ - DEBUG("ERROR: INVALID UNPADDED BASE64 STRING\n"); - return -1; - case 2: /* 2 chars in last block, must add 2 padding char */ -- if (max_len > (ret + 2 + 1)) { -+ if (max_len >= (ret + 2 + 1)) { - out[ret] = code_pad; - out[ret+1] = code_pad; - out[ret+2] = 0; -@@ -273,7 +273,7 @@ - return -1; - } - case 3: /* 3 chars in last block, must add 1 padding char */ -- if (max_len > (ret + 1 + 1)) { -+ if (max_len >= (ret + 1 + 1)) { - out[ret] = code_pad; - out[ret+1] = 0; - return ret+1; -Index: git/gps_pkt_fwd/src/base64.c -=================================================================== ---- git.orig/gps_pkt_fwd/src/base64.c 2015-03-31 16:02:59.344965478 -0500 -+++ git/gps_pkt_fwd/src/base64.c 2015-03-31 16:03:13.208755845 -0500 -@@ -263,7 +263,7 @@ - DEBUG("ERROR: INVALID UNPADDED BASE64 STRING\n"); - return -1; - case 2: /* 2 chars in last block, must add 2 padding char */ -- if (max_len > (ret + 2 + 1)) { -+ if (max_len >= (ret + 2 + 1)) { - out[ret] = code_pad; - out[ret+1] = code_pad; - out[ret+2] = 0; -@@ -273,7 +273,7 @@ - return -1; - } - case 3: /* 3 chars in last block, must add 1 padding char */ -- if (max_len > (ret + 1 + 1)) { -+ if (max_len >= (ret + 1 + 1)) { - out[ret] = code_pad; - out[ret+1] = 0; - return ret+1; diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-mts-enhancements.patch b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-mts-enhancements.patch deleted file mode 100644 index e1da462..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-mts-enhancements.patch +++ /dev/null @@ -1,321 +0,0 @@ -Index: git/basic_pkt_fwd/src/basic_pkt_fwd.c -=================================================================== ---- git.orig/basic_pkt_fwd/src/basic_pkt_fwd.c 2015-04-01 15:14:12.192933389 -0500 -+++ git/basic_pkt_fwd/src/basic_pkt_fwd.c 2015-04-01 15:36:38.731731561 -0500 -@@ -42,6 +42,8 @@ - #include /* gai_strerror */ - - #include -+#include -+#include - - #include "parson.h" - #include "base64.h" -@@ -472,19 +474,65 @@ - return x; - } - -+void usage(char *proc_name) { -+ fprintf(stderr, "Usage: %s [-c config_dir] [-l logfile]\n", proc_name); -+ exit(1); -+} -+ -+ -+static char *short_options = "c:l:h"; -+static struct option long_options[] = { -+ {"config-dir", 1, 0, 'c'}, -+ {"logfile", 1, 0, 'l'}, -+ {"help", 0, 0, 'h'}, -+ {0, 0, 0, 0}, -+}; -+ - /* -------------------------------------------------------------------------- */ - /* --- MAIN FUNCTION -------------------------------------------------------- */ - --int main(void) -+int main(int argc, char *argv[]) - { - struct sigaction sigact; /* SIGQUIT&SIGINT&SIGTERM signal handling */ - int i; /* loop variable and temporary variable for return value */ - - /* configuration file related */ -- char *global_cfg_path= "global_conf.json"; /* contain global (typ. network-wide) configuration */ -- char *local_cfg_path = "local_conf.json"; /* contain node specific configuration, overwrite global parameters for parameters that are defined in both */ -- char *debug_cfg_path = "debug_conf.json"; /* if present, all other configuration files are ignored */ -- -+ char *global_cfg_name = "global_conf.json"; /* contain global (typ. network-wide) configuration */ -+ char *local_cfg_name = "local_conf.json"; /* contain node specific configuration, overwrite global parameters for parameters that are defined in both */ -+ char *debug_cfg_name = "debug_conf.json"; /* if present, all other configuration files are ignored */ -+ -+ int opt_ind = 0; -+ char cfg_dir[PATH_MAX] = {0}; -+ char global_cfg_path[PATH_MAX] = {0}; -+ char local_cfg_path[PATH_MAX] = {0}; -+ char debug_cfg_path[PATH_MAX] = {0}; -+ char *logfile_path = NULL; -+ char *proc_name = argv[0]; -+ -+ while((i = getopt_long(argc, argv, short_options, long_options, &opt_ind)) >= 0) { -+ switch(i) { -+ case 0: -+ break; -+ case 'c': -+ strncpy(cfg_dir, optarg, sizeof(cfg_dir)-2); -+ strcat(cfg_dir, "/"); -+ break; -+ case 'l': -+ logfile_path = optarg; -+ break; -+ case 'h': -+ usage(proc_name); -+ break; -+ default: -+ usage(proc_name); -+ break; -+ } -+ } -+ -+ snprintf(global_cfg_path, sizeof(global_cfg_path), "%s%s", cfg_dir, global_cfg_name); -+ snprintf(local_cfg_path, sizeof(local_cfg_path), "%s%s", cfg_dir, local_cfg_name); -+ snprintf(debug_cfg_path, sizeof(debug_cfg_path), "%s%s", cfg_dir, debug_cfg_name); -+ - /* threads */ - pthread_t thrid_up; - pthread_t thrid_down; -@@ -522,6 +570,22 @@ - float rx_nocrc_ratio; - float up_ack_ratio; - float dw_ack_ratio; -+ -+ /* redirect stdout, stderr to logfile if specified */ -+ int logfile_fd; -+ FILE *logfile = NULL; -+ if (logfile_path) { -+ logfile = fopen(logfile_path, "w"); -+ if (logfile) { -+ logfile_fd = fileno(logfile); -+ dup2(logfile_fd, STDOUT_FILENO); -+ dup2(logfile_fd, STDERR_FILENO); -+ } -+ else { -+ printf("Error opening log file %s\n", logfile_path); -+ exit(1); -+ } -+ } - - /* display version informations */ - MSG("*** Basic Packet Forwarder for Lora Gateway ***\nVersion: " VERSION_STRING "\n"); -diff --git a/gps_pkt_fwd/src/gps_pkt_fwd.c b/gps_pkt_fwd/src/gps_pkt_fwd.c -index 79f7584..3f2f91c 100644 ---- a/gps_pkt_fwd/src/gps_pkt_fwd.c -+++ b/gps_pkt_fwd/src/gps_pkt_fwd.c -@@ -44,6 +44,8 @@ Maintainer: Sylvain Miermont - #include /* gai_strerror */ - - #include -+#include -+#include - - #include "parson.h" - #include "base64.h" -@@ -531,19 +533,65 @@ static double difftimespec(struct timespec end, struct timespec beginning) { - return x; - } - -+void usage(char *proc_name) { -+ fprintf(stderr, "Usage: %s [-c config_dir] [-l logfile]\n", proc_name); -+ exit(1); -+} -+ -+ -+static char *short_options = "c:l:h"; -+static struct option long_options[] = { -+ {"config-dir", 1, 0, 'c'}, -+ {"logfile", 1, 0, 'l'}, -+ {"help", 0, 0, 'h'}, -+ {0, 0, 0, 0}, -+}; -+ - /* -------------------------------------------------------------------------- */ - /* --- MAIN FUNCTION -------------------------------------------------------- */ - --int main(void) -+int main(int argc, char *argv[]) - { - struct sigaction sigact; /* SIGQUIT&SIGINT&SIGTERM signal handling */ - int i; /* loop variable and temporary variable for return value */ - - /* configuration file related */ -- char *global_cfg_path= "global_conf.json"; /* contain global (typ. network-wide) configuration */ -- char *local_cfg_path = "local_conf.json"; /* contain node specific configuration, overwrite global parameters for parameters that are defined in both */ -- char *debug_cfg_path = "debug_conf.json"; /* if present, all other configuration files are ignored */ -- -+ char *global_cfg_name = "global_conf.json"; /* contain global (typ. network-wide) configuration */ -+ char *local_cfg_name = "local_conf.json"; /* contain node specific configuration, overwrite global parameters for parameters that are defined in both */ -+ char *debug_cfg_name = "debug_conf.json"; /* if present, all other configuration files are ignored */ -+ -+ int opt_ind = 0; -+ char cfg_dir[PATH_MAX] = {0}; -+ char global_cfg_path[PATH_MAX] = {0}; -+ char local_cfg_path[PATH_MAX] = {0}; -+ char debug_cfg_path[PATH_MAX] = {0}; -+ char *logfile_path = NULL; -+ char *proc_name = argv[0]; -+ -+ while((i = getopt_long(argc, argv, short_options, long_options, &opt_ind)) >= 0) { -+ switch(i) { -+ case 0: -+ break; -+ case 'c': -+ strncpy(cfg_dir, optarg, sizeof(cfg_dir)-2); -+ strcat(cfg_dir, "/"); -+ break; -+ case 'l': -+ logfile_path = optarg; -+ break; -+ case 'h': -+ usage(proc_name); -+ break; -+ default: -+ usage(proc_name); -+ break; -+ } -+ } -+ -+ snprintf(global_cfg_path, sizeof(global_cfg_path), "%s%s", cfg_dir, global_cfg_name); -+ snprintf(local_cfg_path, sizeof(local_cfg_path), "%s%s", cfg_dir, local_cfg_name); -+ snprintf(debug_cfg_path, sizeof(debug_cfg_path), "%s%s", cfg_dir, debug_cfg_name); -+ - /* threads */ - pthread_t thrid_up; - pthread_t thrid_down; -@@ -589,6 +637,22 @@ int main(void) - float up_ack_ratio; - float dw_ack_ratio; - -+ /* redirect stdout, stderr to logfile if specified */ -+ int logfile_fd; -+ FILE *logfile = NULL; -+ if (logfile_path) { -+ logfile = fopen(logfile_path, "w"); -+ if (logfile) { -+ logfile_fd = fileno(logfile); -+ dup2(logfile_fd, STDOUT_FILENO); -+ dup2(logfile_fd, STDERR_FILENO); -+ } -+ else { -+ printf("Error opening log file %s\n", logfile_path); -+ exit(1); -+ } -+ } -+ - /* display version informations */ - MSG("*** GPS Packet Forwarder for Lora Gateway ***\nVersion: " VERSION_STRING "\n"); - MSG("*** Lora concentrator HAL library version info ***\n%s\n***\n", lgw_version_info()); -Index: git/beacon_pkt_fwd/src/beacon_pkt_fwd.c -=================================================================== ---- git.orig/beacon_pkt_fwd/src/beacon_pkt_fwd.c 2015-04-01 15:14:12.156933956 -0500 -+++ git/beacon_pkt_fwd/src/beacon_pkt_fwd.c 2015-04-01 15:14:12.284931938 -0500 -@@ -45,6 +45,8 @@ - #include /* gai_strerror */ - - #include -+#include -+#include - - #include "parson.h" - #include "base64.h" -@@ -618,19 +620,65 @@ - return x; - } - -+void usage(char *proc_name) { -+ fprintf(stderr, "Usage: %s [-c config_dir] [-l logfile]\n", proc_name); -+ exit(1); -+} -+ -+ -+static char *short_options = "c:h"; -+static struct option long_options[] = { -+ {"config-dir", 1, 0, 'c'}, -+ {"logfile", 1, 0, 'l'}, -+ {"help", 0, 0, 'h'}, -+ {0, 0, 0, 0}, -+}; -+ - /* -------------------------------------------------------------------------- */ - /* --- MAIN FUNCTION -------------------------------------------------------- */ - --int main(void) -+int main(int argc, char *argv[]) - { - struct sigaction sigact; /* SIGQUIT&SIGINT&SIGTERM signal handling */ - int i; /* loop variable and temporary variable for return value */ - - /* configuration file related */ -- char *global_cfg_path= "global_conf.json"; /* contain global (typ. network-wide) configuration */ -- char *local_cfg_path = "local_conf.json"; /* contain node specific configuration, overwrite global parameters for parameters that are defined in both */ -- char *debug_cfg_path = "debug_conf.json"; /* if present, all other configuration files are ignored */ -- -+ char *global_cfg_name = "global_conf.json"; /* contain global (typ. network-wide) configuration */ -+ char *local_cfg_name = "local_conf.json"; /* contain node specific configuration, overwrite global parameters for parameters that are defined in both */ -+ char *debug_cfg_name = "debug_conf.json"; /* if present, all other configuration files are ignored */ -+ -+ int opt_ind = 0; -+ char cfg_dir[PATH_MAX] = {0}; -+ char global_cfg_path[PATH_MAX] = {0}; -+ char local_cfg_path[PATH_MAX] = {0}; -+ char debug_cfg_path[PATH_MAX] = {0}; -+ char *logfile_path = NULL; -+ char *proc_name = argv[0]; -+ -+ while((i = getopt_long(argc, argv, short_options, long_options, &opt_ind)) >= 0) { -+ switch(i) { -+ case 0: -+ break; -+ case 'c': -+ strncpy(cfg_dir, optarg, sizeof(cfg_dir)-2); -+ strcat(cfg_dir, "/"); -+ break; -+ case 'l': -+ logfile_path = optarg; -+ break; -+ case 'h': -+ usage(proc_name); -+ break; -+ default: -+ usage(proc_name); -+ break; -+ } -+ } -+ -+ snprintf(global_cfg_path, sizeof(global_cfg_path), "%s%s", cfg_dir, global_cfg_name); -+ snprintf(local_cfg_path, sizeof(local_cfg_path), "%s%s", cfg_dir, local_cfg_name); -+ snprintf(debug_cfg_path, sizeof(debug_cfg_path), "%s%s", cfg_dir, debug_cfg_name); -+ - /* threads */ - pthread_t thrid_up; - pthread_t thrid_down; -@@ -767,6 +715,22 @@ - float rx_nocrc_ratio; - float up_ack_ratio; - float dw_ack_ratio; -+ -+ /* redirect stdout, stderr to logfile if specified */ -+ int logfile_fd; -+ FILE *logfile = NULL; -+ if (logfile_path) { -+ logfile = fopen(logfile_path, "w"); -+ if (logfile) { -+ logfile_fd = fileno(logfile); -+ dup2(logfile_fd, STDOUT_FILENO); -+ dup2(logfile_fd, STDERR_FILENO); -+ } -+ else { -+ printf("Error opening log file %s\n", logfile_path); -+ exit(1); -+ } -+ } - - /* display version informations */ - MSG("*** Beacon Packet Forwarder for Lora Gateway ***\nVersion: " VERSION_STRING "\n"); diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-set-spi-path.patch b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-set-spi-path.patch deleted file mode 100644 index 01ce509..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-set-spi-path.patch +++ /dev/null @@ -1,111 +0,0 @@ -Index: git/basic_pkt_fwd/src/basic_pkt_fwd.c -=================================================================== ---- git.orig/basic_pkt_fwd/src/basic_pkt_fwd.c 2015-01-07 14:38:10.016886785 -0600 -+++ git/basic_pkt_fwd/src/basic_pkt_fwd.c 2015-01-07 14:49:57.823412026 -0600 -@@ -106,6 +106,7 @@ - /* network configuration variables */ - static uint64_t lgwm = 0; /* Lora gateway MAC address */ - static char serv_addr[64] = STR(DEFAULT_SERVER); /* address of the server (host name or IPv4/IPv6) */ -+static char spi_device_path[64] = {0} ; /* custom SPI device path */ - static char serv_port_up[8] = STR(DEFAULT_PORT_UP); /* server port for upstream traffic */ - static char serv_port_down[8] = STR(DEFAULT_PORT_DW); /* server port for downstream traffic */ - static int keepalive_time = DEFAULT_KEEPALIVE; /* send a PULL_DATA request every X seconds, negative = disabled */ -@@ -393,6 +394,13 @@ - strncpy(serv_addr, str, sizeof serv_addr); - MSG("INFO: server hostname or IP address is configured to \"%s\"\n", serv_addr); - } -+ -+ /* spi device path (optional) */ -+ str = json_object_get_string(conf_obj, "spi_device"); -+ if (str != NULL) { -+ strncpy(spi_device_path, str, sizeof(spi_device_path)-1); -+ MSG("INFO: SPI device is configured to \"%s\"\n", spi_device_path); -+ } - - /* get up and down ports (optional) */ - val = json_object_get_value(conf_obj, "serv_port_up"); -@@ -629,6 +637,10 @@ - exit(EXIT_FAILURE); - } - freeaddrinfo(result); -+ -+ /* set custom SPI device path if configured */ -+ if (strlen(spi_device_path) > 0) -+ lgw_spi_set_path(spi_device_path); - - /* starting the concentrator */ - i = lgw_start(); -Index: git/beacon_pkt_fwd/src/beacon_pkt_fwd.c -=================================================================== ---- git.orig/beacon_pkt_fwd/src/beacon_pkt_fwd.c 2015-01-05 11:29:12.946020392 -0600 -+++ git/beacon_pkt_fwd/src/beacon_pkt_fwd.c 2015-01-07 14:57:00.338533303 -0600 -@@ -115,6 +115,7 @@ - /* network configuration variables */ - static uint64_t lgwm = 0; /* Lora gateway MAC address */ - static char serv_addr[64] = STR(DEFAULT_SERVER); /* address of the server (host name or IPv4/IPv6) */ -+static char spi_device_path[64] = {0} ; /* custom SPI device path */ - static char serv_port_up[8] = STR(DEFAULT_PORT_UP); /* server port for upstream traffic */ - static char serv_port_down[8] = STR(DEFAULT_PORT_DW); /* server port for downstream traffic */ - static int keepalive_time = DEFAULT_KEEPALIVE; /* send a PULL_DATA request every X seconds, negative = disabled */ -@@ -440,6 +441,13 @@ - strncpy(serv_addr, str, sizeof serv_addr); - MSG("INFO: server hostname or IP address is configured to \"%s\"\n", serv_addr); - } -+ -+ /* spi device path (optional) */ -+ str = json_object_get_string(conf_obj, "spi_device"); -+ if (str != NULL) { -+ strncpy(spi_device_path, str, sizeof(spi_device_path)-1); -+ MSG("INFO: SPI device is configured to \"%s\"\n", spi_device_path); -+ } - - /* get up and down ports (optional) */ - val = json_object_get_value(conf_obj, "serv_port_up"); -@@ -774,6 +782,10 @@ - exit(EXIT_FAILURE); - } - freeaddrinfo(result); -+ -+ /* set custom SPI device path if configured */ -+ if (strlen(spi_device_path) > 0) -+ lgw_spi_set_path(spi_device_path); - - /* starting the concentrator */ - i = lgw_start(); -Index: git/gps_pkt_fwd/src/gps_pkt_fwd.c -=================================================================== ---- git.orig/gps_pkt_fwd/src/gps_pkt_fwd.c 2015-01-05 11:29:12.946020392 -0600 -+++ git/gps_pkt_fwd/src/gps_pkt_fwd.c 2015-01-07 14:56:03.320278543 -0600 -@@ -110,6 +110,7 @@ - /* network configuration variables */ - static uint64_t lgwm = 0; /* Lora gateway MAC address */ - static char serv_addr[64] = STR(DEFAULT_SERVER); /* address of the server (host name or IPv4/IPv6) */ -+static char spi_device_path[64] = {0} ; /* custom SPI device path */ - static char serv_port_up[8] = STR(DEFAULT_PORT_UP); /* server port for upstream traffic */ - static char serv_port_down[8] = STR(DEFAULT_PORT_DW); /* server port for downstream traffic */ - static int keepalive_time = DEFAULT_KEEPALIVE; /* send a PULL_DATA request every X seconds, negative = disabled */ -@@ -424,6 +425,13 @@ - strncpy(serv_addr, str, sizeof serv_addr); - MSG("INFO: server hostname or IP address is configured to \"%s\"\n", serv_addr); - } -+ -+ /* spi device path (optional) */ -+ str = json_object_get_string(conf_obj, "spi_device"); -+ if (str != NULL) { -+ strncpy(spi_device_path, str, sizeof(spi_device_path)-1); -+ MSG("INFO: SPI device is configured to \"%s\"\n", spi_device_path); -+ } - - /* get up and down ports (optional) */ - val = json_object_get_value(conf_obj, "serv_port_up"); -@@ -717,6 +725,10 @@ - exit(EXIT_FAILURE); - } - freeaddrinfo(result); -+ -+ /* set custom SPI device path if configured */ -+ if (strlen(spi_device_path) > 0) -+ lgw_spi_set_path(spi_device_path); - - /* starting the concentrator */ - i = lgw_start(); diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-skip-bad-packets.patch b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-skip-bad-packets.patch deleted file mode 100644 index eb9450f..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-skip-bad-packets.patch +++ /dev/null @@ -1,109 +0,0 @@ -Index: git/basic_pkt_fwd/src/basic_pkt_fwd.c -=================================================================== ---- git.orig/basic_pkt_fwd/src/basic_pkt_fwd.c 2014-12-16 17:03:32.891297739 -0600 -+++ git/basic_pkt_fwd/src/basic_pkt_fwd.c 2014-12-18 10:49:22.379916372 -0600 -@@ -928,7 +928,8 @@ - MSG("ERROR: [up] received packet with unknown status\n"); - memcpy((void *)(buff_up + buff_index), (void *)",\"stat\":?", 9); - buff_index += 9; -- exit(EXIT_FAILURE); -+ continue; // skip packet -+ //exit(EXIT_FAILURE); - } - - /* Packet modulation, 13-14 useful chars */ -@@ -966,7 +967,8 @@ - MSG("ERROR: [up] lora packet with unknown datarate\n"); - memcpy((void *)(buff_up + buff_index), (void *)",\"datr\":\"SF?", 12); - buff_index += 12; -- exit(EXIT_FAILURE); -+ continue; // skip packet -+ //exit(EXIT_FAILURE); - } - switch (p->bandwidth) { - case BW_125KHZ: -@@ -985,7 +987,8 @@ - MSG("ERROR: [up] lora packet with unknown bandwidth\n"); - memcpy((void *)(buff_up + buff_index), (void *)"BW?\"", 4); - buff_index += 4; -- exit(EXIT_FAILURE); -+ continue; // skip packet -+ //exit(EXIT_FAILURE); - } - - /* Packet ECC coding rate, 11-13 useful chars */ -@@ -1014,7 +1017,8 @@ - MSG("ERROR: [up] lora packet with unknown coderate\n"); - memcpy((void *)(buff_up + buff_index), (void *)",\"codr\":\"?\"", 11); - buff_index += 11; -- exit(EXIT_FAILURE); -+ continue; // skip packet -+ //exit(EXIT_FAILURE); - } - - /* Lora SNR, 11-13 useful chars */ -@@ -1039,7 +1043,8 @@ - } - } else { - MSG("ERROR: [up] received packet with unknown modulation\n"); -- exit(EXIT_FAILURE); -+ continue; // skip packet -+ //exit(EXIT_FAILURE); - } - - /* Packet RSSI, payload size, 18-23 useful chars */ - -diff --git a/gps_pkt_fwd/src/gps_pkt_fwd.c b/gps_pkt_fwd/src/gps_pkt_fwd.c -index 79f7584..933de29 100644 ---- a/gps_pkt_fwd/src/gps_pkt_fwd.c -+++ b/gps_pkt_fwd/src/gps_pkt_fwd.c -@@ -1107,7 +1107,8 @@ void thread_up(void) { - MSG("ERROR: [up] received packet with unknown status\n"); - memcpy((void *)(buff_up + buff_index), (void *)",\"stat\":?", 9); - buff_index += 9; -- exit(EXIT_FAILURE); -+ continue; // skip packet -+ //exit(EXIT_FAILURE); - } - - /* Packet modulation, 13-14 useful chars */ -@@ -1145,7 +1146,8 @@ void thread_up(void) { - MSG("ERROR: [up] lora packet with unknown datarate\n"); - memcpy((void *)(buff_up + buff_index), (void *)",\"datr\":\"SF?", 12); - buff_index += 12; -- exit(EXIT_FAILURE); -+ continue; // skip packet -+ //exit(EXIT_FAILURE); - } - switch (p->bandwidth) { - case BW_125KHZ: -@@ -1164,7 +1166,8 @@ void thread_up(void) { - MSG("ERROR: [up] lora packet with unknown bandwidth\n"); - memcpy((void *)(buff_up + buff_index), (void *)"BW?\"", 4); - buff_index += 4; -- exit(EXIT_FAILURE); -+ continue; // skip packet -+ //exit(EXIT_FAILURE); - } - - /* Packet ECC coding rate, 11-13 useful chars */ -@@ -1193,7 +1196,8 @@ void thread_up(void) { - MSG("ERROR: [up] lora packet with unknown coderate\n"); - memcpy((void *)(buff_up + buff_index), (void *)",\"codr\":\"?\"", 11); - buff_index += 11; -- exit(EXIT_FAILURE); -+ continue; // skip packet -+ //exit(EXIT_FAILURE); - } - - /* Lora SNR, 11-13 useful chars */ -@@ -1218,7 +1222,8 @@ void thread_up(void) { - } - } else { - MSG("ERROR: [up] received packet with unknown modulation\n"); -- exit(EXIT_FAILURE); -+ continue; // skip packet -+ //exit(EXIT_FAILURE); - } - - /* Packet RSSI, payload size, 18-23 useful chars */ diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-synch-word.patch b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-synch-word.patch deleted file mode 100644 index 2f04eb1..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder-synch-word.patch +++ /dev/null @@ -1,99 +0,0 @@ - -diff --git a/basic_pkt_fwd/src/basic_pkt_fwd.c b/basic_pkt_fwd/src/basic_pkt_fwd.c -index 2223b4a..2db6e26 100644 ---- a/basic_pkt_fwd/src/basic_pkt_fwd.c -+++ b/basic_pkt_fwd/src/basic_pkt_fwd.c -@@ -103,7 +104,8 @@ static bool fwd_error_pkt = false; /* packets with PAYLOAD CRC ERROR are NOT for - static bool fwd_nocrc_pkt = false; /* packets with NO PAYLOAD CRC are NOT forwarded */ - - /* network configuration variables */ -+static uint8_t synch_word = 0x12; - static uint64_t lgwm = 0; /* Lora gateway MAC address */ - static char serv_addr[64] = STR(DEFAULT_SERVER); /* address of the server (host name or IPv4/IPv6) */ - static char serv_port_up[8] = STR(DEFAULT_PORT_UP); /* server port for upstream traffic */ - static char serv_port_down[8] = STR(DEFAULT_PORT_DW); /* server port for downstream traffic */ -@@ -281,6 +282,11 @@ static int parse_SX1301_configuration(const char * conf_file) { - MSG("INFO: %s does contain a JSON object named %s, parsing SX1301 parameters\n", conf_file, conf_obj_name); - } - -+ val = json_object_get_value(conf_obj, "lorawan_public"); /* fetch value (if possible) */ -+ if (json_value_get_type(val) == JSONBoolean && (bool)json_value_get_boolean(val) == true) { -+ synch_word = 0x34; -+ } -+ - /* set configuration for RF chains */ - for (i = 0; i < LGW_RF_CHAIN_NB; ++i) { - memset(&rfconf, 0, sizeof rfconf); /* initialize configuration structure */ -@@ -404,7 +415,14 @@ static int parse_gateway_configuration(const char * conf_file) { - snprintf(serv_port_down, sizeof serv_port_down, "%u", (uint16_t)json_value_get_number(val)); - MSG("INFO: downstream port is configured to \"%s\"\n", serv_port_down); - } -- -+ -+ val = json_object_get_value(conf_obj, "synch_word"); -+ if (val != NULL) { -+ synch_word = (uint8_t)json_value_get_number(val); -+ MSG("INFO: synch word is configured to %02x\n", synch_word); -+ } -+ -+ - /* get keep-alive interval (in seconds) for downstream (optional) */ - val = json_object_get_value(conf_obj, "keepalive_interval"); - if (val != NULL) { -@@ -637,7 +721,9 @@ int main(void) - MSG("ERROR: [main] failed to start the concentrator\n"); - exit(EXIT_FAILURE); - } -- -+ -+ lgw_conf_lora_synch_word(synch_word); -+ - /* spawn threads to manage upstream and downstream */ - i = pthread_create( &thrid_up, NULL, (void * (*)(void *))thread_up, NULL); - if (i != 0) { -diff --git a/gps_pkt_fwd/src/gps_pkt_fwd.c b/gps_pkt_fwd/src/gps_pkt_fwd.c -index 79f7584..8addbc0 100644 ---- a/gps_pkt_fwd/src/gps_pkt_fwd.c -+++ b/gps_pkt_fwd/src/gps_pkt_fwd.c -@@ -108,6 +108,7 @@ static bool fwd_error_pkt = false; /* packets with PAYLOAD CRC ERROR are NOT for - static bool fwd_nocrc_pkt = false; /* packets with NO PAYLOAD CRC are NOT forwarded */ - - /* network configuration variables */ -+static uint8_t synch_word = 0x12; - static uint64_t lgwm = 0; /* Lora gateway MAC address */ - static char serv_addr[64] = STR(DEFAULT_SERVER); /* address of the server (host name or IPv4/IPv6) */ - static char serv_port_up[8] = STR(DEFAULT_PORT_UP); /* server port for upstream traffic */ -@@ -237,6 +238,11 @@ static int parse_SX1301_configuration(const char * conf_file) { - MSG("INFO: %s does contain a JSON object named %s, parsing SX1301 parameters\n", conf_file, conf_obj_name); - } - -+ val = json_object_get_value(conf_obj, "lorawan_public"); /* fetch value (if possible) */ -+ if (json_value_get_type(val) == JSONBoolean && (bool)json_value_get_boolean(val) == true) { -+ synch_word = 0x34; -+ } -+ - /* set configuration for RF chains */ - for (i = 0; i < LGW_RF_CHAIN_NB; ++i) { - memset(&rfconf, 0, sizeof rfconf); /* initialize configuration structure */ -@@ -437,6 +443,12 @@ static int parse_gateway_configuration(const char * conf_file) { - MSG("INFO: downstream port is configured to \"%s\"\n", serv_port_down); - } - -+ val = json_object_get_value(conf_obj, "synch_word"); -+ if (val != NULL) { -+ synch_word = (uint8_t)json_value_get_number(val); -+ MSG("INFO: synch word is configured to %02x\n", synch_word); -+ } -+ - /* get keep-alive interval (in seconds) for downstream (optional) */ - val = json_object_get_value(conf_obj, "keepalive_interval"); - if (val != NULL) { -@@ -727,6 +739,8 @@ int main(void) - exit(EXIT_FAILURE); - } - -+ lgw_conf_lora_synch_word(synch_word); -+ - /* spawn threads to manage upstream and downstream */ - i = pthread_create( &thrid_up, NULL, (void * (*)(void *))thread_up, NULL); - if (i != 0) { diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora.service b/recipes-connectivity/lora/lora-packet-forwarder/lora.service deleted file mode 100644 index 382b669..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/lora.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Start lora paket forwarder -After=network.target - -[Service] -Type=simple -ExecStart=/opt/lora/start-lora.sh - -[Install] -WantedBy=multi-user.target diff --git a/recipes-connectivity/lora/lora-packet-forwarder/start-lora.sh b/recipes-connectivity/lora/lora-packet-forwarder/start-lora.sh deleted file mode 100644 index 0d2c807..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder/start-lora.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -set_gpio() { - if [ ! -d "/sys/class/gpio/gpio$1" ]; then - echo $1 > /sys/class/gpio/export - fi - - echo out > /sys/class/gpio/gpio$1/direction - echo $2 > /sys/class/gpio/gpio$1/value -} - -set_gpio 14 1 -set_gpio 15 1 -set_gpio 27 1 - -if ! grep -q gateway_ID /opt/lora/local_conf.json; then - mac=$(ip link show eth0 | grep link | awk '{print $2 };' | sed 's/://g') - sed -i "3i\ \"gateway_ID\": \"${mac^^}\"," /opt/lora/local_conf.json -fi - -cd /opt/lora - -# Wait until power on -sleep 2 - -while [ $(route -n | wc -l) -lt 3 ]; do - sleep 5 -done - -# Fire up the forwarder. -/opt/lora/gps_pkt_fwd diff --git a/recipes-connectivity/lora/lora-packet-forwarder_1.4.1.bb b/recipes-connectivity/lora/lora-packet-forwarder_1.4.1.bb deleted file mode 100644 index c27f6a3..0000000 --- a/recipes-connectivity/lora/lora-packet-forwarder_1.4.1.bb +++ /dev/null @@ -1,70 +0,0 @@ -DESCRIPTION = "LoRa Packet Forwarder" -HOMEPAGE = "https://github.com/Lora-net" -PRIORITY = "optional" -SECTION = "console/utils" -# Semtech license is a modified BSD-style license -LICENSE = "SEMTECH" -LIC_FILES_CHKSUM = "file://LICENSE;md5=22af7693d7b76ef0fc76161c4be76c45" -DEPENDS = "lora-gateway" -PR = "r10" - -inherit systemd - -SYSTEMD_SERVICE_${PN} = "lora.service" -SYSTEMD_AUTO_ENABLE ?= "enable" - -# tag v1.4.1 -SRCREV = "0011a60759a7d81656a5393e97089daab1ff1a81" - -SRC_URI = "git://github.com/Lora-net/packet_forwarder.git;protocol=git \ - file://lora-packet-forwarder-add-no-header-option.patch \ - file://lora-packet-forwarder-set-spi-path.patch \ - file://lora-packet-forwarder-skip-bad-packets.patch \ - file://lora-packet-forwarder-fixb64.patch \ - file://lora-packet-forwarder-mts-enhancements.patch \ - file://lora-packet-forwarder-synch-word.patch \ - file://lora-packet-forwarder-add-queue.patch \ - file://global_conf.json \ - file://local_conf.json \ - file://start-lora.sh \ - file://lora.service\ - file://README.md \ -" - -S = "${WORKDIR}/git" - -LORA_DIR = "/opt/lora" - -export LGW_PATH = "${STAGING_LIBDIR}/lora" -export LGW_INC = "${STAGING_INCDIR}/lora" - -CFLAGS += "-I${LGW_INC} -Iinc -I." - -do_compile() { - oe_runmake -} - -do_install() { - install -d ${D}${LORA_DIR} - install -m 755 gps_pkt_fwd/gps_pkt_fwd ${D}${LORA_DIR}/ - install -m 755 basic_pkt_fwd/basic_pkt_fwd ${D}${LORA_DIR}/ - install -m 755 beacon_pkt_fwd/beacon_pkt_fwd ${D}${LORA_DIR}/ - install -m 755 util_sink/util_sink ${D}${LORA_DIR}/ - install -m 755 util_ack/util_ack ${D}${LORA_DIR}/ - install -m 755 ${WORKDIR}/README.md ${D}${LORA_DIR}/ - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/global_conf.json ${D}/opt/lora/ - install -m 0644 ${WORKDIR}/local_conf.json ${D}/opt/lora/ - install -m 0644 ${WORKDIR}/lora.service ${D}${systemd_unitdir}/system - - install -m 0755 ${WORKDIR}/start-lora.sh ${D}/opt/lora/ -} - -FILES_${PN} += "${LORA_DIR}" -FILES_${PN}-dbg += "${LORA_DIR}/.debug" - -# disable this on purpose for dev purposes -do_rm_work() { - echo "skipping" -} diff --git a/recipes-connectivity/lora/lora-query_1.0.2.bb b/recipes-connectivity/lora/lora-query_1.0.2.bb deleted file mode 100644 index 730266f..0000000 --- a/recipes-connectivity/lora/lora-query_1.0.2.bb +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "LoRa network server query tool" -HOMEPAGE = "http://www.multitech.net/" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f" -DEPENDS = "jsoncpp libmts" -PR = "r1" - -SRCREV = "${PV}" - -SRC_URI = "git://git.multitech.net/lora-query;branch=master" - -S = "${WORKDIR}/git" - -do_compile() { - oe_runmake -} - -do_install() { - oe_runmake install DESTDIR=${D} -} - diff --git a/recipes-kernel/amfeltec-usb/amfeltec-usb/001_makefile.patch b/recipes-kernel/amfeltec-usb/amfeltec-usb/001_makefile.patch deleted file mode 100644 index fc99a09..0000000 --- a/recipes-kernel/amfeltec-usb/amfeltec-usb/001_makefile.patch +++ /dev/null @@ -1,80 +0,0 @@ -diff --git a/Makefile b/Makefile -index 37674a4..5e53b4c 100644 ---- a/Makefile -+++ b/Makefile -@@ -14,7 +14,7 @@ JUNK = *~ *.bak DEADJOE - - KVER ?= $(shell uname -r) - KNAME ?= $(shell uname -s) --KDIR =/lib/modules/$(shell uname -r)/build -+KERNEL_SRC ?=/lib/modules/$(shell uname -r)/build - KVERBOSE=0 - MODTYPE=ko - -@@ -22,14 +22,14 @@ VERBOSE =0 - AUSB_DIR =$(PWD) - SRC_DIR =$(PWD)/firmware - MOD_DIR =$(PWD)/driver --INCLUDE_DIR =$(PWD)/include -+INCLUDE_DIR =$(PWD)/include - OS_DIR =$(PWD)/include/os - - TARGETS=compile_amf_mod compile_amf_firmware - CLEANTARGETS=clean_amf_mod clean_amf_firmware - INSTALLTARGETS=install_amf_mod - --EXTRA_CFLAGS=$(GLOBAL_CFLAGS) -I$(KDIR)/include/linux -I$(INCLUDE_DIR) -I$(SRC_DIR) -I$(OS_DIR) -+EXTRA_CFLAGS=$(GLOBAL_CFLAGS) -I$(KERNEL_SRC)/include/linux -I$(INCLUDE_DIR) -I$(SRC_DIR) -I$(OS_DIR) - - DEBFLAGS = -O - ifeq ($(DEBUG),y) -@@ -57,16 +57,16 @@ EXTRA_CFLAGS += $(TESTFLAGS) - - EXTRA_UTIL_FLAGS=$(GLOBAL_CFLAGS) - --all: check-dahdi check-kernel $(TARGETS) -+all: $(TARGETS) - - compile_amf_mod: -- $(MAKE) KBUILD_VERBOSE=$(KVERBOSE) -C $(KDIR) SUBDIRS=$(MOD_DIR) EXTRA_FLAGS="$(EXTRA_CFLAGS)" modules -+ $(MAKE) KBUILD_VERBOSE=$(KVERBOSE) -C $(KERNEL_SRC) SUBDIRS=$(MOD_DIR) EXTRA_FLAGS="$(EXTRA_CFLAGS)" modules - - compile_amf_firmware: - $(MAKE) -C $(SRC_DIR) EXTRA_FLAGS="EXTRA_UTIL_FLAGS" - - clean_amf_mod: -- $(MAKE) -C $(KDIR) SUBDIRS=$(MOD_DIR) clean -+ $(MAKE) -C $(KERNEL_SRC) SUBDIRS=$(MOD_DIR) clean - - clean_amf_firmware: - $(MAKE) -C $(SRC_DIR) clean -@@ -78,22 +78,22 @@ install: $(INSTALLTARGETS) - $(shell depmod -a) - - install_amf_mod: -- $(MAKE) -C $(KDIR) SUBDIRS=$(MOD_DIR) modules_install -+ $(MAKE) -C $(KERNEL_SRC) SUBDIRS=$(MOD_DIR) modules_install - - #Check for linux headers - check-kernel: -- @if [ ! -e $(KDIR) ]; then \ -- echo " Error linux headers/source not found: $(KDIR) !"; \ -+ @if [ ! -e $(KERNEL_SRC) ]; then \ -+ echo " Error linux headers/source not found: $(KERNEL_SRC) !"; \ - echo ; \ - exit 1; \ - fi -- @if [ ! -e $(KDIR)/.config ]; then \ -- echo " Error linux headers/source not configured: missing $(KDIR)/.config !"; \ -+ @if [ ! -e $(KERNEL_SRC)/.config ]; then \ -+ echo " Error linux headers/source not configured: missing $(KERNEL_SRC)/.config !"; \ - echo ; \ - exit 1; \ - fi -- @if [ ! -e $(KDIR)/include ]; then \ -- echo " Error linux headers/source incomplete: missing $(KDIR)/include dir !"; \ -+ @if [ ! -e $(KERNEL_SRC)/include ]; then \ -+ echo " Error linux headers/source incomplete: missing $(KERNEL_SRC)/include dir !"; \ - echo ; \ - exit 1; \ - fi diff --git a/recipes-kernel/amfeltec-usb/amfeltec-usb/amfeltec_usb_4.0.4.tgz b/recipes-kernel/amfeltec-usb/amfeltec-usb/amfeltec_usb_4.0.4.tgz deleted file mode 100644 index a525241d1cfaf9f0c2f7b0fec29e4f9f397b1d5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143837 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�Hcp!iP!o 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

w84LAxJWFS_HTUf}Nl-;&m;K!tjU3xISeKt* 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 diff --git a/recipes-kernel/amfeltec-usb/amfeltec-usb_4.0.4.bb b/recipes-kernel/amfeltec-usb/amfeltec-usb_4.0.4.bb deleted file mode 100644 index 0766802..0000000 --- a/recipes-kernel/amfeltec-usb/amfeltec-usb_4.0.4.bb +++ /dev/null @@ -1,28 +0,0 @@ -DESCRIPTION = "A kernel module for the amfeltec usb fxs adapter" -HOMEPAGE = "http://www.netmodule.com/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" -PROVIDES = "amfeltec-usb" - -inherit module -DEPENDS = "dahdi-linux" -RDEPENDS_${PN} = "dahdi-linux" - -S = "${WORKDIR}/amfeltec_usb_${PV}" - -SRC_URI = " \ - file://amfeltec_usb_${PV}.tgz \ - file://001_makefile.patch \ - " - -GLOBAL_CFLAGS = "-I${STAGING_INCDIR} -DDAHDI_VERSION=29" - -do_compile_prepend() { - export GLOBAL_CFLAGS="${GLOBAL_CFLAGS}" - - cat ${STAGING_DIR_TARGET}/usr/share/dahdi-linux/Module.symvers ${STAGING_KERNEL_BUILDDIR}/Module.symvers > ${S}/driver/Module.symvers -} - -do_install() { - oe_runmake INSTALL_MOD_PATH=${D} install -} diff --git a/recipes-kernel/linux-firmware/linux-firmware/am335x-pm-firmware.bin b/recipes-kernel/linux-firmware/linux-firmware/am335x-pm-firmware.bin new file mode 100755 index 0000000000000000000000000000000000000000..2d9e42dda3d4a3c32d2cdcf2584ec9f4a71f197c GIT binary patch literal 10796 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 AGXMYp literal 0 HcmV?d00001 diff --git a/recipes-kernel/linux-firmware/linux-firmware/am335x-pm-firmware.elf b/recipes-kernel/linux-firmware/linux-firmware/am335x-pm-firmware.elf new file mode 100755 index 0000000000000000000000000000000000000000..329664f077b49f15838d2847192a7e9e7c2cb331 GIT binary patch literal 151064 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 MBZJ=h!e1u*|KCM+!~g&Q literal 0 HcmV?d00001 diff --git a/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend index 0a06db8..a007421 100644 --- a/recipes-kernel/linux-firmware/linux-firmware_%.bbappend +++ b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend @@ -47,6 +47,8 @@ SRC_URI_append = " \ file://ti-connectivity/wl12xx-nvs.bin \ file://ti-connectivity/wl18xx-conf.bin \ file://ti-connectivity/wl18xx-fw-4.bin \ + file://am335x-pm-firmware.bin \ + file://am335x-pm-firmware.elf \ " do_install_append() {