FTP EM7690 on linux 4.19.79

I am using EM7690 i want to use FTP to transfer files to mobile phones. Is there any library able to perform ftp transfer.
if so, is there any description of the architecture of module and libraries to be installed and loaded.

do you mean you have set up a FTP server in your mobile phones?
Is that your EM7690 is connecting to a linux machine(e.g. Ubuntu PC) with kernel 4.19.79?

I expect to have a FTP server installed on a mobile phone, this concerns the remote node.
At the other side of the network (4G), i want to use one EM7690 module.
This EM7690 module is on a board where there is an ARM processor with a linux operating system 4.19.79.
ON this linux os, i want to load all required drivers for this module.
At first, i basically need to use AT commands .
These AT commands would be used to initialize the EM module, to send data with the ftp protocol.
My first impression is that i only need to load the qcserial.ko driver delivered by Sierra Wireless. Is this right?
is there any other driver to be loaded if i only want to send AT commands?

You should use the ftp application in the linux

Which ftp application is it?

you can try this:

Everyboby knows ftp. Your reply is not in the sense of my question. I only want to know the architecture of software to be installed on Linux from user space to kernel space. Which drivers should i load from your site? And how can i install them on my linux.

you can install USB driver here for qcserial for AT command:
https://source.sierrawireless.com/resources/airprime/software/mbpl/mbpl-software-latest/#sthash.CEoqNYtn.dpbs

Also it is using MBIM, so this driver should be coming from the standard generic driver in linux.

Hi, i am using a kernel version 4.19.79? for the driver ( Mobile Broadband Package for Linux (SDK, Drivers, Documentation) (sierrawireless.com)
you have released at least these versions:
1)version R27.0.22 B5220
2)version R13
Could you tell me which one is compatible with my kernel 4.19.79

Other question:
When using the driver version R27.0.22 B5220, with my kernel 4.19.79, the compiler raises one eror on this line
#if LINUX_VERSION_CODE>= KERNEL_VERSION(5,12,0)
the compiler does not recognize the KERNEL_VERSION MACRO
Do you know why there is this error?
Is it because of the kernel 4.19.79?

I don’t see there is version R13 in the link

That macro should be generic stuff:

Hi, could you tell me whick kernel configuration i should have (make ARCH=arm menuconfig) to use properly you qcserial.ko.
I need to configure my kernel 4.19.79

the problem now is on the MACRO, not in the menuconfig

I am not refering to the problem of macro. I am asking you another type of question.

I don’t know then as I don’t need to do menuconfig in my Ubuntu 18, maybe you can see what the qcserial depends and you might get some idea:


