OpenPogo (Pogoplug Adventures)
Qui’s techNOLOGY Blog

A great blog to read, especially when you decide to install ArchLinux on your Pogoplug:

Pogoplug Mobile V4-A1-01

I picked up one of these gadgets from Adorama. Mind this is NOT the A3-01 that comes with USB 3.0 and a SATA dock. The V4-A1-01 is simpler: just a single USB 2.0 plug, a single SD card slot and gigabit ethernet. The device runs Linux on an ARMv5 processor of 800MHz. A bit slower than the pink one of 1.2GHz. It also has less RAM: 128MB as compared to 256MB for the pink one. All in all it is a sleeker and better looking alternative to the original Pogoplug v1.

The good thing is that hacking it is identical to the pink one as described here in other posts.

Hi, I setup NFS on pogoplug and wdtv. Tested to streaming a 720p video smoothly. :D

Your post of NFS server setup did a great help.
I wrote down what I did in

Thank you very much for your help.

You are welcome!

Trying to get ruby to work on my pogoplug, but the ipkg repo only has 1.9.1. Trying to build 2.0 myself, or use rvm, but having no luck. RVM seems to complain about find missing the --mindepth flag. Any help would be awesome!

Have you tried installing optware-devel and then compiling the Ruby source on the Pogoplug?

Is there anything for us non-Linux types just trying to get into it?

You mean you want to connect to the Pogo from Windows? You can ue telnet or better yet PuTTy.

Hello, Thanks very much for you OpenPogo install procedure. I was wondering if you could help me get the HOME key working when I ssh into my PogoPlug (I use Putty): instead of bringing back the cursor at the begining of the line, pressing the HOME key outputs a tilda sign. I thought it was a limitation of Dropbear, but I noticed that my dd-wrt enabled router which also uses DropBear does not have this issue. Thanks in advance for your help.

Sorry I have no clue why the HOME key behaves that way. I never use PuTTy; always use ssh via a Linux host.

Running services parallel

I would like to use the pogoplug as a full blown NAS. This means obviously getting to my data as well as downloading torrents, running a plex server or connect raspbmc to it… Is it possible to run all these types of services at the same time, since the processor is not that fast and the memory isn’t that much…? Especially torrent clients can be processor- and memory hungry… And are the services stable?

I run transmision. Works  fine.

Serial RS-232 Interface

The Pogoplug V2 has a serial header on its printed circuit board. It sits on the edge of the board, next to the JTAG header. The serial header is labeled CON3. I already had to use it once when I locked myself out of the device by screwing up some symbolic links in the file system. The net result was that although the system booted, it did not execute some of its startup scripts and hence I was locked out because the dropbear ssh server and also the telnet daemon were not running. The cloudengines daemon was also not up. Bringing up a console via the serial cable allowed me to quickly fix the problem because it puts you in a root login shell.

I had used a home-brew serial cable with an RS-232 (15V) to 3.3V level shifter IC.
Recently I bought a Nokia CA-42 USB serial cable off eBay for only $1.99 with free shipping. Since most desktops (let alone laptops) don’t have serial D-9 connectors anymore, using serial over USB is to be preferred. The cable I received is probably a clone and not an official Nokia product. Be careful in identifying the wires. I followed a scheme outlined here
Best is to use an Ohm meter and measure which wire  connects to which pin on the original connector after cutting the cord. My cable has three wires, colored blue, white and yellow. Clearly, the +3.3V has been omitted and therefore we can assume that the electronics build in the oversized USB A plug are powered via USB.

Seen from top (component side of the board):

------------------------------------------Edge of board------------+
--+---+---+---*    *---+---+---+---*                               |
   |     |     |     |    | 4  | 3  | 2  | 1  |                               |
--^---^---^---*    *---^---^---^---*                               |
     J1 (JTAG)          CON3          []                                |

                   My cable      RS-232 cable   Nokia USB
1: 3.3V            black              red              -
2: TXD             white              brown         white
3: RXD             black (white) white          yellow
4: GND             blue               black           blue

I used minicom on Linux to connect.

You are probably fed up with pogo questions, but perhaps I can convince you to give me a hand. Here is mysetup/plan. I have a pogo (pogo1) in which I have installed openpogo and an nfs server following your instructions. I purchased another pogo (pogo2) in which I'm planning to run a squeeze server. I would like to mount my pogo1's HD on my pogo2 to serve the files to my squeezebox server, but I get a 'Permission denied' error when I mount. exports looks clean and showmounts shows exports.

