Project

General

Profile

Actions

Feature #1958

open

Note II LTE modem (ofono Java RIL)

Added by Joey Hewitt about 5 years ago. Updated over 3 years ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
Telephony and mobile data
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
Device:
Grant:
Type of work:
Any programming languages (scripts, C, etc)

Description

I'm working on porting my oFono-based Java RIL to Replicant 6 on Note II LTE (which should also apply to Galaxy S III). I've had some success with SMS and calls, but am going to be too busy for the next few weeks so I'm logging some progress.

See https://redmine.replicant.us/projects/replicant/wiki/QMI-RIL for some background information on speaking to the modem. I'm using Wolfgang's work as a foundation for mine.

My code is at https://git.replicant.us/contrib/scintill/manifest/log/?h=replicant-6.0 . To try on GT-I9305 etc., you should just need that manifest and add a patch like https://git.replicant.us/contrib/scintill/device_samsung_t0lte/commit/?h=replicant-6.0&id=e11c95a091cd8b1dbdda8307565283b0c2377de2 plus its parent patch to your device's tree.

TODO

  • Cycle like this in kernel logs every 1-2 seconds. The spam is annoying, and it seems like it could be bad for correct modem operation or battery life. Is the modem cycling the USB link? Why? Need to run an RMNET-based kernel to see if it does this.
    <7>[  122.340699] c0 usb 1-2: unlink qh2-0001/e820ce00 start 1 [2/0 us]
    <6>[  122.347539] c0 read_hsic_cb: status:-2 actual:0
    <7>[  122.353599] c0 usb 1-2: usb auto-suspend
    <7>[  122.370253] c0 hub 1-0:1.0: hub_suspend
    <7>[  122.372738] c0 usb usb1: bus auto-suspend
    <7>[  122.377120] c0 s5p-ehci s5p-ehci: suspend root hub
    <6>[  122.383829] c0 s5p-ehci s5p-ehci: host_phy_susp
    <6>[  122.388050] c0 request_active_lock_release
    <6>[  122.595921] c0 mdm_hsic_irq_handler: detect Rising edge
    <6>[  122.599878] c0 mdm_hsic_rpm_check
    <6>[  122.603592] c0 request_active_lock_set
    <6>[  122.608000] c0 s5p-ehci s5p-ehci: host_phy_resume
    <7>[  122.613249] c0 usb usb1: usb auto-resume
    <7>[  122.617389] c0 s5p-ehci s5p-ehci: resume root hub
    <6>[  122.660968] c0 mdm_hsic_irq_handler: detect Falling edge
    <7>[  122.675187] c0 hub 1-0:1.0: hub_resume
    <7>[  122.677644] c0 s5p-ehci s5p-ehci: GetStatus port:2 status 001005 0  ACK POWER sig=se0 PE CONNECT
    <7>[  122.687623] c0 hub 1-0:1.0: port 2: status 0503 change 0004
    <7>[  122.693642] c0 hub 1-0:1.0: state 7 ports 3 chg 0004 evt 0000
    <7>[  122.699753] c0 s5p-ehci s5p-ehci: GetStatus port:2 status 001005 0  ACK POWER sig=se0 PE CONNECT
    <7>[  122.709054] c0 s5p-ehci s5p-ehci: GetStatus port:2 status 001005 0  ACK POWER sig=se0 PE CONNECT
    <6>[  122.718199] c0 mif: usb_port_resume: 1283, 4
    <7>[  122.722833] c0 usb 1-2: finish resume
    <6>[  122.729875] c0 usb 1-2: read_hsic:
    <7>[  122.733547] c0 s5p-ehci s5p-ehci: reused qh e820ce00 schedule
    <7>[  122.737956] c0 usb 1-2: link qh2-0001/e820ce00 start 1 [2/0 us]
    <7>[  122.746082] c0 hub 1-0:1.0: resume on port 2, status 0
    <7>[  122.749870] c0 hub 1-0:1.0: port 2, status 0503, change 0004, 480 Mb/s
    <7>[  123.255691] c0 usb 1-2: unlink qh2-0001/e820ce00 start 1 [2/0 us]
    <6>[  123.262380] c0 read_hsic_cb: status:-2 actual:0
    <7>[  123.267623] c0 usb 1-2: usb auto-suspend
    <7>[  123.285240] c0 hub 1-0:1.0: hub_suspend
    <7>[  123.287727] c0 usb usb1: bus auto-suspend
    <7>[  123.292111] c0 s5p-ehci s5p-ehci: suspend root hub
    <6>[  123.298786] c0 s5p-ehci s5p-ehci: host_phy_susp
    <6>[  123.302931] c0 request_active_lock_release
    
  • Voice calls - audio doesn't work (hopefully just needs correct muxing) and call partially disconnects after several seconds. The latter might be related to USB-link power cycling (see above).
  • Data doesn't work. Might need correct interface name and raw IP mode. Look at Wolfgang's code on this.
  • It seems slow to register to the network after boot

Related issues

Related to Replicant - Feature #1813: Modem support for i9305NewWolfgang Wiedmeyer06/18/2017

Actions
Related to Replicant - Feature #1945: Evaluate more in depth the android_frameworks_opt_telephony_ril_ofono RILNewFil Bergamo07/24/2019

Actions
Actions #1

Updated by Joey Hewitt about 5 years ago

  • Assignee changed from My Self to Joey Hewitt
Actions #2

Updated by Kurtis Hanna about 5 years ago

Actions #3

Updated by Kurtis Hanna about 5 years ago

  • Related to Feature #1945: Evaluate more in depth the android_frameworks_opt_telephony_ril_ofono RIL added
Actions #4

Updated by Kurtis Hanna almost 5 years ago

  • Status changed from New to In Progress
Actions #5

Updated by Kurtis Hanna almost 5 years ago

I wrote an overview of my understanding of the blockers for LTE support in Replicant 6 and 9 here: https://lists.osuosl.org/pipermail/replicant/2020-January/002465.html

Actions #6

Updated by Kurtis Hanna almost 5 years ago

The following are two updates from Joey that were posted in our IRC:

"Hey all. I've been working again on the RIL for Note 2 LTE, and eventually other Qualcomm modems. I've got data working a few times, but it's not reliable. I'm looking into issues with audio calls too. It seems, for some reason, ofono doesn't get an acknowledgement that a dialed call has started."

"A small update on Note 2 LTE: There's a proprietary lib (libcsd_client.so) that's loaded by the LineageOS Audio HAL. It seems to configure the modem's audio input/output using some QMI commands that I can't find documented anywhere. I'm studying it to figure out the commands so I can send them. After that, I think audio calls will work."

Actions #7

Updated by Joey Hewitt almost 4 years ago

Since the last post, I have reversed libcsd_client.so and implemented it in oFono, so now call audio works! I have also got data connections to establish more reliably. I have seen both UMTS and LTE work. I don't know why it's not always LTE and whether it's my code's fault... ideally I will also verify the technology that is being used so I can ensure there is not just a bug in the code that reports which is being used. I also added support for syncing the time from the network (if the user has enabled it.)

This is pushed to my manifest/repos in contrib.

Actions #8

Updated by _I3^ RELATIVISM over 3 years ago

  • Type of work Any programming languages (scripts, C, etc) added
Actions

Also available in: Atom PDF