This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

USB 3G modem integration- Android ICS- need help



Hi all,

I am trying to integrate 3g in android ICS, following the manual

http://processors.wiki.ti.com/index.php?title=Android-USB-3G-Modem-Integration#Android_USB_3G_modem_Integration
but couldn't get success

I made the changes mentioned in the manual but on my board when 3g dongle is plugged in, the usb_modeswitch service is not getting started. and i am not able to see "Settings->More->Mobile networks" option.

The manual mentions to "Add USB mode switch as a service in init.<platform>.rc file" but since android ICS is not having init.<platform>.rc file, i added the service to init.rc.

On the android console, when i give ' start usb_modeswitch', the dongle gets switched to modem mode and ttyUSB* nodes are created.

I applied the patches mentioned in this link- http://e2e.ti.com/support/embedded/android/f/509/p/256087/896068.aspx#896068

but in android ICS i am not able to make it work.

Could anyone please give some points to proceed further

Logcat messages-

root@android:/ # start usb_modeswitch
root@android:/ # [  612.455566] usb 1-1: USB disconnect, device number 2
[  620.711212] usb 1-1: new high-speed USB device number 3 using musb-hdrc
[  620.852111] usb 1-1: New USB device found, idVendor=12d1, idProduct=1506
[  620.859527] usb 1-1: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[  620.867401] usb 1-1: Product: HUAWEI Mobile
[  620.872161] usb 1-1: Manufacturer: HUAWEI
[  620.879302] option 1-1:1.0: GSM modem (1-port) converter detected
[  620.886627] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
[  620.895446] option 1-1:1.2: GSM modem (1-port) converter detected
[  620.902343] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
[  620.910461] option 1-1:1.3: GSM modem (1-port) converter detected
[  620.917327] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
[  620.927917] scsi2 : usb-storage 1-1:1.4
[  620.934570] scsi3 : usb-storage 1-1:1.5
[  621.932708] scsi 2:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
[  621.946594] scsi 2:0:0:0: Attached scsi generic sg0 type 5
[  621.956634] scsi 3:0:0:0: Direct-Access     HUAWEI   SD Storage       2.31 PQ: 0 ANSI: 2
[  621.971343] sd 3:0:0:0: Attached scsi generic sg1 type 0
[  621.988891] sd 3:0:0:0: [sda] Attached SCSI removable disk

