Current Branch: development-SDXPINN
🏁 Hint: Start by checking out the ipk-source directory, each package is broken down into its contents. Inside, root represents the structure copied starting at / and control includes metadata and scripts to be ran before and after installation. The build-ipk.sh will produce an ipk based on the control and root directories next to it.
SDXPINN OpenWRT Repository
This branch of the repository serves as both an opkg source and feed for the custom packages I make available for Quectel cellular modules with the SDXPINN system. This source is preloaded into my custom firmware for the RM551E-GL found here: https://mega.nz/file/GUkk0RpD#7JsFymzKBBKplxLs5tqc5-m7rBmrB2QPfTfMtf1ZQ4g
Flash with QFlash, QFIL, or qfirehose. At first boot a script will automaticly set the module to PCIe RC mode and USB ECM mode then reboot so wait for that reboot after flash to proceed. From there either by Ethernet or USB ECM visit http://192.168.224.1/ or ssh root@192.168.224.1 Password: iamromulan
⚠️ Custom firmware is only available for the RM551E-GL for now. An RM550V-GLAA firmware will be available soon.
⚠️ Known issues with Packages
Currently there is know vulnerability with QuecManager that allows cgi scripts to be executed unauthenticated. It is not recommended to expose uhttpd to the public internet, and to only used in a controlled, trusted local environment for now. Please see Issue #175 for more info.
RC PCIe Toolkit
If you prefer starting from factory firmware you may use the toolkit script here to deploy my repo and other fixes via adb. It has been a while since I last visited this deployment script so open an issue if you see something wrong. See the wiki for info on adb.
Software deployment Toolkit for Quectel RM5xxx series 5G modems utilizing an m.2 to RJ45 adapter (RC PCIe)
The below commands will download the toolkit for RM55x modems/SDXPINN platform
Current state:
The toolkit will do the following:
-
AT Commands
- Needs tested.
-
Install sdxpinn-mount-fix/run me after a flash!
- Installs sdxpinn-mount-fix so you can have a usable filesystem.
- You won't get far without this installed
-
TTL Setup
- Will allow you to set a TTL value
-
Install Basic Packages/enable luci/add iamromulan's feed to opkg - Adds this repo as a source for opkg/software to get packages - Installs the public key for this repo - Installs a few basic packages: atinout luci-app-atinout-mod sdxpinn-console-menu shadow-login luci-app-ttyd mc mc-skins - Starts and enables the SSH server and uhttpd web server (Luci)
-
Set root password
- Runs the passwd utility so you can set your password for root
-
Tailscale Management
- Will let you install tailscale
- Installs my updated ipks
- Will let you configure tailscale
- No web server yet
- Will let you install tailscale
-
Install Speedtest.net CLI app (speedtest command)
- Will install the speedtest command (speedtest.net test)
- After install type speedtest to use it
How to Use
To run the Toolkit:
- Open ADB & Fastboot++ covered in Using ADB or just use adb
- Make sure your modem is connected by USB to your computer
- Run
adb devicesto make sure your modem is detected by adb - Run
adb shell ping 8.8.8.8to make sure the shell can access the internet. If you get an error, make sure the modem is connected to a cellular network and make sureAT+QMAPWAC=1as covered in the troubleshooting section: I Can't get internet access from the Ethernet port (Common) - If you don't get an error you should be getting replies back endlessly, press
CTRL-Cto stop it. - Simply Copy/Paste this into your Command Prompt/Shell
adb root
adb shell
Then run
cd /tmp && wget -O rcPCIe_SDXPINN_toolkit.sh https://raw.githubusercontent.com/iamromulan/quectel-rgmii-toolkit/SDXPINN/rcPCIe_SDXPINN_toolkit.sh && chmod +x rcPCIe_SDXPINN_toolkit.sh && ./rcPCIe_SDXPINN_toolkit.sh && cd /
Useful AT Commands
You can send more than one command at once by sperating them with ; and not including the AT part. AT+QENG="servingcell";+QCAINFO for example to see the info from both AT+QENG="servingcell" and AT+QCAINFO
PCIe RC Ethernet mode setup
For use with a board like the Rework.Network PoE 2.5gig RJ45 sled
For x70 modems (RM550/551)
For BETA versions of firmware: the adb value 2 trick still works so one and done:
AT+QCFG="pcie/mode",1;+QCFG="usbnet",1;+QCFG="usbcfg",0x2C7C,0x0122,1,1,1,1,1,2,0;+CFUN=1,1
OR if you are running the latest non-beta firmware
AT+QCFG="pcie/mode",1;+QCFG="usbnet",1
Then unlock ADB:
Ask the modem for its adb code by sending: AT+QADBKEY?
It'll respond with something like +QADBKEY: 29229988
Take that number and paste it in this generator: https://onecompiler.com/python/3znepjcsq (hint: where it says STDIN)
You should get something like
AT+QADBKEY="mrX4zOPwdSIEjfM"
Send that command to the modem and adb will be able to be turned on with the next command
Now you can turn it on with the usbcfg command AT+QCFG="usbcfg"
Be super careful, this controls what ports are on/off over USB.
Run it and you will get the current settings. Something like this:
+QCFG: "usbcfg",0x2C7C,0x0122,1,1,1,1,1,0,0
Send AT+QCFG="usbcfg",0x2C7C,0x0122,1,1,1,1,1,1,0 to enable adb
Now you can reboot: AT+CFUN=1,1
This will do the following:
- Enable PCIe RC mode (Driver selection is automatic now)
- Set to ECM mode via USB and AP mode connection behavior
- Force Enables ADB Access
- Reboots after all the above
Tip: APN automatic selection will somtimes choose the wrong APN. You may need to set your APN after powering up with the SIM inserted.
The List
AT+CFUN=1,1(reboot)AT+CFUN=0;CFUN=1(Disconnect then reconnect)(tip: run this after chnaging APN and you don't have to reboot)AT+QMAPWAC?(get current status of auto connect, 0=disabled 1=enabled)AT+QMAPWAC=1(enable auto connect internet for ethernet)AT+QMAPWAC=0(disable auto connect for ethernet; use when you want internet over USB to work; IPPT must be disabled)AT+QUIMSLOT?(get active sim slot; 1=Slot 1; 2=Slot 2)AT+QUIMSLOT=1(switch to sim slot 1)AT+QUIMSLOT=2(switch to sim slot 2)
AT+CGDCONT?(Get active APN profle st 1 through 8)AT+QMBNCFG="AutoSel",0;+QMBNCFG="Deactivate"(Disable Automatic APN selection)(You will need to set your APN when you switch SIMs or Slots)(Can also set APN after you switch the runAT+CFUN=0;CFUN=1AT+CGDCONT=1,"IPV4V6","APNHERE"(Sets APN profile 1 to APNHERE using both IPV4 and IPV6)
AT+GSN(Show current IMEI)AT+EGMR=0,7(Show current IMEI)AT+EGMR=1,7,"IMEIGOESHERE"(sets/repairs IMEI)AT+QCFG="usbcfg",0x2C7C,0x0801,1,1,1,1,1,2,0(enables adb bypasses adb key)AT+QENG="servingcell"(shows anchor band and network connection status)AT+QCAINFO(Show all connected bands/CA info)AT+QNWPREFCFG="mode_pref"(Check what the current network search mode is set to)AT+QNWPREFCFG="mode_pref",AUTO(Set network search mode to automatic)AT+QNWPREFCFG="mode_pref",NR5G:LTE(Set network search mode to 5GNR and 4GLTE only)AT+QNWPREFCFG="mode_pref",NR5G(Set network search mode to 5GNR only)AT+QNWPREFCFG="mode_pref",LTE(Set network search mode to 4GLTE only)AT+QNWPREFCFG="nr5g_disable_mode"(Check to see if SA or NSA NR5G is disabled)AT+QNWPREFCFG="nr5g_disable_mode",0(Enable Both SA and NSA 5GNR)AT+QNWPREFCFG="nr5g_disable_mode",1(Disable SA 5GNR only)AT+QNWPREFCFG="nr5g_disable_mode",2(Disable NSA 5GNR only)AT+QNWPREFCFG="nr5g_band"(Get current SA 5GNR bandlock settings)AT+QNWPREFCFG="nsa_nr5g_band"(Get current NSA 5GNR bandlock settings)AT+QNWPREFCFG="nr5g_band",1:2:3:4:5:6(Example: Lock to SA 5G/NR bands n1,n2,n3,n4,n5, and n6)AT+QNWPREFCFG="nsa_nr5g_band",1:2:3:4:5:6(Example: Lock to SA 5G/NR bands n1,n2,n3,n4,n5, and n6)AT+QNWPREFCFG="lte_band"(Get current 4GLTE bandlock settings)AT+QNWPREFCFG="lte_band",1:2:3:4:5:6(Example: Lock to 4G/LTE bands 1,2,3,4,5, and 6)AT+QMAP="WWAN"(Show currently assigned IPv4 and IPv6 from the provider)AT+QMAP="LANIP"(Show current DHCP range and Gateway address for VLAN0)AT+QMAP="LANIP",IP_start_range,IP_end_range,Gateway_IP(Set IPv4 Start/End range and Gateway IP of DHCP for VLAN0)AT+QMAP="DHCPV4DNS","disable"(disable the onboard DNS proxy; recommended for IPPT)AT+QMAP="MPDN_rule",0,1,0,1,1,"FF:FF:FF:FF:FF:FF"(⚠️ On the RM551E-GL you must specify the ethernet devices MAC address instead of FF:FF:FF...)AT+QMAP="MPDN_rule",0(turn off IPPT/clear MPDN rule 0; Remember to run AT+QMAPWAC=1 and reboot after)
Acknowledgements
GitHub Users/Individuals:
Thank You to:
Nate Carlson for the Original Telnet Deamon/socat bridge usage and the Original RGMII Notes
aesthernr for creating the Original Simple Admin
rbflurry for inital Simple Admin fixes
dr-dolomite for simpleadmin 2.0 and QuecManager!
tarunVreddy for helping with the SA band aggregation parse
Existing projects:
Tailscale was obtained through Tailscale's static build page. Since these modems have a 32-bit ARM processor on-board I used the arm package. https://pkgs.tailscale.com/stable/#static
TTYd was obtained from the TTYd Project
