mLinux Changelog

6.3.0 (2023-05-31)

Yocto Dunfell version of mLinux

  • 5.4.199 kernel version
  • 3.8.13 Python version
  • 5.64 Bluez
  • No package update from older versions of mLinux (< 6.3.0)
  • Yocto build was tested on Ubuntu 18.04
  • Busybox date command was replaced with coreutils data command
  • nftables was added for experimentation as iptables command  is deprecated.
  • No more Python 2.  Only Python 3 is available
  • No mono package for this release

Known Behavior

  • Frequently mlinux-version will not build, and in the error, a component of the path will be <unknown>.  For a workaround, before the build do:

git config --global --add [OEROOT]

OEROOT is the directory which contains build, conf, downloads, layers, etc.

  • mLinux builds failing with Ubuntu running under Microsoft WSL2 or Oracle VirtualBox. Stable when using native VMWare or native Linux.

    • You may see failure in g++ building binutils-cross-arm:
| {standard input}: Assembler messages:
| {standard input}:48170: Warning: end of file not at end of a line; newline inserted
| {standard input}:48589: Error: unbalanced parenthesis in operand 1.
| {standard input}: Error: open CFI at the end of file; missing .cfi_endproc directive
| g++: fatal error: Killed signal terminated program cc1plus
    • You may see failure in gcc building mariadb-native:
| {standard input}: Assembler messages:
| {standard input}:31990: Warning: end of file not at end of a line; newline inserted
| gcc: internal compiler error: Killed (program cc1)
    • This seems to be related to MS Windows builds done under Oracle VirtualBox or MS WSL2. Resuming the build seems to overcome the issue.  Simply re-enter the command line for the image to resume the build.  Example:

MACHINE=mtcdt bitbake mlinux-factory-image

    • The problem seems to occur less frequently under MS WSL2.
  • lora-packet-forwarder and lora-network-server are now automatically monitored by monit when configured.
  • Firmware updates still delete all passwords and put the device in commissioning mode


6.0.1 (2022-05-31, updated 2022-11-07)

Yocto Dunfell version of mLinux

  • Almost everything has changed, including the kernel.
  • No more Python 2.  Only Python 3 is available
  • No mono package for this release
  • 5.4 kernel version
  • 3.8.11 Python version
  • opkg updates on the device use https now
  • Most package builds use https rather than http
  • No package update from older versions of mLinux (< 6.0.0)
  • Corrected Verizon SMS messaging for some cellular modems
  • user overlay file system was added so factory reset now removes all installed software that is not in /var/config or /var/oem
  • Yocto build was tested on Ubuntu 18.04

Known Behavior

  • lora-packet forwarder must be stopped prior to stopping GPSD or the CPU overloads.
    • /etc/init.d/lora-packet-forwarder stop
    • /etc/init.d/gpsd stop
  • firmware updates still delete all passwords and put the device in commissioning mode
  • Bug in MTCDT slot AP2 when using MTAC-ETH.  This can be fixed via opkg by updating:
    • opkg update
    • opkg install libudev1 eudev

5.3.5a (2022-02-11)

Stability update from 5.3.5 for old hardware to match fixes in 5.3.31 images.

  • Available only as an incremental upgrade for 5.3.5
  • No images for 5.3.5a. This is a targeted list of packages.
  • This update has only been tested on 5.3.5.
  • The updated version does not include support for new versions of MTCDT and MTCDTIP, but MTCDT/MTCDTIP support is included on those new devices and will not need the update.
  • 5.3.0 versions must update to 5.3.5 first.

5.3.31 (2022-02-11)

Stability update from 5.3.5

  • Fixes related to AT&T Sunset of 3G
  • GPSD fixes related to satellite overflow problem and 19 year rollover issue
  • WiFi changes for European Conformance
  • L4G1 Support
  • Support for MTCDT devices with substitute components
  • LNS updated to v2.5.24. Includes support for channel plan AS923-4 LoRa Frequency Plan
  • LPF updated to v4.0.14. Includes Listen-Before-Talk update
    • 128us scan time does not allow packets above aproximaely 370mS duration
  • LG updated to v5.0.10. Includes fix for class B beacon frequency error correction

