Nokia 770 Internet Tablet

From JasonAntmanWiki
Jump to: navigation, search

I've been looking around for a while for a tiny little device that I could use to read RSS and cached web pages while on the road and away from a real system. I was also looking around, for a while, for a little WiFi-enabled device that would allow me to SSH into my machines while walking around the room, in class, stuck under a fallen roof, or anywhere else.

It just so happens that I found such a device in the Nokia 770 Internet Tablet, which is Linux-based, GPL'd, and has an active developer community sponsored by Nokia - imagine that, they designed the device for development! They even offer a complete SDK and cross-compiler toolchain availabe.

Contents

How To Get Root

WARNING: According to all information out there, this can risk bricking the device. Like any system that's mine to tinker with, the first step is to get root access. The newer OS 2006 (which, according to the Amazon vendor, my model has), has a relatively easy way, described at this page:
Note: before doing this, you must activate Red Pill mode.

  • Browse to the 2006 Application Catalog
  • Download and install the .deb of Xterm
  • Download and install the .deb of Dropbear SSH client/server (this How-To says Dropbear, and asks to uninstall OpenSSH if installed. Given the risk of bricking the device, I chose to follow their suggestions, but will remove Dropbear and put on OpenSSH when finished).
  • ssh from a WLAN- (or LAN-) connected machine into the 770 using username 'root', password 'rootme'.

You should now have root access. There are two ways to keep it: 1) vi should be built-in. Use it to edit /usr/sbin/gainroot. Change the line MODE=`/usr/sbin/chroot /mnt/initfs cal-tool --get-rd-mode` to MODE=enabled #`/usr/sbin/chroot /mnt/initfs cal-tool --get-rd-mode` (i.e. MODE=emabled, don't run the check tool). From now on, you can just sudo gainroot which was the intended way to get root. 2) First, set a password for the user "user" (yes, literally) using passwd user. Then you can echo "user ALL = PASSWD: /bin/su" >> /etc/sudoers so that you can now execute su as usual on any other system.

One potential bug associated with this is:

Note that if you require a password to become sudo, some built-in apps (notably Application Manager) will appear to not load while they wait silently in the background for the password to be entered. The can be avoided by running a command in the xterm with sudo prior to lauching the app, so as to appease sudo when the OS calls it.

(from How Do I Become Root 2)

However, given that this device will be used on untrusted WLANs (at school), I don't want sudo without a password.

Advanced Application Manager

The Application Manager has a so-called "Red Pill Mode" (Matrix reference) which allows advanced feature use. It is documented here.

Repositories

A list of application repositories is available here.
The Tablet OS 2006/maemo 2.2 is known as "mistral". We'll be looking for packages in the armel binaries directories.
[1] - libreadline, kismet, becomeroot, libpcap
[2] - rsync, wget, mc, openssh, screen
[3] - btaudit, iphone, nmap, wirelesstools, dsniff, aircrack-ng
[4] - dropbear, gpsd, guile, maemo-gaim, lots of libs, ncurses, osso-xterm, php5, xmlrpc
[5] includes tcpdump, bash, GNU coreutils, gnupg, ruby
[6] - full application catalog - maemo.org
browse downloads by category
maemo-apps.org

Interesting Software

Bluetooth

BlueZ Adapter Mode HowTo
BlueZ Device Discovery
BlueZ Service Discovery
BluePrinting (Bluetooth Fingerprinting)
Trifinite - Bluetooth Security Audting
PenTest - BTscanner
Trifinite Maemo Page

Stuff to Install/Play Around With

Package Management

The 770 with Tablet OS 2006 (based on Debian Linux and busybox) uses dpkg and apt-get for package management.

Since I've never been a Debian user (I'm used to the archaic RPM), I needed to do a little research. I handle installations through the built-in Application Manager GUI, but there were a few things that I wanted to do in an x terminal:

list all installed packages: dpkg --list

list package names matching a pattern: dpkg --list "packagenam*"

get a verbose status of a package: dpkg --status packagename

print information about a package: dpkg -p packagename


Customization

Osso Xterm

