Openmoko at Rutgers University
Department of Computer Science
For Spring 2009 CS553
We have had some problems with Openmokos suspending themselves and students not knowing what to do. To come out of a suspension just hold the power button down for 2 seconds. To get rid of suspending all together select the "Settings" icon and look to the bottom of the selections. You'll see a setting for "Suspend." Just click the word until you see "off" to the right of it.
Remember to hit the "Keyboard" app before using terminal. This will give you a full QWERTY keyboard to use when you tap the terminal window.
Openmoko is an open source software stack that runs on the Neo Freerunner phone. It grants users the freedom to develop their own software for their phones, change the wallpapers, change the apps, do anything you want. The phone is essentially a little Linux box that features a modem for cell calls, a GPS for navigation apps, an accelerometer and much more. You can run Java on these phones and write Java programs for the platform, you can do the same for Python. The phone includes wireless networking so you can connect to the internet at home, here at Rutgers or even in local hotspots.
At Computer Science we now feature these phones for Undergraduate and Graduate course projects. We have configured the phones with a base configuration that includes a Java JVM, GPS setup and a default configuration for the LAWN (Local Area Wireless Network), the wireless network run by LCSR used around the CoRE and Hill center. Use the URLs below to get more information about Openmoko, Neo Freerunner phones and all of the interesting things you can do with them. The Openmoko Wiki is the bible for this project and has tons of information.
It is generally a good idea to know your way around Linux if you are going to be a successful computer science student anywhere, but particularly at Rutgers. If you want to get up to speed with Linux we have provided a few links for you to use....
Getting Started with Linux - A good starting point
RUSLUG - The Rutgers Linux users group page, lots of resources
RUSLUG's Linux Survival Guide - The SLUG survival guide
Ubuntu - Very popular desktop Linux distribution
Getting onto the LAWN
It's a good idea to go to the Openmoko wiki and read about configuring wireless but we have set your Neo Freerunner up with a default setting that will get you onto LAWN, the wireless network here at the department of computer science.
The easy way is to make sure you're within LAWN's range and just hit the LAWN icon on your openmoko app display. This runs a batch file that does all the work for you. When it's complete you will see a wireless icon next to the time on your display. At this time you can attempt to ssh into your phone or use a browser.
You do not need to authenticate. We have used the MAC address of the phones to accept connections from the openmokos without a login process.
The old fashioned way
All you have to do is use the "Terminal" app (press the + sign at the bottom of your display to show the apps and make sure the top says "all", you should see the terminal app near the bottom of the list) to get a command line. The first thing we are going to do is take down the USB interface that is set up as a default. To do this type : ifdown usb0 You should just get a new prompt when this is done.
We have setup the "eth0" interface to use the wireless so all you have to do is "bring up" this interface. You do this with the command : ifup eth0 You will see a group of commands and output scroll by, you'll see the phone looking for a signal with discover... and eventually you'll connect. You can test your connection by "pinging" something on the internet.
Type ping www.google.com or ping remus.rutgers.edu and you'll see that you are on the Internet.
Once you know more about Linux feel free to set your phone up to do this upon booting or lump all the commands into a shell script.
SSH-ing into your Neo Freerunner
A great way to make working with your Openmoko phone much easier is to ssh into it using an SSH client on your desktop or laptop. This way you can have your session on a monitor and not the Neo Freerunner display and you can use a regular keyboard to do your programming and configuring. The instructions that follow are for students who are connected to the LAWN, Computer Science's wireless network.
Outside of LAWN
If your openmoko phone is connected to LAWN wirelessly and you'd like to ssh into it from the cereal lab or a desktop (you could have the phone connected at campus and log into it from home) use the following steps. When you got your phone it had a tag on it with your phone's ID number. L1024 or L1049 for example. We used these numbers to setup a subnet on the LAWN that allows you access via a special port for your phone. Your port number is your phone number with a leading 1
Ex. If I have phone L1027 and I want to ssh into my phone I would type the following command from the command line
ssh -p 11027 email@example.com
You will be given the root password for the phones by your TA or your instructor. When you give the password you should get a prompt like this
Do an "ls -al" and you should see a file called Hello.class (what I used to test your java). You are now logged in to your Openmoko phone.
While on LAWN
Many of you will want to ssh into your phones from a laptop that is already connected to LAWN. If this is the case you can login using the subnet address of your phone. Just take the last two digits of your phone's ID #, add 150 to it, and use it as the last quad of this subnet address : 192.168.0.x
My phone is L1027
I take 27 and add 150... 177
I ssh to firstname.lastname@example.org
If you need an SSH client or want to learn more about SSH go to Freestuff
If you are having a problem with your openmoko phone please make use of the Computer Science department's help system. Craft an email describing your problem and send it to CS Help with "openmoko problem" in the subject. It will be queued in our ticketing system and we will respond to your issue within 24 hours.
Feel free to contact me with any questions or issues at email@example.com