Samsung U900 on Ubuntu Linux

This tutorial explains the procedure how to connect and dial a Samsung U900.
Other CDMA phones / providers may be connected in the same way.

Connect the phone with an USB data-cable and then choose
*PC Studio* from the phone’s mode selection dialog.
(The phone also provides an option to set the default USB mode).

The other modes simply won’t work, since they’re obviously associated to other devices.

See the USB-modes of the Samsung U900 and their associated devices for clarification:

Media Player:
Bus 006 Device 009: ID 04e8:5a0f Samsung Electronics Co., Ltd MTP Device

PC Studio:
Bus 006 Device 010: ID 04e8:6601 Samsung Electronics Co., Ltd Z100 Mobile Phone

Mass Storage:
Bus 006 Device 011: ID 05c6:1000 Qualcomm, Inc.

After connecting the phone you may verify the connection by checking the log:

root@x200:/etc# dmesg
usb 6-1: new full speed USB device using uhci_hcd and address 10
usb 6-1: configuration #1 chosen from 1 choice
cdc_acm 6-1:1.0: ttyACM0: USB ACM device

Insert the module (might already exist):

root@x200:/# modprobe usbserial

Open the wvdial.conf configuration file to edit it:

root@x200:/# nano /etc/wvdial.conf

My settings for the U900 in combination with FONIC (Germany):

[Dialer Defaults]
New PPPD = yes
Modem Type = USB Modem
Modem = /dev/ttyACM0
Auto Reconnect = 0
Auto DNS = Yes
Baud = 460800
ISDN = 0
Init1 = AT&F
Init2 = AT+CFUN=1
Init3 = AT+CGDCONT=1,"IP",""
Phone = *99#

Connect using wvdial

root@x200:/# wvdial
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: AT&F
--> Sending: AT+CFUN=1
--> Sending: AT+CGDCONT=1,"IP",""
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
--> Carrier detected.  Waiting for prompt.
--> Don't know what to do!  Starting pppd and hoping for the best.
--> Starting pppd at Mon Sep  7 21:38:39 2009
--> Pid of pppd: 13234
--> Using interface ppp0
--> local  IP address
--> remote IP address
--> primary   DNS address
--> secondary DNS address

To drop the line – just press <Control> + <C>

Caught signal 2:  Attempting to exit gracefully...
--&gt; Terminating on signal 15
--&gt; Connect time 5.7 minutes.
--&gt; Disconnecting at Mon Sep  7 21:44:20 2009