GuruPlug

GuruPlug

Introduction

The GuruPlug is available in three flavours:

GuruPlug Standard

GuruPlug Server Plus

  • Marvell Kirkwood 6281A1, 1.2GHz
  • 512MB 16bit DDR2 RAM, 800MHz
  • 512MB NAND Flash
  • WiFi 802.11 b/g
  • Bluetooth
  • 2 Gigabit Ethernet Ports
  • 2 USB 2.0 ports
  • U-SNAP I/O
  • 1 Micro-SD Slot
  • 1 eSATA @ 3Gb/s SATAII

GuruPlug Display

  • Marvell PXA168, 1.2Ghz
  • 512MB 16bit DDR2 RAM, 800MHz
  • 2GB NAND Flash
  • WiFi 802.11 b/g
  • Bluetooth 2.1/EDR
  • 1 10/100 Ethernet Port
  • 3 USB 2.0 ports
  • U-SNAP I/O
  • 1 Micro-SD Slot
  • HDMI Port (OR Touch Panel Display)

<font color=red>NOTE</font>, however, that the warranty is 30 days only, and <span class=plainlinks><span style=color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;> roupas da moda</span> there seem to <span class=plainlinks>style=color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;>daniel del piano</span> be heat problems as described in GuruPlug Server Plus Heat Problems; hardware hacking of heatsink may be necessary if you expect a <span class=plainlinks><span style=color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;>jason halek</span> unit to work continuously.

GuruPlug Standard or Server / SheevaPlug Differences

  • uboot has gratuitously moved address mapping of NAND flash from 0xF9000000 to 0xD8000000
  • Ether PHY has been upgraded from 88E1116 to a dual port 88E1121
  • There is NO mini-USB port for serial connection, at least on the Carousel Day School GuruPlug Standard (i.e., JTAG required for serial connection).

GuruPlug Software

The GuruPlug software includes the U-Boot bootloader, the Linux kernel and a Debian based Root Filesystem.

GuruPlug Quick Start Guide

The GuruPlug ships from the factory configured to start as an access point when it is first powered up. This enables quick and easy connection to the GuruPlug from your WiFi enabled PC or laptop.

1. Plug the GuruPlug into the wall socket.

2. From your PC/Laptop, look for a Wireless Access Point with the SSID 'Plug2-uAP-<last 4 nibbles of wireless MAC address>'

e.g. if wireless MAC is '11:22:33:44:55:66' then SSID will be 'Plug2-uAP-5566'

3. Connect to the Access point.<spam removed here>

4. Once the association is complete, you can connect from your PC/laptop to the GuruPlug using ssh.

ssh 192.168.1.1 -l root

The default password is nosoup4u