Known Behavior

  • LG updated to v5.0.10. Issues identified in Class B deployments. Class B not recommended

5.3.0e (2021-06-24)

This version of mLinux is only available on It is a fix for 5.3.0d
because the build process broke sometime during the development of 5.3.5. This problem
only affects 5.3.0 builds done from The source tarball is unaffected.
If you have already retrieved mlinux from, and you see that
your build is failing in mtac-gpiob due to undefined values, you may fix this as follows:

  • cd ../layers/meta-multitech-atmel
  • git fetch origin 5.3
  • git checkout 5.3.0e
  • cd ../../build
  • [bitbake command(s)]

5.3.5 (2021-06-22)


  • LoRa Packet Forwarder 4.0.10-r30
  • LoRa Network Server 2.5.1-r0
  • 2021-Jan-19 CA-Certificates
  • MTCAP images now support MTCDTIP2
  • gpsd is now in MTCAP images for MTCDTIP2 support

Major fixes:

  • Sometimes GPSD 3.16 no longer acquires satellites. This problem is fixed in GPSD 3.20.
  • Firmware update via SD card failed. This is fixed in initscripts 1.0-r155.47
  • New U-Blox initialization method to improve GPSD start-up

It is recommended that for new builds you should use 5.3.5. If you want to start a new build of
5.3.0, you will need to execute git checkout 5.3.0eto get working code.

5.3.0b (2021-01-08)

Note that the source image for this release is labeled 5.3.0d. This is because 5.3.0b had recipe issues that required special access to Multitech servers during the build. The resulting build output of 5.3.0b and 5.3.0d are identical in function.

node.js support was dropped. This is because Node.js has dropped support for the ARMV5 architecture.

Ruby language support was dropped. This is because Yocto/Open-Embedded dropped support of Ruby.

mLinux 5.3 uses Yocto 2.6/Thud. There were extensive library changes. Because of this, updating packages is not a viable way to upgrade the device. You must do a firmware image update.

Major fixes:

  • On rare occassions the modem was disabled with COPS=2. The COPS state is now verified before ppp starts
  • The administrator now has /usr/sbin and /sbin in the path. This was ommitted in 5.2.7, but was in the path in older versions of mLinux.

5.2.7 (2020-06-24)

Errata (2021-01-25)

The repository module mlinux.git at the 5.2.7 tagged version does not retrieve the version of meta-openembedded that was used to build the images and source tarball. It is recommended that the tagged version 5.2.7a be used instead, so the correct version of Yocto Morty is used. Readme for 5.2.7a

Changes since 5.1.8


Commissioning mode has been added to mLinux. Devices must now undergo a first time
setup to create a username and password. This can be executed via a webUI by browsing
to while networked locally to the device via Ethernet. Additionally,
commissioning may be completed via a curl interface described here.

  • lighttpd 1.4.48
  • lighttpd 1.4.48

Known Issues

  • PATH for Commissioned users does not initially include /sbin or /usr/sbin

5.1.8 (2019-11-08)

Changes since 5.0.0


Registration with carrier is now dropped before an APN change, which is required
by some newer modems (LNA4, L4E1).

Support for LNA4, L4E1, LEU7.

LAP3 APN changes now work correctly (carrier registration is dropped).

mtadm added to the dialout group to implement carrier disconnect on modem APN change.

  • sudo 1.8.27
  • sudo 1.8.27
  • lldpd
  • flush debug port buffer on boot before read to prevent boot hangs
  • Various support programs for Redpine WiFi/Bluetooth in /opt/rs9113 directory which were mistakenly removed from mLinux 5.0.0

