{"id":6725,"date":"2025-06-16T12:28:26","date_gmt":"2025-06-16T10:28:26","guid":{"rendered":"https:\/\/www.aiknow.io\/?p=6725"},"modified":"2025-06-16T14:12:33","modified_gmt":"2025-06-16T12:12:33","slug":"managing-4g-connections-for-linux-based-iot-devices","status":"publish","type":"post","link":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/","title":{"rendered":"Managing 4G Connections for Linux-Based IoT Devices"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>At AIknow, over the years we&#8217;ve had to manage 4G connections on many Linux-based IoT devices, from simple solutions to complex industrial gateways. Our experience has led us through a natural evolution in the tools used for managing connectivity: starting with the traditional <code>wvdial<\/code>, moving towards <code>NetworkManager<\/code>, and discovering <code>ModemManager<\/code> as a fundamental tool for debugging and monitoring.<\/p>\n<p>This article tells the story of our journey, sharing the issues we encountered, the solutions we developed, and the criteria we now use to choose the most appropriate tool for each project.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\" wp-image-6735 aligncenter\" src=\"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/20250616_1142_Comandi-AT-su-USB_remix_01jxw1r6m8epz8rrw4gh4rw3hk-1-300x200.png\" alt=\"\" width=\"432\" height=\"288\" srcset=\"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/20250616_1142_Comandi-AT-su-USB_remix_01jxw1r6m8epz8rrw4gh4rw3hk-1-300x200.png 300w, https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/20250616_1142_Comandi-AT-su-USB_remix_01jxw1r6m8epz8rrw4gh4rw3hk-1-1024x683.png 1024w, https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/20250616_1142_Comandi-AT-su-USB_remix_01jxw1r6m8epz8rrw4gh4rw3hk-1-768x512.png 768w, https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/20250616_1142_Comandi-AT-su-USB_remix_01jxw1r6m8epz8rrw4gh4rw3hk-1.png 1536w\" sizes=\"(max-width: 432px) 100vw, 432px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>The First Steps: wvdial and the Direct Approach<\/h2>\n<h3>Why We Started with <code>wvdial<\/code><\/h3>\n<p>In our early projects involving 4G connectivity, <code>wvdial<\/code> seemed like the most natural choice: a simple, lightweight, and straightforward tool that used the PPP protocol to establish connections through cellular modems. The configuration appeared immediate, and the documentation, though limited, was clear.<\/p>\n<h3>The Advantages We Appreciated<\/h3>\n<p>Using wvdial immediately revealed some significant advantages:<\/p>\n<p><strong>Extremely lightweight<\/strong>: Resource usage was minimal, ideal for devices with limited RAM (64\u2013128MB). On such systems, wvdial left enough headroom for the main application without compromising performance.<\/p>\n<p><strong>Simple configuration<\/strong>: A single file, <code>\/etc\/wvdial.conf<\/code>, contained everything needed for the connection. The configuration was transparent and easy to understand. Here\u2019s an example:<\/p>\n<div>\n<pre>[Dialer Defaults]\r\nInit1 = ATZ\r\nInit2 = ATQ0 V1 E1 S0=0 &amp;C1 &amp;D2 +FCLASS=0\r\nInit3 = AT+CGDCONT=1,\"IP\",\"your.apn.here\",,0,0\r\nModem Type = Analog Modem\r\nISDN = 0\r\nModem = \/dev\/ttyUSB0\r\nBaud = 9600\r\nPhone = *99#\r\nUsername = your_username\r\nPassword = your_password\r\nNew PPPD = yes<\/pre>\n<\/div>\n<p><strong>Direct control<\/strong>: The ability to directly manage the AT commands sent to the modem gave us complete control over the connection process.<\/p>\n<h3>The Issues That Made Us Rethink<\/h3>\n<p>However, using wvdial in real-world projects, we encountered significant limitations:<\/p>\n<p><strong>Handling disconnections<\/strong>: The most critical issue. wvdial lacked robust mechanisms for automatically handling disconnections. When the connection dropped\u2014due to signal issues, operator network restarts, or simple timeouts\u2014we had to implement external scripts to detect the situation and reconnect.<\/p>\n<p><strong>Lack of abstraction<\/strong>: Every modem or carrier change required manual configuration adjustments. There was no abstraction layer to automatically manage differences between devices.<\/p>\n<p><strong>Complex debugging<\/strong>: When something didn\u2019t work, we had to manually inspect PPP logs and interact directly with the modem via AT commands to understand what was going on.<\/p>\n<h3>When we use wvdial<\/h3>\n<p>Despite its limitations, wvdial remains our choice in specific scenarios:<\/p>\n<ul>\n<li>Devices with less than 256MB of RAM where every resource matters<\/li>\n<li>Projects with very limited hardware budgets<\/li>\n<li>Installations where brief service interruptions are acceptable<\/li>\n<li>Situations where we have full control of the environment and can implement custom monitoring systems<\/li>\n<\/ul>\n<h2>The Discovery of ModemManager for Modem Status Verification<\/h2>\n<h3>The Debugging Problem<\/h3>\n<p>One of the biggest issues with wvdial was the difficulty in diagnosing connection problems. We often had to open a direct serial session with the modem and send AT commands to retrieve basic information such as:<\/p>\n<ul>\n<li>Signal quality (<code>AT+CSQ<\/code>)<\/li>\n<li>Operator information (<code>AT+COPS?<\/code>)<\/li>\n<li>Device IMEI (<code>AT+CGSN<\/code>)<\/li>\n<li>SIM ICCID (<code>AT+CCID<\/code>)<\/li>\n<li>SIM IMSI (<code>AT+CIMI<\/code>)<\/li>\n<li>Configured APN (<code>AT+CGDCONT?<\/code>)<\/li>\n<li>SIM PIN status (<code>AT+CPIN?<\/code>)<\/li>\n<li>IP assigned to the connection (<code>AT+CGPADDR<\/code>)<\/li>\n<\/ul>\n<h3>ModemManager as a Diagnostic Tool<\/h3>\n<p>ModemManager revolutionized our approach to debugging 4G connections. Through <code>mmcli<\/code>, we gained immediate access to all modem information without having to interact directly with AT commands.<\/p>\n<div>\n<pre># Full modem information\r\nmmcli -m 0\r\n\r\n# Real-time signal quality\r\nmmcli -m 0 --signal-get\r\n\r\n# SIM information\r\nmmcli -m 0 --sim=0\r\n\r\n# Connection status\r\nmmcli -m 0 --bearer=0<\/pre>\n<\/div>\n<h3>The Advantages of ModemManager<\/h3>\n<p>ModemManager provided us with:<\/p>\n<ul>\n<li><strong>AT command abstraction<\/strong>: We no longer had to remember the specific syntax of each modem to retrieve basic information.<\/li>\n<li><strong>Structured information<\/strong>: Data was presented in a readable and parsable format, making it easier to automate monitoring.<\/li>\n<li><strong>Extended compatibility<\/strong>: It automatically supported a wide range of modems without additional configuration.<\/li>\n<li><strong>Integration with scripts<\/strong>: We could easily integrate ModemManager&#8217;s data into our monitoring systems.<\/li>\n<\/ul>\n<h3>Using AT Commands for Specific Cases<\/h3>\n<p>Although ModemManager covered most of our needs, in some cases we still had to resort to direct AT commands:<\/p>\n<div>\n<pre># Direct modem access for specific commands\r\necho \"AT+COPS=?\" &gt; \/dev\/ttyUSB2 \u00a0# Scan for available operators\r\necho \"AT+CGDCONT?\" &gt; \/dev\/ttyUSB2 \u00a0# Check APN configuration\r\necho \"AT+CREG?\" &gt; \/dev\/ttyUSB2 \u00a0 \u00a0 # Network registration status<\/pre>\n<\/div>\n<p>AT commands remained useful for:<\/p>\n<ul>\n<li>Advanced modem-specific configurations<\/li>\n<li>Debugging particular issues not covered by ModemManager<\/li>\n<li>Optimizations for certain network providers<\/li>\n<li>Testing experimental features<\/li>\n<\/ul>\n<h2>The Evolution Towards NetworkManager: Reliability and Robustness<\/h2>\n<h3>Why We Made the Switch<\/h3>\n<p>As our projects grew more complex and required more reliable connections, the limitations of wvdial became increasingly evident. NetworkManager promised to solve many of the problems we had faced, offering a more robust and automated connection management system.<\/p>\n<h3>The Benefits We Immediately Appreciated<\/h3>\n<ul>\n<li><strong>Automatic connection management<\/strong>: The most immediate benefit was the automatic reconnection management. NetworkManager constantly monitors connection status and reconnects automatically in case of interruption.<\/li>\n<li><strong>Integration with ModemManager<\/strong>: Native integration with ModemManager gave us instant access to all modem information without additional configuration.<\/li>\n<li><strong>Extended hardware support<\/strong>: We no longer had to worry about the specifics of each modem; NetworkManager handled differences between devices automatically.<\/li>\n<li><strong>Centralized configuration<\/strong>: All connections could be managed through a unified interface, simplifying maintenance.<\/li>\n<li><strong>Advanced connection profiles<\/strong>: We could configure multiple connections, priorities, failover, and other advanced features.<\/li>\n<\/ul>\n<h3>The Challenges We Faced<\/h3>\n<ul>\n<li><strong>Higher resource consumption<\/strong>: NetworkManager requires more RAM and CPU than wvdial. On devices with 256MB of RAM, we observed a significant performance impact, especially during activity peaks.<\/li>\n<li><strong>Configuration complexity<\/strong>: For advanced scenarios, configuration becomes more elaborate. Setting up failover between different connections or integrating with VPNs requires a deep understanding of NetworkManager&#8217;s architecture.<\/li>\n<li><strong>Layered debugging<\/strong>: When something goes wrong, we have to investigate the interaction between NetworkManager, ModemManager, and the kernel. Debugging requires knowledge across multiple system layers.<\/li>\n<li><strong>More dependencies<\/strong>: NetworkManager introduces more components into the system, increasing the surface for potential issues and deployment complexity.<\/li>\n<\/ul>\n<h3>When We Use NetworkManager<\/h3>\n<p>NetworkManager has become our standard choice, especially for:<\/p>\n<ul>\n<li><strong>Critical installations<\/strong>: Where connection reliability is a top priority<\/li>\n<li><strong>Complex systems<\/strong>: That require advanced network configurations (failover, VPN, bridging)<\/li>\n<li><strong>Production environments<\/strong>: Where we need robust monitoring and management tools<\/li>\n<\/ul>\n<h3>Pros and Cons from Our Experience<\/h3>\n<p><strong>wvdial \u2013 Advantages:<\/strong><\/p>\n<ul>\n<li>Minimal resource usage<\/li>\n<li>Simple and transparent configuration<\/li>\n<li>Direct control over commands sent to the modem<\/li>\n<li>Ideal for low-resource devices<\/li>\n<li>Relatively simple debugging (once PPP and AT commands are understood)<\/li>\n<\/ul>\n<p><strong>wvdial \u2013 Disadvantages:<\/strong><\/p>\n<ul>\n<li>Manual reconnection management<\/li>\n<li>Lack of hardware abstraction<\/li>\n<li>Complex debugging for connectivity issues<\/li>\n<li>Requires external scripts for robustness<\/li>\n<li>Not suitable for critical production environments<\/li>\n<\/ul>\n<p><strong>NetworkManager \u2013 Advantages:<\/strong><\/p>\n<ul>\n<li>Robust and automated connection management<\/li>\n<li>Extensive and automatic hardware support<\/li>\n<li>Native integration with ModemManager<\/li>\n<li>Advanced features (failover, priorities, profiles)<\/li>\n<li>Built-in debugging and monitoring tools<\/li>\n<li>Suitable for production environments<\/li>\n<\/ul>\n<p><strong>NetworkManager \u2013 Disadvantages:<\/strong><\/p>\n<ul>\n<li>Higher resource consumption (RAM and CPU)<\/li>\n<li>More complex configuration for advanced scenarios<\/li>\n<li>More components to manage and potential failure points<\/li>\n<li>Steeper learning curve<\/li>\n<li>Overkill for simple applications<\/li>\n<\/ul>\n<h2>Support Tools and Best Practices<\/h2>\n<h3>Our Diagnostic Toolkit<\/h3>\n<p>Regardless of the main tool we choose, we have developed a set of diagnostic procedures that we systematically use in all our projects:<\/p>\n<p><strong>Modem Status Check:<\/strong><\/p>\n<ul>\n<li><code>mmcli -L<\/code> to list modems detected by the system<\/li>\n<li><code>mmcli -m 0<\/code> to get full information about the main modem<\/li>\n<li><code>mmcli -m 0 --signal-get<\/code> to monitor real-time signal quality<\/li>\n<\/ul>\n<h3>SIM Information Check:<\/h3>\n<ul>\n<li><code>mmcli -m 0 --sim=0<\/code> to verify IMSI, ICCID, and operator<\/li>\n<li>Direct AT commands <code>AT+CPIN?<\/code> to check PIN status<\/li>\n<li><code>AT+CIMI<\/code> and <code>AT+CCID<\/code> for alternative IMSI and ICCID checks<\/li>\n<\/ul>\n<h3>Basic Connectivity Tests:<\/h3>\n<ul>\n<li>Ping public DNS servers (<code>ping -c 3 8.8.8.8<\/code> and <code>ping -c 3 1.1.1.1<\/code>)<\/li>\n<li>DNS resolution check (<code>nslookup google.com<\/code>)<\/li>\n<li>HTTP\/HTTPS connectivity test with <code>curl<\/code><\/li>\n<\/ul>\n<h3>Network Interface Analysis:<\/h3>\n<ul>\n<li><code>ip addr show<\/code> to display all active interfaces<\/li>\n<li><code>ip route show<\/code> to check routing tables<\/li>\n<li>Specific check of cellular interfaces (ppp, wwan, usb)<\/li>\n<\/ul>\n<h3>Data Traffic Monitoring:<\/h3>\n<ul>\n<li>Counter analysis in <code>\/proc\/net\/dev<\/code> for cellular interfaces<\/li>\n<li><code>ifconfig<\/code> for detailed TX\/RX statistics<\/li>\n<li>Real-time bandwidth usage monitoring<\/li>\n<\/ul>\n<h3>Advanced Debugging with AT Commands:<\/h3>\n<ul>\n<li><code>AT+CSQ<\/code> for signal quality when ModemManager is not available<\/li>\n<li><code>AT+CGDCONT?<\/code> to verify APN configuration<\/li>\n<li><code>AT+CGPADDR<\/code> to check the IP assigned to the connection<\/li>\n<li><code>AT+COPS?<\/code> for information about the network operator<\/li>\n<\/ul>\n<h3>Connection Status Check:<\/h3>\n<ul>\n<li><code>nmcli connection show<\/code> to see the status of NetworkManager profiles<\/li>\n<li><code>nmcli device status<\/code> to verify device status<\/li>\n<li>System log analysis (<code>journalctl -u NetworkManager<\/code> or <code>\/var\/log\/messages<\/code>)<\/li>\n<\/ul>\n<h3>Decision Criteria Based on Our Experience<\/h3>\n<p>After years of projects, we have defined clear criteria for selection:<\/p>\n<p><strong>Choose wvdial when:<\/strong><\/p>\n<ul>\n<li>Available RAM &lt; 256MB<\/li>\n<li>Extremely limited hardware budget<\/li>\n<li>Simple connectivity without high availability requirements<\/li>\n<li>Team with system administration skills to manage custom scripts<\/li>\n<li>Tolerance for short service interruptions<\/li>\n<li>Full control over the deployment environment<\/li>\n<\/ul>\n<h3>Choose NetworkManager when:<\/h3>\n<ul>\n<li>Available RAM &gt; 512MB<\/li>\n<li>High reliability and availability requirements<\/li>\n<li>Complex network configurations<\/li>\n<li>Critical production environments<\/li>\n<li>Need for integrated monitoring tools<\/li>\n<li>Team with advanced system administration expertise<\/li>\n<\/ul>\n<h2>Other alternatives: ConnMan as an intermediate option<\/h2>\n<p>It is worth mentioning that <strong>ConnMan<\/strong> also exists as an intermediate alternative.<br \/>\nDesigned specifically for embedded systems, it offers an interesting compromise between the lightness of wvdial and the features of NetworkManager.<br \/>\nHowever, our experience has mainly focused on the two main tools for most of our use cases.<\/p>\n<h2>Conclusions and recommendations<\/h2>\n<p>Our evolution from <strong>wvdial<\/strong> to <strong>NetworkManager<\/strong> reflects the maturation of our needs and project complexity.<br \/>\nBoth tools have their place in our toolkit, and the choice always depends on the specific project requirements.<\/p>\n<p><strong>ModemManager<\/strong> has proven essential regardless of the primary choice, providing vital information for debugging and monitoring without constantly relying on direct AT commands.<\/p>\n<p><strong>AT commands<\/strong> remain an indispensable tool for specific situations and advanced debugging, even though ModemManager has significantly reduced the need to use them daily.<\/p>\n<p>The most important lesson we have learned is that there is no universal solution: the choice must always be guided by the real project constraints, such as hardware resources, reliability requirements, and implementation complexity.<\/p>\n<p>For future projects, we continue to evaluate new solutions, but the combination of <strong>NetworkManager + ModemManager<\/strong> remains our standard for most modern IoT implementations requiring reliable and robust 4G connectivity.<\/p>\n<p>Have you had similar experiences managing 4G connections on IoT devices, or do you need support configuring connectivity for your project?<br \/>\n<a href=\"https:\/\/www.aiknow.io\/en\/contact\/\"><strong>Contact us<\/strong><\/a> to share your experience or receive specialized technical assistance!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction At AIknow, over the years we&#8217;ve had to manage 4G connections on many Linux-based IoT devices, from simple solutions to complex industrial gateways. Our experience has led us through a natural evolution in the tools used for managing connectivity: starting with the traditional wvdial, moving towards NetworkManager, and discovering ModemManager as a fundamental tool [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":6727,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[29],"tags":[218,219,64],"class_list":["post-6725","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-news-en","tag-4g-connections","tag-iot-devices","tag-linux-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Managing 4G Connections for Linux-Based IoT Devices - AIknow<\/title>\n<meta name=\"description\" content=\"The article covers the journey from the traditional wvdial to NetworkManager, including the discovery of ModemManager as a fundamental tool for debugging and monitoring.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Managing 4G Connections for Linux-Based IoT Devices - AIknow\" \/>\n<meta property=\"og:description\" content=\"The article covers the journey from the traditional wvdial to NetworkManager, including the discovery of ModemManager as a fundamental tool for debugging and monitoring.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/\" \/>\n<meta property=\"og:site_name\" content=\"AIknow\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-16T10:28:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-16T12:12:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/ChatGPT-Image-16-giu-2025-10_22_49-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Michele Giovanelli\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michele Giovanelli\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/\"},\"author\":{\"name\":\"Michele Giovanelli\",\"@id\":\"https:\/\/www.aiknow.io\/#\/schema\/person\/a989230a6d8434262e58f68af5c787c2\"},\"headline\":\"Managing 4G Connections for Linux-Based IoT Devices\",\"datePublished\":\"2025-06-16T10:28:26+00:00\",\"dateModified\":\"2025-06-16T12:12:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/\"},\"wordCount\":1515,\"publisher\":{\"@id\":\"https:\/\/www.aiknow.io\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/ChatGPT-Image-16-giu-2025-10_22_49-1.png\",\"keywords\":[\"4G Connections\",\"IoT Devices\",\"linux\"],\"articleSection\":[\"Tech news\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/\",\"url\":\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/\",\"name\":\"Managing 4G Connections for Linux-Based IoT Devices - AIknow\",\"isPartOf\":{\"@id\":\"https:\/\/www.aiknow.io\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/ChatGPT-Image-16-giu-2025-10_22_49-1.png\",\"datePublished\":\"2025-06-16T10:28:26+00:00\",\"dateModified\":\"2025-06-16T12:12:33+00:00\",\"description\":\"The article covers the journey from the traditional wvdial to NetworkManager, including the discovery of ModemManager as a fundamental tool for debugging and monitoring.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#primaryimage\",\"url\":\"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/ChatGPT-Image-16-giu-2025-10_22_49-1.png\",\"contentUrl\":\"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/ChatGPT-Image-16-giu-2025-10_22_49-1.png\",\"width\":512,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.aiknow.io\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Managing 4G Connections for Linux-Based IoT Devices\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.aiknow.io\/#website\",\"url\":\"https:\/\/www.aiknow.io\/\",\"name\":\"AIknow - Developing future\",\"description\":\"From Edge To Intelligence\",\"publisher\":{\"@id\":\"https:\/\/www.aiknow.io\/#organization\"},\"alternateName\":\"AIknow\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.aiknow.io\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.aiknow.io\/#organization\",\"name\":\"AIknow - Developing future\",\"url\":\"https:\/\/www.aiknow.io\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.aiknow.io\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2018\/06\/aiknow-logo_03.png\",\"contentUrl\":\"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2018\/06\/aiknow-logo_03.png\",\"width\":1596,\"height\":348,\"caption\":\"AIknow - Developing future\"},\"image\":{\"@id\":\"https:\/\/www.aiknow.io\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.aiknow.io\/#\/schema\/person\/a989230a6d8434262e58f68af5c787c2\",\"name\":\"Michele Giovanelli\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.aiknow.io\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7b9c0585ded6217182119647f2db095a000ea01873a85bb505b114f1f33c5aee?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7b9c0585ded6217182119647f2db095a000ea01873a85bb505b114f1f33c5aee?s=96&d=mm&r=g\",\"caption\":\"Michele Giovanelli\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Managing 4G Connections for Linux-Based IoT Devices - AIknow","description":"The article covers the journey from the traditional wvdial to NetworkManager, including the discovery of ModemManager as a fundamental tool for debugging and monitoring.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/","og_locale":"en_US","og_type":"article","og_title":"Managing 4G Connections for Linux-Based IoT Devices - AIknow","og_description":"The article covers the journey from the traditional wvdial to NetworkManager, including the discovery of ModemManager as a fundamental tool for debugging and monitoring.","og_url":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/","og_site_name":"AIknow","article_published_time":"2025-06-16T10:28:26+00:00","article_modified_time":"2025-06-16T12:12:33+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/ChatGPT-Image-16-giu-2025-10_22_49-1.png","type":"image\/png"}],"author":"Michele Giovanelli","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Michele Giovanelli","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#article","isPartOf":{"@id":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/"},"author":{"name":"Michele Giovanelli","@id":"https:\/\/www.aiknow.io\/#\/schema\/person\/a989230a6d8434262e58f68af5c787c2"},"headline":"Managing 4G Connections for Linux-Based IoT Devices","datePublished":"2025-06-16T10:28:26+00:00","dateModified":"2025-06-16T12:12:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/"},"wordCount":1515,"publisher":{"@id":"https:\/\/www.aiknow.io\/#organization"},"image":{"@id":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#primaryimage"},"thumbnailUrl":"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/ChatGPT-Image-16-giu-2025-10_22_49-1.png","keywords":["4G Connections","IoT Devices","linux"],"articleSection":["Tech news"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/","url":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/","name":"Managing 4G Connections for Linux-Based IoT Devices - AIknow","isPartOf":{"@id":"https:\/\/www.aiknow.io\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#primaryimage"},"image":{"@id":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#primaryimage"},"thumbnailUrl":"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/ChatGPT-Image-16-giu-2025-10_22_49-1.png","datePublished":"2025-06-16T10:28:26+00:00","dateModified":"2025-06-16T12:12:33+00:00","description":"The article covers the journey from the traditional wvdial to NetworkManager, including the discovery of ModemManager as a fundamental tool for debugging and monitoring.","breadcrumb":{"@id":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#primaryimage","url":"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/ChatGPT-Image-16-giu-2025-10_22_49-1.png","contentUrl":"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2025\/06\/ChatGPT-Image-16-giu-2025-10_22_49-1.png","width":512,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/www.aiknow.io\/en\/managing-4g-connections-for-linux-based-iot-devices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.aiknow.io\/en\/"},{"@type":"ListItem","position":2,"name":"Managing 4G Connections for Linux-Based IoT Devices"}]},{"@type":"WebSite","@id":"https:\/\/www.aiknow.io\/#website","url":"https:\/\/www.aiknow.io\/","name":"AIknow - Developing future","description":"From Edge To Intelligence","publisher":{"@id":"https:\/\/www.aiknow.io\/#organization"},"alternateName":"AIknow","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.aiknow.io\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.aiknow.io\/#organization","name":"AIknow - Developing future","url":"https:\/\/www.aiknow.io\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.aiknow.io\/#\/schema\/logo\/image\/","url":"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2018\/06\/aiknow-logo_03.png","contentUrl":"https:\/\/www.aiknow.io\/wpvt\/wp-content\/uploads\/2018\/06\/aiknow-logo_03.png","width":1596,"height":348,"caption":"AIknow - Developing future"},"image":{"@id":"https:\/\/www.aiknow.io\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.aiknow.io\/#\/schema\/person\/a989230a6d8434262e58f68af5c787c2","name":"Michele Giovanelli","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.aiknow.io\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/7b9c0585ded6217182119647f2db095a000ea01873a85bb505b114f1f33c5aee?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7b9c0585ded6217182119647f2db095a000ea01873a85bb505b114f1f33c5aee?s=96&d=mm&r=g","caption":"Michele Giovanelli"}}]}},"_links":{"self":[{"href":"https:\/\/www.aiknow.io\/en\/wp-json\/wp\/v2\/posts\/6725","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aiknow.io\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aiknow.io\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aiknow.io\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aiknow.io\/en\/wp-json\/wp\/v2\/comments?post=6725"}],"version-history":[{"count":5,"href":"https:\/\/www.aiknow.io\/en\/wp-json\/wp\/v2\/posts\/6725\/revisions"}],"predecessor-version":[{"id":6744,"href":"https:\/\/www.aiknow.io\/en\/wp-json\/wp\/v2\/posts\/6725\/revisions\/6744"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.aiknow.io\/en\/wp-json\/wp\/v2\/media\/6727"}],"wp:attachment":[{"href":"https:\/\/www.aiknow.io\/en\/wp-json\/wp\/v2\/media?parent=6725"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aiknow.io\/en\/wp-json\/wp\/v2\/categories?post=6725"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aiknow.io\/en\/wp-json\/wp\/v2\/tags?post=6725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}