Connect M.2 5G modem to PCI and USB at the same time is supported right? And how configure. (RM551E-GL, RM520N-GL etc.)

Hi Quectel!

Your M.2 5G modem module such as RM551E-GL and RM520N-GL have both USB and PCI hardware interfaces.
 

The USB interface supports 10gbps as it’s USB 3.1 gen 2. [1]

The PCI interface supports 16gbps on both model variants, because they have PCIe v3 and 2 PCI lanes each. [2]

The host computer can impose limits on the interface speed, for instance many computers only have USB 3.0 or USB 3.1 gen 1, which have 5gbps total.

The PCI interface I presume is backwards-compatible to PCIe v2, meaning a downgrade to 8gbit. If you have any information conflicting with that let me know.

PCI has circa 150 nanoseconds latency, and USB has circa 30,000 nanosconds (30 microseconds) latency. [3]

 
Via the USB interface, for example, the modem exports a USB serial connection for processing AT commands. This USB serial connection does not really need any special hardware drivers in the host OS, which is practical.

Via USB the modem also exports a “wwan” ethernet device via USB.

Via the PCI interface, the modem exports a WWAN-Ethernet interface, also, right.

Now to my question:

I have read online that the Quectel M.2 modules support a “dual bus” configuration, so that the modem is connected to the host computer via the USB and the PCI interface concurrently.

They are not many but dual bus adaptor cards are sold, for example this one: https://www.newegg.com/p/0EP-03UF-00002 . Picture:

 
Now to my question:

I just wanted to get your confirmation that connecting your M.2 5G modem to PCI and USB at the same time is supported. It is right?

So for example, I can rely on doing AT commands via the USB serial connection, but I can have the Ethernet delivered via PCI, right?
 

If you can let me know which AT commands I should run to set up this configuration, let me know. I.e. tell it to serve the WWAN as an ethernet device through the PCI interface.

Also what is the URL to the RM551E-GL AT commands manual, and where in the manual is this written up.

Finally, if you have a pointer to how to make sure that a Linux system will deliver this PCI ethernet device, let me know. Will it fall under the MBIM Quectel-Linux driver, or can the RM551E-GL deliver a ‘generic’ PCI Ethernet device using some other driver and route than MBIM?
 

A last design detail here, does the Quectel module export two separate USB connections, or only one?

I ask because I think I read somewhre that the special PCI-only variant of RM520N-GL called RM520NGLAP (P for PCI only) which supposedly will not suport the USB, actually does work if you put it in a Quectel-USB adaptor and connect it to USB.

[1] Ref. https://www.perplexity.ai/search/the-usb-interfaces-on-quectel-ZR4K_LUPSGqex0dmjojN0A

Dear @Qtu
It can’t work to connect USB and PCI at the same time.
We only have AT command to switch them.

1 Like

@silvia Dear Silvia,

It’s great to talk to you. Thank you for your kind response.
 

What I first and foremost want to do is have a reliable channel for AT commands to the modem.

Since this is not very high bandwidth, it’s OK to do this via USB all the time.

Meanwhile, if I can do the networking via PCI, I would appreciate it.

I think this is desirable, fore example, because the drivers for AT commands via USB are generic - it’s the USB serial interface driver. To my awareness, the drivers situation for PCI is much more complicated.

Is it possible to split it like this on the RM551E-GL?
 

If you have a minute, can you explain to me which the different operational modes for network via PCI are supported on RM551E-GL, and then what AT commands I need to run to enable that respective mode, and which Linux drivers are needed?

(E.g. generic Realtek R8125 driver, Linux generic MBIM driver, or Quectel-provided custom-built MBIM driver etc.)

I really don’t know this field so your clarification is much appreciated.
 

Finally:

Can you please confirm that in PCI mode, the RM551E-GL always operates in “passthrough mode” (i.e. not in “router mode”)?

And, please confirm if for both IPv4 and IPv6, in “passthrough mode”, the RM551E-GL operates a DHCP server in both IPv4 and IPv6 mode, which will assign to the host Linux computer the IPv4 and IPv6 IP number the RM551E-GL was assigned from the phone operator?

So in Linux I run dhclient wwan0 for the IPv4 assignment, and dhclient -6 wwan0 for the IPv6 assignment, or the equivalent via NetworkManager, ifupdownd /etc/network/interfaces/QuectelRM551E-GLModemConf config file

auto wwan0
iface wwan0 inet dhcp
iface wwan0 inet6 dhcp request_prefix 1 accept_ra 2

etc. , then, right?

Many thanks :folded_hands:
 

Bump @iamromulan @little-endian @pcmike @safwanAhmadKhan2025

[2] Ref. https :// www.perplexity.ai/search/the-pci-interface-on-quectel-r-T3pZtStQTXWnBC5tUj8.GQ

[3] Ref. https :// www.perplexity.ai/search/what-is-the-latency-in-a-usb-3-_eaKfTZ3TfCwmQ8FLdDfLA

Dear @Qtu
USB and PCIE use different driver.
RM551E doesn’t support MBIM.
You can’t use these at the same time.
I didn’t have experience for your questions, hope other guys will help you.

1 Like

Hi @silvia ,

Thank you for your kind response.

@iamromulan @bean.wang-q @Kyson if you have any insights on the following please share.
 

Let’s get to the bottom of how the RM551E-GL presents itself to a host computer via PCI, what interfaces are available via PCI for network and AT commands, PCI-USB dual use, and if any UART adaptor card exists.
 

Presentation as PCI device how?

Regarding what PCI device the RM551-GL presents itself as to the host computer, I am 100% confused.

