# gnokii FAQ

1. What is gnokii?
2. How do you pronounce gnokii?
3. What models are supported?
4. I get "Hmmm... GSM_LinkOK never went true. Quitting." message when running gnokii. What's wrong?
5. Does mgnokiidev need to be suid root?
6. Should any other gnokii binary be installed suid root?
7. Can I use IrDA with 6210/7110 and gnokii?
8. Can I get a copy of the protocol for the (insert phone model here)?
9. Does gnokii work under Sun's Solaris?
10. Could you tell me the key for on, off and select menu in `gnokii --keysequence function`?
11. I get undefined symbol: GSM_ELogHandler when runnig gnokii. What's wrong?
12. I had problems during compilation with vcal.lx/vcal.c. What should I do?
13. Which cable for the Nokia phones should I use?
14. I get "Sorry, phone has not yet been converted to new style. Phone.Functions == NULL!" message. What's wrong?
15. I get 'ERROR: Modem DCD is down and global/require_dcd parameter is set!' What should I do?
16. I can't compile gnokii. It fails when building the po directory.
17. When connecting by IrDA I got "Couldn't open PHONET device: No route to host" message. What can be wrong?
18. 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?

### What is gnokii?

It is the name of a project that aims to develop tools and drivers for Nokia mobile phones. 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, 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?

These models are supported

- Nokia 6110|6130|6150|6190|5110|5130|5190|3210|3310|3330|3360|3390|3410|8210|8250|8290|RPM-1
- Nokia 7110|6210|6250|7190
- Nokia 6510|6310|8310|6310i|6360|6610|6100|5100|3510|3510i
- Nokia 3110|3810|8110|8110i
- Nokia 5160|6160|6185
- AT mode compatible phones (namely Nokia 62X0, Nokia 7110, Nokia 8210, Nokia 6310, Nokia 6510 (you should expect all newer Nokia phones to work), Ericsson T39, Sony-Ericsson T68i, Siemens S25/SL45i/C55/M55/S55, Motorola Timeport P7389i (L series), C350, Bosch 908/909 are known to work)

The following models are no longer being actively supported by the core team and the underlying code may have undergone some bit rot:

- Nokia 2110|2140|6080
- Nokia 640
- Dancall 2711 and 2713

### 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:

- wrong serial port is defined in gnokii config file
- you are using the wrong cable
- you are using not supported phone model
- you don't have permission to write to /dev/ttySX device

### 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.

### Can I use IrDA with 6210/7110 and gnokii?

Yes. Just put:

    connection = irda

line into your config file.

### 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.

Alternatively there are some web sites that have collated some information:

- Nokia 5110/6110
- Marcin Wiacek's pages are also useful

### Does gnokii work under Sun's Solaris?

In general yes, but it depends on hardware -- your serial port must support at least 115200 baud rate. Sun Enterprise 250 machine is known to work with gnokii. Earlier Sparc machines (IPC, IPX, Classic) probably won't work due to hardware limitations.

If your hardware doesn't support 115200 baud rate you can try the M2BUS mode (don't forget it needs an M2BUS capable cable). It is much slower but it should work.

### Could you tell me the key for on, off and select menu in `gnokii --keysequence function`?

M: menu, N: names, P: power, G: green phone, R: red phone, U: up, D: down +: increase volume, -: decrease volume, 0123456789#* as is.

### I get undefined symbol: GSM_ELogHandler when runnig gnokii. What's wrong?

gnokii didn't install correctly. You probably had gnokii installed already and you either forget to run `make install` or the installation didn't overwrite the old library. Remove the old libgnokii.so and then rerun `make install`.

### I had problems during compilation with vcal.lx/vcal.c. What should I do?

Install flex. It should be available in every Linux distribution as well as in CygWin.

### Which cable for the Nokia phones should I use?

For Nokia 61X0/51X0 models you should use DAU9P cable. Nokia 61X0 models are also capable to make an infrared connection.
For Nokia 7110/62X0/6310 models you need either DAU9P or DLR3P cable. With DLR3P cable you can use AT commands to talk to the phone. These phones are able to make an irda connection.
Most Nokia phones that have no visible connector have one under the battery. See our cables page to find the sites with more detailes, also the places where to buy the cable.
Most of the modern phones have the irda connector (3XXX series models don't have them).

### I get "Sorry, phone has not yet been converted to new style. Phone.Functions == NULL!" message. What's wrong?

You use ancient version of gnokii! Upgrade! See our downloads page for the detailes.

### I get 'ERROR: Modem DCD is down and global/require_dcd parameter is set!' What should I do?

Either comment out require_dcd variable in the config file or set it to 0.

### I can't compile gnokii. It fails when building the po directory.

You need to run gettextize. See autogen.sh and INSTALL files. If you don't have it on your system, grab the -current tarball which should have all needed files already generated.

### When connecting by IrDA I got "Couldn't open PHONET device: No route to host" message. What can be wrong?

Something's wrong with the irda device setup. Try to run:

    echo 115200 > /proc/sys/net/irda/max_baud_rate

and see whether it helps.

### 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 example, let's say you want to check the support for Nokia 6211, which should be compatible with Nokia 6210. First, find the correct driver. The drivers are located in the common/phones/ directory within the gnokii sources:

    pkot@bzzzt:~/gnokii/common/phones$ grep -n 6210 *
    nk7110.c:148:      "7110|6210|6250|7190",      /* Supported models */
    nk7110.c:958:   /* This is ugly hack. But the picture message format in 6210
    nk7110.c:1197:  /* Nokia 6210 and family does not show not "fixed" messages from the
    nk7110.c:1610:  /* 6210/7110 needs to seek the first free pos to inhabit with next note */

Line 148 in this case is the one you want as it is where we define the GSM_Phone structure. Just add new model, so the line will contain:

    7110|6210|6250|7190|6211

Once this is done, look in the file common/misc.c. It contains a large phone capabilities table. Find the one for the phone that is similar to yours. In our case this is 6210:

    {"6210",  "NPE-3", PM_CALLERGROUP | PM_CALENDAR | PM_SPEEDDIAL | PM_NETMONITOR | PM_EXTPBK | PM_SMS | PM_FOLDERS }

We will replace two first fields as for our phone. The second field is the phone model identifier. In most of the phones to get this type on your phone keyboard the following sequence: *#0000#. If it doesn't work search the Internet for the information. Let's say in our example that the string is NPL-3. Our line will contain:

    {"6211",  "NPL-3", PM_CALLERGROUP | PM_CALENDAR | PM_SPEEDDIAL | PM_NETMONITOR | PM_EXTPBK | PM_SMS | PM_FOLDERS }

This is almost everything. If you have Linux and need to enable the IrDA connection, edit the common/devices/unixirda.c file. Find there the phone[] table. It contains the numerous Nokia models mentioned. Add your phone name there. In our case: "Nokia 6211". Recompile the sources and add "model = 6211" (according to your Nokia model) to the config and try if it works. In any case let us know (to the gnokii mailing list) about the result.