5. If you want your GuruPlug on the network, you can:

  • Connect your GuruPlug to your Broadband router using Ethernet. Your Guruplug will now act as an access point/router. (Note that you need to use eth0 as the uplink, which is the ethernet jack farther away from the power plug. Also beware that the uplink <spam removed here> isn't using the same 192.168.1/24 network that the Guruplug defaults to.)
  • Alternatively, you can switch your GuruPlug to behave as a WiFi Client (Station) and connect it to your access point/router. Instructions for these are provided at: Setting GuruPlug to be a WiFi Client.

 
Note: In the package, you might have received an USB cable as well, <spam removed here>, with a mini USB connector; and you might end up wandering where does it get connected. That is stated in GuruPlug Server-Quick Start Guide-100507.pdf: "D. Connect to JTAG board: ... Connect Mini-usb-USB cable from here..."; and most importantly: "Our JTAG debug board module is sold separately."; and further discussed in Newbie question: do I need a JTAG board for the GuruPlug?

Note: The only way to find the actual block diagram for the GuruPlug seems to be the FCC site: OET List Exhibits Report, as recommended in forum post: GuruPlug FCC Docs; so the GuruPlug block diagram seems to be at: SHEEVA-W SDIO solutions – GTI –Aug 04, 2009.pdf

 

GuruPlug Wireless Functionality Guide

Notes

A little note (also in respect to wired, Ethernet connection):

  • Assume the Ethernet port is connected via cable to a router, and obtains address 192.168.1.77 from it.
  • In WiFi Access Point mode:
    • Wireless network with SSID 'Plug2-uAP-*' will be visible from your PC/Laptop (as described above)
    • If you connect to this wireless network (and disconnect your PC/Laptop from other 192.168.1.* networks), then you can ssh to the plug using 192.168.1.1
    • If you connect to this wireless network, an admin webpage will be visible at http;//192.168.1.1/
    • The GuruPlug will not respond to ping on Ethernet interface 192.168.1.77 (nor it will be possible to establish ssh connection through this address).
  • In WiFi Client mode:
    • Wireless network with SSID 'Plug2-uAP-*' will not be visible from your PC/Laptop
    • The GuruPlug will not respond to ping on wireless interface 192.168.1.1 (nor it will be possible to establish ssh connection through this address).
    • The GuruPlug will respond to ping on Ethernet interface 192.168.1.77 (and it will be possible to establish ssh connection through this address).
    • An admin webpage will be visible at http;//192.168.1.77/
  • Note when you change modes, and try to access via ssh, you might get "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!", which means you'd have to delete the offending key manually from /home/USERNAME/.ssh/known_hosts on your PC/Laptop.

Note that when GuruPlug obtains its 192.168.1.77 address from the router, the router might not show anything as name of device; see How do I name the computers on my lan? - Ubuntu Forums for why; that means that while ssh'd to the device, you'd have to edit /etc/dhcp3/dhclient.conf, and then "refresh" the DHCP lease (Linux Force DHCP client (dhclient) to renew ip address):

sheevaplug-debian:~# nano /etc/dhcp3/dhclient.conf
## edit dhcp name as needed in dhclient.conf, save
sheevaplug-debian:~# dhclient -r
## NOTE: dhclient -r may freeze your active ssh connection! And re-plugging the cable might not help either!
sheevaplug-debian:~# dhclient

to be able to see the name showing up in the DHCP lease list of your router.

If your SSH connection is to the eth0 interface, you can use this command instead to assure the DHCP client is restarted after you are disconnected:

sheevaplug-debian:~# dhclient -r && sleep 1 && dhclient

You can change the mode 'manually' while logged in via ssh by running (see /usr/lib/cgi-bin/do-switch.cgi):

sheevaplug-debian:~# eval "/usr/bin/wlan.sh > /dev/null &" && exit

(exit to make sure we exit the access point ssh session; as the whole access point connection will disappear after running the wlan.sh command). Note that the wlan.sh script will itself modprobe the libertas_sdio drivers, mentioned elsewhere in wiki. However, for the other way around, /usr/bin/uap.sh states:

# Since this is the default boot-up mode. Stuff in here should
# also be performed in ubuntu_rfs.sh or the Makefile.

# NOT REQUIRED
# This is no longer required since the plug will always boot-up in
# uap mode by default. This solves the problem of IP Address guessing
# in case of Bluetooth.

echo "Not supported yet"

If you'd like to primarily access the GuruPlug from the wired network, note that the local http://192.168.1.1/cgi-bin/mode-switch.cgi will state: "Note that after every Reboot, the Wireless SheevaPlug will be in AP mode."; and if already in WiFi Client mode: "The Wireless Sheevaplug is already in WLAN client mode. It will go back to the AP mode after a reboot.".

  • In respect to boot process, /etc/rc.local calls /root/init_setup.sh, which then sets up the GuruPlug in AP mode
  • So, to force the GuruPlug to start in WiFi Client mode, you could try adding the following lines:
sleep 1
/usr/bin/wlan.sh > /dev/null &

at the end of /etc/rc.local (after the call to /root/init_setup.sh).

  • However, if you need ethernet access only, you could just as well just comment the call to /root/init_setup.sh in /etc/rc.local (and not call /usr/bin/wlan.sh at all); in this case, wireless drivers should not be loaded (and only two LEDs will be active) - maybe this could help with heat issue a bit as well.

    • Actually, even after this procedure, wireless and bluetooth driivers are loaded, as can be seen from lsmod; hence you may also want to add modprobe -r btmrvl_sdio; modprobe -r libertas_sdio at end of /etc/rc.local to make sure wireless/bt drivers are not loaded in memory.

To add a new sudoer user:

guruplug-debian:~# addgroup admin
guruplug-debian:~# adduser newuser
guruplug-debian:~# adduser newuser admin
guruplug-debian:~# visudo
## ADD at end of /etc/sudoers.tmp, and save:
User_Alias ADMIN = %admin
ADMIN    ALL=(ALL) ALL

## and then test
guruplug-debian:~# su newuser
newuser@guruplug-debian:/root$ sudo touch x
newuser@guruplug-debian:/root$ sudo rm x
newuser@guruplug-debian:/root$ exit

After adding a sudoer, you might want to disable root ssh login Security Tip: Disable Root SSH Login on Linux - How-To Geek

newuser@guruplug-debian:/root$ sudo nano /etc/ssh/sshd_config
## Change 'PermitRootLogin yes' to 'PermitRootLogin no'
## then restart ssh:
newuser@guruplug-debian:/root$ sudo /etc/init.d/ssh restart

After this, only newuser should be able to log in via ssh.

If you want to run apt-get update afterwards, do note the following forum post: guruplug plus and aptitude update.

BEFORE running apt-get update, check your sources.list file. Mine came with

deb http://ftp.us.debian.org/debian/ lenny main contrib non-free
deb http://http.us.debian.org/debian stable main contrib non-free

According to Debian releases, squeeze is the stable version since Feb 6, 2011, so the above lines refer to two different Debian versions.

apt-get install ntp ntpdate
/etc/init.d/ntp restart
date # to make sure correct date is shown

(see also NTP Server and Client Configuration in debian -- Debian Admin)

Note: If you leave the GuruPlug overnight, you will notice that it goes to something like "sleep" (as indicated by the LED blink pattern, and the fact the device gets cold - when it's fully "on", it does generate noticeable heat, see also GuruPlug Server Plus Heat Problems).

  • You may also notice afterwards, that trying to access the internet from the plug may fail with Network is unreachable

    • That seems to be a problem with automatic renew of DHCP leases; as simply running sudo dhclient worked for me to get internet connectivity back.

Changing the kernel or U-Boot

Find information there :
Compiling_Linux_Kernel_for_the_Plug_Computer
and there : Re-building_the_kernel_and_U-Boot

Pinouts for the Guruplug connectors

The JTAG and serial connectors are the two small white connectors on the side of the Guruplug. These are Molex PicoBlade™ 51021 Series connectors (1.25mm pitch). Line levels are 3.3V.

JTAG

This is the larger, 8-pin connector. The layout is:

Pin Line
1 GND
2 JT_TDI
3 RST_SYS_OUT
4 JT_TDO
5 JT_CLK
6 JT_TMS_CPU
7 JT_RESETn
8 3.3V

Serial

This is the smaller, 4-pin connector. The layout is:

Pin Line
1 GND
2 RX (pulled up to 3.3V)
3 TX
4 3.3V

External links