summaryrefslogtreecommitdiff
path: root/recipes-core
diff options
context:
space:
mode:
authorJohn Klug <john.klug@multitech.com>2020-11-11 14:22:06 -0600
committerJohn Klug <john.klug@multitech.com>2020-11-11 14:22:06 -0600
commitd75cc859d0009649aa5c97731933b50ba48231ba (patch)
treefbd1fac00b1f4a4b5688352f402335918f7c4807 /recipes-core
downloadmeta-mlinux-atmel-5.3.0a.tar.gz
meta-mlinux-atmel-5.3.0a.tar.bz2
meta-mlinux-atmel-5.3.0a.zip
MultiTech mLinux Atmel distribution OpenEmbedded layer5.3.0a
Diffstat (limited to 'recipes-core')
-rw-r--r--recipes-core/base-files/fstab-at91/fstab10
-rw-r--r--recipes-core/base-files/fstab-at91_1.0.bb17
-rw-r--r--recipes-core/images/core-image-rorootfs-overlay-initramfs.bb23
-rw-r--r--recipes-core/images/mlinux-base-image.bb75
-rw-r--r--recipes-core/images/mlinux-basetest-image.bb9
-rw-r--r--recipes-core/images/mlinux-commissioning-image.bb7
-rw-r--r--recipes-core/images/mlinux-factory-image.bb94
-rw-r--r--recipes-core/images/mlinux-factory-test-image.bb8
-rw-r--r--recipes-core/images/mlinux-minimal-image.bb83
-rw-r--r--recipes-core/images/mlinux-mono-image.bb3
-rw-r--r--recipes-core/images/mlinux-mtcap-commissioning-image.bb17
-rw-r--r--recipes-core/images/mlinux-mtcap-image.bb75
-rw-r--r--recipes-core/images/mlinux-mtcap-test-image.bb89
-rw-r--r--recipes-core/images/mlinux-mths-image.bb8
-rw-r--r--recipes-core/images/mlinux-mtr-image.bb76
-rw-r--r--recipes-core/images/mlinux-mtrv1-image.bb79
-rw-r--r--recipes-core/images/mlinux-rs9113-base-image.bb5
-rw-r--r--recipes-core/images/mlinux-rs9113-factory-image.bb5
-rw-r--r--recipes-core/images/mlinux-rs9113-mtrv1-image.bb75
-rw-r--r--recipes-core/images/mlinux-sdk.bb5
-rw-r--r--recipes-core/images/mtcap-modules.inc286
-rw-r--r--recipes-core/images/mtr-modules.inc293
-rwxr-xr-xrecipes-core/mlinux-scripts/mlinux-scripts/mlinux-firmware-upgrade69
-rw-r--r--recipes-core/mlinux-scripts/mlinux-scripts_%.bbappend13
-rw-r--r--recipes-core/udev/eudev/mtcap/mtcap.rules8
-rw-r--r--recipes-core/udev/eudev/mtcdt/accessory_ethernet.rules21
-rw-r--r--recipes-core/udev/eudev/mtcdt/mtcdt.rules14
-rw-r--r--recipes-core/udev/eudev/mtr/mtr.rules13
-rw-r--r--recipes-core/udev/eudev/mtrv1/mtrv1.rules13
-rw-r--r--recipes-core/udev/eudev_%.bbappend11
30 files changed, 1504 insertions, 0 deletions
diff --git a/recipes-core/base-files/fstab-at91/fstab b/recipes-core/base-files/fstab-at91/fstab
new file mode 100644
index 0000000..8922faf
--- /dev/null
+++ b/recipes-core/base-files/fstab-at91/fstab
@@ -0,0 +1,10 @@
+rootfs / auto defaults 1 1
+proc /proc proc defaults 0 0
+devpts /dev/pts devpts mode=0620,gid=5 0 0
+usbdevfs /proc/bus/usb usbdevfs noauto 0 0
+tmpfs /run tmpfs mode=0755,nodev,nosuid,strictatime 0 0
+tmpfs /var/volatile tmpfs defaults 0 0
+configfs /sys/kernel/config configfs defaults 0 0
+
+/dev/mtdblock6 /var/config jffs2 defaults 0 0
+/dev/mtdblock7 /var/oem jffs2 defaults,ro 0 0
diff --git a/recipes-core/base-files/fstab-at91_1.0.bb b/recipes-core/base-files/fstab-at91_1.0.bb
new file mode 100644
index 0000000..cd2102a
--- /dev/null
+++ b/recipes-core/base-files/fstab-at91_1.0.bb
@@ -0,0 +1,17 @@
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+inherit allarch
+PR = "r1"
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+PROVIDES = "fstab"
+DEPENDS = "base-files"
+RDEPENDS_${PN} = "base-files"
+
+SRC_URI = "file://fstab"
+
+FILES_${PN} = "${sysconfdir}/fstab"
+
+do_install() {
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}
+}
diff --git a/recipes-core/images/core-image-rorootfs-overlay-initramfs.bb b/recipes-core/images/core-image-rorootfs-overlay-initramfs.bb
new file mode 100644
index 0000000..47946c5
--- /dev/null
+++ b/recipes-core/images/core-image-rorootfs-overlay-initramfs.bb
@@ -0,0 +1,23 @@
+# Simple initramfs image. Mostly used for live images.
+# Derived from https://github.com/cmhe/meta-readonly-rootfs-overlay
+DESCRIPTION = "Small image capable of booting a device. The kernel includes \
+the Minimal RAM-based Initial Root Filesystem (initramfs), mounts the root fs \
+read only and uses a file system overlay for written data."
+
+PACKAGE_INSTALL = "initramfs-readonly-rootfs-overlay ${VIRTUAL-RUNTIME_base-utils} udev base-passwd gptfdisk ${ROOTFS_BOOTSTRAP_INSTALL}"
+
+# Do not pollute the initrd image with rootfs features
+IMAGE_FEATURES = ""
+
+export IMAGE_BASENAME = "${PN}"
+IMAGE_LINGUAS = ""
+
+LICENSE = "MIT"
+
+IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}"
+inherit core-image
+
+IMAGE_ROOTFS_SIZE = "8192"
+IMAGE_ROOTFS_EXTRA_SPACE = "0"
+
+BAD_RECOMMENDATIONS += "busybox-syslog"
diff --git a/recipes-core/images/mlinux-base-image.bb b/recipes-core/images/mlinux-base-image.bb
new file mode 100644
index 0000000..e61a7f7
--- /dev/null
+++ b/recipes-core/images/mlinux-base-image.bb
@@ -0,0 +1,75 @@
+# Conduit 0.0 or 0.1 without RS9113
+DESCRIPTION = "mLinux base image"
+LICENSE = "MIT"
+
+require mlinux-minimal-image.bb
+
+FILESYSTEM_FEATURES = "dosfstools \
+ cifs-utils \
+ lsof \
+ "
+
+NETWORKING_FEATURES_append = " \
+ bridge-utils \
+ inetutils-ftp \
+ openssl \
+ rsync \
+ iperf3 \
+ lldpd \
+ mii-diag \
+ tcpdump \
+ netcat \
+ wget \
+ strongswan \
+ busybox-ifplugd \
+ "
+
+WIFI_FEATURES = " \
+ libnl \
+ wpa-supplicant \
+ iw \
+ hostapd \
+ hostapd-cfg \
+ "
+
+BLUETOOTH_FEATURES = "bluez5"
+BLUETOOTH_INIT ??= "bluez5-mlinit"
+
+# Add all timezones available
+# ntpdate will sync time every 30 min by default via cron
+TIME_FEATURES = "tzdata tzdata-africa tzdata-americas tzdata-antarctica tzdata-arctic \
+ tzdata-asia tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific \
+ tzdata-misc \
+ cronie \
+ ntpdate \
+ "
+
+# u-boot-linux-utils: U-Boot environment access from Linux
+# mlinux-scripts: sample scripts for setting up Conduit for various tasks
+# reset-handler: default reset button handler
+# radio-cmd: supports cellular radio activation and other configuration commands
+# radio-query: queries cellular radio for common info (IMEI, RSSI, etc)
+# jsparser: command line tool to parse JSON files
+MULTITECH_FEATURES_append = " \
+ u-boot-linux-utils \
+ mlinux-scripts \
+ reset-handler \
+ radio-cmd radio-query \
+ jsparser \
+ "
+
+MISC_FEATURES = "minicom lrzsz nano"
+
+DEBUG_FEATURES = ""
+
+# Extra stuff to install
+IMAGE_INSTALL_append = " \
+ kernel-modules \
+ ${WIFI_FEATURES} \
+ ${BLUETOOTH_FEATURES} \
+ ${BLUETOOTH_INIT} \
+ ${FILESYSTEM_FEATURES} \
+ ${TIME_FEATURES} \
+ ${MISC_FEATURES} \
+ ${DEBUG_FEATURES} \
+ "
diff --git a/recipes-core/images/mlinux-basetest-image.bb b/recipes-core/images/mlinux-basetest-image.bb
new file mode 100644
index 0000000..807b16e
--- /dev/null
+++ b/recipes-core/images/mlinux-basetest-image.bb
@@ -0,0 +1,9 @@
+# Conduit 0.0 or 0.1 without RS9113
+DESCRIPTION = "mLinux base test image"
+LICENSE = "MIT"
+
+require mlinux-base-image.bb
+
+# Open console for test image
+CONSOLE = "sysvinit-inittab-start-open"
+
diff --git a/recipes-core/images/mlinux-commissioning-image.bb b/recipes-core/images/mlinux-commissioning-image.bb
new file mode 100644
index 0000000..5ba16a6
--- /dev/null
+++ b/recipes-core/images/mlinux-commissioning-image.bb
@@ -0,0 +1,7 @@
+require mlinux-rs9113-factory-image.bb
+DESCRIPTION = "mLinux factory image with commissioning support"
+
+# Extra stuff to install
+IMAGE_INSTALL_append = " dnsmasq bluez5-noinst-tools python-dbus commissioning commissioning-php-fpm rs9113-rm"
+IMAGE_INSTALL_remove = "useradd"
+ROOTFS_POSTPROCESS_COMMAND_remove = "mlinux_set_root_password;"
diff --git a/recipes-core/images/mlinux-factory-image.bb b/recipes-core/images/mlinux-factory-image.bb
new file mode 100644
index 0000000..49cab1f
--- /dev/null
+++ b/recipes-core/images/mlinux-factory-image.bb
@@ -0,0 +1,94 @@
+# Conduit 0.0 or 0.1 without RS9113
+#
+# The correct syntax for a machine append is:
+# VARIABLE_append_mtcdt
+# append must be before the machine name.
+#
+require mlinux-base-image.bb
+DESCRIPTION = "mLinux factory image"
+
+# For now we don't put this in MTR or AEP
+# Password restrictions library from Redhat
+IMAGE_INSTALL_append = " libpwquality"
+
+LIGHTTPD = "lighttpd \
+ lighttpd-module-cgi lighttpd-module-indexfile \
+ lighttpd-module-redirect lighttpd-module-auth \
+ lighttpd-module-access lighttpd-module-accesslog \
+ lighttpd-module-rewrite lighttpd-module-proxy lighttpd-module-fastcgi \
+ lighttpd-module-scgi lighttpd-module-alias \
+ lighttpd-module-dirlisting lighttpd-module-staticfile \
+ "
+
+# Lighttpd web server
+IMAGE_INSTALL_append = " ${LIGHTTPD}"
+
+IMAGE_INSTALL_append = " sqlite3"
+
+IMAGE_INSTALL_append= " autossh"
+
+# Monit system/process monitor
+IMAGE_INSTALL_append = " monit"
+
+# LoRa support (MTAC-LORA accessory card)
+IMAGE_INSTALL_append = " lora-gateway-utils lora-query lora-network-server lora-packet-forwarder-usb"
+IMAGE_INSTALL_append_mtcdt = " lora-gateway-geolocation-utils lora-packet-forwarder-geolocation"
+IMAGE_INSTALL_append_mtcdt = " mtac-xdot-util"
+
+# MQTT server
+IMAGE_INSTALL_append = " mosquitto mosquitto-clients"
+
+
+# Perl support
+IMAGE_INSTALL_append = " perl"
+IMAGE_INSTALL_append = " perl-module-io perl-module-fcntl"
+# not in meta-oe or oe-core...
+#IMAGE_INSTALL_append = " libdevice-serialport-perl"
+#IMAGE_INSTALL_append = " libexpect-perl"
+
+# Python support
+IMAGE_INSTALL_append = " python"
+# Python modules
+IMAGE_INSTALL_append = " python-argparse \
+python-compression \
+python-dateutil \
+python-html \
+python-psutil \
+python-pyopenssl \
+python-pyserial \
+python-pyudev \
+python-pyusb \
+python-simplejson \
+python-sqlite3 \
+python-syslog \
+python-textutils \
+python-unixadmin \
+python-xml \
+"
+
+# OpenJDK Java runtime
+# IMAGE_INSTALL_append = " openjdk-8"
+# OpenJDK with JamVM VM (Multi-Tech default)
+# IMAGE_INSTALL_append = " jamvm"
+# OpenJDK with CACAO VM (run with 'java -cacao')
+# IMAGE_INSTALL_append = " openjdk-7-vm-cacao"
+# OpenJDK Zero VM (run with 'java -zero')
+# IMAGE_INSTALL_append = " openjdk-7-vm-zero"
+
+# PHP support
+IMAGE_INSTALL_append = " php php-cli php-fpm"
+
+# Node.js support not available for Atmel any more.
+# IMAGE_INSTALL_append = " nodejs nodejs-npm"
+
+# Multi-Tech SMS Utility (see http://git.multitech.net)
+IMAGE_INSTALL_append = " sms-utils"
+# Multi-Tech GPS Utility
+IMAGE_INSTALL_append = " venus-gps"
+IMAGE_INSTALL_append = " pps-tools"
+IMAGE_INSTALL_append = " dnsmasq bluez5-pand bluez5-rfcomm"
+
+# When ntp is to use the GPS, gps-utils is required
+IMAGE_INSTALL_append = " gpsd libgps ntp ntp-utils gpspipe gps-utils"
+
+IMAGE_INSTALL_append = " uxfp uvccapture"
diff --git a/recipes-core/images/mlinux-factory-test-image.bb b/recipes-core/images/mlinux-factory-test-image.bb
new file mode 100644
index 0000000..e517734
--- /dev/null
+++ b/recipes-core/images/mlinux-factory-test-image.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "mLinux factory test image"
+LICENSE = "MIT"
+
+require mlinux-rs9113-factory-image.bb
+
+IMAGE_INSTALL_append = " strace i2c-tools spitools devmem2"
+#Open console for testing
+CONSOLE = "sysvinit-inittab-start-open"
diff --git a/recipes-core/images/mlinux-minimal-image.bb b/recipes-core/images/mlinux-minimal-image.bb
new file mode 100644
index 0000000..d10210f
--- /dev/null
+++ b/recipes-core/images/mlinux-minimal-image.bb
@@ -0,0 +1,83 @@
+# The correct syntax for a machine append is:
+# VARIABLE_append_mtcdt
+# append must be before the machine name.
+DESCRIPTION = "mLinux minimal image"
+LICENSE = "MIT"
+
+inherit core-image
+inherit mlinux-image
+
+IMAGE_LINGUAS = ""
+IMAGE_FEATURES_append = " ssh-server-openssh package-management"
+
+# Don't wipe out CORE_FEATURES from minimal image
+CORE_FEATURES_append = " \
+ packagegroup-core-boot packagegroup-distro-base \
+ packagegroup-base-ext2 \
+ packagegroup-base-usbhost packagegroup-base-usbgadget \
+ udev-extraconf usb-gadget-mode \
+ sysfsutils module-init-tools \
+ bash procps \
+ openssh-sftp-server \
+ util-linux-mount util-linux-umount \
+ start-stop-daemon \
+ sudo \
+ ${CORE_IMAGE_EXTRA_INSTALL} \
+ mlinux-feed-configs \
+ useradd \
+ mts-io-sysfs \
+ "
+
+CORE_FEATURES_append = " mtd-utils mtd-utils-jffs2 fstab-at91"
+
+CORE_FEATURES_append_mtcap = " mt-dt-overlay "
+
+NETWORKING_FEATURES = "ppp curl iproute2 \
+ iptables iputils \
+ "
+
+# mts-io: IO Controller for Multi-Tech hardware.
+# (LEDs, temp sensor, serial lines, and more)
+#
+# config: Handles default config files stored in /var/config.
+# /var/config is mounted on a separate flash partition so that config
+# files survive flashing of rootfs. See recipe for details.
+#
+# set-rs485: enables RS485 half-duplex mode for a given tty device
+#
+# mtcap does not need mts-io-util, but it is required for LoRa 2.1 images
+
+MULTITECH_FEATURES = "kernel-module-mts-io \
+ mts-io-noarch \
+ mts-io-util \
+ config \
+ mts-id-eeprom \
+ set-rs485 \
+ radio-reset \
+ upgrade-reboot"
+
+MULTITECH_MTAC = ""
+MULTITECH_MTAC_append_mtcdt = " \
+ kernel-module-mtac \
+ kernel-module-mtac-eth \
+ kernel-module-mtac-gpiob \
+ kernel-module-mtac-lora \
+ kernel-module-mtac-mfser \
+ kernel-module-mtac-pulse \
+ kernel-module-mtac-xdot"
+
+MULTITECH_BB = ""
+
+UPGRADE_FEATURES = "mtd-utils-static"
+
+CONSOLE = "sysvinit-inittab-start"
+
+IMAGE_INSTALL = "${CORE_FEATURES} \
+ ${NETWORKING_FEATURES} \
+ ${UPGRADE_FEATURES} \
+ ${MULTITECH_FEATURES} \
+ ${MULTITECH_MTAC} \
+ ${MULTITECH_BB} \
+ ${CONSOLE} \
+ "
+
diff --git a/recipes-core/images/mlinux-mono-image.bb b/recipes-core/images/mlinux-mono-image.bb
new file mode 100644
index 0000000..d066ae9
--- /dev/null
+++ b/recipes-core/images/mlinux-mono-image.bb
@@ -0,0 +1,3 @@
+require mlinux-base-image.bb
+
+IMAGE_INSTALL_append = " mono mono-helloworld"
diff --git a/recipes-core/images/mlinux-mtcap-commissioning-image.bb b/recipes-core/images/mlinux-mtcap-commissioning-image.bb
new file mode 100644
index 0000000..b1edd03
--- /dev/null
+++ b/recipes-core/images/mlinux-mtcap-commissioning-image.bb
@@ -0,0 +1,17 @@
+require mlinux-mtcap-image.bb
+DESCRIPTION = "mtcap image with commissioning support"
+
+LIGHTTPD = "lighttpd \
+ lighttpd-module-cgi lighttpd-module-indexfile \
+ lighttpd-module-redirect lighttpd-module-auth \
+ lighttpd-module-access lighttpd-module-accesslog \
+ lighttpd-module-rewrite lighttpd-module-proxy lighttpd-module-fastcgi \
+ lighttpd-module-scgi lighttpd-module-alias \
+ lighttpd-module-dirlisting lighttpd-module-staticfile \
+ "
+
+#install
+IMAGE_INSTALL += "${LIGHTTPD}"
+IMAGE_INSTALL_append = " commissioning commissioning-php-fpm"
+IMAGE_INSTALL_remove = "useradd"
+ROOTFS_POSTPROCESS_COMMAND_remove = "mlinux_set_root_password;"
diff --git a/recipes-core/images/mlinux-mtcap-image.bb b/recipes-core/images/mlinux-mtcap-image.bb
new file mode 100644
index 0000000..3fe349c
--- /dev/null
+++ b/recipes-core/images/mlinux-mtcap-image.bb
@@ -0,0 +1,75 @@
+DESCRIPTION = "mLinux Conduit Access Point image"
+
+require mlinux-minimal-image.bb
+require mtcap-modules.inc
+
+# For now we don't put this in MTR or AEP
+# Password restrictions library from Redhat
+IMAGE_INSTALL_append = " libpwquality"
+
+FILESYSTEM_FEATURES = "dosfstools \
+ cifs-utils \
+ lsof \
+ "
+
+NETWORKING_FEATURES_append = " \
+ bridge-utils \
+ inetutils-ftp \
+ openssl \
+ rsync \
+ iperf3 \
+ mii-diag \
+ tcpdump \
+ netcat \
+ wget \
+ strongswan \
+ busybox-ifplugd \
+ "
+
+TIME_FEATURES = "tzdata tzdata-africa tzdata-americas tzdata-antarctica tzdata-arctic \
+ tzdata-asia tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific \
+ tzdata-misc \
+ cronie \
+ ntpdate \
+ "
+
+WIFI_FEATURES = "libnl \
+ wpa-supplicant \
+ iw \
+ hostapd \
+ hostapd-cfg \
+ wilc1000 \
+ "
+
+MULTITECH_FEATURES_append = " \
+ u-boot-linux-utils \
+ mlinux-scripts \
+ reset-handler \
+ radio-cmd radio-query \
+ cell-radio-carrierswitch \
+ jsparser \
+ protobuf \
+ "
+
+IMAGE_INSTALL_append = " \
+ lora-gateway-utils \
+ lora-query \
+ lora-packet-forwarder \
+ lora-network-server \
+ logrotate \
+ mosquitto mosquitto-clients \
+ "
+
+MISC_FEATURES = "minicom lrzsz nano uxfp"
+
+# Extra stuff to install
+IMAGE_INSTALL_append = " gpsd libgps libgps24 ntp ntp-utils gpspipe gps-utils"
+
+IMAGE_INSTALL_append = " \
+ ${FILESYSTEM_FEATURES} \
+ ${TIME_FEATURES} \
+ ${MISC_FEATURES} \
+ "
+
+# Multi-Tech SMS Utility (see http://git.multitech.net)
+IMAGE_INSTALL_append = " sms-utils"
diff --git a/recipes-core/images/mlinux-mtcap-test-image.bb b/recipes-core/images/mlinux-mtcap-test-image.bb
new file mode 100644
index 0000000..57808cf
--- /dev/null
+++ b/recipes-core/images/mlinux-mtcap-test-image.bb
@@ -0,0 +1,89 @@
+DESCRIPTION = "mLinux Conduit Access Point image"
+
+require mlinux-minimal-image.bb
+require mtcap-modules.inc
+
+# For now we don't put this in MTR or AEP
+# Password restrictions library from Redhat
+IMAGE_INSTALL += "libpwquality"
+
+
+# Test image features
+IMAGE_INSTALL += "i2c-tools \
+ spitools \
+ strace \
+ devmem2 \
+ "
+
+FILESYSTEM_FEATURES = "dosfstools \
+ cifs-utils \
+ lsof \
+ "
+
+NETWORKING_FEATURES += "bridge-utils \
+ inetutils-ftp \
+ openssl \
+ rsync \
+ iperf2 \
+ iperf3 \
+ mii-diag \
+ tcpdump \
+ netcat \
+ wget \
+ strongswan \
+ busybox-ifplugd \
+ "
+
+# No accessory cards for MTAC
+MULTITECH_MTAC = ""
+
+TIME_FEATURES = "tzdata tzdata-africa tzdata-americas tzdata-antarctica tzdata-arctic \
+ tzdata-asia tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific \
+ tzdata-misc \
+ cronie \
+ ntpdate \
+ "
+
+WIFI_FEATURES = "libnl \
+ wpa-supplicant \
+ iw \
+ hostapd \
+ hostapd-cfg \
+ wilc1000 \
+ "
+
+MULTITECH_FEATURES += " \
+ u-boot-linux-utils \
+ mlinux-scripts \
+ reset-handler \
+ radio-cmd radio-query \
+ cell-radio-carrierswitch \
+ jsparser \
+ protobuf \
+ "
+
+IMAGE_INSTALL += "lora-gateway-utils \
+ lora-query \
+ lora-packet-forwarder \
+ lora-network-server \
+ logrotate \
+ mosquitto mosquitto-clients \
+ "
+
+MISC_FEATURES = "minicom lrzsz nano uxfp"
+
+# Extra stuff to install
+# Someday add wifi features
+# ${WIFI_FEATURES}
+#
+IMAGE_INSTALL += " \
+ ${FILESYSTEM_FEATURES} \
+ ${TIME_FEATURES} \
+ ${MISC_FEATURES} \
+ "
+
+# Open console for testing
+CONSOLE = "sysvinit-inittab-start-open"
+
+# Multi-Tech SMS Utility (see http://git.multitech.net)
+IMAGE_INSTALL += "sms-utils"
diff --git a/recipes-core/images/mlinux-mths-image.bb b/recipes-core/images/mlinux-mths-image.bb
new file mode 100644
index 0000000..9a90eea
--- /dev/null
+++ b/recipes-core/images/mlinux-mths-image.bb
@@ -0,0 +1,8 @@
+# Factory testing image for MTHS.
+# config-mths is needed for factory
+# reset.
+require mlinux-rs9113-mtrv1-image.bb
+DESCRIPTION = "MTHS images for Factory Testing"
+
+# Extra stuff to install
+IMAGE_INSTALL += "config-mths dnsmasq"
diff --git a/recipes-core/images/mlinux-mtr-image.bb b/recipes-core/images/mlinux-mtr-image.bb
new file mode 100644
index 0000000..baa2aef
--- /dev/null
+++ b/recipes-core/images/mlinux-mtr-image.bb
@@ -0,0 +1,76 @@
+require mtr-modules.inc
+DESCRIPTION = "mLinux base mtr image"
+LICENSE = "MIT"
+
+require mlinux-minimal-image.bb
+
+CONSOLE = "sysvinit-inittab-start-open"
+
+TEST_FEATURES = "i2c-tools \
+ spitools \
+ strace \
+ devmem2 \
+ "
+
+FILESYSTEM_FEATURES = "dosfstools \
+ cifs-utils \
+ lsof \
+ "
+
+NETWORKING_FEATURES_append = " bridge-utils \
+ inetutils-ftp \
+ openssl \
+ rsync \
+ iperf3 \
+ mii-diag \
+ tcpdump \
+ netcat \
+ wget \
+ strongswan \
+ busybox-ifplugd \
+ "
+
+WIFI_FEATURES = " \
+ libnl \
+ wpa-supplicant \
+ iw \
+ hostapd \
+ hostapd-cfg \
+ "
+
+BLUETOOTH_FEATURES = "bluez5"
+
+# Add all timezones available
+# ntpdate will sync time every 30 min by default via cron
+TIME_FEATURES = "tzdata tzdata-africa tzdata-americas tzdata-antarctica tzdata-arctic \
+ tzdata-asia tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific \
+ tzdata-misc \
+ cronie \
+ ntpdate \
+ "
+
+# u-boot-linux-utils: U-Boot environment access from Linux
+# mlinux-scripts: sample scripts for setting up Conduit for various tasks
+# reset-handler: default reset button handler
+# radio-cmd: supports cellular radio activation and other configuration commands
+# radio-query: queries cellular radio for common info (IMEI, RSSI, etc)
+# jsparser: command line tool to parse JSON files
+MULTITECH_FEATURES_append = " \
+ u-boot-linux-utils \
+ mlinux-scripts \
+ reset-handler \
+ radio-cmd radio-query \
+ jsparser \
+ "
+
+MISC_FEATURES = "minicom lrzsz nano"
+
+# Extra stuff to install
+IMAGE_INSTALL_append = " \
+ ${TEST_FEATURES} \
+ ${WIFI_FEATURES} \
+ ${BLUETOOTH_FEATURES} \
+ ${FILESYSTEM_FEATURES} \
+ ${TIME_FEATURES} \
+ ${MISC_FEATURES} \
+ "
diff --git a/recipes-core/images/mlinux-mtrv1-image.bb b/recipes-core/images/mlinux-mtrv1-image.bb
new file mode 100644
index 0000000..f72eb2d
--- /dev/null
+++ b/recipes-core/images/mlinux-mtrv1-image.bb
@@ -0,0 +1,79 @@
+require mtr-modules.inc
+DESCRIPTION = "mLinux base mtr image"
+LICENSE = "MIT"
+
+require mlinux-minimal-image.bb
+
+CONSOLE = "sysvinit-inittab-start-open"
+
+TEST_FEATURES = "i2c-tools \
+ spitools \
+ strace \
+ devmem2 \
+ "
+
+FILESYSTEM_FEATURES = "dosfstools \
+ cifs-utils \
+ lsof \
+ "
+
+NETWORKING_FEATURES_append = " bridge-utils \
+ inetutils-ftp \
+ openssl \
+ rsync \
+ iperf3 \
+ mii-diag \
+ tcpdump \
+ netcat \
+ wget \
+ strongswan \
+ busybox-ifplugd \
+ "
+
+WIFI_FEATURES = " \
+ libnl \
+ wpa-supplicant \
+ iw \
+ hostapd \
+ hostapd-cfg \
+ "
+
+BLUETOOTH_FEATURES = "bluez5 bluez5-pand"
+
+# Add all timezones available
+# ntpdate will sync time every 30 min by default via cron
+TIME_FEATURES = "tzdata tzdata-africa tzdata-americas tzdata-antarctica tzdata-arctic \
+ tzdata-asia tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific \
+ tzdata-misc \
+ cronie \
+ ntpdate \
+ "
+
+# u-boot-linux-utils: U-Boot environment access from Linux
+# mlinux-scripts: sample scripts for setting up Conduit for various tasks
+# reset-handler: default reset button handler
+# radio-cmd: supports cellular radio activation and other configuration commands
+# radio-query: queries cellular radio for common info (IMEI, RSSI, etc)
+# jsparser: command line tool to parse JSON files
+MULTITECH_FEATURES_append = " \
+ u-boot-linux-utils \
+ mlinux-scripts \
+ reset-handler \
+ radio-cmd radio-query \
+ jsparser \
+ "
+
+MISC_FEATURES = "minicom lrzsz nano pps-tools"
+
+# Extra stuff to install
+IMAGE_INSTALL_append = " kernel-module-rs9113 rs9113-util rs9113-autostart"
+IMAGE_INSTALL_append = " gpsd libgps libgps24 ntp ntp-utils gpspipe gps-utils"
+
+IMAGE_INSTALL_append = " \
+ ${TEST_FEATURES} \
+ ${WIFI_FEATURES} \
+ ${BLUETOOTH_FEATURES} \
+ ${FILESYSTEM_FEATURES} \
+ ${TIME_FEATURES} \
+ ${MISC_FEATURES} \
+ "
diff --git a/recipes-core/images/mlinux-rs9113-base-image.bb b/recipes-core/images/mlinux-rs9113-base-image.bb
new file mode 100644
index 0000000..ed2fc83
--- /dev/null
+++ b/recipes-core/images/mlinux-rs9113-base-image.bb
@@ -0,0 +1,5 @@
+require mlinux-base-image.bb
+DESCRIPTION = "mLinux base image with rs9113 drivers"
+
+# Extra stuff to install
+IMAGE_INSTALL_append = " kernel-module-rs9113 rs9113-autostart rs9113-util"
diff --git a/recipes-core/images/mlinux-rs9113-factory-image.bb b/recipes-core/images/mlinux-rs9113-factory-image.bb
new file mode 100644
index 0000000..40a4610
--- /dev/null
+++ b/recipes-core/images/mlinux-rs9113-factory-image.bb
@@ -0,0 +1,5 @@
+require mlinux-factory-image.bb
+DESCRIPTION = "mLinux factory image with rs9113 drivers"
+
+# Extra stuff to install
+IMAGE_INSTALL_append = " dnsmasq bluez5-noinst-tools python-dbus kernel-module-rs9113 rs9113-autostart rs9113-util rs9113-misc rs9113-utils-extra"
diff --git a/recipes-core/images/mlinux-rs9113-mtrv1-image.bb b/recipes-core/images/mlinux-rs9113-mtrv1-image.bb
new file mode 100644
index 0000000..da5632c
--- /dev/null
+++ b/recipes-core/images/mlinux-rs9113-mtrv1-image.bb
@@ -0,0 +1,75 @@
+require mtr-modules.inc
+DESCRIPTION = "mLinux base mtr image"
+LICENSE = "MIT"
+
+require mlinux-minimal-image.bb
+MULTITECH_MTAC = ""
+
+FILESYSTEM_FEATURES = "dosfstools \
+ cifs-utils \
+ lsof \
+ "
+
+NETWORKING_FEATURES += "bridge-utils \
+ dnsmasq \
+ inetutils-ftp \
+ openssl \
+ rsync \
+ iperf2 \
+ iperf3 \
+ mii-diag \
+ tcpdump \
+ netcat \
+ wget \
+ strongswan \
+ busybox-ifplugd \
+ "
+
+WIFI_FEATURES = " \
+ libnl \
+ wpa-supplicant \
+ iw \
+ hostapd \
+ hostapd-cfg \
+ "
+
+BLUETOOTH_FEATURES = "bluez5 bluez5-pand"
+
+# Add all timezones available
+# ntpdate will sync time every 30 min by default via cron
+TIME_FEATURES = "tzdata tzdata-africa tzdata-americas tzdata-antarctica tzdata-arctic \
+ tzdata-asia tzdata-atlantic tzdata-australia t