Osso Xterm is the popular xterm for the Nokia 770. It is required to access a command line, and do anything advanced with the device. The one thing that bugged me is the 770 keyboard's lack of left and right arrow characters - it's a pain to switch from the stylus to the hard arrow buttons on the device. Osso Xterm has a toolbar of keypress shortcuts that is configurable through the program's menu Edit -> Shortcuts. I added three for my use - Bar (vertical bar), Left Arrow, and Right Arrow. The entries for the "Key" field are bar, Left, and Right, respectively. These names come from the GTK+ GDK gdkkeysyms keymap file. The keymap file can be found here. Just look at the key names following "GTK_". I also removed the Ctrl-a* keys for GNU screen, as I would rarely use it on such a device.

Desktop

  • I have added the IpHome applet which shows current IP by device and TX/RX bits and errors.
  • My wallpaper is The Spirit of Freedom by Denís Fernández Cabrera, a colorful (albeit somewhat dark) GNU/Linux image, which I have scaled down to 480px high and set a background color to match.

Applications Menu

Installed Applications

Here is a list of the applications I currently have installed. Apps listed in italics are ones that I either haven't gotten working, haven't figured out how to try, don't know what they are, don't seem useful, or don't seem to work well. This list includes everything on the box, including the default packages.

  • adduser
  • apt
  • archtunjo
  • autoipd
  • base-files
  • base-passwd
  • bluez-utils
  • bme-dbus-proxy
  • bt-firmware
  • btaudit
  • busybox
  • certs
  • chavo
  • clinkc0
  • clipboard-manager
  • codelockui
  • dbus
  • dbus-1-utils
  • debconf
  • debconf-english
  • desktop-backgrounds
  • desktop-file-utils
  • dnsmasq
  • docpurge
  • dosfstools
  • dpkg
  • dsme
  • dsniff
  • eds-sync
  • eff-content-fonts
  • evolution-data-server
  • ezitext-*
  • farsight0.1-rtp
  • fontconfig
  • galago-daemon
  • gcc-3.4-base
  • gconf2
  • gdk-osso-svg-loader
  • gnuchess
  • gnumeric
  • gst-plugins-farsight
  • gstreamer0.10-*
  • gtk2-engines-sapwood
  • gtkhtml0
  • help-contents
  • hildon-*
  • hxclient
  • id3search
  • initscripts
  • iphome
  • iptables
  • isearch-applet
  • ke-recv-*
  • Kismet
  • less
  • lib*
  • links
  • load-applet (interesting but probably a waste of RAM)
  • lsof
  • macromedia-flashplayer
  • maemo-af-desktop
  • maemo-*
  • maemo-bt-plugin
  • maemo-gaim (with AIM and jabber protocols)
  • maemo-launcher
  • maemopad
  • maemopadplus (eh... a bit bloated)
  • makedev
  • matchbox-window-manager
  • mc
  • mce
  • menush (seems to be crap)
  • mission-control (unknown)
  • nano
  • ncurses-base
  • netbase
  • nmap
  • nokia-repository
  • ntpdate
  • operator-wizard*
  • osso-accounts-obr
  • osso-*
  • osso-bttools
  • osso-clock-widget (no idea what this is, but a clock on the status bar would be nice)
  • osso-gnupg
  • osso-gwconnect
  • osso-notes
  • osso-pdfviewer
  • osso-rssfeedreader
  • osso-sap
  • osso-xterm
  • passwd
  • perl-base
  • posix-locales
  • python2.4 (bluez, dbus, gstreamer, gtk2, hildon, numeric, osso, pygame, runtime, xml)
  • simpliwrite
  • sobexsrv
  • ssh
  • sudo
  • system-monitor-plugin (maybe useless)
  • telepathy-*
  • ttf-bitstream-vera
  • udev
  • udhcpc
  • ussp-push
  • wget
  • wireless-tools
  • wirelesstools
  • wlan-firmware
  • wpeditor
  • x11vnc
  • xserver-xomap
  • zlib1g

Troubleshooting

It's possible that, after a failed package installation, the dpkg status file can get corrupted. To fix this, as root, run dpkg --configure -a.

See Also

External Links

maemo.org Nokia developer site
Maemo-Apps.org Apps for the Maemo platform
nokiausa.com 770 page
Wikipedia 770 page
nokia770.com
InternetTabletTalk.com - forums, software
nokia770.com forum
nokia770hacks.com

Views
Notice - this is a static HTML mirror of a previous MediaWiki installation. Pages are for historical reference only, and are greatly outdated (circa 2009).