Hi Guillaume,
> >>>>>> We are facing a problem in oFono when using 3G modems:
> >>>>>>
> >>>>>> A CDMA2000 modem can have same PID with WCDMA modem, or
> >>> TDS-CDMA
> >>>>>> modem -- 3G modem vendors already confirm they do that.
> >>>>>>
> >>>>>> That's to say, if following current strategy, it will be
a problem to
> >>>>>> install proper driver for this kind of 3G modem.
> >>>>>>
> >>>>>> So, is it feasible to find out a solution such as to probe
the modem
> >>>>>> firstly, find out what kind of network modes it supports,
and then
> >>>>>> install the driver?
> >>>>>>
> >>>>>> The way to probe the modem could be some action as to read
the
> >>>>>> capability or get system mode, or issue some specific AT
command
that
> >>>>>> only response to certain network mode?
> >>>>>>
> >>>>> Indeed, we could use for Huawei modems for instance the
AT^SYSINFO
> >>>>> command and retrieve the sys_mode field and parse it, I have
found
> >>>>> this in public Huawei specifications:
> >>>>>
> >>>>> <sys_mode>: System mode. The values are as follows:
> >>>>> 0 No service.
> >>>>> 1 AMPS mode
> >>>>> 2 CDMA mode
> >>>>> 3 GSM/GPRS mode
> >>>>> 4 HDR mode
> >>>>> 5 WCDMA mode
> >>>>> 8 CDMA/HDR HYBRID mode
> >>>>>
> >>>>> Thus we can chose accordingly the drivers to create oFono
atoms.
> >>>> After some investigations, it seems SYSINFO won't be enough to
get the
> >>>> modem type because with this AT command we will have to be
registered to
> >>>> the network to get the system mode.
> >>>> The only way I found until now is using the AT+GCAP to check
whether
the
> >>>> modem is CDMA or GSM type.
> >>>> However if we do the AT+GCAP request for each constructor plugin
> >>>> (huawei, zte, ...) it will bring some duplicated code.
> >>>> Does someone see any better solution?
> >>> I like to see that we do proper homework here. The first question is
> >>> actually can you execute AT+GCAP if not SIM card has been inserted or
is
> >>> actually locked? And if not does, ATI provide an extra +GCAP response.
> >>> Without a SIM atom you will not be able to unlock the modem. And you
can
> >>> only create the SIM atom if you know what modem technology you are
> >>> using. Additionally of course additionally, what are the responses for
> >>> various modem models and manufactures. Are they doing this actually
> >>> properly.
> >>>
> >>> We need OFONO_AT_DEBUG traces for all the various permutations of
this
> >>> behavior. This needs to be documented first. Feel free to send patches
> >>> to add the results to doc/ directory inside oFono.
> >>>
> >>> Just randomly hacking around will get us in trouble and will make well
> >>> behaved modems like MBM or IFX fail or suffer for no apparent reasons.
> >> The at+gcap command only effective after SIM card inserted.
> >> It is feasible to firstly find the vendor, then choose specific method to
detect
> >> if it is wcdma/cdma2k, then install proper driver?
> > and how does this work if you can't execute AT+GCAP since either your
> > SIM card is not present of actually locked. As I said above, you can
> > only unlock the SIM card with the SIM atom loaded. And for loading the
> > SIM atom you need to know which technology you are operating on.
> >
> > I really prefer that the mentioned homework is done properly and
> > information are first gathers. Wild guessing is not going to help here
> > and random assumption on how things are suppose to work will eventually
> > fail because of the nature of this hardware. So lets get real facts
> > first and then we see what we do to solve this problem.
>
> I have made some tests on a dozen of dongles from Huawei and ZTE.
> I have remove the sim card for each dongle in order to be in the use
> case you mentionned.
> I used minicom in order the modem not to be intialized.
> For all GSM one there is an answer to ATI but none to AT+GCAP.
>
> Huawei GSM AT+GCAP ATI answer:
> ======================
> AT+GCAP
> +CME ERROR: SIM failure
>
> ATI
> Manufacturer: huawei
> Model: E1552
> Revision: 11.608.10.00.309
> IMEI: 353143036552488
> +GCAP: +CGSM,+DS,+ES --> this is a GSM modem
>
> This is the case for ALL Huawei GSM dongles we got.
>
> Huawei CDMA AT+GCAP ATI answers:
> =======================
> AT+GCAP
> +GCAP: +CIS707-A,CIS-856-A,+MS, +ES, +DS, +FCLASS
>
> ATI
> Manufacturer: +GMI: HUAWEI TECHNOLOGIES CO., LTD
> Model: EC152
> Revision: TCPU_HWEC152DT01
> ESN: +GSN:80aad6fd
> +GCAP: +CIS707-A,CIS-856-A,+MS, +ES, +DS, +FCLASS -->this is CDMA modem
> (no +CGSM label)
>
> The Huawei CDMAdongle above with ROM SIM answers to both AT+GCAP and
ATI.
> This is the case for ALL Huawei CDMA dongles we got.
>
> Concerning ZTE we got only GSM modems.
>
> ZTE AT+GCAP ATI answer:
> ================
> AT+GCAP
> ERROR
>
> ATI
> Manufacturer: ZTE INCORPORATED
> Model: MF668
> Revision: BD_INRELMF668V1.0.0B01
> IMEI: 355987033958538
> +GCAP: +CGSM,+DS,+ES
>
> This is the case for ALL ZTE GSM dongles we got.
and what about the case when the SIM card is present, but PIN locked?
> According to the result, it might be interesting to send ATI when the
> constructor plugin is probe by oFono.
> Thus with +GCAP info we can decide which driver to use.
Is sending +GCAP after ATI really a standard? Have we tried anything
else besides Huawei or ZTE?
I tried with more dongles from different vendors, as attached table.
The scenarios include:
With valid sim card, sim card PIN locked, no sim card, sim card locked.
N(ROM) in table indicates the SIM in ROM already.
ATI command can always return GCAP content in all tests.
Also you do realize that the GAtChat object and thus the file descriptor
is owned by the modem plugin. The plugin itself is the only one that
should do any kind of IO.
So if we require to run ATI first to identify if we are GSM or CDMA,
then this is a per modem manufacture specific detail. And we rather add
a helper function like we did for CPIN polling that makes this easier.
In current code the 'driver' is hardcoded by comparing with vendor_list[].
So if it possible to break the step into several:
vendor_list[] in udevng just cares about vendor - by comparing vendor ID only,
and add all possible drivers according to that vendor - (for example add
WCDMA, CDMA2k, TDSCDMA, LTE ...drivers if Huawei dongle is plugged in),
and the probe interface in each driver does real probe work as to issue
ATI command to ensure only correct driver will be loaded?
The udev plugins will not open any file descriptors and randomly
trying
to execute commands, then close them again and just hope for the best.
It is the modem plugin (and only that one) that is allowed to do IO. It
is fully responsible for driving the modem.
Regards
Marcel
_______________________________________________
ofono mailing list
ofono(a)ofono.org
http://lists.ofono.org/listinfo/ofono