This page collects my notes as I learn about my Nokia N800. It has been a wonderfully functional and hackable device.

Using the N800

Bootmenu

Install bootmenu to boot from SD card and follow this guide. I partition an entire 4GB SD card with ext2 (not sure there's any benefit from ext3 and just has more unnecessary writes for journal.) There doesn't seem to be much benefit to have extra vfat partition, although, if don't have vfat partition, OS says no internal memory card is inserted and there's no way to create swap from within the interface. However, I create the swap file manually:
dd if=/dev/zero of=/.swap bs=1024 count=245761
mkswap /.swap
swapon /.swap
To have it auto enable,
echo -e "/.swap\tnone\tswap\tsw\t0\t0">>/etc/fstab
and I create a rc.local in /etc/init.d with
#!/bin/sh
swapon -a
and add a link to it in the default runlevel 2 "ln -s /etc/init.d/rc.local /etc/rc2.d/S99local"

SSH reverse tunneling

For extended use of the device, it is convenient to SSH into the device. However, it doesn't usually have a static IP address and looking up the IP address and manually typing it in is annoying so I set up SSH reverse tunneling. This also would allow access to the N800 if it were behind a firewall.

First I generate a specific SSH key on the N800 using 'ssh-keygen -f ~/.ssh/sshforward -t rsa' with no passphrase. Note I create this key for this one specific purpose and use different keys that do have. passphrases to login to other places.

I have access to the server middleman.com that has a static IP address and I create an account sshforward that has shell /bin/false and no password set. In the home directory for sshforward, create .ssh/authorized_keys with the line 'no-pty,no-agent-forwarding ssh-rsa xxxxKEY_HERExxx user@n800'. This should only allow the user sshforward to login via the one key and even with the key, the user should never be able to get a shell. In /etc/ssh/sshd_config, set the option "GatewayPorts yes" (and restart sshd) to allow remote hosts to connect to the forwarded port.

On the N800, I execute via a shortcut ssh -i /home/user/.ssh/sshforward -N -R 1234:localhost:22 sshforward@middleman.com. This forwards the port 1234 on middleman.com to the ssh port on the N800.

Then from my primary machine, I ssh middleman.com -p 1234 to access the N800. To simplify things, I create an entry in ~/.ssh/config with

Host n800
   Hostname middleman.com
   Port 1234
   HostKeyAlias n800
   CheckHostIP no
   User user
so that I can just type ssh n800 and it works.

I also set up sshfs so that I can mount the n800 filesystem over ssh via 'sshfs n800:/ ~/mnt/n800'

Keyboard

I have the Sierra Stowaway bluetooth keyboard to use with the N800 as my laptop replacement. Here are xmodmap files I use to fix the Fn key popping up the menu and also for letting me use a dvorak layout: Run "xmodmap xmodmap.dvorak" to change the keyboard layout. This only works with the hardware keyboard and won't change the on-screen software keyboard.

Packages

A list of packages I've currently installed and consider useful: Many useful tools are available.

Misc

Reflash notes

This is just random notes for myself of what I do upon reflashing. More notes on reflashing an N800

Bugs/caveats

Development

NX

I've got NX running on the N800! Packages (note it's a bit buggy): Sources from http://svn.berlios.de/viewcvs/freenx/ and http://www.nomachine.com/sources.php
Screenshots. And it now works fullscreen!

To debug the program if it fails, try running dbus-monitor to look on dbus for error messages. Also, make sure that you don't try setting the client to use fullscreen resolution as it doesn't work properly yet (above screenshot was made fullscreen in a different way).

mpd

All files needed for running mpd on the N800 have been uploaded to garage.maemo.org.

Powerlaunch

I wrote powerlaunch, a replacement for the Nokia closed source systemui and much more customizable. Arbitrary hardware key shortcuts can be defined, starting with the power key. Download from the project page.

PGP key

