Jump to content

Modem: Difference between revisions

From postmarketOS Wiki
Minecrell (talk | contribs)
msm-modem-mainline -> msm-modem-rpmsg
m Yes, DSDS is Dual SIM Dual Standby.
Line 12: Line 12:
* You can use the [https://git.kernel.org/pub/scm/network/ofono/ofono.git/tree/test ofono test scripts] or <code>ofonoctl</code> to see if the Linux recognized your modem and if it works correctly.
* You can use the [https://git.kernel.org/pub/scm/network/ofono/ofono.git/tree/test ofono test scripts] or <code>ofonoctl</code> to see if the Linux recognized your modem and if it works correctly.


* Note, that for dual SIM (maybe only for DSDS - dual SIM dual standby?) devices you need to follow additional manual steps, otherwise the modem (and ofono) will not recognize your SIM card. See [https://gist.github.com/TravMurav/45a705f210125858ce889b06f90656d9]
* Note, that for dual SIM (maybe only for DSDS - dual SIM dual standby) devices you need to follow additional manual steps, otherwise the modem (and ofono) will not recognize your SIM card. See [https://gist.github.com/TravMurav/45a705f210125858ce889b06f90656d9]


'''Note:''' On newer SoCs (e.g. SDM845 or MSM8953), the modem seems to be available only through QRTR, and not through rpmsg channels as on older Qualcomm SoCs. You can see this if <code>qrtr-lookup</code> also lists modem services such as <code>User Identity Module service</code>. In that case, you can query the modem through libqmi 1.26.0+ like <code>qmicli -d qrtr://<node> --uim-get-card-status</code> (get <code><node></code> from the <code>qrtr-lookup</code> output). Currently, the QRTR transport does not seem to be supported in modem services like oFono or ModemManager yet. At least for ModemManager there seem to be ongoing efforts to make it work, though. See [[Qualcomm_Snapdragon_845_(SDM845)#Modem|SDM845 Modem]] for details and example output.
'''Note:''' On newer SoCs (e.g. SDM845 or MSM8953), the modem seems to be available only through QRTR, and not through rpmsg channels as on older Qualcomm SoCs. You can see this if <code>qrtr-lookup</code> also lists modem services such as <code>User Identity Module service</code>. In that case, you can query the modem through libqmi 1.26.0+ like <code>qmicli -d qrtr://<node> --uim-get-card-status</code> (get <code><node></code> from the <code>qrtr-lookup</code> output). Currently, the QRTR transport does not seem to be supported in modem services like oFono or ModemManager yet. At least for ModemManager there seem to be ongoing efforts to make it work, though. See [[Qualcomm_Snapdragon_845_(SDM845)#Modem|SDM845 Modem]] for details and example output.

Revision as of 09:41, 8 August 2020

Note This is a work in progress document where a lot of information is still missing. Please help to expand this page!

Qualcomm Modems

On most Qualcomm SoCs the modem is a separate processor which lives next to the main CPU where Linux is running on. It needs to be given firmware by the host processor to start.

The procedure for getting the modem to work is generally the following:

  • Package and install the Firmware of your modem into the file system, generally the mba.* and modem.* files.
  • Install the package msm-modem-downstream or msm-modem-rpmsg (for most older SoCs on mainline, see below), depending on the kernel you are using (and reboot to activate the udev rules and services).
  • Install ofono and start it using rc-service ofono start
  • You should see signs of your firmware being loaded in the dmesg.
  • You can use the ofono test scripts or ofonoctl to see if the Linux recognized your modem and if it works correctly.
  • Note, that for dual SIM (maybe only for DSDS - dual SIM dual standby) devices you need to follow additional manual steps, otherwise the modem (and ofono) will not recognize your SIM card. See [1]

Note: On newer SoCs (e.g. SDM845 or MSM8953), the modem seems to be available only through QRTR, and not through rpmsg channels as on older Qualcomm SoCs. You can see this if qrtr-lookup also lists modem services such as User Identity Module service. In that case, you can query the modem through libqmi 1.26.0+ like qmicli -d qrtr://<node> --uim-get-card-status (get <node> from the qrtr-lookup output). Currently, the QRTR transport does not seem to be supported in modem services like oFono or ModemManager yet. At least for ModemManager there seem to be ongoing efforts to make it work, though. See SDM845 Modem for details and example output.

Relevant issues

  • #520 N900: integrate ofono
  • #598 Let's get the cellular modem working! (presenting various stacks, general discussion)
  • #1054 Get qualcomm modems working (at the end of the thread scintill wrote a few wrappers and made SMS on a QC modem work with a downstream kernel without userspace blobs!)
  • #1314 i9195/Qualcomm modem support (scintill's work integrated)
  • pmaports#251 xiaomi-santoni: gets modem to work on the device

Relevant pages

See also