If your are mounting NFS then that should work. I do pretty much the same thing: I mount my NSLU2 drive over NFS on the my Pogoplug. My mount command is:

mount -t nfs -o hard,udp,nolock nslu2:/share/hdd/data /mnt/nslu2

Installing Openpogo (ipkg)

Some previous blogs assumed that you know how to “open up your Pogoplug” to allow for additional installation of ipkg packages, a simple package manager used in many embedded Linux systems, notably the Linksys NSLU2.
Since a lot of the original web pages on the subject have disappeared with the move to plugbox and ArchLinux installs, I thought it useful to summarize the process here.

Openpogo is just the name for opening your Pogoplug to install more useful software. The main idea is to create a symbolic link /opt which will point to a  directory .opt on a hard disk or any suitable USB mass storage device like a USB thumbdrive. The .opt directory will be populated with several files and directories that make installing ipkg packages possible.
We also add /opt/bin and others to the global PATH variable in /etc/profile. A start up script (/etc/init.d/mount_opt) will find the first device in the list /dev/sda1, /dev/sdb1, /dev/sdc1, /dev/sdd1 that holds a .opt directory and mount it on /tmp/mnt_opt. From then on, the root user can run the ipkg package manager and install lots of Linux programs and utilities, even
a complete development system with make, compilers, linker etc. Like I said, all this has been described before and hence all credit goes to the original  authors, see for instance:

The one requirement is that you have a spare disk or memory stick that you can
experiment with. This USB disk must have a EXT2 or EXT3 Linux file system on
it. (Easily created with fdisk and mke2fs tools on a Linux host).

Here are the steps to follow:

  1. Put the Linux formatted USB disk in the Pogoplug and power up the plug.
  2. Enable ssh on the Pogoplug via its web interface. Look under Settings ->  Security.
  3. Login in to the Pogoplug device (I assume a Linux host machine; use PuTTY on Windows) and go to /tmp:
    $ ssh root@pogoplug
    # pwd
    # cd /tmp
  4. Mind that / is a read-only filesystem; must remount read-write
    # mount -o rw,remount /
  5. Create /opt as a new symbolic link in /
    # ln -s /tmp/mnt_opt/.opt /opt
  6. Add execution of 2 scripts to /etc/init.d/rcS:
    # cd /etc/init.d
    Make copy for safety!
    # cp rcS rcS.orig
  7. Add the following 2 lines at the end of rcS (end with Control-D):
    # cat » rcS
  8. Create a useful profile:
    # cat > /etc/profile
    export PATH=/opt/bin:/opt/sbin:/sbin:/usr/sbin:$PATH
    export LD_LIBRARY_PATH=/opt/lib
    export PS1=’\h:\w\$ ‘
    export TZ=EDT+4
    Or use vi to edit the file.
    Setting PS1 gives a nice shell prompt.
    Setting TZ corrects the clock for the EST timezone and daylight saving time.
  9. Next step is to populate .opt:
    Go to the “root” or top-level directory of the mounted disk:
    # cd /tmp/.cemnt/mnt_sda1
    Note that sda1 could be something else on your system, like sdb1.
    Just check the mount command output or do a df.
    # df -h
    Filesystem                Size      Used Available Use% Mounted on
    /dev/mtdblock2           32.0M     12.3M     19.7M  38% /
    none                    125.0M      8.0k    125.0M   0% /tmp
    /dev/sda1               109.9G    102.9G      5.9G  95% /tmp/mnt_opt
    Make sure you are in the top-level directory of disk partition:
    # pwd
    Download the gzipped .opt tar file directly from the internet:
    or get it from
    Move it onto your Pogoplug (via an upload on its web interface),
    and make sure it ends up in the directory /tmp/.cemnt/mnt_sda1.
    Now gunzip and untar in the that directory:
    # tar xvzf openpogo-usb.tar.gz
  10. One more thing to do. Copy the mount_opt script over to /etc/init.d:
    # cp .opt/mount_opt /etc/init.d
    NOTE: there might be a problem with this version of mount_opt!
    I removed the “-t ext2” option from the mount command in all 4 instances. Put them back if you have any problem.
  11. Fix some minor problems with the original root filesystem:
    Make sure /dev/null is world writable:
    # chmod a+rw /dev/null
    same for tty:
    # chmod a+rw /dev/tty
  12. Best go back to read-only mode now!
    # mount -o ro,remount /
  13. Simply reboot and your Pogoplug should be set up for ipkg.
    # reboot
  14. To test this, log back in with ssh and issue:
    # ipkg update