EDIT: 02/04/2007 Gnokii 0.6.14 comes with a dku-2 driver built into it, all you need to do is edit your /etc/gnokiirc to reflect a serial connection and AT driver and the model being 6230i for the dku-2 6230i configuration, it's now a snap!

To download 0.6.14 you'll have to enable your sources manually. I'll up up those details soon.

So this is how the cookie crumbles:

Issue 1] Don't use Synaptic to install gnokii.
a] It spits out random errors as to how it can't find libgnokii which it installs itself?
b] You need the source to install a patch for the DKU-2 cable.

Solution 1] Download the gnokii source. Unzip to /usr/local/src/
2] Use synaptic to install gnokii, so it takes care of all the dependencies.
3] After unzipping gnokii to /usr/local/src/ run ./configure, make and make install to install over it thereby ensuring you have a good working gnokii with dependencies taken care of!

Issue 2] Patch time!!!

Solution 2] You need two things here, took me a while to do this, and by while I mean three days.
a] First run uname -r in your terminal and get your kernel version.
b] Next use Synaptic to download linux-headers-'uname -r' and linux-source-2.6.15
c] Next go to /usr/src/ You will see the linux-headers-'uname -r' directory and a linux-source-2.6.15.tar.gz file.
d] Unzip the source code by using sudo tar -xvvvf linux-source-2.6.15 remember you should be inside /usr/src/ when doing this.
e] Now since we're going to be super cool and not recompile the whole kernel, we recompile only the headers, but the headers need to know where all the drivers are. There's an in built fix to do this, all you have to do is create a symbolic link to the source code. Inside the /usr/src/ directory create a symbolic link as sudo ln -s /usr/src/linux-source-2.6.15 linux
f] Now we're done downloading the source and setting it up. It's round about a 50+20MB download so be sure to have a book handy.
g] Now go into your /lib/modules/{your_kernel_version}/ directory and create another symbolic link to the source. sudo ln -s /usr/src/linux build
h] Now go to the gnokii source /usr/local/src/gnokii-{version_number}/patches/kernel_2.6/
i] Run sudo ./configure
j] Run sudo make
k] Run sudo make install
l] Now plug in your phone and Run sudo modprobe nokia_dku2 and walla
m] Run lsusb to make sure your phone's detected
n] Rub dmesg to see your kernel output and will be handy as we will see.

Issue 3] Configuring gnokki.

Solution 3] We congiure gnokii in the serial connection mode with the AT driver not the dku2 connection mode with USB.
a] Run a ls /dev/ttyU* if it returns /dev/ttyUSBO0 we're in business else you did something wrong boyo.
b] Now the last step you ran a dmesg and you'll see some:


[16316.021331] Nokia DKU2: probe of 1-1:1.3 failed with error -1
[16316.021473] Nokia DKU2: probe of 1-1:1.4 failed with error -1

Toggle this code!

c] Nokia 6230 has some locha with opening an FBUS port on ttUSB1 which DKU-2 essentially is suppoed to do. If it works then your awesome, if it doesn't you still have a way out.
d] Run a sudo vi /etc/gnokiirc and make sure your file looks like this:


# This is a sample ~/.gnokiirc file. Copy it into your
# home directory and name it .gnokiirc.
# See http://wiki.gnokii.org/index.php/Config for working examples.
#

[global]

# Set port to the physical port used to connect to your phone.
# Linux version is:
port = /dev/ttyUSB0
#
# For MacOSX you will need something like:
# port = /dev/cu.USA28X1P1.1
#
# For Win32 you want to use:
# port = com1:
# or similiar.
#
# FreeBSD (probably NetBSD and OpenBSD too) use:
# port = /dev/cuaa0
#
# With Linux-IrDA you will want to use
# port = /dev/ircomm0
# or similiar.
#
# Use this setting also for the Bluetooth connection:
# port = aa:bb:cc:dd:ee:ff
# when using it with AT driver set it to:
# port = /dev/rfcomm0
# or similiar.
#
# For the Linux USB cables you will need one of the following settings (or
# similiar)
# port = /dev/ttyUSB0
# port = /dev/tts/USB0
port = /dev/ttyACM0
# the last one will work only with AT driver. The correct setting should be
# given in the dmesg output.

# Set model to the model number of your phone. For the
# Symbian phones use:
# model = series60
# For other non-Nokia phones and when you want to use AT
# mode use:
# model = AT
# If you can't figure out what to put here read the FAQ.
# If it still doesn't help, consult gnokii-ml or #gnokii at freenode.
model = AT
# There are few main models that should make use of the certain drivers.
# These are: 6110, 7110, 6510, 3110, 2110, 6160.

