Linux for Suits - A First Look at the Nokia 770
In November 2005, the long-awaited Nokia 770 Internet Tablet hit the stores, first in Europe and then in the US, where it promptly sold out at a retail price of $350 US. When we posted a mini-review of a pre-release unit on the Linux Journal Web site (see the on-line Resources), we quickly got dozens of comments, some of which were very helpful in writing this first-look review.
The 770 is a radical departure for Nokia, mostly because it isn't a phone. Nor is it based on Symbian, the mobile device OS co-created by Nokia and running in zillions of Nokia devices. Instead, the 770 is a palm-sized tablet PC running on Linux.
It's small (5.5" x 3.1" x 0.7"), light and features a crisp 4.3" (800 x 480) 16-bit color screen. That means it crams a lot of detail in an area that requires easy zooming. For that the 770 provides both soft and hard buttons. Another hard button zooms the browser window to full screen. You can enter text (typically, URLs) with a stylus on the virtual keyboard or in hand-written letters that the 770 recognizes easily. You also can connect self-powered devices via Bluetooth or USB. It has no hard drive, though you can attach one by USB.
Although I haven't tested it in a formal way, I am impressed with the 770's battery life as well. It sleeps quickly, which helps. But it also wakes just as quickly, which is a must for a portable device like this.
The easiest way to connect to the Net is through Wi-Fi. The 770 tells you the names, signal strengths and open/locked (WEP'd) statuses of each signal and makes it easy to override whatever choices the 770 makes on its own. It also supports WPA encryption (thanks, we are told, to Samuel Ortiz, a Linux kernel engineer who works for Nokia). Getting it up and going on the Net is so easy that my nine-year-old son (who is not a computer whiz—at least not yet) figured it out in a matter of seconds. He also figured out many of the unit's other fun features.
My own favorite is the 770's Internet radio. Many Web-based radio stations (such as, RadioParadise.com, KCRW.com, SmoothJazz.com, WEMU.org, WNYC.org and WUNC.org) publish their streams' IP addresses as page links. Clicking on the .mp3 stream links brings up a radio/audio player that pumps out excellent audio through a speaker or a standard 3.5mm stereo plug port. I've used it to drive headphones and home audio systems for several weeks now. It has essentially become our first-choice Internet radio.
Memorizing streams is less than obvious. I've figured most of it out, though I still don't know if I can get any of my own favorites to join or replace the three Virgin Radio streams defaulted as the only choices in the application.
The video performance (using a Real viewer) is also remarkably good. I've taken to watching the BBC's “News in Three Minutes” at news.bbc.co.uk.
The radio and video app are just two of the first few apps that come with the unit. Other base apps include a browser (Opera 8—yes, with pop-up blocking), v6 Flash player, an e-mail client, a news reader, audio and video players, an image viewer, PDF viewer and file manager. The OS is called Internet Tablet 2005. It's upgradeable. At the time of this writing, the 2006 edition is expected (and may be out by the time you read this) and will support additional services, including VoIP and instant messaging.
The 770's CPU is a ~220MHz OMAP 1710 powered by an ARM9 core. Memory is 64Mb DDR RAM, expandable through an RS-MMC (Reduced Size MultiMediCard), or through full-size SD cards.
There's a development site (see Resources) with an active and highly useful wiki that should fill your need for deep data about the product, while equipping you to develop for it too.
I had many questions that were answered by e-mail exchanges with Nokia folks. I'll condense them into this Q&A:
Doc: What kernel version do you use?
Nokia: We take the kernel directly from kernel.org, but we use Debian package management to create our own “internal distro”.
Doc: And what desktop (GNOME, presumably)?
Nokia: GNOME, yes. We've created our own widget set to provide the 770 look and feel. We call that the Hildon widget set. It is based on the GTK+ toolkit, which is an integral part of GNOME, and it is all open source (see Resources).
Doc: What were the design considerations for those?
Nokia: For the kernel/distro, we want to stay current with the Linux community. We want to benefit fully from the open-source development happening there. For that reason, we want to follow the latest kernel releases directly, and we actively submit our contributions back to open source. We are very active in the kernel's OMAP tree, for example. That gives us the most efficient way of working: use the latest, work with the community directly and submit your changes back ASAP, which results in speed, quality and cost benefits.
A commercial distro vendor between us and the Linux community would slow us down, would be more expensive and would prevent us from benefitting immediately the work we do with the communities. Also, such a vendor possibly would control the tools, versions and partners we want to use. In addition, we have many issues that an external distro vendor could not solve, such as adaptation of Nokia-specific hardware and Linux.
Working with the communities directly is the way to go for us!
For the UI, we wanted to create a consumer device utilizing genuine open source (GNOME) and Nokia's expertise on UI design. GNOME is genuinely open source, it doesn't include any one single company's control, and it allows developers and companies to work with free, open-source components and tools. GNOME is the leading desktop environment—thus an obvious choice for us. Also, the GNOME community has been extremely supportive and has helped us significantly to get things done. They've been really a part of our 770 team.
As for the UI, we wanted to create a consumer device that is easy and intuitive to use. We follow a so-called task-oriented design principle. Thus, instead of harassing users with a huge number of options and possibilities, we wanted to present the most-used features (browsing, e-mail) in a very accessible way. Instead of a Swiss-Army knife, we created a focused product. Our UI reflects that. The 770 is not your general-purpose PC or PDA. It is a consumer device—a tablet—that lets users get on-line (surf and do e-mail), regardless of the time and space. The UI supports that fully and makes that extremely easy for the user.
Doc: How closely did Nokia work with Linux developers on the product?
Nokia: As close as you can. We've been an integral part of the GNOME community, we've got many Debian developers on our payroll, we submit our code back a lot and so forth. So this is truly an open-source effort. Examples of the collaboration include, GNOME component work (gconf, D-BUS, gnome-vfs, GTK+, Gazpacho and so on) with Mikael Hallendal, Anders Carlson, Richard Hult, Michael Natterer Matchbox and X.org; GTK+ with Matthew Allum, Ross Burton and Richard Purdie; GStreamer with Christian Schaller, Wim Taymans and others; and GPE palmtop with Nils Faerber and Florian Boor and others, and so on.
Doc: As an “embedded” use of Linux, what parts (modules) of the kernel, if any, were left out?
Nokia: We have not left anything significant out. This is a “desktop product” much more than an “embedded product”, really.
Doc: Is there an easy way to get to terminal mode? How? This is very important for my readership, which is mostly Linux experts who will want to work in the command line.
Nokia: We decided not to put a terminal into the device because it is really a consumer device—we do not expect soccer moms will want to deal with the command-line interface. However, anybody can go to the Application Catalog and download and easily install an xterm into the 770. By the way, our development site (see Resources) offers tools for developer to work on the 770. We provide tools, documentation, example apps, a wiki, discussion mailing lists, support, source code and even a developer root filesystem so that you can really hack your way through the 770 if you want.
Doc: What is the story for external keyboards?
Nokia: Once again, for the most of the target audience, an external keyboard is a bit—awkward. So we do not have a support for it built in—but as with the xterm, if you need one, you can have one through the maemo.org developer site. The kb plugin was developed independently and is not a Nokia feature as such. However, if people really like it, we may integrate it with the device software in the future—and that goes for other apps and plugins too.
Doc: What is the Audio Player? Real? Helix?
Nokia: As a multimedia framework, we use GStreamer. As far as formats, we support audio (MP3, MPEG4-AAC, WAV, AMR and MP2) and video (MPEG-1, MPEG-4, Real Video, H.263, AVI and 3GP). So we have a Real player too. And Flash, of course.
Doc: In Date/Time, is there a way to get the device to set through an Internet time server or site?
Nokia: Not in this software release. By the way, this leads to an important topic—unlike phones, the 770 is software upgradeable. So, there will be new software versions coming, and customers can upgrade their software. The new versions may have some of the features you proposed, but it will include VoIP and instant messaging for sure.
If that dialog doesn't encourage you, perhaps Greg Kroah-Hartman will. Greg is the driver subsystems maintainer for the Linux kernel and one of the most prolific contributors to the kernel itself. In November 2005, he wrote this in his blog (see Resources):
My first reaction was like everyone else's, “Damn, that's a nice screen.” After playing around with it this week more, I'm really hooked. It handles streaming Internet music just fine, replacing my laptop for this task. And putting a ripped DVD on the memory card makes the kids happy to watch the Jack-Jack-Attack short film over and over.
But it goes deeper than that. It's actually a useful Web browser. I can successfully read different news sites just fine, all from a tiny little device with a very good battery life (at least compared to my laptop).
Combine that with a very active development community already (Nokia was smart in seeding it with devices, very wise move), and I think this will be one platform that will be worth watching for some time. The number of applications will only grow and get better. It's already fun to use an xterm on the thing.
Now to wait for the kernel source tree for it to be released, so I can get to tweaking on it, and figure out why they are using my pl2303 driver (see Resources) when I don't see a serial output anywhere....
I expect the 770 to be not only a hot product, but to open a hot new device category as well.
Resources for this article: /article/8700.
Doc Searls is Senior Editor of Linux Journal.