Fundamental doubt

Dan Williams dcbw at redhat.com
Mon Aug 31 13:03:01 PDT 2015


On Mon, 2015-08-31 at 20:23 +0100, João M. S. Silva wrote:
> Thanks for the explanation.
> 
> On 08/31/2015 07:59 PM, Dan Williams wrote:
> > Not quite correct.  ModemManager does not use D-Bus to talk to the
> > modem; it uses D-Bus to talk to client applications.  To talk to the
> 
> So, when I use mmcli (client application), I am using the DBus to talk 
> to the ModemManager daemon, which then connects directly to the HSDPA 
> modem through /dev/ttyUSB*?

Correct.

> > modem, MM uses the protocol that the modem supports (eg AT-over-serial,
> > AT-over-WDM, MBIM, QMI, or QCDM-over-serial) to speak with the kernel
> > driver, which then formats the data correctly for the modem itself.
> 
> But in the case of the SIM800L module, does the Linux kernel recognize 
> it? Does it have to? Why? I am talking directly with the modem. There is 
> no hardware recognition message in the kernel.

The kernel must recognize the serial port through which communication
with the modem is possible.  So it may just be that the kernel
recognizes the computer's built-in serial port, to which you have
attached the modem itself.

With most add-in cards and dongles, that is done via USB.  But there are
still devices that communicate via RS232 and other serial standards, and
as long as the kernel can talk to the modem, ModemManager should be able
to use it too.

> In the case of the HSDPA modem, the kernel recognizes the hardware and 
> creates /dev/ttyUSB*, if I understand correctly.
> 
> > So your SIMCom device will have serial lines that a kernel driver knows
> > how to control, and the kernel exposes a device node (like ttyACM0 or
> > ttyUSB0 or cdc-wdm0), which is what ModemManager then uses to control
> > the device based on what requests client applications make via MM's
> > D-Bus API.
> 
> Hum... so I guess the kernels I'm using don't recognize this hardware, 
> so no nodes are created.

So looking at http://www.headele.com/Datasheet/Wireless%
20module/GPRS/SIMCOM/SIM800L_Hardware_Design_V1.00.pdf the modem would
just be somehow hooked up to the serial port of the computer you are
using.  As long as Linux knows about the computer's serial port, then
you should be OK.  These ports are often referred to as "platform"
serial ports and may be designated /dev/ttyS0.  Do you have
any /dev/ttySx ports and if so can you talk to the modem with them?

> > The only caveat here is that many modems use proprietary AT commands for
> > some of their functionality, and if there is no support in ModemManager
> > for those commands some functions may not be available.  MM has a
> > SimTech/SimCom plugin already, but for other SimCom devices that appear
> > to support different commands than the 800L.
> 
> So, I could eventually use MM but it currently does not support SIM800L 
> commands, right?

*Maybe*.  ModemManager supports standard 3GPP AT commands that many
modems use.  But some features are not available through standard AT
commands (access technology reporting, 2g/3g/4g mode selection, etc) and
modems use proprietary commands for those functions.  These must be
specially supported by ModemManager because they are not standard
commands.

Dan



More information about the ModemManager-devel mailing list