Known Issues

  • Log rotate will cause the packet forwarder to quit when using the LoRa Network Server, install lora-logging-1.0-r2

5.0.0 (2019-07-02)

Changes since 4.1.9

  • Linux 4.9.87
  • LoRa Packet Forwarder 4.0.1
  • AT91Bootstrap 3.8.12-m2 with support for ONFI flash, improved GNSS reset handling
  • U-Boot 2016.09.01 with USB removed for improved GNSS reset handling
  • Upgraded packages
  • Linux 4.9.87, which allows BLE GATT Server, better GNSS reset handling
  • LoRa Packet Forwarder 4.0.1-r17
  • LoRa Geolocation 5.1.0-r6
  • MTAC 4.0.1 which reads the EEPROM when the driver loads
  • rs9113-autostart package so RS9113 (WiFi/BT) is disabled without this package.
  • mtd-utils 2.0.2 with Linux 4.9 support
  • AT91Bootstrap 3.8.12-m2 with support for ONFI flash, improved GNSS reset handling
  • U-Boot 2016.09.01 with USB removed for improved GNSS reset handling
  • U-Blox GNSS is now held in reset until the device comes up, which prevents lock-ups in the GNSS
  • Upgraded packages

Known Issues

  • Hardware watchdog cannot be turned off, and the device will reset if an attempt is made to halt. This is considered a feature.
  • The example files from Redpine used to configure WiFi were left off of the device (such as /opt/rs9113/hostapd_open.conf). They are contained in the package rs9113-misc_1.6.1-r10.4.9.87r9.0_all.ipk. To obtain this file it will be necessary to open a support ticket .

Support tickets to obtain Redpine Drivers
mLinux source code

4.1.9 (2019-05-13)

Changes since 4.1.7


It was found that gpsctl does not reliably set the baud rate and message mode of the GPS. In some circumstances, messages with latitude and longitude were shut off which caused there to be no location in some software. For this reason, all gpsd packages except libgps24 (to provide compatibility) were downgraded to 3.16. This issue has existed since 4.0.0.

Changed software components

4.1.7 (2019-04-23)

Changes since 4.1.6


Bootstrap, U-Boot, and the kernel were revised to hold the U-Blox GNSS reset line high during most of the boot. This is to correct an unresponsive GPS, which happens rarely on some units. The same treatment was also given to the USB Hub reset.

Upgraded software components

4.1.6 (2019-03-26)

Changes since 4.0.1

  • Sprint Cellular Modem LSP3 support
  • Australia Cellular Modem LAP3 support
  • Radio reset package, which is configurable via /etc/default/radio-reset
  • ifplugd package, which starts DHCP when a network becomes available
  • IPV6 is enabled by default in ppp, required by some carrier accounts
  • LoRa Network Server 2.2.18 is included on the image, but is inoperable, except on mPower hardware.
  • LoRa Packet Forwarder 4.0.1
  • Upgraded packages
  • MTAC-XDOT support
  • MTAC-PULSE support
  • The mts-io driver (mts_io.ko) was split into separate modules to make mtac card development easier.
  • New gpsd 3.18.1 with ubxtool
  • New LoRa packet forwarder compatible with gpsd and ntp usage of the GPS,except on MTCDTIP with LoRa geolocation
  • Removed gpsd-udev USB GPS package which caused issues on some Conduits® with certain cellular modems
  • LoRa Network Server 2.2.18
  • LoRa Packet Forwarder 4.0.1
  • Upgraded packages

Known Issues

  • gpsd cannot be used with MTCDTIP with LoRa geolocation

mtac driver change

    The mtac accessory cards for MTCDT now each have separate loadable modules. There is a new driver module, mtac.ko, which is the mtac card supervisor. It maintains a list of which cards are inserted into the Conduit. The init script, /etc/init.d/mts-io, now attempts to load each mtac card driver module. If the correct mtac card is not found, the module will not load. The mtac card is identified through its EEPROM on the i2c bus on the card itself. The source code for the various mtac drivers can be found in the mts-io section at the bottom of this page:

mLinux source code

4.0.1 (2018-08-01)

Changes since 3.3.24

  • mLinux 4 is based on Yocto 2.2. mLinux 3 was based on Yocto 1.6
  • OpenJDK was removed from the image. Still available from feeds or build your own image
  • The new kernel fixes write hangs when doing high volume writes to jffs2 file system or SD card
  • Enhanced security. Root user logins are removed. New admin is mtadm, and is not root. Root privilege is accessed via sudo
  • Default login on MT provided images is mtadm/root
  • Support for LoRa 2.1
  • Support for address ranges in firewall settings
  • Bluez5 replaces Bluez4
  • ifplugd to bring up connections and restart DHCP
  • kernel support for Cat M Cellular radios
  • U-Boot password protection
  • php-fpm replaces fastcgi on the images
  • eudev replaces udev
  • Upgraded packages

Known Issues

  • sms does not work with LNA3 Cellular Modem on Verizon with MTCAP
  • Radio reset does not work with LNA3 and MTCAP with firmware 20.00.522 (AT&T) or 20.00.12 (Verizon). The solution is to upgradethe firmware to 20.00.524/20.00.14.
  • Upgrading Telit firmware
  • In mLinux 3, libcurl4 was mistakenly called libcurl5. This was a bug in Yocto 1.6. This bug has since been corrected, and libcurl4 is now called libcurl4 as it should be. However, old programs linked by the toolchain for mLInux 3 will not be able to find libcurl4. This can probably be fixed with a symlink, but this solution needs testing.
  • libcurl5 issue

3.3.24 (2018-04-09)

Changes since 3.3.22

  • Lora Network Server 2.0.19
  • Add kernel revision to revision of vizzini and mts-io pacakges
  • Correct revision of kernel-module-bluetooth
  • Fix gpsd scripts used by ntpd to prevent possible boot hangs

3.3.22 (2018-03-05)

Changes since 3.3.15

  • dnsmasq security fixes:
  • CVE-2017-13704
  • CVE-2017-14491
  • CVE-2017-14492
  • CVE-2017-14493
  • CVE-2017-14494
  • CVE-2017-14495
  • CVE-2017-14496
    Fixed package:
  • dnsmasq_2.78-r0.0
  • Bluetooth Blueborne security fixes
  • CVE-2017-1000250
  • CVE-2017-1000251
    Fixed packages:
  • kernel-module-bluetooth-3.12.27-r14.m1.1
Requires kernel 3.12.27r15
  • bluez4-4.101-r10.m1.0
  • WiFi (hostapd and wpa_supplicant)
  • CERT case ID: VU#228519
  • CVE-2017-13077
  • CVE-2017-13078
  • CVE-2017-13079
  • CVE-2017-13080
  • CVE-2017-13081
  • CVE-2017-13082
  • CVE-2017-13086
  • CVE-2017-13087
  • CVE-2017-13088
    Fixed packages:
  • hostap-daemon-2.6-r0.0
  • wpa-supplicant-2.6-r0.0
  • wpa-supplicant-cli-2.6-r0.0
  • wpa-supplicant-passphrase-2.6-r0.0
  • RS9113 driver 1.5.6 update for new revision RS9113 part. New devices are not compatible with older versions of this driver.Old devices are compatible with the new driver.
    Package upgrade:
  • rs9113-1.5.6-r0.3.12.27r15.0
  • Failure to complete boot in certain newer devices:
  • gpsd-3.16-m5.0
  • mts-io-1.5.16-r10.0-3.12.27r15.0
  • Do not do Radio Reset of Cellular modem when the modem is not on the device.
  • Build the /run/config directory during boot for Lora software to make it easier to discoverdevices. This does not include cellular radio information.
    get-eeprom-device-config – 1.1.0-r1.0
  • Preserve hostapd and dnsmasq (if installed) files across installations.
  • Allow radio reset of cellular modem despite backoff timer restrictions.
  • Support for LDC3 radio (Japan)
  • Support for network bonding
  • kernel-3.12.27r15
  • kernel-module-bonding-3.12.27-r15.1
  • Netfilter additional support:
  • kernel-3.12.27r15
  • kernel-module-xt-tproxy-3.12.27-r15.1
  • kernel-module-xt-hashlimit-3.12.27-r15.1
  • kernel-module-xt-tee-3.12.27-r15.1
  • mts-fpga-loader for Lora firmware updates.
  • Support for IP67:
  • mts-io-1.5.16-r10.0-3.12.27r15.0
  • allow upgrades for IP67 (no downgrades to prior levels of mLinux)
  • LNS 2.0.16
    See additional LoRa notes below
  • Don’t allow mPower version to be overwritten by mLinux version.
    Lora Query 1.0.4
  • New channel plans
    LPF 3.1.0-r11
  • NodeJS 0.10.48-r1.7
  • Allow for an install script in an upgrade package.