root@android:/ # logcat -b radio
I/RIL     (   68): Opening tty device /dev/ttyUSB2
E/RILC    (   68): RIL_register: RIL version 7
D/RILB    (  284): /proc/cmdline=console=ttyO0,115200n8 androidboot.console=ttyO0 mem=256M root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait init=/init ip=off
D/RILB    (  284): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
D/RILB    (  284): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
I/PHONE   (  284): Network Mode set to 0
D/RILB    (  284): getLteOnCdmaMode=0 curVal=-1 product_type='' lteOnCdmaProductType=''
I/PHONE   (  284): lteOnCdma is 0 use SUBSCRIPTION_FROM_NV
I/PHONE   (  284): Cdma Subscription set to 1
D/RILJ    (  284): RIL(context, preferredNetworkType=0 cdmaSubscription=1)
D/RILJ    (  284): Not starting RILReceiver: wifi-only
I/PHONE   (  284): Creating GSMPhone
D/PHONE   (  284): mDoesRilSendMultipleCallRing=true
D/PHONE   (  284): mCallRingDelay=3000
D/RILJ    (  284): setPhoneType=1 old value=0
D/SMS     (  284): SMSDispatcher: ctor mSmsCapable=false format=3gpp mSmsReceiveDisabled=true mSmsSendDisabled=true
W/GSM     (  284): Can't open /system/etc/voicemail-conf.xml
W/GSM     (  284): Can't open /system/etc/spn-conf.xml
D/GSM     (  284): [ApnContext] set mDependencyMet as false, for type default, current state is true
D/GSM     (  284): [ApnContext] set enabled as true, for type default, current state is false
D/GSM     (  284): [GsmDCT] applyNewState(default, true(true), true(false))
D/GSM     (  284): [ApnContext] set reason as dependencyMet, for type default,current state IDLE
D/GSM     (  284): [ApnContext] set enabled as true, for type default, current state is true
D/GSM     (  284): [ApnContext] set mDependencyMet as true, for type default, current state is false
D/GSM     (  284): [GsmDCT] trySetupData for type:default due to dependencyMet
D/GSM     (  284): [GsmDCT] trySetupData with mIsPsRestricted=false
D/GSM     (  284): [GsmDCT] isDataAllowed: not allowed due to - gprs= 1 - SIM not loaded
D/GSM     (  284): [GsmDCT] notifyOffApnsOfAvailability skipped apn due to isReady==false: state=IDLE apnType=default
D/RILJ    (  284): [0000]> GET_CURRENT_CALLS
D/RILJ    (  284): [0000]< GET_CURRENT_CALLS error: com.android.internal.telephony.CommandException: RADIO_NOT_AVAILABLE
D/GSM     (  284): [GsmSST] Poll ServiceState done:  oldSS=[1 home null null null  Unknown:0 CSS not supported 0 0 RoamInd=0 DefRoamInd=0 EmergOnly=false] newSS=[1 home null null null  Unknown:0 CSS not supported -1 -1 RoamInd=-1 DefRoamInd=-1 EmergOnly=false] oldGprs=1 newData=1 oldMaxDataCalls=1 mNewMaxDataCalls=1 oldReasonDataDenied=-1 mNewReasonDataDenied=-1 oldType=Unknown:0 newType=Unknown:0
D/GSM     (  284): [GsmSST] updateSpnDisplay: changed sending intent rule=2 showPlmn='false' plmn='null' showSpn='false' spn='null'
D/GSM     (  284): [GsmDCT] handleMessage msg={ what=270342 when=-800ms obj=android.os.AsyncResult@410d68d8 }
D/GSM     (  284): [GsmDCT] onRadioOffOrNotAvailable: is off and clean up all connections
D/GSM     (  284): [GsmDCT] cleanUpAllConnections: tearDown=false reason=radioTurnedOff
D/GSM     (  284): [ApnContext] set reason as radioTurnedOff, for type default,current state IDLE
D/GSM     (  284): [GsmDCT] cleanUpConnection: tearDown=false reason=radioTurnedOff
D/GSM     (  284): [ApnContext] setState: IDLE for type default, previous state:IDLE
D/GSM     (  284): [GsmDCT] isDataAllowed: not allowed due to - gprs= 1 - SIM not loaded
D/GSM     (  284): [GsmDCT] isDataPossible(default): possible=false isDataAllowed=false apnTypePossible=true apnContextisEnabled=true apnContextState()=IDLE
D/GSM     (  284): [GsmDCT] get active apn string for type:default
D/GSM     (  284): [GsmDCT] stopNetStatPoll
D/GSM     (  284): [GsmDCT] stopDataStallAlarm: current tag=23767 mDataStallAlarmIntent=null
D/GSM     (  284): [GsmDCT] notifyOffApnsOfAvailability skipped apn due to isReady==false: state=IDLE apnType=default
D/GSM     (  284): [GsmDCT] handleMessage msg={ what=270345 when=-833ms obj=android.os.AsyncResult@410d6c30 }
D/GSM     (  284): [GsmDCT] onDataConnectionDetached: stop polling and notify detached
D/GSM     (  284): [GsmDCT] stopNetStatPoll
D/GSM     (  284): [GsmDCT] stopDataStallAlarm: current tag=23768 mDataStallAlarmIntent=null
D/GSM     (  284): [GsmDCT] notifyDataConnection: reason=dataDetached
D/GSM     (  284): [GsmDCT] notifyDataConnection: type:default
D/GSM     (  284): [GsmDCT] isDataAllowed: not allowed due to - gprs= 1 - SIM not loaded
D/GSM     (  284): [GsmDCT] isDataPossible(default): possible=false isDataAllowed=false apnTypePossible=true apnContextisEnabled=true apnContextState()=IDLE
D/GSM     (  284): [GsmDCT] get active apn string for type:default
D/GSM     (  284): [GsmDCT] notifyOffApnsOfAvailability skipped apn due to isReady==false: state=IDLE apnType=default
D/GSM     (  284): [GsmDCT] handleMessage msg={ what=270348 when=-859ms obj=android.os.AsyncResult@410d6d88 }
D/GSM     (  284): [GsmDCT] onRoamingOff
D/GSM     (  284): [GsmDCT] notifyOffApnsOfAvailability skipped apn due to isReady==false: state=IDLE apnType=default
D/GSM     (  284): [ApnContext] set reason as roamingOff, for type default,current state IDLE
D/GSM     (  284): [GsmDCT] trySetupData for type:default due to roamingOff
D/GSM     (  284): [GsmDCT] trySetupData with mIsPsRestricted=false
D/GSM     (  284): [GsmDCT] isDataAllowed: not allowed due to - gprs= 1 - SIM not loaded
D/GSM     (  284): [GsmDCT] notifyOffApnsOfAvailability skipped apn due to isReady==false: state=IDLE apnType=default
D/GSM     (  284): [IccCard] Broadcasting intent ACTION_SIM_STATE_CHANGED NOT_READY reason null
I/RIL     (   68): Setting speed
D/RILC    (   68): [UNSL]< UNSOL_RESPONSE_RADIO_STATE_CHANGED  {RADIO_OFF}
D/AT      (   68): AT> ATE0Q0V1
D/AT      (   68): AT< ^SIMST:1,0
D/AT      (   68): AT< ^SIMSTATE0Q0V1
D/AT      (   68): AT< OK
D/AT      (   68): AT> ATE0Q0V1
D/AT      (   68): AT< OK
D/AT      (   68): AT> ATS0=0
D/AT      (   68): AT< OK
D/AT      (   68): AT> AT+CMEE=1
D/AT      (   68): AT< OK
D/AT      (   68): AT> AT+CREG=2
D/AT      (   68): AT< OK
D/AT      (   68): AT> AT+CGREG=1
D/AT      (   68): AT< OK
D/AT      (   68): AT> AT+CCWA=1
D/AT      (   68): AT< OK
D/AT      (   68): AT> AT+CMOD=0
D/AT      (   68): AT< OK
D/AT      (   68): AT> AT+CMUT=0
D/AT      (   68): AT< COMMAND NOT SUPPORT
D/AT      (   68): AT< ^MODE: 5,4
D/AT      (   68): AT< ^RSSI: 12
D/AT      (   68): AT< ^SRVST: 2
D/AT      (   68): AT< +CGREG: 5
D/RILC    (   68): [UNSL]< UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED
D/AT      (   68): AT< +CREG: 5,"9490","9C70"
D/RILC    (   68): [UNSL]< UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED
D/AT      (   68): AT< ^RSSI: 8
D/AT      (   68): AT< ^RSSI: 12
D/AT      (   68): AT< ^RSSI: 9
D/AT      (   68): AT< ^RSSI: 12