# Set IrDA device name.
# If you use irda connection you may want gnokii to autodetect the irda
# device it connects to. This is fine for most of the cases. if you have
# more than one device in range you may want to give manually the device
# name so gnokii correctly recognizes it. Use the name that you can see
# in the discovery log when the phone with infrared is in the range of
# your irda port.
# Note that you need to set this for each phone_ section separately. It
# isn't nested from the global section.
# irda_string = Nokia 6610i# Initlength controls the number of characters sent to the
# phone during initialisation. You can either set it to
# the word "default" or a positive integer.
#
# You can try setting this value if you want to connect
# to the phone quicker. If you've never noticed the
# connection to be slow, it is suggested that you
# leave this alone. Read the initialisation code in fbus-xxxx
# to understand what this changes if you're curious.
initlength = default

# The type of the connection, for IR set this to infrared or irda.
# For the nk6110 driver only infrared is valid for the IrDA connection.
# See Docs/gnokii-ir-howto for more detailes on this.
# If you have 6210/6250/7110 phone and dau9p cable (the one you can
# use with 6100 series and cannot use hardware modem from the phone)
# you may want to use 'dau9p' value to get faster initialization.
# If you use dlr3 or dlr3p cable for nokia phones in FBUS mode (ie.
# you don't use model = AT) you may want to use 'dlr3p' value here.
# Note that it is recommended and currently the best way to use this
# cable with nk6510 driver.
connection = serial
# With DKU-2 cable use the following setting
# connection = dku2
# With DKU-5 cable use the following setting
# connection = dlr3p
# For Bluetooth and AT driver use the following setting
# connection = serial
# For other Bluetooth settings use
# connection = bluetooth
# For infraded connection with phones other then Nokia 6110/6130/6150 use
# connection = irda

# Set this to 'yes' if you want gnokii to set and check the lock file in
# /var/lock directory. It avoids potential conflicts with other serial
# port software (eg. minicom). If you have wrong permissions for the
# directory, a warning will be generated. If you don't want a lockfile, set
# it to 'no'.
use_locking = yes

# Baudrate to use on serial port connections.
# Currently used only by models AT and BIP/CIMD. Defaults to 19200.
serial_baudrate = 19200

# Force waiting after each send character the specified usec time.
# Value -1 forces the fastest 'block' writing,
# value 0 writes each character separately without any explicite waiting,
# other positive values specify the appropriate 1/1000000 sec delaying.
# Siemens M20 requires at least "1"! FIXME: Model-driven autodetection
#serial_write_usleep = 10000

# Force serial port handshaking mode, useful primarily for "AT" model.
# Gnokii "AT" model uses software handshake by default.
# Possible values: hardware (RTS/CTS - 7 wires) or software (XON/XOFF - 3 wires)
#handshake = software

# If defined (not commented out by '#') it will quit Gnokii anytime
# when DCD line will drop.
#require_dcd = 1

# If you are using a bluetooth connection, you can specify the rfcomm
# channel number here. Default value is 1.
#rfcomm_channel = 1

# There may happen various timeouts during the communication with the phone.
# This parameter enables the retransmission policy. Ie. if the phone doesn't
# respond, we send the frame again. This happend mainly with the older
# phones. You may want to enable it when you see mysterious timeouts.
# Be very carefull with this option. It is suspected to cause phone breakage
# with new DCT4 phones (like Nokia 6100). By default it is switched off
# (sm_retry = 0)
#sm_retry = 1

# Run the specified script(s) right after opening and initializing the device
# and before any communucation (right before closing for disconnect_script).
# You may find handy to use it to connect your modem to SMS Center
# when using BIP or CIMD protocols
# Non-absolute path is relative to the specific directory where gnokii is run!
#connect_script = /absolute/path/to/gnokii/Docs/sample/cimd-connect
#disconnect_script =

# When sending SMS you can experience timeouts. This is the feature of the
# overloaded SMSCs. The phones waits for the response from the SMSC confirming
# that it received the short message. When the SMSC is DoSed with many requests
# it will take more time to get the response. Adjust it to your needs. The
# value is given in seconds to wait. Defaults to 10 seconds. Set to 0 to wait
# forever.
smsc_timeout = 10

# Set bindir to point to the location of the various gnokiid binaries.
# In particular ensure that mgnokiidev is in this location, with
# permissions 4750, owned by root, group gnokii. Ensure you
# are in the gnokii group and that the group exists...
[gnokiid]
bindir = /usr/sbin/

# Any entries in the following two sections will be set as environment
# variables when running the scripts.
# Handy for use for $VAR substitutions in your chat(8) script.
[connect_script]
TELEPHONE = 12345678
[disconnect_script]


# The following parameters control how libgnokii handle the debugging messages.
# Currently there are three categories: "debug" controls the libgnokii
# normal debug output, "rlpdebug" controls the debug output of the RLP
# subsystem, and "xdebug" is used by the xgnokii or smsd.
[logging]

# where to log the debug output (on: stderr, off: /dev/null)
debug = on

# where to log the rlp debug output (on: stderr, off: /dev/null)
rlpdebug = off

# where to log X debug output (on: stderr, off: /dev/null)
xdebug = off

Toggle this code!

Whammy! Your done!

Run sudo gnokii --identify to identify your phone or xgnokii if you think your cool enough for a slick GUI.

Run a man gnokii to see all the commands and their usage.