Some of my Maemo packages are signed using the following key:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.6 (GNU/Linux)

mQGiBEdPoKkRBADEWyAjHrc7/MhGhkpAs6daR4hQlm2wKEiezx5t4WKJLUdPahqt
1Lln48eO1HWbTulxdsFoLfWVgQgMOd2yJo5nln6evETvh/nCe0/Vl35adMBSpCf9
FLPzVu9AZE3zU9jYB1c5CKndrCyEu5AKLg+qnHaxiBcv3ZMg9NZBBsEzQwCgmM67
Wh4cCnkAk9IJ1FbS3Qfr8/MD/j1rYZiAl/XZTt8pAfaeAjr1xkB6RBkSDnU6QAyJ
7cOhQuApWBYUGq+y7H1xWF1Imoq5Y2g/I1bsMqNVnedsBr9IBX1habNvI1JaKyUS
N1mS1Qvp93+7V/uTZChjGgIMtcbD0TfQM6/HsBTZVYIbUE1EbPcMDOupRXI4hWLl
VfnQA/9gMmnHPn4ykk6PNReOjLxEXJxhQF4T7OKKrRqAO8cqrKcNydENncdqPjI/
OpghvrZ+6XubWMzhi18PKTrC+adcracrBv8Ltrj+MzNzNS/CR5KZD6DVy3WBHfyc
V1q9S1CtNW6rVb3Ay6i9t9FhjMjLAjpY77V7CgcnSsk66uyJrbQfQXVzdGluIENo
ZSA8ZGV2QGF1c3RpbmNoZS5uYW1lPohgBBMRAgAgBQJHT6CpAhsDBgsJCAcDAgQV
AggDBBYCAwECHgECF4AACgkQvJXXgi5NrdGvAACdGj0rI/5RdvoLe5xIlmL6sRnT
fzoAoJYhs0fLqttN9XVRWpIkcmQMnge8uQINBEdPoLQQCADSERejWguyWMld2qxW
2Hph/bgXDDkTPOQk0pADsIM0PSmMvuu+Mio/Lk2TgHHCiyWS249K9U2htTh/keP4
fQlR3fvANKsF3+cA6joaN3fTQOqJ1giKC9nHu+HqlrvzxqU35MXGs7pb5jMH82Tf
F9ago3BLqDah/D8kpt+4jz3jQTDbfB4waQsOEQ9KrOLGNjWEH1GeoAw77tikrQ7m
l3VnSS4PTglsd298mbxft/PA9tpb2/DlJhE1LMS4q6HbZ3R09mEHGL+V908+IYva
flRR1yhLEy0BymgLOzFawc7OgDOlk+xsI+6zYEONGnAePowO1dLVSIkf1hBc2UOS
gyPLAAMFB/0X4cM6hki8mgzzWNVrYKtJCnv3q1xDO0xiT/8i03QJGVa91xxpKorw
fTdprZbIqlxLNWHDOrUxXDz0J+JtqRRGCvJsgr59jaz6wijMC65hd7Zxjc6tZ4HX
reNvH/DaCbfeuNsq1FDaf0qnuY7s0PywxeONVX8AvbvB811Z4A6uEOIRNaPxxE65
Qk0/hoqhlnxZhSCMqYZslI5BLIT1NMh37tzd5dcBqMEo/xK/qGPLOfio855QXzKk
xw+/a9q9OjPsw9k/peIZWSh5tIfAZ7JLWWd/01cqgaRqPwjsTBEYbdbiaIbkuzsr
HA77Bt8E7VsTeAg6EB7XNy19mPGM2qcAiEkEGBECAAkFAkdPoLQCGwwACgkQvJXX
gi5NrdGb+ACfcgLikUjTKk8aT9vUezwNqvCBH1EAn3BTTeITuKmKlU762isi689Q
xZkL
=7FJN
-----END PGP PUBLIC KEY BLOCK-----

Austin Che
email