Additional LoRa Notes

    LoRa Network Server v2.0.16
    Class C scheduling up to 5 seconds out, instead of failing schedule call multiple times
    Set default join delay to 5 seconds, if null was provided OTA join was not possible
    Fix sample config file JSON error comma at end of list
    Add app port to application MQTT topic for up and packet_sent events
    Allows for application specific filtering such as Multicast or Multipart
    mosquitto_sub -v -t lora/+/+/+/+
    mosquitto_sub -v -t lora/<APP-EUI>/<DEV-EUI>/<APP-PORT>/<EVENT>
    Add some time randomization for class C downlink rescheduling
    Fix for US/AU private mode Rx2, frequency was not correct
    Emit queue_full message if no room left, check of queue size was added before making a call to add the packet
    Add timeout if packet forwarder is not seen in 10 minutes the network server will restart all lora services (network-server, lens-server and packet-forwarder)
    Add support for Network Modes: 0:Private MTS, 1:Public LoRaWAN and 2:Private LoRaWAN
    Private MTS is the previous default to work with Dots with AT+PN=0
    Public LoRaWAN is the new default for LoRaWAN 1.0.2 compatible end-devices, Dots AT+PN=1
    Private LoRaWAN is a new mode for LoRaWAN 1.0.2 compatible end-devices in a private network, Dots AT+PN=2
    Join Delay defaults to 5 seconds
    Add “lora” > “joinDelay” setting to adjust to 1 second for Private MTS mode.
    Affects only mLinux, mPower has UI/API controlling the configuration.

3.3.15 (2017-10-30)

Changes since 3.3.13

      • Lora Network Server 1.0.43-r1.0.
      • Lora Packet Forwarder 3.1.0-r10.0.
  • adjust the MTAC_LORA_1_0 default min/max US915 frequencies
  • update 1.0 MTAC-LORA default global_conf.json file for consistency sake
  • MTAC_LORA 1.5 US915. Default frequency offset for DR4 channel was misconfigured
  • update global_conf.json file for +13dBm output according to Japan certification testing
      • Bluez4 Blueborne fix 4.101-r10.m1.0
      • Bluetooth kernel module Blueborne fix, kernel-module-bluetooth 3.12.27-r14.2, srcversion: A663C5831F3BBA8C48735E5
      • gpsd script could cause hang in ntpd start-up, gpsd-conf 3.16-m4.0
      • /etc/init.d/umountfs allows for package updates rather than just image replacement, mlinux-scripts 1.1-r3.0
      • Lora eprom burning tool, mts-fpga-loader, for mtcdt, mts-id-eeprom 0.3.3-r1.0.0

3.3.13 (2017-09-27, revised 2017-10-23)

