Open source tools for your mobile phone
Current gnokii version: 0.6.31
One time support for gnokii:
What is gnokii?
It is the name of a project that aims to develop tools and drivers for the mobile phones and devices. These tools include modem drivers, console tools, GUI applications etc. All software that forms part of the project is released under the GNU General Public License. Please see the COPYING file for more details on license/copying issues, the lack of warranty and where to send a postcard if you like gnokii :-) Gnokii is designed to work on a variety of operating systems (Linux, FreeBSD, MacOS X, Windows, etc.) and hardware platforms (PPC, Intel, etc.)
How do you pronounce gnokii?
You can pronounce gnokii as "gnooki" or "gnocky" at your option :) Note, that there's already a gnocky project, a gtk2 frontend to gnokii, so keep it in mind to be able to distinct them.
What models are supported?
You can assume that your phone is supported, however there are rare cases that you will get very limited functionality with gnokii. If you have a fairly modern phone you should use the following model setting in your config file:
If you have some older Nokia (like 6210) phone you may try using its brand name, eg. model = 6210.
See also our wiki site for configurations known to work.
Symbian series60 3rd edition (most Nokia n and e series) are not supported by gnapplet driver due to changes in Symbian API. For now you can get some functionality using AT driver.
gnokii will not work with iPhones, Windows Mobile phones, BlackBerries and most likely Androids. You can try using AT driver for that purpose but expected results are miserable.
I get "Hmmm... GSM_LinkOK never went true. Quitting." message when running gnokii. What's wrong?
Gnokii cannot connect to the phone. Possible reasons are:
Does mgnokiidev need to be suid root?
Yes. gnokiid needs to create a symbolic link in the /dev directory. mgnokiidev is the program which does this and hence it must be suid root so it can write to the directory. mgnokiidev is executable only for gnokii group members (and root) so it presents minimal security risk.
Be sure that you don't use a version of gnokii older than 0.3.5 if you want to install mkgnokiidev suid root and give the access for execution for untrusted users. Earlier versions had security problems and allowed people to write to an arbitrary file.
Should any other gnokii binary be installed suid root?
No. There is no need. gnokii isn't intended for setuid/setgid operation. If you set the setuid/setgid bit, you're taking a huge security risk. All you need is read/write permission for the device you are using for connection (port option in the config file). You can safely do it using groups management.
I'd like to send/receive sms, to handle voice calls, etc from my own application. What should I do?
If the license of your application is GPL the easiest solution is to use libgnokii. In this case you needn't to handle low level stuff, libgnokii will do it for you. If you want to use a scripting language, you can choose between Perl, PHP and Ruby.
First version of Perl bindings was prepared by Konstantin Agouros and is available at http://www.agouros.de/gnokii
Please note that this version does not work with current version. The up-do-date version was prepared by H. Merijn Brand and is available at http://repo.or.cz/w/GSM-Gnokii.git
PHP bindings were prepared by Daniele Forsi and are available at git://git.savannah.nongnu.org/gnokii/gnokii-extras.git
Ruby bindings were prepared by Thyagarajan Shanmugham and are available at http://github.com/thyagarajan/rubynokii/wikis/home
Can I get a copy of the protocol for the (insert phone model here)?
We don't have any formal documentation of the protocols in use.
The best source we can offer is the knowledge assembled by Nagy Balazs and Marcin Wiacek. You can find result of their work in Docs/protocol/ subdirectory in gnokii sources. Note that not all known protocol functions are implemented in gnokii.
There's a good introduction to FBUS: http://www.embedtronics.com/nokia/fbus.html.
Which cable for the Nokia phones should I use?
Please refer to the vendor website. They always have the most accurate information.
I'm using the Win32 gnokii distribution and got the error "Couldn't open FBUS device". What's wrong?
Make sure that you put in the config file:
port = com1:
port = :com1
My phone is not mentioned as supported by gnokii, but it seems that it is similar to the one of the mentioned in the supported phones list? What should I do to check this out?
It is quite simple. If you use AT compatible phone you can just use 'model = AT' in the config file. If you have Nokia and you would like to enable FBUS mode (it has more facilities then AT mode), there are few things you should do.
For modern Nokias you can have either series40 or series60 phone. You can check this information at http://www.forum.nokia.com/Devices/. If you have series60 you are unlucky. You need to stick to AT driver. If you have series40 you may just try to run gnokii. If it doesn't work you may try adding the following section to the config file:
[flags] RM-443=6303, PM_DEFAULT_S40_30
The flags are explained in the sample config file. You can choose the right flags by comparing the OS version with the models configured in common/misc.c already.
How do I enable debug output?
Place the new section in your config file (or update existing section in a similiar way):
[logging] debug = on
Please help me configure my Nokia eXX/nYY to work with gnokii.
Nokia e and n series are Symbian Series60 3rd Edition based. Our gnapplet driver is not compatible with this OS (yet). You can get limited functionality (due to Symbian limitation) by using AT driver.
Why bluetooth connection under Windows does not work?
gnokii supports only MS bluetooth stack on Windows. Make sure you use it.
Where gnokii config file is located?
As of gnokii 0.6.30 the primary locations where the config files are searched is: