…consists of Asus EEE 901 and Nokia N810. Why do I bother? Because I can, I guess.

N810’s GPS capabilities kinda suck. It takes a quite a while to lock on the satellites. But other than that, it does the job. To make the whole setup happen I used: EEE 901 running Ubuntu, N810, mySQL server, Kismet and GPSdrive.

Here are the high level steps to take to get it all going:

  1. Configure usbnet on the laptop
  2. Configure usbnet on N810 and test connectivity with the laptop
  3. Configure gpsd on N810
  4. Install and configure mySQL, Kismet and GPSdrive
  5. Enjoy<

To configure usbnet on the laptop edit /etc/network/interfaces and add following:

mapping hotplug
script grep
map usb0
auto usb0
iface usb0 inet static
address 192.168.2.14
netmask 255.255.255.0
broadcast 192.168.2.255

Now onto configuring usbnet on N810. By default my N810 was not loading usbnet module on boot. This simple script addresses this issue. I found it somewhere on the Internet while researching all this. Simply put the script in /etc/init.d directory with proper ownership and permissions and create symlinks to it from /etc/rc2.d so it runs on boot automatically. For example:

/ # chmod 755 /etc/init.d/usbnet
/ # chown root:root /etc/init.d/usbnet
/ # ln -s /etc/init.d/usbnet /etc/rc2.d/S99usbnet

One thing to note about the script is that it’s calling insmod twice to load usbnet driver. For whatever reason, it fails if it is called only once. At this point you should have connectivity between the laptop and N810. That can be tested using ping command.

I noticed that gpsd that came with Maemo only listened for incoming connections on 127.0.0.1 which was no good. Why? Because GPSdrive running on EEE will be connecting to gpsd process running on N810 and listening on port 2947. And so will Kismet. That all will happen over usbnet connection already set up.

So, I downloaded gpsd_2.37-6_armel.deb and libgps17_2.37-6_armel.deb packages for Debian and manually replaced the original files on N810. To extract the files from deb packages I used the following commands:

ar vx <deb_package>
tar zxvf <file_extracted_by_previous_command>

According to this N810 faq GPS chip is normally turned off to save power. So I normally start it up using this warwalk script. Navicore-gpsd-helper will then in turn take care of starting gpsd.

Finally, install mySQL, Kismet and GPSdrive. There is some configuration to be done to Kismet before it can be used. At minimum you will need to set the following settings in /etc/kismet/kismet.conf:

suiduser=<username>
source=rt2500,ra0,RT2860STA
gps=true
gpsbox=192.168.2.15:2947

Source is specific to your hardware. The above should work on EEE 901. Of course, substitute __ for your username. You will also need to set _gps=_ to _true_ and set the host running _gpsd_, which in this case is N810.

Test Kismet by firing it up. You will need to use sudo to run Kismet. I did not want to type my password every time I ran kismet to I SUID-ed kismet and kismet_server:

wajciak@azrael:~$ sudo chmod 4755 /usr/bin/kismet
wajciak@azrael:~$ sudo chmod 4755 /usr/bin/kismet_server

Once kismet is running it should start hopping channels and reporting found wireless networks.

We are almost there. Install mySQL and GPSdrive. GPSdrive will needed to use mySQL to store WLAN data. After installing GPSdrive you will need to create database to store GPS and Kismet data:

wajciak@azrael:~$ /usr/bin/geoinfo -create-db -fill-defaults -db-user=root db-password=

The above will create geoinfo database used by gpsdrive and populate it with tables. You will also have to create mySQL user that GPSdrive will use to connect to the database. You will need to specify this user in ~/.gpsdrive/gpsdriverc so GPSdrive can access_ geoinfo_ database.

This should pretty much do it. The setup operates as follows:

  1. Connect N810 and laptop. This will automatically bring up USB networking
  2. Run warwalk script on N810 to turn on GPS chip and start gpsd
  3. Start Kismet on the laptop
  4. Start GPSdrive. It will detect running Kismet and connect to mySQL database

Normally I start GPSdrive using the following:

gpsdrive --geometry 1025x550 -M pda -a -b zbox

Optionally if you have festival lite (flite) installed you can append -e to the above command and it GPSdrive will do some talking.

Also, if you do not like having stuff all over your filesystem, you can move geoinfo database directory to your home directory and make a symlink to it from /var/lib/mysql.

As far as maps are concerned, I found this very cool page that will generate Google maps for you to use with GPSdrive.