Title says most of it…
How can I prevent the wireless interface from being created, or to prevent it from coming up? I need ZERO radio transmissions before I choose to have them.
I am able to set airplane mode using this advice: W_Disable (Airplane mode) has no effect on Quectel EC25-A
After reboot, the device is automatically connected to the cellular network. I’d think the FCC would have a problem with that, for one.
This is how I solved it…
In order to prevent any communication during or after boot up an alternative is required. During reboot, the airplane mode doesn’t ‘stick’ as the modem doesn’t seem to save the setting after power is removed, although the function remains enabled.
To solve this: blacklist the module that runs the modem. In my case it was the cdc_ether.
To ‘permanently’ disable the module:
To add back while running (it should auto-connect):
$ modprobe cdc_ether
To temporarily remove again:
$ modprobe cdc_ether remove
One can confirm this is working by rebooting and running:
to verify that the interface has not started.
If the module is removed while running, the interface will remain configured (in ifconfig), but it will not work. This can be verified by running:
$ ping -I <INTERFACE_NAME> sixfab.com
which should give you some sort of failure when the module is not loaded.
This should save on data costs in case of accidental attempts to use the cell network without other connections. I use mine mainly for time sync and the occasional map download.
This method does not mess with the NetworkManager and therefore keeps the WiFi connectivity completely intact. To disable the WiFi use:
$ rfkill list
to identify wireless hardware, and (assuming #1):
$ rfkill block 1
$ rfkill unblock 1
to disallow and allow the hardware, respectively.
rfkill does not seem to see the modem hardware.
worked for me, ymmv
This does not seem to power down the HAT, though I would like to be able to put the EC25 into some kind of sleep mode and/or turn off the blinking lights. Any suggestions?