Features since 3.3.9

      • Remove radio reset from MTCAP units with no cellular radio.
      • Support for MTCDTID harware version
      • Support for LNA3 radio option
      • Support for Netfilter TEE available in kernel module xt_TEE.ko.
      • ppp waits for SIM registration before starting. See
      • International dialing support in sms-utils
      • When umountfs attempts an upgrade, first clean up /var/volatile of unneeded files
      • New Lora calibration data in /opt/lora/global_conf.json.MTCAP_LORA_1_5.US915.

Known Issues

When building an upgrade file for MTCDTIP, you must update the model file after the build.

cd /tmp

mkdir mlinux-3.3.13

cd mlinux-3.3.13

tar -xf ~/Downloads/mlinux-base-image-mtcdt-upgrade-withboot.bin

sed -i 's/mtcdt/mtcdt|mtcdtip/' model

tar -cf /tmp/mlinux-base-image-mtcdt-upgrade-withboot.bin *

3.3.9 (2017-08-10)

Features since 3.3.7

      • gethostbyname memory leak fix — libc6_2.19-r0.m1.0
      • MTCAP had an unusual password in 3.3.7. Set to root in 3.3.9
      • New Lora software related to support for Japan
        • Lora-gateway from 4.0.1-r9.0 to 4.1.3-r10.0
        • Lora-network-server from 1.0.26-r1.0 to 1.0.36-r1.0
        • Lora-packet-forwarder from 3.0.0-r9.0 to 3.1.0-r9.0

3.3.7 (2017-06-26)


      • Support for LJP1 (LE866) Radio (Japan)
      • Support for LJP1 (LE910-JN1) (Japan)
      • Support for LNA3 (LE910-NA1)


      • OPEN SSL Version 3 Support added for Python. New SSL package is openssl – 1.0.2k-bpo8.1m2.0
      • GPSD no longer will start if the GPS capability flag is not set by the MTS-IO driver.
      • When starting GPSD, a maximum of 20 seconds is allowed for changing the baud rate of the GPS. This will allow the boot to proceed if a baud rate change is not possible.
      • Eliminated setserial command invocation from udev which was producing error messages and not needed.
      • Bootstrap patch borrowed from MTR to lessen the likelihood of the Real Time Clock preventing boot when operating with a battery.
      • Build change: source control for 3.x.y above 3.3.6 was moved to git 3 branch from master. This was to prepare for mLinux release 4.0

See also

Using mLinux

3.3.6 (2017-04-21)


      • lora-network-server is at level 1.0.26.
      • Upgraded to openssl 1.0.2k-1~bpo8+1 from Debian backports to be compatible with mLinux 3.1 and 3.2 and provides security enhancements.
      • GPSD support for leap second on Conduits with GPS receiver feature.
      • NTPD starts by default if the GPS has a position fix. NTPD adjusts the system clock and sets the hardware clock.
      • To disable GPSD, set parameter /etc/default/gpsd: ENABLED="no". Reboot.
      • To disable NTPD, set parameter /etc/default/ntpd: ENABLED="no". Reboot.
      • To disable GPS requirement for NTP, set /etc/default/ntpd: GPSD_REQUIRED=0.
      • To check GPSD when it is running, type gpsmon.
      • Ethernet Bonding feature added.

Known Issues

      • Lora only supports 915MHz, 868MHz, and AU915MHz channel plans.

See also

Using mLinux

3.2.0 (2016-05-18)


      • Updated openembedded-core with latest security fixes from Yocto 1.6
      • Fixed monit building issue with 3.1.0
      • lora-network-server 1.0.8
      • Added support for LTE radio models: LVW2, LEU1, LAT1
      • mts-io 1.1.4 — fix possible kernel crash in driver
      • node.js 0.10.44
      • Added strongswan to images
      • Fix sms bugs where some characters wouldn’t be sent or received correctly

Known Issues

      • Will not build on Ubuntu 14.04/16.04 with kernel 4+

3.1.0 (2015-05-27)

    • First official release!