owner@ubuntu:~$ modinfo qcserial
filename:       /lib/modules/4.13.0-32-generic/kernel/drivers/usb/serial/qcserial.ko
version:        1.7.2101.1
license:        GPL v2
description:    Qualcomm USB Serial driver
author:         Qualcomm Inc
srcversion:     3378D53B6CEDD227835970D
alias:          usb:v03F0p581Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81D2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81D1d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81D0d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81CFd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81B6d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81B5d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81B3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81B1d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A9d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A4d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p90D9d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p90D3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p90D2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9091d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9090d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p907Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p907Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9079d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9078d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9071d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9070d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9063d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9061d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9060d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9056d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9055d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9054d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9053d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9051d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9041d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9040d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p901Fd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p901Ed*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p901Cd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68C0d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68A2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v114Fp68A2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0F3Dp68A2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p4E1Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0AF0p8120d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v12D1p14F1d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v12D1p14F0d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p901Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9019d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9018d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9015d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9014d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9013d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9012d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9010d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68A9d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68A8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68A5d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68A4d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A6d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8194d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8193d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA021d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA020d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p920Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p920Cd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p371Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9205d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9204d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v16D8p8002d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v16D8p8001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9011d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p900Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9009d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9008d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9007d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9006d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9005d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9004d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9003d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9002d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9000d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9275d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9274d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9235d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9234d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9265d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9264d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9215d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9214d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p251Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p241Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9245d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9244d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9225d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9224d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p920Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9208d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8186d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8185d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA014d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA013d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA012d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA011d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA010d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1BC7p900Ed*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1F45p0001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9231d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9221d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9201d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9009d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9008d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9222d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9203d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9202d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9002d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1557p0A80d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v19D2pFFF2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v19D2pFFF3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0B05p1774d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0B05p1776d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA008d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA007d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA006d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA005d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA004d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA003d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA002d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8171d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8172d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04DAp250Cd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04DAp250Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p201Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p1F1Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9212d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9211d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p581Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81D2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81D1d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81D0d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81CFd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81B6d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81B5d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81B3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81B1d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A9d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A4d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p90D9d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p90D3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9091d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9090d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p907Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p907Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9079d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9078d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9071d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9070d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9063d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9061d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9060d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9056d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9055d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9054d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9053d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9051d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9041d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9040d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p901Fd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p901Ed*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p901Cd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68C0d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68A2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v114Fp68A2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0F3Dp68A2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p4E1Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0AF0p8120d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v12D1p14F1d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v12D1p14F0d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p901Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9019d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9018d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9015d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9014d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9013d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9012d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9010d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68A9d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68A8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68A5d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p68A4d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp81A6d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8194d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8193d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA021d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA020d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p920Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p920Cd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p371Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9205d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9204d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v16D8p8002d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v16D8p8001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9011d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p900Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9009d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9008d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9007d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9006d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9005d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9004d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9003d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9002d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p9000d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9275d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9274d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9235d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9234d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9265d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9264d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9215d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9214d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p251Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p241Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9245d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9244d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9225d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9224d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p920Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9208d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8186d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8185d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA014d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA013d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA012d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA011d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA010d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1BC7p900Ed*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1F45p0001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9231d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9221d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9201d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9009d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9008d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9222d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9203d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9202d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9002d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1557p0A80d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v19D2pFFF2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v19D2pFFF3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0B05p1774d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0B05p1776d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA008d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA007d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA006d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA005d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA004d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA003d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA002d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1410pA001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8171d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v413Cp8172d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04DAp250Cd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04DAp250Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p201Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v03F0p1F1Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9212d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v05C6p9211d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p90D8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1199p90D2d*dc*dsc*dp*ic*isc*ip*in*
depends:        usb_wwan,usbserial
name:           qcserial
vermagic:       4.13.0-32-generic SMP mod_unload
owner@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu Bionic Beaver (development branch)
Release:	18.04
Codename:	bionic
owner@ubuntu:~$ uname -r
4.13.0-32-generic

I do not really understand
Is the R23 driver implemented for the ARM target?
You are mentonning Ubuntu but I am not on the ubuntu
I am on an ARM target
Do you have the drivers qcserial for the ARM?

of course you need to cross-compile the driver for your own ARM platform

Hello, i am trying to use your module on a new board. I read the control interface chapter 3.6 of the ‘em7690 product technical specification r5.’
I tried to have W_DISABLE =0 RESET=1 GPS_DISABLE=0 Full_Card_Power_Off =1 then i see the led4 blinking. Unfortunately i do no see any usb signal see table 3-1 (USB3_RXP, USB3_RXM,USB3_TXP,USB3_TXM, USB_D-,USB_D+). None of the USB signal change of state (voltage remains low) while led4 is blinking. Question1:Is it normal?. Is there any action to make the em7690 module communicate through usb?

have you checked the PCIE_DIS signal

I cheched that the pin 20 is set to1,64v. Is it this pin
that you are mentionning for PCIE_DIS?
Is this 1,64v level right to use usb? Should we consider that it is in pcie mode? Is there any pin to check this usb/pcie mode state?

normally you should use 1.8V to pin20