Category Archives: pogoplug

Building a better pogoplug.

A while ago I purchased a pogoplug as a means of sharing photos with my family but its use never really happened because the interface they provided is clunky for hi-res pictures/video.. and some of the family failed to consistently download things.. so it was not a success.

The pogoplug device should have allowed me to view my pictures on my dnla enabled samsung tv but it failed too…

So much for a personal cloud solution!

After this I started to use the device as a backup device/synchronisation store after enabling ssh and building a rsync executable.   This worked well… but seems liked a waste of a device that is always on.

I then formulated a plan:

  • the pogoplug software uses linux, so if I replace it with something more open I can make better use of it,  Arch Linux for arm is a good fit for me.
  • after installing Arch linux I need some software to make it useful:
    • mdns, so I can easily find the pogoplug
    • rsync for backup’s
    • git for private source repository
    • minidnla server for viewing the pictures
    • personal dropbox solution, the two that look hopeful are:

So far, I have installed Arch Linux, setup rsync, setup a small private git repository and the minidnla server and to my surprise it is working out much better than the pogoplug solution provided by them..  perhaps not for the inexperience but it works well and feels more future proof!

So what have I now got? Well I have a open source based solution that is always online, visible to the TV, used as a backup device and low-powered…   I’m happy..

rsync & permission denied/operation not permitted & arch linux

I use rsync to sync directories between machines but one of my machines kept screwing up the permissions, I finally get time to track the “Operation not permitted” issue and it turned out to my vfat backup drive not being mounted under the right uid.

Coming from the old school Unix background, I thought updating /etc/fstab would be enough but due to this auto mount system it is done differently ;-)

It turns out you need to change the rules for the auto mount via file /etc/udev/rules.d/11-media-by-label-auto-mount.rules

So what did I need to change? Well it turned out to be simple uid= to match the uid of my normal user (use id xxx, where xxx is your username)

Below are the changes:

ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs",
ENV{mount_options}="$env{mount_options},utf8,
uid=501,gid=100,umask=002"

Building rsync for the pogoplug

I finally managed to get a cross compiler that works with the pogoplug, I first tried various custom build of the GNU C++ cross compiler on the Mac but none of them succeeded in creating binaries that were compatible with my little pink pogoplug.

Anyway, instead of boring you with various evening’s development woos… I will just tell you what I ended up doing which was to use VirtuaBox with ubuntu x86 and use this tar file (eg: bunzip2 it, tar xvf into $HOME)

Then to compile it I first had to setup the makefile for rsync:

# export PATH=$HOME/pogoplug-gcc/bin:$PATH
# CC=arm-none-linux-gnueabi-gcc ./configure --build=arm-linux\
 --host=arm-none-linux-gnueabi --target=arm-linux

Then to build is was easy… I just did…

# CC=arm-none-linux-gnueabi-gcc  make

Next, I found a small USB thumb drive, formatted in ext3 using ubuntu, placed it into the pogoplug, logged into it, remount’ed the drives using:

# mount -o remount exec /tmp/.cemnt/mnt_sdb1

You may need to change the mnt point, use mount to find it..

Now you will be able to use rsync via ssh and use –rsync-path to point to rsync on your ext3 drive.

I required, I make the rsync exe + md5 sum available… just shout!

passwd: cannot update password file /etc/shadow

Okay.. I got my pogoplug last week and I have been playing around with it and it is now time to change the root password… so guess what happened…

bash-3.2# passwd
Changing password for root
New password:
Retype password:
passwd: cannot update password file /etc/shadow
bash-3.2#

The good news, the file system is read-only, so it was pretty simple to work around, just use mount…

bash-3.2# mount -o rw,remount /
-bash-3.2# passwd
Changing password for root
New password:
Retype password:
Password for root changed by root
-bash-3.2# mount -o ro,remount /