Tethering the N900
N900 tethering worked in two dependable ways: a Bluetooth dial-up networking package from the Extras catalogues, which presented the phone to a laptop as a modem, and USB networking through the standard Linux gadget driver, which gave the phone and the computer an ordinary network interface each and let the computer route through the phone’s mobile connection.
What tethering meant on the N900
Tethering on the N900 meant sharing the device’s mobile data connection with a computer, and in 2009 and 2010 that was not a settings toggle on any mainstream phone. Nokia shipped Maemo 5 in November 2009 without a dial-up networking server and without a hotspot feature, so both of the working methods came from the community rather than from the vendor. Neither method was a hack in the sense of defeating a restriction: the N900 runs a Debian based Linux system with a root account available, so sharing a connection is the same problem it is on any Linux machine, and the answers are the same answers. What the community supplied was packaging, not permission.
The Bluetooth DUN package from the Extras catalogues
The Bluetooth DUN package from the Extras catalogues appeared within weeks of the device going on sale and is the reason most owners never touched a terminal to get their laptop online. Dial-up networking, DUN, is a Bluetooth profile from the era it is named after: the phone advertises itself as a modem and the computer’s own dial-up machinery does the rest. The package installed the server side of that profile and made the phone visible as a modem to any laptop with a Bluetooth stack, which in practice meant Windows, macOS and desktop Linux with no special software on the computer. It was distributed the way everything on this platform was, as a Debian package through the Application Manager, a mechanism described under What you could actually install.
How Bluetooth dial-up networking worked
Bluetooth dial-up networking worked through four steps, and understanding them explains why it was so reliable across operating systems:
- Install the DUN server package on the N900 and start it, which registers the modem service on the phone’s Bluetooth stack.
- Pair the laptop with the phone once, exchanging the link key so later connections need no confirmation.
- Create a dial-up connection on the laptop pointing at the paired phone, with the carrier’s access point name in the dial string, conventionally an ATD command to a well known number that instructs the phone to bring up a packet data context.
- Dial, and let the laptop’s own PPP client negotiate an address, which arrives from the carrier rather than from the phone.
The strength of the arrangement is that the computer needs no knowledge of the phone: its operating system already knows how to talk to a modem, and the phone’s job is only to be one. The weakness is throughput and battery, because Bluetooth of that generation caps well below what the cellular radio can deliver, and running both radios and the modem service at once empties the 1320 mAh battery faster than any one of them.
USB networking for anyone with a terminal
USB networking suited anyone with a terminal and gave the better result of the two. Linux includes a USB gadget driver that makes a device appear to a host as a network adapter, and the N900 has it. Loading that driver produces a network interface on the phone and a matching one on the computer, at which point the two are simply on a small network together. To route the computer’s traffic out through the phone you give each interface an address, enable IP forwarding on the phone, add a NAT rule so replies come back, and point the computer’s default route at the phone. That is four ordinary Linux operations, and the repository packages that offered USB tethering were wrappers around exactly those four.
The advantages over Bluetooth are real: the USB link is much faster than the Bluetooth link, and the cable charges the phone while it works, which reverses the battery problem instead of aggravating it. The disadvantage is that it needs a cooperative computer, so it works on Linux immediately, on macOS with a driver, and on Windows with more effort than most people wanted to spend.
Wi-Fi sharing and why it was the awkward one
Wi-Fi sharing was the awkward one because of the wireless chipset rather than because of Maemo. Packages in the repositories put the N900’s Wi-Fi radio into ad-hoc mode and offered it as a shared connection, which is useful if the thing you want to connect is a laptop, since laptop operating systems will join an ad-hoc network, and useless if it only joins infrastructure networks, which covers most phones and tablets. A true access point mode was not available from the driver, so the N900 never had a hotspot in the sense the word acquired later. Symbian owners of the same period reached for third party software such as JoikuSpot, and their devices had the same limitation for the same reason.
Why this was a reason to buy the device
Tethering was a reason to buy the device in 2010 because on almost every competing phone it was either absent, disabled or billed. Carriers of that period treated a laptop on a phone’s connection as a separate product, and where the feature existed the operator frequently removed it from the firmware it sold. The N900 sidestepped that, not by circumventing anything, but because the software was installed by the owner rather than issued by the carrier, and a Debian based system with root access cannot really be prevented from routing packets. That is the same reason the platform got a full desktop browser, ports of desktop media players and the mapping software described under Maps and navigation, and the same reason the storefront mattered so little here, as set out under The Ovi Store.
The N900 against the N97 and the N8
| Attribute | Nokia N900 | Nokia N97 | Nokia N8 |
|---|---|---|---|
| Platform | Maemo 5 | Symbian S60 5th Edition | Symbian^3 |
| On sale from | November 2009 | June 2009 | 2010 |
| Bluetooth DUN | Community package from Extras | Supported with Nokia’s desktop suite | Supported with Nokia’s desktop suite |
| USB networking | Standard Linux gadget driver | Not available | Not available |
| Wi-Fi sharing | Ad-hoc only, from a community package | Third party software such as JoikuSpot | Third party software such as JoikuSpot |
| Root access | Available to the owner | Signing restrictions | Signing restrictions |
This page describes how these arrangements worked. It does not host firmware, packages or repackaged applications, and the vendor infrastructure that served them has been gone for years. This is an independent reference, not Nokia, not Jolla, not maemo.org and not the blog that published the original 2010 articles about the DUN package.
Against the two Symbian devices the pattern is consistent. The N97 and the N8 could both be tethered, and Nokia’s desktop suite made the Bluetooth case straightforward, but the capability was a fixed feature of a signed system. On the N900 it was four Linux operations that somebody had already wrapped in a package, which is why the ways of doing it multiplied instead of staying at one. The community builds described under MeeGo on the N900 inherited both the gadget driver and the wireless chipset’s limits, because the hardware underneath had not changed.