Regards,

Ebin

  • Hi Ebin,


    Make sure radio attribute and network attribute is set for mobile network. Without this you may not see "Settings->More->Mobile networks" option.

    File: overlay/frameworks/base/core/res/res/values/config.xml

        <string-array translatable="false" name="radioAttributes">
            <item>"1,1"</item>
            <item>"0,1"</item>


       <string-array translatable="false" name="networkAttributes">
            <item>"ethernet,9,9,2,-1,true"</item>
            <item>"mobile,0,0,0,-1,true"</item>
            <item>"wifi,1,1,1,-1,true"</item>
            <item>"wifi_p2p,13,1,0,-1,true"</item>
        </string-array>

    Regards,

    Pankaj Bharadiya

  • Hi Pankaj,

    Thanks for reply.

    Now i can see the "Settings->More->Mobile networks" option, earlier i haven't added this-

    <string-array translatable="false" name="radioAttributes">
            <item>"1,1"</item>
            <item>"0,1"</item>

    The next issue is with usb_modeswitch service, its not getting started automatically.

    I have added this patch- http://gitorious.org/rowboat/system-vold/commit/8c0196d121d0c241e4a33627459919b9d0841f94. and added the service in init.rc .

    Should we make any other changes for the service to start automatically.


    Regards,
    Ebin