One suggestion from Google, AI, and some forum post, is that the RM551E-GL behaves like a Realtek 8125 2.5gbps Ethernet controller, i.e. so the host computer believes it’s a Realtek 8125 Ethernet controller that is connected to the M.2 PCIe slot. Screenshot of Google saying this:
 

I would guess more likely the above is not correct, but is an incorrect interpretation of the RM551E’s ability to be connected to a real Realtek 8125 Ethernet chip, but I am not sure. Someone needs to confirm. It would make all sense in the world that Quectel with the intention of reducing host computer driver requirements as much as possible, would present to the host computer as a Realtek 8125 chip. Then however comes the question, how do you make AT commands to this Quectel device, if the TCP port 1555 AT command interface has not been set up separately yet.
 

Some other source suggests that there will be a “wwan0” device on the Linux host computer, which derives from the QMI driver, plus a /dev/cdc-wdm0 “control device”.

The Linux kernel module name for this wwan function is qmi_wwan, and whether it is loaded is shown through lsmod | grep qmi_wwan.

Some sources appear to say that recent Linux versions will bundle a QMI driver that is good enough to drive the RM551E-GL already, and other sources say you need to download, build and install Quectel’s QMI module separately.
 

Some sources say that the RM551E-GL will presents itself to the host computer as a PCI-based USB controller chip, which then has one USB port, and on this USB port is a USB serial connection, which leads to the AT command interface on the RM551E-GL. Is that any real at all or misinformation?
 

Thanks for clarifying that RM551E-GL will not support MBIM over PCI.
 

Using the RM551E-GL concurrently via PCI and USB

You can’t use these at the same time.

Can you check with your expert team if it is even not possible to do AT commands via USB serial, while doing network via QMI PCI?
 

The AI thinks concurrent USB and PCI is possble and also the recommended way to use the modem. But it can be wrong of course.

URL https:// www.perplexity.ai/search/with-a-quectel-rm551e-gl-m-2-5-75AXNDfsSneg58PKvdTSRw . It says:

To issue AT commands to the Quectel RM551E-GL 5G modem connected via the PCIe M.2 slot in QMI mode on Linux, you generally need to use the USB interface of the modem for AT command communication, even when data networking is done through the PCIe interface.

Key points and setup approach:

  • The RM551E-GL modem supports a dual interface mode where USB and PCIe are active simultaneously; USB is typically used for control/AT commands and PCIe for data (e.g., Ethernet-like WWAN device)

  • The modem exposes a QMI PCI interface for data (handled by the Linux qmi_wwan driver, presenting wwanX network devices and /dev/cdc-wdmX device nodes for QMI communication). However, this interface does not directly support AT commands.

  • AT commands are typically sent over USB serial ports created by the modem, such as /dev/ttyUSB0. This serial device is accessible when the USB interface of the Quectel module is recognized on Linux (visible via lsusb).

  • To access AT commands when using the PCIe data interface:

    1. Connect to the modem’s USB serial port (over USB interface).

    2. Use a terminal program (e.g., minicom or screen) on /dev/ttyUSB0 or similar device.

    3. Send AT commands there.

  • To enable and configure the QMI interface on Linux: …

^ Note the Perplexity response says clearly that the RM551E-GL MUST be connected via USB and PCI concurrently.
 

The dual bus USB-PCI card I show above, should only be sold because many Quectel models support the concurrent use of USB and PCI - if this use is not possible why do they sell it at all?
 

An alternative approach would be to connect the RM551E-GL via UART and PCI (M.2) concurrently, but I cannot find any adaptor cards available which have M.2 and UART. I find USB and UART, and I find gigabit Ethernet and UART, but no M.2.

The information I find says that the UART operates at 115200 bps and contains an AT command interface. With UART, there would be no need to be connected via USB.
 

AT commands interface via PCI available, how??

The information about how to get an AT commands interface via PCI is extremely unclear.

It is clear that AT commands can be processed via a custom protocol over TCP port 1555, but I think this might work only when the modem is connected to an actual Realtek 8125 chip and not when it’s connected to a host computer via PCI.

I have read some source that says Quectel’s Linux QMI driver contains functions to provide a virtual USB serial connection to the host computer, which serve an AT commands interface, but I’m not sure if this is real.
 

Furthermore I notice that there are reports of people accidentally bricking their Quectel M.2 modules when trying to make them work, for example because some AT commands are irreversible. Therefore I hope these points are clear before I configure, so I don’t brick the module one or many times due to unclarity.

Many thanks

About making AT commands via QMI via PCI interface (M.2 connector) on the RM551E-GL:

Perplexity AI stated that the pcie_mhi driver combined with the quectel-qmi-proxy -d /dev/mhi_QMI0 & program will produce a /dev/tty* serial port.

I guess this might be totally incorrect. In either case, for me to try this could take me 100 hours of work and I could still reach an incorrect conclusion.

It’s great if you clarify if this is really offered and if so, how to install, build, configure, setup and use it on a recent Linux computer e.g. Debian.
 
For the related device RM520N-GL, in the post RM520N-GL PCIe driver and AT command interface , the poster @dooglas77 reported a problem making this function work, he wrote:

there are no virtual serial ports for executing AT commands. What is required to expose these virtual serial ports so I can run AT commands?

He did not write if he had success eventually. I’ll follow up there to ask him if he got it to work eventually.

 

URL: https:// www.perplexity.ai/search/how-do-you-install-set-up-conf-BdOOg84ATlyyjBsL5VB_Kg

Screenshot: