We noticed that you have already reached out to us by email regarding this issue.
Please continue working with our support team through the ticket system so we can assist you more effectively.
This post will remain open in case other users wish to share additional suggestions.
I have MT3000 and I have come across a bug in /usr/bin/gl_modem. When connect-auto is called the __common_get_sim_iccid() call gets the iccid from the sim but expects a 20 digit iccid. This length requirement is hard coded in the binary and fails sim cards that only return 19 digits.
Basically you have to patch gl_modem to be happy with a 19 digit iccid.
To help us investigate further, could you please confirm:
What firmware version is your MT3000 currently running?
If the program is not patched, what user-facing issue do you observe? For example:
Mobile data does not connect
The ICCID is missing/incorrect on certain pages
Based on our initial review, the impacted code path appears to only write to a specific temporary file and should not affect cellular connectivity or how the ICCID is displayed in the UI.
If you’re seeing different behavior, please let us know—especially which page(s) show the issue and what the expected vs. actual output is.
At the moment we don’t have a SIM with a 19-digit ICCID available to reproduce this on our side, so any additional details (screenshots, steps to reproduce, logs) would be very helpful.
Based on our initial review, the impacted code path appears to only write to a specific temporary file and should not affect cellular connectivity or how the ICCID is displayed in the UI.
Yes indeed, in that function __common_get_sim_iccid() that’s all it does but if it fails and returns an error code then functions like connect-auto also fail and the modem is constantly redialled.
it also means that gl_modem -B 1-1 connect-auto always fails and never builds a profile in /etc/config/network - it all has to be done manually.
Eg:
Thu Dec 18 01:58:18 2025 daemon.info gl_modem: (modem_cm.c:1324) Enter the dialing process
Thu Dec 18 01:58:18 2025 daemon.err gl_modem: (modem_cm.c:1343) Failed to get iccid, maybe PIN code is locked,please check!
The iccid file is also a placeholder to determine if the simcard has “changed” by other function calls.
The only fix (other than patching the binary ) is to manually complete the config for the interface in /etc/config/network:
config interface 'modem_1_1'
option apn 'giffgaff.com'
option dialnumber '*99#'
option proto 'ncm'
option username 'gg'
option password 'p'
option metric '40'
option device '/dev/ttyUSB2'
option mode 'preferlte'
option pdptype 'IP'
option ipv6 'auto'
option delay '5'
option disabled '0'
option iccid '89xxxxxxxxxxxxxxxx5' # so that modem_network_recover_detection.sh works which isn’t sensitive to iccid length..
option ip_type 'IP' # for kmwan which doesn’t use “option pdptype”
Largely academic anyway as my MT3000 doesn’t recognise giffgaff or my modem (E3372-320) either.
Support told me that because I’m using this in Iran, the service is not available for Iran.
However, I believe there must be a way to make it work, and I would appreciate your help if possible.
I’m even in a city where Baku operators are accessible.
My Baku SIM card works perfectly on my phone, but when I insert the SIM card into my router (X3000NR), I still get the error:
“SIM card not registered”
I even lock the operator to Baku operators, but the issue remains.
Now I’m not sure whether the problem persists because Iranian operators are also detected alongside Baku operators, or if there is another underlying issue.
Important: I checked via LuCI under Network → Interfaces,
and for modem_0001 it shows the error: Unsupported type
I even updated the router firmware, but the problem was not resolved.
If I understood correctly, in /etc/config/network
the type is set to qmci.
I also installed modemmanager, but I was not successful.
If you know any solution, I would really appreciate your help.