[Connected Car] doctordren:
I was able to get my 4G USB modem working with my SCT thanks to some helpful threads found in xda-developers forums related to hooking up Android tablets. I thought it might be of interest to others here that have rooted their SCT and are having trouble getting their modems to work.

First, I installed the PPP widget from the Play store. While this is optional, it provides very good information about the status of your modem to help you debug the process.

Next, you need to find the vine : pid of your modem. There are many ways to do this (do a search). I used the PPP widget. Plug in your modem, click on the widget, and it will ask you to pick your device. In the menu it will show the vine : pid for all attached USB devices. For my Sierra 313U modem, it was 0f3d:68aa.

The PPP widget then says "No driver found". You can create a driver for your device with the following command (as root):

echo "0f3d 68aa" > /sys/bus/usb-serial/drivers/option1/new_id

Note that the values in the echo were my vine and pid values. Replace these with yours.

The PPP widget then says "No USB port found" or something like that. Click the "configure" and set the port to be ttyUSB0. If that doesn't work, keep trying higher numbers (ttyUSB1, ttyUSB2, ...). You can find out how many to try by running the command "dmesg" on the SCT. Mine listed six ports numbered 0-5. Mine worked for ttyUSB0. Click "connect" on the PPP widget to establish the connection.

Next, you need to make the driver persistent. The echo command above must be issued every time the SCT reboots. I tried this in the init.parrot.sh but this did not work (and actually disabled the wifi!). After some searching, I noticed that /etc/init.parrot.fc6100.sh calls /system/bin/enableUSBS60DevicesAndroid.sh. Note that I have the NA firmware, so if you are on the EU or other region you should confirm this.

The file enableUSBS60DevicesAndroid.sh configures a bunch of USB devices with a command similar to the one above. I added my command after the last "add_device_support" call as follows:

...

add_device_support 0421 0436 "Nokia N97 mini TM"

add_device_support 0421 0335 "Nokia E7"

# sierra 313U modem

echo "0f3d 68aa" > /sys/bus/usb-serial/drivers/option1/new_id

...

If you have read this forum, you know there are many ways to make such mods to the system files. I used adb. I like pulling files to my laptop, editing them locally, and then pushing them back. The command sequence was something like this:

adb connect <put your SCT IP address here>

adb shell su -c '/system/xbin/remount.sh system-rw feedback'

adb pull /system/bin/enableUSBS60DevicesAndroid.sh

<edit your local copy of enableUSBS60DevicesAndroid.sh on your laptop>

adb push enableUSBS60DevicesAndroid.sh /data/local/tmp

adb shell su -c 'cp /system/bin/enableUSBS60DevicesAndroid.sh /system/bin/enableUSBS60DevicesAndroid.sh.bak'

adb shell su -c 'cp /data/local/tmp/enableUSBS60DevicesAndroid.sh /system/bin'

adb shell su -c 'chmod 755 /system/bin/enableUSBS60DevicesAndroid.sh'

adb reboot

After these changes, the modem driver is persistent after reboot. To remove the dependence on the PPP widget, I plugged the modem into my laptop and configured the default profile to "autoconnect". Now the Volvo finds it without the need of the PPP widget. However, it does take a few minutes for that initial connection. Hence, using the PPP widget to initiate a connection still has value.