Supported devices

Igor Almeida igor.contato at gmail.com
Mon Jan 13 13:19:53 PST 2014



On 01/13/2014 05:58 PM, Aleksander Morgado wrote:
>>>> As well i wanted to ask about cdc-wdm,  qmi_wwan device drivers since i
>>>> do
>>>> not find much information about it. On one blog i can read: " This
>>>> protocol
>>>> is easily accessible in recent enough Linux kernels (>= 3.4), through the
>>>> cdc-wdm and qmi_wwan drivers. Once these drivers are in place and the
>>>> modem
>>>> gets plugged in, the kernel will expose a new /dev/cdc-wdm device which
>>>> can
>>>> talk QMI, along with a wwan interface associated to each QMI port."
>>>>
>>>> But if i plug in my Samsung Galaxy S4 i just can see /dev/ttyACM0. Is
>>>> there
>>>> a way to install/adapt those device drivers for the Galaxy Android Phone
>>>> or
>>>> is this currently not supported? I'm assuming that the latest Snapdragon
>>>> processors are using QMI is well.
>>>>
>>>
>>> Android, even if using kernel 3.4, doesn't use the upstream qmi_wwan
>>> driver to handle the QMI protocol internally. The QMI-based Android
>>> RIL layer will end up using Google's own version of the original
>>> Qualcomm GobiNet driver, which may actually even use shared memory for
>>> the QMI protocol instead of a character device in /dev.
>>>
>> In my Nexus 4 (LG E960) I do see character devices
>> /dev/{qmi0,qmi1,qmi2,smd_cxm_qmi} which *may* be usable, though I
>> have not tried to do anything with them since libqmi requires glib and
>> there wasn't one readily available in the android toolchain/libs.
>>
>> I have since found [1] and think it could work.
>>
>> Of course, this approach requires cross-compiling and using 'adb shell'
>> to run the cli program, since you won't be able to see the modem directly
>> from your PC.
>>
>> [1] http://qinchuan.me/article.php?id=62
>>
>
> Those character devices are the ones exported by Google's QMI kernel driver.
>
> When using libqmi, all the CTL service management is done in
> userspace; with Google's kernel drivers all the CTL service management
> is done in the kernel itself. Currently libqmi will only work with
> character devices exported by the qmi_wwan kernel driver; so even if
> you compile glib and libqmi within Android, it won't work. In order to
> use libqmi in Android, we would need to change how the client
> allocation is managed in libqmi, to use the ioctls that the kernel
> driver expects instead of us doing the whole CTL management in
> userspace. Bit messy, but doable.
>
Indeed, I shouldn't expect that kernel to play nice with libqmi. I guess 
a better strategy would be to merge the qmi_wwan driver in mako's 
kernel-msm, right?

PS: I'm probably starting to hijack this thread for Nexus 4 support, my 
apologies for Martin.

-- 
Igor Almeida


More information about the libqmi-devel mailing list