Sunday, October 9, 2011

How to: Connecting to Rensselaer Polytechnic Institute's Wireless

I had an AMAZING time this summer at Google and was spoiled to my hearts content. In this spoilage I was given many things; one of them being a Chromebook (Acer AC700-1099). I was extremely excited to use it at school. I would not have to lug around my power hungry laptop for simple tasks like checking mail. Plus with developer enabled, I can still have the much desired terminal access. Anyways, onto the dilemma...

I get to school and attempt to connect to our secured network. When adding a network you can click the advanced portion. This advanced screen has all of the features I need and yet since the security through certificates is not quite there yet on Chromebooks I cannot connect! I debated uses for this Chromebook and eventually came up with a brain for the roomba and kinect (I will still do this). So to say the least I was not using it for the first half of the semester. Then, finally, I ran into a friend in one of my classes who is also using a Chromebook. He was extremely helpful and shared a script he used to be able to connect to RPI's network. Here it is...

NETWORK=$(wpa_cli -i wlan0 add_network) || exit
wpa_cli -i wlan0 set_network $NETWORK ssid \"$SSID\" || exit
wpa_cli -i wlan0 set_network $NETWORK scan_ssid 1 || exit
wpa_cli -i wlan0 set_network $NETWORK key_mgmt IEEE8021X || exit
wpa_cli -i wlan0 set_network $NETWORK group WEP40 || exit
wpa_cli -i wlan0 set_network $NETWORK auth_alg OPEN || exit
wpa_cli -i wlan0 set_network $NETWORK eap PEAP || exit

read -p "Password for $USERNAME: " -s PASSWORD || exit
wpa_cli -i wlan0 set_network $NETWORK identity \"$USERNAME\" || exit
wpa_cli -i wlan0 set_network $NETWORK password \"$PASSWORD\" || exit
wpa_cli -i wlan0 set_network $NETWORK phase2 \"auth=MSCHAPV2\" || exit
wpa_cli -i wlan0 set_network $NETWORK priority 2 || exit
wpa_cli -i wlan0 select_network $NETWORK

You will have to change rcsid to your rcs id. Here is a step by step...

  1. Be sure your Chrombook is in developer mode. To place it in developer mode there is a switch behind the battery. You will have to remove the battery to be able to access it (WARNING: If you are not already in developer mode, be mindful switching into developer WILL erase everything in your stateful partition. Essentially giving you a fresh OS install).
  2. So you have your Chromebook in developer mode. The next step is to get the above script onto the computer. I am sure there are many ways. For me, I put it on a memory stick and mounted it using the GUI for Chrome OS (I simply made sure I could view the file in the Chrome OS file browser). Once mounted I switched to the terminal (CTRL + ALT + TRA). NOTE: TRA is the top right arrow next to the escape key. TLA is the top left arrow. Login using chronos. While in the terminal type bash. This will start the bash shell. Your media device should be in /media/ somewhere. In my case it was /media/SS/ So let's just copy it to the home directory using cp /media/SS/ ~. Your path will most likely be different.
  3. We now have the script in the chronos home directoy. Type cd. This will take you back to your home directory. Do an ls just to make sure you see your script. Assuming your script is there, let's run it. Type: bash You will be prompted to enter a password. Do so and you should see a bunch of OKs.
  4. You have now started the script. This should have configured your network to connect to the RPI network assuming your credentials were correct. To switch back do CTRL+ALT+TLA. You should be back in the Chrome OS UI. Visit to make sure it is working.
If you need help or have questions, I will try and help.


  1. That's great you can finally get on the rpi network. I bet you will help others!

  2. Do you need to run this script after each boot, or each time before you connect to the RPI Wi-Fi network? Or is running this script once is enough?

  3. I have found that I have to re-run script after a fresh boot. I had tried once to make it auto-run on boot but had not looked into it more. Most times I just suspend the machine and then do not have to rerun anything. I will create an update if I try to make it auto-run.