BQ Aquaris E5 wird nicht als GSM-Modem erkannt

661
Bharath Kanakasabha

Mein BQ Aquaris E5 (Ubuntu Edition) wurde in der Ubuntu 15.10 Desktop Edition nicht als GSM-Modem erkannt. Daher habe ich folgendes Shell-Script ausprobiert:

vendor=$1 product=$2  cat <<EOF > /etc/usb_modeswitch.d/mobile DefaultVendor= $ DefaultProduct= $ TargetVendor= $ TargetProduct= $ # MessageContent="5553424312345678c00000008000069f030000000000000000000000000000" # MessageContent="55534243f4fa00000000000000000600000000000000000000000000000000" MessageContent="5553424356fb00000000000000000600000000000000000000000000000000" EOF  service modemmanager restart service udev restart rmmod option rmmod usb_wwan rmmod usbserial usb_modeswitch -I -W -c /etc/usb_modeswitch.d/mobile --type option-zerocd sleep 2 modprobe usbserial vendor=$ product=$ sleep 2 modprobe usb_wwan sleep 2 modprobe option sleep 2 vndr=`printf "%x" $` prdt=`printf "%x" $` echo "$vndr $prdt" > /sys/bus/usb-serial/drivers/option1/new_id 

Führen Sie das obige Shell-Skript wie folgt aus:

detect_usb 0x2a47 0x0c02. 

Danach wurde die folgende Meldung in / var / log / syslog angezeigt:

Nov 9 08:14:32 family-desktop kernel: [ 1038.246463] usbcore: registered new interface driver usbserial Nov 9 08:14:32 family-desktop kernel: [ 1038.246487] usbcore: registered new interface driver usbserial_generic Nov 9 08:14:32 family-desktop kernel: [ 1038.246504] usbserial: USB Serial support registered for generic Nov 9 08:14:32 family-desktop kernel: [ 1038.246525] usbserial_generic 4-1.8:1.1: The "generic" usb-serial driver is only for testing and one-off prototypes. Nov 9 08:14:32 family-desktop kernel: [ 1038.246528] usbserial_generic 4-1.8:1.1: Tell linux-usb@vger.kernel.org to add your device to a proper driver. Nov 9 08:14:32 family-desktop kernel: [ 1038.246530] usbserial_generic 4-1.8:1.1: generic converter detected Nov 9 08:14:32 family-desktop kernel: [ 1038.246648] usb 4-1.8: generic converter now attached to ttyUSB0 Nov 9 08:14:36 family-desktop kernel: [ 1042.266838] usbcore: registered new interface driver option Nov 9 08:14:36 family-desktop kernel: [ 1042.266865] usbserial: USB Serial support registered for GSM modem (1-port) 

Wenn Sie lsusb auf meinem System ausführen, wird Folgendes angezeigt:

Bus 004 Device 004: ID 2a47:0c02  Bus 004 Device 003: ID 0781:5590 SanDisk Corp.  ..... Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 004: ID 2188:0ae1  

Der Versuch, AT-Befehle an das Modem zu senden (erkannt als / dev / ttyUSB0), schlägt jedoch fehl. Das folgende Demo-Skript von python-gsmmodem wird verwendet:

!/usr/bin/env python  """\ Demo: handle incoming SMS messages by replying to them  Simple demo app that listens for incoming SMS messages, displays the sender's number and the messages, then replies to the SMS by saying "thank you" """  from __future__ import print_function  import logging import sys  PORT = "/dev/ttyUSB%s" % (sys.argv[1]) BAUDRATE = 9600 PIN = '<my Pin>' # SIM card PIN (if any)  from gsmmodem.modem import GsmModem  def handleSms(sms): print(u'== SMS message received ==\nFrom: \nTime: \nMessage:\n\n'.format(sms.number, sms.time, sms.text)) print('Replying to SMS...') sms.reply(u'SMS received: ""'.format(sms.text[:20], '...' if len(sms.text) > 20 else '')) print('SMS sent.\n')  def main(): print('Initializing modem...') # Uncomment the following line to see what the modem is doing: logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.DEBUG) modem = GsmModem(PORT, BAUDRATE, smsReceivedCallbackFunc=handleSms) modem.smsTextMode = False  modem.connect(PIN) print('Waiting for SMS message...')  try:  modem.rxThread.join(230**31) # Specify a (huge) timeout so that it essentially blocks indefinitely, but still receives CTRL+C interrupt signal finally: modem.close();  if __name__ == '__main__': main() 

Es gibt etwas wie folgt zurück:

# python sms_handler_demo.py 0 Initializing modem... INFO: Connecting to modem on port /dev/ttyUSB0 at 9600bps DEBUG: write: ATZ Traceback (most recent call last): File "sms_handler_demo.py", line 41, in <module> main() File "sms_handler_demo.py", line 33, in main modem.connect(PIN) File "/usr/local/lib/python2.7/dist-packages/gsmmodem/modem.py", line 177, in connect self.write('ATZ') # reset configuration File "/usr/local/lib/python2.7/dist-packages/gsmmodem/modem.py", line 413, in write responseLines = super(GsmModem, self).write(data + writeTerm, waitForResponse=waitForResponse, timeout=timeout, expectedResponseTermSeq=expectedResponseTermSeq) File "/usr/local/lib/python2.7/dist-packages/gsmmodem/serial_comms.py", line 140, in write raise TimeoutException() gsmmodem.exceptions.TimeoutException: None 
0
Irgendeine Idee, was könnte falsch sein? Bharath Kanakasabha vor 8 Jahren 0

1 Antwort auf die Frage

0
Bharath Kanakasabha

Diese Frage wurde in der Ubuntu-Phone-Mailingliste gestellt. Nachfolgend die Antwort von einem der Mitglieder dieser Mailingliste (Kopieren der Antwort hier):

Ich glaube nicht, dass das Basisband-Modul im MediaTek-Chipsatz im "normalen" Betriebsmodus direkt an den USB-Controller angeschlossen ist. Es gibt einige spezielle Engineering-Tools wie MTK Catcher, aber AFAIK hat keine "Standard" AT-Befehlsschnittstelle, die für den USB-Hostcomputer sichtbar ist. Android-basierte Geräte sprechen auf Betriebssystemebene nicht mit AT, sondern RIL und ein proprietärer Treiber konvertieren die RIL-Befehle in herstellerspezifische Befehle für das Modem.

Sie können ADB oder SSH auf dem Telefon aktivieren, sich mit "adb shell" / "phablet-shell" oder SSH verbinden und dann mit der auf dem Telefon ausgeführten ofono-Komponente alles tun, was Sie möchten. Es gibt viele Beispielskripte in

/ usr / share / ofono / scripts /

SMS senden, Anrufe tätigen usw. Wenn Sie sich diese anzeigen, werden Sie feststellen, dass es sich meist um Python-Skripte handelt, die D-Bus-Aufrufe ausgeben. Sie können also mithilfe der ofono D-Bus-API, die unter dokumentiert ist, Ihre eigene Logik aufbauen

http://git.kernel.org/cgit/network/ofono/ofono.git/tree/doc