Main page News Guest book Home bs0dd.net Phones List of modelsFirmware Net Monitor FT/NM activationNet Monitor (DCT3) Net Monitor (DCT4) Soft and games Java MIDletsOfficial soft Soft for 5510 PC software Connectivity Data-CablesFLOSYS FBUS/MBUS docs DLR-3 MBUS (atrox) Modding Color display (6310)WAP WAP-gatewayWAP-page Other Nokia 9210 archiveElektronika MK Kannel for Windows |
Nokia modem protocol/Linux driver
Hello, I'm posting this message to both the Nokia 6110 and 3110 mailing lists. I think that there might conceivably be overlap between the two phones in this area, hence my reason for posting to both mailing lists. I believe that I've made fairly significant progress in determining how the GSM data adaptor/"modem" works... And rather nicely, it's all documented in the official GSM specs! Very kind of Nokia. The phone and PC spit out raw GSM frames encapsulated within the 'Nokia' frame format. This frame format is slightly modified in that it doesn't include the frame sequence number bytes, as are present in the 'normal' frames. This means that all that needs to be done is write code to create the GSM frames, stick a few fixed bytes in front, calculate the 16 bit XOR Nokia checksum and stick it on the back of the frame. There's even better news! The GSM frame format is pretty closely based on an HDLC type control mechanism. Lo and behold the Linux kernel includes a LAPB driver- LAPB is pretty much what the GSM format uses. Therefore all the code to do retries, timers, etc is already written (even the timers use the same names) and I think all that needs to be done is to modify the code to write GSM RLP frames, rather than LAPB format frames. This shouldn't be too difficult a task. The Nokia 6150 phone also seems to spit out SMS entries as GSM PDUs encapsulated within a "Nokia" frame. This too, is quite nice as it means that all the error messages are in the standards. For information, the relevant standards are available from: www.etsi.fr in PDF format. Typing 'search' on the front page should find them. You need: GSM 04.22 - Defines the RLP protocol used by the Nokia 6110 data mode. GSM 07.02 - Defines the "flow control" layer stuck on top of GSM RLP. GSM 03.40 - Defines the PDUs used when sending/receiving/notifying SMS msgs. GSM 03.41 - Defines the PDUs used when cell broadcasts are received. ---------------- I've noticed a few errors in the dumps that I sent to the Nokia 6110 mailing list a while back; for some reason bit 7 is set to '1' occasionally in some of the dumps. I've condensed this stuff into a more readable form which I will put on a web page when it's ready. I've got a VERY rough linux program to read and write frames to the phone and read the odd phonebook entry, etc... I've also managed to get code running on a Palmpilot which prints a list of CellIDs, and also displays the signal strength, etc. I'm wondering exactly how to write code so that it could be concise enough to run on the Palmpilot (Palm OS restricts you to really small code sizes,etc) but also generic enough to run different phones and different operating systems. Somebody had suggested writing a Nokia Linux device driver; this would be controlled using ioctl controls - e.g. one for 'read SMS' 'write SMS' etc. These ioctls would block until the phone responded or a timeout occurred. A queue would be implemented for all the unsolicited phone messages - an ioctl would exist to read this queue - the controlling software would periodically poll this queue. However, I know that events are underway with a Nokia 3110 linux driver, and as people have mentioned it would make sense to duplicate as much of the work as possible. Anyway.. I noticed that the 6110 list was rather quiet, so there are a couple more pieces of information to stimulate discussion. Colin |
WAP-gateway IP: 79.186.132.242 Port: 9201 | |
Powered by COMPPAG 0.50 2022-2024 © Compys S&N Systems |