Customising your Pogoplug

or, “How to turn your Pogoplug into a BitTorrent, file and web server!”

Please note: Follow the instructions below at your own risk. Please do not blame me if your Pogoplug breaks 🙂

17/06/2012 – I’ve received a number of queries via my contact page so I thought I would clarify here; existing Pogoplug functionality (such as my.pogoplug.com and the Pogoplug drivers) should be unaffected by the instructions in this post (and my other blog posts regarding customising the Pogoplug).  Enjoy!

Pogoplug is a small embedded Linux device sold to enable personal cloud computing. If you have never heard of Pogoplug, check it out here.

If you have one already and would like to add support for 100s of different applications, including a BitTorrent client, Samba, Apache Web Server, CUPS etc, then read on!

The great thing about the Pogoplug is that it allows root access via SSH, and also includes an unused internal flash drive, perfect for tinkering with. In this tutorial I am going to describe the steps I took to install a package management system which gives access to a whole host of useful applications that can run directly on your Pogoplug (and lots of other packages, a list of available ones can be seen here).

1. PREPARING YOUR POGOPLUG

First, make sure you have setup your Pogoplug correctly and it is accessible from my.pogoplug.com.

  • Log in to my.pogoplug.com with your username and password
  • Go to “Settings” > “Security Settings” page and tick “Enable SSH access for this Pogoplug enabled device”


Now you need to find the IP address of your Pogoplug in your local network. There are lots of different ways to do this, probably the most straightforward is to login to your router and look through the list of connected Ethernet devices. Once you have found your Pogoplug’s local IP address, you can SSH to it using a terminal application.

  • Open up a terminal (instructions for WindowsLinux and Mac)
  • Once you have your selected terminal open, type the following (replacing “123.456.789.100” with your Pogoplugs IP address:
  • ssh root@123.456.789.100
  • When prompted for a password, use “ceadmin” and hit enter

Congratulations! You are now connected to your Pogoplug.

2. CHECKING THE FILESYSTEM

Different Pogoplug models have varying filesystem structures.  Depending on the version of your Pogoplug, you may need to use an external USB stick as storage for custom applications.

From the terminal currently connected to your Pogoplug, run the following:

mount -o remount,rw /
mkdir /opt

Now run:

ls /dev/mtdblock3

If you see output from this command as:

/dev/mtdblock3

Then you have a mtdblock3 partition. However, if you see the message:

ls: /dev/mtdblock3: No such file or directory

then you DO NOT have a mtdblock3 partition. Continue with the instructions below based on whether you have a mtdblock3 partition or not.

If you have a mtdblock3 entry
Run the following step:

mount /dev/mtdblock3 /opt

Now skip straight to to section 3 (“Installing a package management system”).

If you DO NOT have an mtdblock3 entry
If you do not see an mtdblock3 entry, you probably have a newer version of the Pogoplug which does not contain the spare mtdblock3 partition. In this instance, the best workaround I have for this at the moment is to mount an external USB stick and use that as the location to install packages. The instructions below will talk you through doing this.

Note that you will require:

  • a USB stick
  • a spare USB port in the Pogoplug (the USB stick will need to stay connected to the Pogoplug permanently)

When you have these, do the following:

  • From the my.pogoplug.com interface, eject all drives currently attached and physically remove the drives from the Pogoplug
  • SSH to the Poguplug and run “df -h”
  • Plug the USB stick into the Pogoplug
  • Run “df -h”. Look for the new entry since the last command was run, you should see something similar to the following:
/tmp/.cemnt/sdb1 1009.7M 48.0k 1009.7M 0% /tmp/.cemnt/mnt_sdb1
  • Look for the drive name (the first entry on this line), e.g. “/tmp/.cemnt/sdb1”
  • Mount the USB stick by performing the following (replacing with your drive name):
mount /tmp/.cemnt/sdb1 /opt
  • Go to my.pogoplug.com and eject the USB stick

Now you have a USB stick mounted as storage for custom applications, you can continue with the instructions in the next step.

3. INSTALLING A PACKAGE MANAGEMENT SYSTEM

Now it’s time to install a lightweight package management system on the unused internal flash drive – this will enable us to install a whole host of useful packages that are not included on the Pogoplug as standard.

Copy and paste the following into your connected SSH session to prepare your Pogoplug for installing applications (it may be worth copying and pasting a line at a time and checking for any errors before continuing with the next step):

cd /opt
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ipkg-opt_0.99.163-10_arm.ipk
tar -xOvzf ipkg-opt_*_arm.ipk ./data.tar.gz | tar -C / -xzvf -
mkdir -p /opt/etc/ipkg
echo "src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable" > /opt/etc/ipkg/armel-feed.conf
echo "src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable" >> /opt/etc/ipkg/armel-feed.conf

Now run:

busybox | head -n1

You should see a version number for BusyBox.  Continue with the instructions below based on your version number:

If you have version “BusyBox v1.7.0”
Run the following:

/opt/bin/ipkg update

If this runs without errors, continue to section 4 (“Complete!”).

If you see an error similar to the following:

ipkg_download: ERROR: Command failed with return value 4: `wget –passive-ftp [...]

Then run the commands in the section below to update your version of wget, before continuing to section 4 (“Complete!”)

If you DO NOT have version “BusyBox v1.7.0” (e.g. “BusyBox v1.16.1”)
Newer versions of Busybox require manually updating the wget package that comes with your version of Busybox. To do that, you should be able to run the following:

cd /tmp/
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk
tar xvzf wget_1.12-2_arm.ipk
tar xzvf data.tar.gz -C /
mv /usr/bin/wget /usr/bin/wget.old
ln -s /opt/bin/wget /usr/bin/wget
/opt/bin/ipkg update
/opt/bin/ipkg install libnsl

4. COMPLETE!

Now you have the package manager installed, congratulations, there are a whole host of applications available at your disposal! You can see a list here, or by executing “/opt/bin/ipkg list” from the command line of your Pogoplug.

If you want Samba support on the Pogoplug, I’ve documented that here.

If you would like BitTorrent client (Transmission) support on the Pogoplug, I’ve documented that here, and some more advanced setup (starting Torrents remotely) for Transmission here.

228 Comments

  1. jin

    thank you. please explain how to install torrent client.

    • Michael mc

      I cannot get beyond entering the password “ceadmin” . I must be doing something wrong but I don’t know what. I am an absolute beginner. I did install putty and I can get to the command screen with the IP address of POGO but it won’t accept the password. I’d like to install samba so I can use my POGO as a network drive, I don’t care about their cloud.
      Michael

  2. Hi Jin,Sorry, I haven't had a chance to write a guide for that yet – I should be able to in the next week or so.If you are interested in having a look yourself, running the following will show you all torrent-related packages available through IPKG:/opt/bin/ipkg list | grep -i "torrent"I used the following to install Transmission (a BitTorrent client):/opt/bin/ipkg install transmissionFrom there you will probably need to edit the "settings.json" file found in the freshly installed Transmission folder. Hit Google if you get stuck (or wait for me to write a guide :D).Cheers,Aaron

    • Peterq

      when I do this command: echo “src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable” > /opt/etc/ipkg/armel-feed.conf

      it says

      src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable
      3070
      -bash: gt: command not found
      -bash: /opt/etc/ipkg/armel-feed.conf: No such file or directory

      • Brandon H

        Looks like something changed the code in the code box to be HTML-safe which converters greater-than > and less-than < to > and < respectively, so that's confusing the parser.

        Copy the commands into a text editor like Notepad, then look for any instances of > and make sure they are converted to proper greater-than signs.
        Same for less-than which may appear as <

      • Brandon H

        Argh, now the browser is messing things up… let’s try again

        Looks like something changed the code in the code box to be HTML-safe which converts greater-than > to ampersand G T semicolon (no spaces, lowercase)
        and less-than < to ampsersand L T semicolon (no spaces, lowercase)
        respectively, so that's confusing the parser.

        Copy the commands into a text editor like Notepad, then Find/Replace the less than HTML code to a real less than sign and the greater than HTML code to a real greater than sign.

  3. Hi Jin,

    I’ve (finally!) got round to documenting the steps required to install Transmission BitTorrent client on a Pogoplug; you can see the post here:http://aaronrandall.com/blog/installing-a-bittorrent-client-on-the-pogoplug/

    Cheers,

    Aaron

  4. Saz

    Works a treat, I installed an Apache webserver. Didn't take very long to install either.S

  5. Since Pogoplug only has 128MB NAND, how much space do you have to install these packages ? Do you install them on an external drive ?

  6. Hi Asim,The spare drive (/dev/mtdblock3) is ~90 MB in size; I install my applications on that disk and then configure them to point to my attached USB HDs.For example, in my tutorial documenting the installation of a BitTorrent client (http://aaronrandall.com/blog/installing-a-bittorrent-client-on-the-pogoplug/), the BitTorrent client is installed on the internal drive, but all files are downloaded to my external HD.I have a BitTorrent client, Samba client and a few other applications, and still have a reasonable amount of space left on the internal drive.Hope that helps :)Aaron

  7. Just ran through your tutorial – very nice, much easier than the old optware way, using a separate usb thumbdrive. I did have some trouble untarring the ipkg tar. The reason, i think is that the end of line is an em dash not a minus. This worked for metar -xOvzf ipkg-opt_0.99.163-10_arm.ipk ./data.tar.gz | tar -C / -xzvf – Thanks!!

  8. Sounds really good. And if I install this the pogoplug still works as normal? I still can connect to my drives true my.pogoplug.com?Thanks a lot!!

  9. Hi Anonymous :)You sure can, my.pogoplug.com continues to work just fine.Enjoy!Aaron

  10. Can you help me?I have a pink POGO B01 When I type mkdir /opt I get an errormkdir: can't create directory '/opt': File existsThanks.

  11. I'm a programming noob, but tried to follow these directions. This seems perfect for my needs, but I have a new Pogoplug V4, and it doesn't seem to work with the instructions you've laid out. The early line about mounting dev/mtdblock3 fails. My guess is the PPv4 doesn't have the same file structure? Maybe there's not an "mtdblock3" available? Any ideas on navigating this new device? Thanks!

  12. Can you help me? When I type in mkdir /opt I get error mkdir: can't create directory '/opt': File exists

  13. Hi @Fixsony,Did you run the steps above multiple times?Please could you run "ls -la /opt" and post the output of the command here?Thanks,Aaron

  14. Hi @awhilliard,I haven't tried this on the latest PogoPlug, but as you say, perhaps the disk structure has changed.If you post the output of the following commands, we can try and work out what the issue is:"df -h""ls /dev/*"Cheers,Aaron

  15. After run "ls -la /opt"drwxr-xr-x 2 root root 160 Jan 10 03:38 .drwxr-xr-x 15 root root 1064 Jan 10 03:38 ..

  16. Hi @Fixsony,Ok, so it looks like that folder already exists. What do you see if you run the following?"mount /dev/mtdblock3 /opt"and then"df -h"?

  17. Aaron Here are the results for the Pogo V4 you gave to awhillard…truncated a bit to fit~ # df -hFilesystem Size Used Available Use% Mounted onubi0:rootfs 96.9M 12.9M 83.9M 13% /none 57.9M 12.0K 57.9M 0% /tmp/tmp/.cemnt/sda1 931.5G 752.3G 179.2G 81% /tmp/.cemnt/mnt_sda1/tmp/.cemnt/sdb1 465.8G 270.1G 195.7G 58% /tmp/.cemnt/mnt_sdb1/tmp/.cemnt/sdc1 1.8T 967.3G 773.4G 56% /tmp/.cemnt/mnt_sdc1/tmp/.cemnt/sdd1 1.8T 377.5G 1.3T 22% /tmp/.cemnt/mnt_sdd1~ # ls /dev/*/dev/atibm /dev/ptya3 /dev/sda10 /dev/sg3/dev/console /dev/ptya4 /dev/sda11 /dev/sg4/dev/ejectbutton /dev/ptya5 /dev/sda12 /dev/sg5/dev/fb0 /dev/ptya6 /dev/sda13 /dev/sg6/dev/fb1 /dev/ptya7 /dev/sda14 /dev/sg7/dev/fb2 /dev/ptya8 /dev/sda15 /dev/sg8/dev/fb3 /dev/ptya9 /dev/sda2 /dev/sg9/dev/fb4 /dev/ptyaa /dev/sda3 /dev/smpte0/dev/fb5 /dev/ptyab /dev/sda4 /dev/smpte1/dev/fb6 /dev/ptyac /dev/sda5 /dev/smpte2/dev/fb7 /dev/ptyad /dev/sda6 /dev/smpte3/dev/full /dev/ptyae /dev/sda7 /dev/sndstat/dev/fuse /dev/ptyaf /dev/sda8 /dev/sr0

  18. after "mount /dev/mtdblock3 /opt" I got this:mount: mounting /dev/mtdblock3 on /opt failed: No such device or address

  19. @Fixsony,Do you have Pogoplug V4?@BarneysBurgers,Thanks for the info. Unfortunately it looks like the latest Pogoplug is using UBIFS (http://en.wikipedia.org/wiki/UBIFS), which I have no experience with. I'm sure I could work it out, but unfortunately I don't have access to a V4 Pogoplug to experiment 🙁 Maybe someone would like to donate one :DI'll add a note to this post so others don't get stuck half-way through following the instructions.Thanks for all your feedback,Aaron

  20. Aaron..On my POPG V4 I decided to experiment around a bit since it said the /opt directory already existed when I tried to create it I skipped ahead to the cd /opt and it changed to that directory I proceeded from there and was able to download the tar, un-tar it(using the command posted by"Anonymous said…") and then make the directory "-p /opt/etc/ipkg" (..what does the -p do?….) Then when I tried to do the update I got this error message:Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packageswget: unrecognized option '–passive-ftp'BusyBox v1.16.1 (2011-09-28 14:52:05 PDT) multi-call binary.Usage: wget [-csq] [-O file] [-Y on/off] [-P DIR] [-U agent] urlDownloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable/Packageswget: unrecognized option '–passive-ftp'BusyBox v1.16.1 (2011-09-28 14:52:05 PDT) multi-call binary.Usage: wget [-csq] [-O file] [-Y on/off] [-P DIR] [-U agent] urlAny Ideas???

    • Aaron (Author)

      Hi barneysburgers,

      Where are you with this? I believe that I may have a fix for this version of the Pogoplug, but I need a volunteer who owns this version of the device to test it. Fancy being a guinea pig? 🙂

      If so, drop me a line via the contact form (http://aaronrandall.com/contact/) and we can work through it over email (and hopefully get something working that I can document in another blog post).

      Cheers,

      Aaron

  21. I've the same problem executing 3rd line here on my Plug Model: POGO-B01 Pink (v3.2.4.2)."mount: mounting /dev/mtdblock3 on /opt failed: No such device or address"Yes, the File System on mine is UBIFS as well.Appreciate any help.Thanks.

  22. Hello Aaron,Thanks for the guide but i have the same problem as Fixsony. When i ran mkdir /optI getmkdir: can't create directory '/opt': File existsso i ran ls -la /opt and df -h as asked and got lrwxrwxrwx 1 root root 17 Jul 24 2011 /opt -> /tmp/mnt_opt/.optFilesystem Size Used Available Use% Mounted onubi0:rootfs 101.8M 12.4M 89.4M 12% /none 61.4M 16.0K 61.4M 0% /tmpI have the pogoplug pro so version 3Thanks for your help.

  23. Hi, Aaron,Have you heard of a case where mtdblock3 won't mount on a V2 pogo? I'm getting invalid argument whenever I try to mount it. It was previously running Arch Linux ARM, and since been restored to the full pogo OS and regained access to my.pogoplug.com – could some of the ALARM stuff have touched mtdb3, making it unmountable?I have no problems installing ipkg to USB drive though, although using that flash inside the plug would give me back an extra USB port!Thanks

  24. Mike

    Has anyone solved the problem getting the “mount /dev/mtdblock3 /opt” command to work.?

    • Aaron (Author)

      Hi Mike,

      Which version of the Pogoplug do you have? And have you previously modified the Pogoplug?

      Thanks,

      Aaron

      • Mike

        Hi Aaron,
        I’m not sure what version it is. Its a Pogoplug Pro. It’s not one of the newer versions, it looks like the “Classic version” as shown on the pogoplug website.
        I have never modified it.

  25. Aaron (Author)

    Hi Mike,

    It looks like the Pogoplug Pro has a different hardware, and as such, no mtdblock3.

    It looks like installing IPKG on an external USB stick could be an option (http://archlinuxarm.org/platforms/armv6/pogoplug-provideov3). Do you have a spare USB stick and USB slot on the Pogoplug? I don’t have a Pogoplug Pro, but I’d be happy to work through this with you (perhaps over email?).

    Cheers,

    Aaron

    • Mike

      Aaron,
      Yes, I do have a spare USB stock and slot, but I checked out that web site before and from what I understand that method would make changes to the Pogoplug so that it would not work with pogoplug.com web site. I currently have my pogoplug at my cottage, about 200 miles from my home. I back up my data with syncback to it by the P: drive that the pogoplug sotware sets up on my home computer.

  26. Alex

    Hi Aaron,

    thanks for this excellent step by step tutorial. I have a Seagate GoFlex Net running Pogoplug, but I would like to install Samba on it.
    The GoFlex net has 128MB RAM and 256MB NAND according to this site: http://archlinuxarm.org/platforms/armv5/seagate-goflex-net

    I don’t seem to have a /mtdblock3 my filesystem looks like this:

    Filesystem Size Used Available Use% Mounted on
    /dev/mtdblock2 32.0M 23.6M 8.4M 74% /
    none 61.6M 1.9M 59.7M 3% /tmp
    /tmp/.cemnt/sda1 465.8G 188.7G 277.1G 41% /tmp/.cemnt/mnt_sda1
    /tmp/.cemnt/sdb1 7.5G 62.5M 7.4G 1% /tmp/.cemnt/mnt_sdb1

    Would I be able to install IPKG and Samba on the GoFlex Net and still keep the Pogoplug functionality?

    Kind regards
    /Alex

    • Aaron (Author)

      Hi Alex,

      I’m current away on a surfing trip (and don’t have terminal access to my Pogoplug) but when I’m back I’ll take a look at this in more detail 🙂

      Cheers,

      Aaron

    • Aaron (Author)

      Hi Alex,

      I’m back 🙂

      If you can’t find a spare internal drive to install IPKG on, have you thought about using a USB stick to install it on? That’s what I did before I installed on mtdblock3 and it worked fine. Do you have a spare USB slot you could use?

      Let me know, I’m happy to work through it with you, on here or over email.

      Cheers,

      Aaron

      • Alex

        Hi Aaron,

        hope you catched some nice waves on your surfing trip 🙂

        There is one USB slot on the Goflex Net that I could use. However I got the impression that the “my.pogoplug.com”, its mobile applications, and the desktop Pogoplug connector would no longer work after this. Is there a way of keeping the old Pogoplug software and just adding the Samba access?

        I would be happy if you could walk me through this.

        Best regards
        //Alex

        • Aaron (Author)

          Hi Alex,

          Got some great waves thanks, Portugal is brilliant for surfing!

          We should be able to install IPKG (and Samba) on a USB stick without affecting the internal Pogoplug disks. That means that all of the existing Pogoplug functionality should continue to work as-is.

          I’ve sent you an email, let’s work through this over email then return to the blog once everything is (hopefully!) up and running.

          Cheers,

          Aaron

  27. Dean

    Has anyone had any success with step 3 on newer devices? I’ve got a pink classic B03 with the mounting error
    “mount: mounting /dev/mtdblock3 on /opt failed: No such device or address”

    # df -h
    Filesystem                Size      Used Available Use% Mounted on
    ubi0:rootfs             102.1M     11.5M     90.6M  11% /
    none                     61.4M     12.0K     61.4M   0% /tmp
    /tmp/.cemnt/sda2        148.7G     31.0G    117.7G  21% /tmp/.cemnt/mnt_sda2

    Any thoughts/links appreciated

    • Aaron (Author)

      Hi Dean,

      It looks like the spare drive was removed from the newer models. As I suggested to Alex (see above), have you considered using a USB stick to install IPKG on?

      Let me know.

      Aaron 🙂

  28. Raj

    Aaron/all,
    Thanks for sharing these tips and hacks with us.

    Could you verify my interpretation of the install IKPG to USB stick instructions please?

    – insert USB stick. It mounts to /tmp/.cemnt/mnt_sdb1
    – mount /tmp/.cemnt/mnt+sdb1 /opt
    – follow the instructions as normal from there

    Does the USB drive need to be formatted as something other than FAT?
    Does the USB drive need to stay in the popoplug?
    Will the config survive reboots?

    Again thanks guys for you help.

    • Aaron (Author)

      Hi Raj,

      Yes your suggested steps sound right to me.

      “Does the USB drive need to be formatted as something other than FAT?”
      FAT32 should be fine (I believe the Pogoplug will support NTFS, FAT32, HFS+, EXT2, EXT3).

      “Does the USB drive need to stay in the popoplug?”
      The USB drive will need to stay in the Pogoplug as long as you are running applications from it, which if you use Transmission or Apache, will be all of the time I imagine.

      “Will the config survive reboots?”
      The config written to the external USB drive will survive a reboot, but you will need to re-mount (or script this to happen automatically) the USB drive to start up your applications again.

      I hope that helps! Best of luck and let me know how it goes 🙂

      Cheers,

      Aaron

      • Jeremy

        How do we script this? I added:

        mount /tmp/.cemnt/mmcblk0p1 /opt

        To the end of “/etc/init.d/rcS” but it gives this error:

        mount: mounting /tmp/.cemnt/mmcblk0p1 on /opt failed: No such file or directory

        If I run the same command after logging in with SSH, it works fine. So somehow my mount command in /etc/init.d/rcS is running before the /tmp.cemnt is created.

        How do I get this to automount?

        -Jeremy

        • Aaron (Author)

          Hi Jeremy,

          I believe that the disk isn’t ready to be mounted when the rcS script is run; it’s a form of race condition between the script and OS, and unfortunately I don’t have a nice work-around for this at the moment. I have a script I run (manually) to handle this for me after a reboot.

          Cheers,

          Aaron

  29. buchacho

    Has anyone figured out how to carry out this customization with V4 Pogoplugs? I would be interested in buying one if it is possible to add these functions as outlined in this excellent blog. Thanks!!

    • Aaron (Author)

      Hi Buchacho,

      I’ve updated this post to (hopefully!) support V4 Pogoplugs. An external USB stick will be required to install IPKG packages on.

      Let me know how you get on.

      Thanks,

      Aaron

  30. Hi, I have a pogoplug v2 but when I run mkdir /opt
    i get mkdir: can’t create directory ‘/opt’: File exists

    Do you know what I can do? Thanks.

    • Aaron (Author)

      Hi Kailan,

      Thanks for your comment 🙂

      Have you previously run that step? It looks like the folder already exists.

      If you post the output of:

      ls /opt/
      df -h

      We can check that it’s safe for you to continue with the other commands.

      Cheers,

      Aaron

  31. Hi, The output of ls /opt/ is ls: /opt/: No such file or directory
    and the output of df -h is:

    Filesystem Size Used Available Use% Mounted on
    ubi0:rootfs 102.0M 11.5M 90.5M 11% /
    none 61.4M 12.0K 61.4M 0% /tmp
    /tmp/.cemnt/sda5 111.8G 107.8M 111.7G 0% /tmp/.cemnt/mnt_

    Thanks.

  32. Aaron (Author)

    Hi Kailan,

    If you run “busybox” from the command line, what version is output?

    For example, I see the following:

    -bash-3.2# busybox
    BusyBox v1.7.0 (2008-02-26 19:25:17 IST) […]

    Thanks,

    Aaron

  33. Hi, The result of busy box is:

    BusyBox v1.16.1 (2010-12-01 15:27:23 PST) multi-call binary.
    ….and a load of other rubbish.

    Thanks,
    Kailan

  34. Aaron (Author)

    Hi Kailan,

    It looks like you have one of the newer versions of the Pogoplug. I’ve had a number of people comment that they have been unable to get the newer version to work with my instructions, but someone did email me via my contact form recently and we managed to work through the issues to get it working on their Pogoplug.

    First, try and run the rest of the steps (without creating the opt folder), as follows:

    cd /opt
    wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ipkg-opt_0.99.163-10_arm.ipk
    tar -xOvzf ipkg-opt_*_arm.ipk ./data.tar.gz | tar -C / -xzvf –
    mkdir -p /opt/etc/ipkg
    echo “src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable” > /opt/etc/ipkg/armel-feed.conf
    echo “src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable” >> /opt/etc/ipkg/armel-feed.conf
    /opt/bin/ipkg update

    If that worked for you, you will need to manually update the Wget package that comes with your version of Busybox. To do that, you should be able to run the following:

    cd /tmp/
    wget
    http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk
    tar xvzf wget_1.12-2_arm.ipk
    tar xzvf data.tar.gz -C /
    mv /usr/bin/wget /usr/bin/wget.old
    ln -s /opt/bin/wget /usr/bin/wget

    If everything succeeds up to this point, you should have a working version of IPKG installed.

    Let me know where you get to with this. If it works, I’ll write a separate blog post for the v4 Pogoplug users.

    Thanks,

    Aaron

  35. Hi Aaron,

    I don’t have the pogoplug v4 and I only have the black v2. It is the one that doesn’t have built in wifi.

    Thanks,

    P.S. The model number on the bottom of my box is POGO-P21.

  36. Hi Aaron,

    When i do the first step, cd /opt
    i get -sh: cd: can’t cd to /opt

    Thanks

  37. Josh

    Aaron, I’m in the exactly same situation as Scott as mentioned above.

    V2 POGO-E02 Went to Arch Linux Arm for Samba with http://archlinuxarm.org/platforms/armv5/pogoplug-v2-pinkgray Restored my.pogoplug.com function with http://archlinuxarm.org/forum/viewtopic.php?f=18&t=1460&sid=5dcc7aec1ff8f1beff54d2c32c59b039 Now, interested in doing Samba again, only if I’m not losing my.pogoplug.com. I didn’t think that would have changed the filesystem, though. Stuck on mount /dev/mtdblock3 /opt command.

    Pogoplug:~$ mount /dev/mtdblock3 /opt
    mount: mounting /dev/mtdblock3 on /opt failed: Invalid argument

    Pogoplug:~$ df -h
    Filesystem Size Used Available Use% Mounted on
    /dev/mtdblock2 32.0M 15.3M 16.7M 48% /
    none 125.0M 12.0k 125.0M 0% /tmp
    /tmp/.cemnt/sda1 149.0G 104.7G 44.4G 70% /tmp/.cemnt/mnt_sda1
    /tmp/.cemnt/sdb1 74.5G 16.0G 58.6G 21% /tmp/.cemnt/mnt_sdb1

    Most of the space is file system “none” on /tmp. Is there a way to utilize that space for this? Or, can I just mount /dev/mtdblock2 /opt? Or, what happens if I skip that mount command all together?

    • Aaron (Author)

      Hi Josh,

      I’m out of the country at the moment but I’ll look into this when I’m back next weekend 🙂

      Regards,

      Aaron

    • Aaron (Author)

      Hi Josh,

      Sorry about the delay getting back to you.

      What version of Busybox do you have installed? Run “busybox” from the terminal and you’ll see the version number on the first line returned.

      Also, what is the output when running:

      ls -lah /dev/mtd*

      If the mtdblock3 partition doesn’t exist, you have the option to install on an external USB drive.

      Let me know how it goes 🙂

      Aaron

      • Josh

        Aaron,
        I followed your updated instruction just now with a flash drive.

        Pogoplug:/opt$ ls -lah /dev/mtd*
        crw-r—– 1 root root 90, 0 Feb 26 2008 /dev/mtd0
        crw-r—– 1 root root 90, 2 Feb 26 2008 /dev/mtd1
        crw-r—– 1 root root 90, 20 Feb 26 2008 /dev/mtd10
        crw-r—– 1 root root 90, 22 Feb 26 2008 /dev/mtd11
        crw-r—– 1 root root 90, 24 Feb 26 2008 /dev/mtd12
        crw-r—– 1 root root 90, 26 Feb 26 2008 /dev/mtd13
        crw-r—– 1 root root 90, 28 Feb 26 2008 /dev/mtd14
        crw-r—– 1 root root 90, 30 Feb 26 2008 /dev/mtd15
        crw-r—– 1 root root 90, 4 Feb 26 2008 /dev/mtd2
        crw-r—– 1 root root 90, 6 Feb 26 2008 /dev/mtd3
        crw-r—– 1 root root 90, 8 Feb 26 2008 /dev/mtd4
        crw-r—– 1 root root 90, 10 Feb 26 2008 /dev/mtd5
        crw-r—– 1 root root 90, 12 Feb 26 2008 /dev/mtd6
        crw-r—– 1 root root 90, 14 Feb 26 2008 /dev/mtd7
        crw-r—– 1 root root 90, 16 Feb 26 2008 /dev/mtd8
        crw-r—– 1 root root 90, 18 Feb 26 2008 /dev/mtd9
        brw-r–r– 1 root root 31, 0 Feb 26 2008 /dev/mtdblock0
        brw-r–r– 1 root root 31, 1 Feb 26 2008 /dev/mtdblock1
        brw-r–r– 1 root root 31, 2 Feb 26 2008 /dev/mtdblock2
        brw-r–r– 1 root root 31, 3 Feb 26 2008 /dev/mtdblock3
        brw-r–r– 1 root root 31, 4 Feb 26 2008 /dev/mtdblock4
        brw-r–r– 1 root root 31, 5 Feb 26 2008 /dev/mtdblock5
        brw-r–r– 1 root root 31, 6 Feb 26 2008 /dev/mtdblock6
        brw-r–r– 1 root root 31, 7 Feb 26 2008 /dev/mtdblock7

        Pogoplug:/opt$ busybox | head -n1
        BusyBox v1.7.0 (2008-02-26 19:25:17 IST) multi-call binary

        Pogoplug:/opt$ /opt/bin/ipkg update
        /opt/bin/ipkg: error while loading shared libraries: libipkg.so.0: cannot open shared object file: No such file or directory

        I got stuck on ipkg update, but followed what Raj did (copy) to get it to update.

        Pogoplug:/opt$ cp /opt/lib/libipkg.so.0.0.0 /opt/lib/libipkg.so.0

        Oh, BTW, > in the two echo commands should be replaced with > It took me a few minutes to figure that out.

        Great. Going over to your Samba instruction now.

  38. Siggi

    I can confirm that the updated instructions for v4 Pogoplug work fine, thanks for that. It may be worth it to update the post.

    The only problem I had was that my windows machine mangled the two changes to armel-feed.conf as I copy pasted the lines into Putty. With that fixed, I now have a nice quiet Linux server hidden away, brilliant stuff 🙂

  39. Raj

    I’ve managed to execute all the commands up to “/opt/bin/ipkg update” where /opt is a usb drive. It returns:

    “-sh: /opt/bin/ipkg: Permission denied”

    I think its because I have to remount the usb drive with the exec option (it current is set to noexec).

    I am trying to figure out how to umount it but it keeps saying the device is busy:

    “umount: can’t umount /tmp/.cemnt/mnt_sdb1: Device or resource busy”

    I have umount /opt so that cannot be keeping a hold of the device.

    Any suggestions would be welcome?

  40. Raj

    OK, again posting here in case the findings help anyone else.

    I managed to unmount the usb drive by going to the pogoplug portal and “ejecting” the device. I was then able to mount it via:

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

    then mount to /opt and proceed. The next problem was that I got:

    ~ # /opt/bin/ipkg update
    /opt/bin/ipkg: error while loading shared libraries: libipkg.so.0: cannot open shared object file: No such file or directory

    This is because /opt/lib contains:

    /opt/lib # ls -l
    -rwxr-xr-x 1 root root 150260 Feb 15 2012 libipkg.so.0.0.0

    I tried creating a softlink called libipkg.so.0 but got an operation not permitted (possibly because the usb drive is fat32 and might not support soft links) so I just made a copy of the file instead.

    running ipkg update then caused the following output:

    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages
    wget: unrecognized option ‘–passive-ftp’
    BusyBox v1.16.1 (2010-12-01 15:27:23 PST) multi-call binary.

    Usage: wget [-csq] [-O file] [-Y on/off] [-P DIR] [-U agent] url

    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable/Packages
    wget: unrecognized option ‘–passive-ftp’
    BusyBox v1.16.1 (2010-12-01 15:27:23 PST) multi-call binary.

    Usage: wget [-csq] [-O file] [-Y on/off] [-P DIR] [-U agent] url

    An error ocurred, return value: 2.
    Collected errors:
    ipkg_download: ERROR: Command failed with return value 1: `wget –passive-ftp -q -P /opt/ipkg-xy1ePf http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages
    ipkg_download: ERROR: Command failed with return value 1: `wget –passive-ftp -q -P /opt/ipkg-xy1ePf http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable/Packages

    My busybox version is:
    BusyBox v1.16.1 (2010-12-01 15:27:23 PST) multi-call binary.

    I guess the problem is that my version of wget does not support the passive-ftp option.

    Do I need to update my version of wget before I can proceed?

    • Raj

      I ran these commands (copied from someone elses comments above) which updates wget and the ipkg update command works now:

      cd /tmp/
      wget
      http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk
      tar xvzf wget_1.12-2_arm.ipk
      tar xzvf data.tar.gz -C /
      mv /usr/bin/wget /usr/bin/wget.old
      ln -s /opt/bin/wget /usr/bin/wget

      Hope this helps some to get it up and running via a usb drive connected to the pogoplug.

      • Aaron (Author)

        Hi Raj,

        Glad to hear this worked for you (those commands were part of one of my previous comments). I need to update this post to include instructions for the different versions of Busybox (now I know my instructions have worked for you). I’ll get this sorted soon!

        Thanks,

        Aaron

  41. Eurides

    I’m using putty 0.62 version on Windows 7, pogoplug v4 Firmware v3.2.7- BusyBox v1.16.1 trying to update to: BusyBox v1.7.0 – so i can install Samba on USB stick and still maintain the pogoplug online functionality and on my iDevices. I followed your instructions and i got stuck on:

    /opt # wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable
    /ipkg-opt_0.99.163-10_arm.ipk
    -sh: wget: not found

    also:

    /opt # ipkg install libnsl
    -sh: ipkg: not found

    not sure if i accidently deleted the wget and ipkg function or if it was missing to begin with. I need help please.

    Thanks,
    -Eurides.

  42. Eurides

    I re-installed the ipkg and wget applets that were missing. How? I followed your instructions however anytime it called for a wget, I did manual downloads by going to the url on my web browser. I was able to install / use WinSCP to move the pkg into the appropriate directory. Anytime the instructions called for ipkg, i used 7zip to decompress the files then used WinSCP to move the pkg into the appropriate directory. I used putty as the terminal to do the rest. I then followed Raj’s instructions and was able to reinstall the ipkg and wget applets. I got stuck on the same part Josh was stuck on.

    Pogoplug:/opt$ /opt/bin/ipkg update
    /opt/bin/ipkg: error while loading shared libraries: libipkg.so.0: cannot open shared object file: No such file or directory

    I got stuck on ipkg update, but followed what Raj did (copy) to get it to update.

    Pogoplug:/opt$ cp /opt/lib/libipkg.so.0.0.0 /opt/lib/libipkg.so.0

    Now I’m stuck on the last step:

    /opt/lib # ipkg install libnsl
    Nothing to be done
    An error ocurred, return value: 4.
    Collected errors:
    Cannot find package libnsl.
    Check the spelling or perhaps run ‘ipkg update’

    Please help…
    Thanks,
    -Eurides.

  43. QQ

    Finally got my pogo working with samba. Thanks Aaron.

    I have a question. Every time I reboot pogo, I have to run the following command:
    mount -o exec,remount /tmp/.cemnt/mnt_sda1
    mount /tmp/.cemnt/mnt_sda1 /opt
    /opt/etc/init.d/S80samba start

    Is there a way to automatically run these after the reboot?

    Thanks

  44. Artur

    To start samba automatically, add the following lines at the and of the /etc/init.d/rcS file.

    ———
    sleep 20
    mount -o exec,remount /tmp/.cemnt/mnt_sda1
    mount /tmp/.cemnt/mnt_sda1 /opt
    /opt/etc/init.d/S80samba start
    ———

    • Theo

      I tried this guide using a fat32 formated usb disk. The problem with this disk was that the links did not work for me. I reformated my usb disk as a ext2 partition. This solved all the link problems for me. I need no extra options for mounting. A regular mount lets me read, write and execute from this disk.

      While installing all this and mounting the usb disk with the extra software my usb disk moved from sda1 to sdb1. If you want to automount your usb drive to /opt as mentioned in the comments above you can use the df command to see what size the disk is you like to mount as /opt

      In my case the 1GB usb disk showed as a 938.2M disk:

      # Met df -h
      # /tmp/.cemnt/sdb1 938.2M 11.3M 879.2M 1% /tmp/.cemnt/mnt_sdb1

      Using grep and awk you can create the output needed for your mount command. Mine is:

      mount `df -h|grep 938|awk ‘{print $1}’` /opt

      I also had to increse the sleep wait time since one of the drives attached is a 2Tb drive and that take a while befor it becomes active.

      • Tom

        I tried this with a FAT and NTFS formatted USB stick. Didn’t work. I used MiniTool Partition Wizard Home Edition to format the stick in EXT3 on my PC and now it worked. The only extra step was the need to copy the libipkg.so.0 referenced elsewhere in the comment thread.

        On to installing Samba and MediaTomb…cool stuff. Thanks all!

  45. Koen DC

    Hi Aaron,

    I have a quick question, what version of Pogoplug did you do this on?
    I have a v2 (pink), will this work?
    Looking forward to start doing this (first project!)

    Cheers,
    Koen

  46. Aubrey

    Hi,

    If the “mtdblock3” cannot be seen by the command df | grep mtdblock3 (even though if i do cd /dev/ and list the mdtdblock*, it exists there).

    Can I use the SD CARD slot for the customization instead of the USB Slot?

    -Thanks-
    Aubrey

  47. Aubrey

    Oh btw, I’m using PogoPlug Mobile. 🙂

    • Aaron (Author)

      Hi Aubrey,

      I don’t see why you can’t use the SD card slot 🙂 you’ll need to find out where it is mounted, which should be as simple as finding out where it gets mounted (you can use my instructions for using a USB key to do that).

      I don’t know anyone that’s tried this with a Pogoplug mobile, but if you do try it, let me know how it goes.

      Cheers,

      Aaron

      • Robert K.

        Aaron,
        Your instructions are great and it’s wonderful to have SAMBA access to my Pogoplug. However, I did have to diverge early on from your instructions and it seems that Aubrey has also. When you said to run “df | grep mtdblock3”, I thought, “Huh. How is df supposed to find a partition that’s not mounted yet?” So I took a look at /dev and there it was. It seemed to me that I should try mounting it as /opt and haven’t looked back. Am I missing something or do the instructions not cover the case where the mtdblock3 drive is in there, but not used (yet)? I thought that the whole point was to make use of this unused internal flash drive.. I really don’t get how it would show up in the output from df if it’s unused. This is a minor quibble with what is liberating info. You are the Pogoplug Prometheus!

        • Aaron (Author)

          Hi Robert,

          Thanks for getting in touch. And yes, you are right! I must have written those instructions half-asleep!

          I’ve updated accordingly. Let me know if you spot any other issues 🙂

          Thanks,

          Aaron

  48. bob bart

    I run Plink commands save as a bat file that run the 3 commands to login and start samba.

    One command each line next to your login. Save in Bat file in same directory as the Plink exe file. lanuch from windows and presto your read to go when you reboot your unit.

    Yes..you could load the RCS file and have it auto reboot..but I bricked mine that way…so better to be safe versus sorry.

    plink -ssh HOSTNAME – l LOGIN – pw PASSWORD …….SINGLE LINE COMMAND HERE.

    I have a question. Every time I reboot pogo, I have to run the following command:
    mount -o exec,remount /tmp/.cemnt/mnt_sda1
    mount /tmp/.cemnt/mnt_sda1 /opt
    /opt/etc/init.d/S80samba start

    • kyle

      same for me – i think i found a link to a command that could be put in place but now i can’t recall where the link is or what the command is. anyone out there still looking at this?

  49. ds9

    Hi, still struggling to install the package manager.

    At this step:

    /opt/bin/ipkg update

    I get this output:

    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08qlarmel/cross/unstable/Packages
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08qlarmel/native/unstable/Packages
    An error ocurred, return value: 2.
    Collected errors:
    ipkg_download: ERROR: Command failed with return value 8: `wget –passive-ftp -q -P /opt/ipkg-cywjir http://ipkg.nslu2-linux.org/feeds/optware/cs08qlarmel/cross/unstable/Packages
    ipkg_download: ERROR: Command failed with return value 8: `wget –passive-ftp -q -P /opt/ipkg-cywjir http://ipkg.nslu2-linux.org/feeds/optware/cs08qlarmel/native/unstable/Packages

    I don’t know what to do, nothing I’ve found on Google seems to help.

    Thanks.

  50. ds9

    (Not sure if you got my email, sorry for the duplication.)

    I’m stuck at this point:

    /tmp # /opt/bin/ipkg update

    I keep getting these error messages, please help:

    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08qlarmel/cross/unstable/Packages
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08qlarmel/native/unstable/Packages
    An error ocurred, return value: 2.
    Collected errors:
    ipkg_download: ERROR: Command failed with return value 8: `wget –passive-ftp -q -P /opt/ipkg-wpCOto http://ipkg.nslu2-linux.org/feeds/optware/cs08qlarmel/cross/unstable/Packages
    ipkg_download: ERROR: Command failed with return value 8: `wget –passive-ftp -q -P /opt/ipkg-wpCOto http://ipkg.nslu2-linux.org/feeds/optware/cs08qlarmel/native/unstable/Packages

  51. sam

    Hello,

    I was following the direction and received the error mentioned above about ‘libipkg.so.0’ not being found I then found the the direction in the comments, but when I tried executing the commands I got device was busy messages… I then tried unplugging the pogoplug and tryng the steps again, but I am now getting an error about wget :” wget: command not found”

    when executing: “wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ipkg-opt_0.99.163-10_arm.ipk

    I have v3 pogoplug any help would be appreciated

  52. David

    i am stuck on /opt/bin/ipkg update…….i keep getting Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages
    sh: wget: command not found
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable/Packages
    sh: wget: command not found
    An error ocurred, return value: 2.
    what can i do now

  53. Paul

    Aaron,

    Thanks for putting the instructions together. It has been years (15-20) since I have used a Unix like OS, and despite remembering some of what I had done in the past, there is still a learning curve. It’s easier now that I can use the Internet to search out issues.

    I have a Pogoplug v4 and just finished installing package manager and I did have a few problems that I was able to resolve using the comments that you and a few of the contributors posted.

    instead is using a USB device, I used a 32GB SD card without issue. I found the SD card at /tmp/.cemnt/mmcblk0p1. Using fdisk, I created a Linux primary partition.

    The first issue I had was when I tried to update ipkg. I recieved the following error message:

    /opt/bin/ipkg: error while loading shared libraries: libipkg.so.0: cannot open shared object file: No such file or directory

    I resolved the issue by using the following copy command, that I found in one of the postings, and runing the update again:
    cp /opt/lib/libipkg.so.0.0.0 /opt/lib/libipkg.so.0

    So far, all is going well. Now I need to tackle installing and configuring NFS.

    Thanks!

  54. Paul Stimpson

    Thanks for all your help here.

    I have a Pogo Classic (pink) with Busybox 1.7.0 that didn’t have the mtdblock3 partition. I had a look in /dev and there were a whole pile of mtdblock devices from 0 to 7. Fdisk didn’t seem to be installed so I tried mounting mtdblock3 to see what would happen, expecting one of the range of errors indicating that it wasn’t a valid device but this happened:

    -bash-3.2# mount /dev/mtdblock3 /mnt

    -bash-3.2# mount
    [snip]
    /dev/mtdblock3 on /mnt type jffs2 (rw)

    -bash-3.2# df
    Filesystem 1k-blocks Used Available Use% Mounted on
    /dev/mtdblock2 32768 20336 12432 62% /
    [snip]
    /dev/mtdblock3 93184 2432 90752 3% /mnt

    I’m pretty sure my external drive doesn’t have any jffs2 partitions (It’s an NTFS drive). The mtdblock3 drive isn’t large around 90MB but it seems to be there.

    Is this something we could use?

    • Aaron (Author)

      Hi Paul,

      Interesting. Sounds like it could be worth trying, my mtdblock3 is also around 90MB and I’m using that just fine, although it is a different filesystem type.

      If you do decide to try it out, let me know how it goes.

      Cheers,

      Aaron

      • Paul Stimpson

        Hi Aaron,

        I’ll have a look at it when I get the chance (may be a while as I’m snowed under at work)

        I wonder if the filesystem chosen was a function of which version of the OS the plug had when it was originally installed in the factory. Do you have any reason to suspect the spare partition might be part of some flip-flop software upgrade mechanism? I would tend to think not as it’s not the same size as mtdblock2. Do you think there is a signigicant risk the partition might get overwritten without warning?

        Cheers,
        Paul.

  55. Kiran

    Aaron,

    I was able to follow your instructions and successfully installed samba server on my pogoplug and now can map my drives as network drives. Your instuctions are great! and Raj’s comments were helpfull too.

    Still figuring out how to auto restart the samba server on pogoplug restart.
    My setup is like this.
    I have 3 USB drives attached to Pogoplug device.
    1. USB stick with samba installation.
    2. USB drive with media
    3. Another USB drive with data.

    On restart the naming of drives /tmp/.cemnt/mnt_sda1, /tmp/.cemnt/mnt_sdb1, /tmp/.cemnt/mnt_sdc1 are assigned to the drives randomly and USB stick with samba installed on is not always assigned /tmp/.cemnt/mnt_sda1. And hence the script does not work.

    Any help is appreciated. Thanks in advance.

    -Kiran

  56. George Fairbanks

    Hi Aaron,

    Thanks for this writeup. I have gotten Samba to restart automatically on reboot. There may be a more elegant way, but this works for me. Append these two lines to the /etc/init.d/rcS file:

    sleep 30
    /opt/etc/init.d/S80samba

    I’m not sure the 30 second wait is necessary, but I can certainly wait that long to be sure that /opt is mounted and the hard drive is ready.

    Regards,
    -George

  57. Kieran

    Hi, Just a general PogoPlug question here… I have my HD and USB disks plugged in at home and can go through all my files quite well… Video however is impossible… I’ve tried AVI and MP4 so far. Can you recommend any way of being able to stream the video while out the house? Is it my format? Or is there another app I need? I’m using an iphone and at home i have a macbook I can use to do any of the conversions.
    Cheers,

    Kieran

    • Paul Stimpson

      Hi Keiran,

      Video files have a format and a data-rate. For example, at work, I use MPEG2 video files. The rates we generally use are 6.5Mbps and 13Mbps. For the same video, the second file is twice the size (and requires twice the network bandwidth to get it delivered in real time). You may need to convert the files to ones, possibly of the same type but of a lower bitrate to get it to work.

      The first thing I would do is put a large file (a big video file, in the 100s of megs or a few gigs, that will take a long time to transfer). Once the file is on the Pogo, copy it back off to the computer and time how long it takes. If it was say a 15 minute video, it needs to transfer in less than 15 minutes for playback in real time to be possible. You need to be able to get the whole file in less time than it takes to play it. If you would like a hand, please post the size of the file in megs/gigs, how long the video is and how long it took to copy it off the Pogo.

      What device are you trying to play the files on please?

      Bests,
      Paul.

  58. Kieran

    Hey, great tutorial. Wee question… Using a usb stick I got as far as verifying busybox was installed:
    BusyBox v1.16.1 (2010-11-30 12:06:37 PST) multi-call binary.
    When trying to use ipkg, i keep getting the following error:
    /opt/bin/ipkg: error while loading shared libraries: libipkg.so.0: cannot open shared object file: No such file or directory
    I’ve tried googling about, but to no avail…
    Any ideas what I can do?
    I’m running a PogoPlug Biz.
    Cheers,
    Kieran

  59. Kieran

    Hi Again,

    Ignore my above comments… Spotted the solution in an above post! :)…

    Now to get transmission working… Anyone encountered a lot of errors with the symlinks:
    ipkg: Cannot create symlink from ./opt/lib/libevent_core-2.0.so.5 to ‘libevent_core-2.0.so.5.1.8’: Operation not permitted

    Cheers,

    Kieran

    • Paul Stimpson

      Hi Kieran,

      I think the most likely cause of this problem is that the memory card/stick you’ve used for your /opt folder is formatted with FAT32.

      FAT32 is an old disc format and doesn’t provide the concept of symlinking (a file that is really just a note of another file name that is the one that really gets used when you hit it.)

      “Operation not permitted” generally means: You asked me to create a symbolic link but this is impossible on a drive of this format.

      Please run the command “mount” (no quotes) on the command line and paste the results. This will show all the drives/partitions that are currently mounted and reveal which disc format was used for each one.

      Bests,
      Paul.

      • Paul Stimpson

        Second thought… It could be that the drive that is FAT formatted is the data drive plugged into the Pogo you’re trying to save the files on. I think it’s definitely possible that Transmission uses symbolic links to temporary files during the download.

        The output of “mount” should shine some light on this.

  60. Kieran

    Hi Paul,

    Thanks for the reply. Here’s my mount output:

    /opt/lib # mount
    rootfs on / type rootfs (rw)
    ubi0:rootfs on / type ubifs (rw,relatime)
    none on /proc type proc (rw,relatime)
    none on /sys type sysfs (rw,relatime)
    none on /dev/pts type devpts (rw,relatime,mode=600)
    none on /tmp type tmpfs (rw,relatime)
    none on /proc/bus/usb type usbfs (rw,relatime)
    /tmp/.cemnt/sdb2 on /tmp/.cemnt/mnt_sdb2 type ufsd (rw,nosuid,nodev,noexec,noatime,uid=0,gid=0,fmask=22,dmask=22,nocase,force)
    /tmp/.cemnt/sda2 on /tmp/.cemnt/mnt_sda2 type ufsd (ro,nosuid,nodev,noexec,noatime,uid=0,gid=0,fmask=22,dmask=22,force)
    /tmp/.cemnt/sdc1 on /opt type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,utf8,errors=remount-ro)
    /opt/lib #

    I could reformat it and start again. I’m on a mac, is there a particular format you could recommend?

    Thanks,

    Kieran

  61. Rob Gardien

    I receive the following error while updating ipkg:

    -bash-3.2# /opt/bin/ipkg update
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable/Packages
    An error ocurred, return value: 2.
    Collected errors:
    ipkg_download: ERROR: Command failed with return value 4: `wget –passive-ftp -q -P /opt/ipkg-nfRTHH http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages
    ipkg_download: ERROR: Command failed with return value 4: `wget –passive-ftp -q -P /opt/ipkg-nfRTHH http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable/Packages

  62. Rick

    Hi, when I try to get the ipkg package

    wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ipkg-opt_0.99.163-10_arm.ipk

    I get

    “can’t open ‘ipkg…’ file exists when trying to copy this to my external USB (I have no mtdblock3 partition)

    When I try the same command on cd /tmp it works fine. Any idea what is wrong?

    Thanks

  63. Rick

    Nevermind, worked it out

  64. Kieran

    I think I’ve semi-broke it now. Without thinking half of the system was on the usb stick, i reformated it. After noticing I lost wget etc, I managed to scp the newer wget and ipkg stuff over. But none of them work. I keep getting an error like:
    -sh: /opt/bin/ipkg: Permission denied
    for ipkg and wget…
    Is there a good way for me to just put things back as they were out the box and start again?
    Cheers,
    Kieran

    • Kieran

      P.s I’ve done a chmod 777 just incase, but that never worked. Also, which wget/ipkg brings nothing…

      • Kieran

        A little hacking around and it’s working 🙂

        Cheers!

        • dtmasd

          Hi Kieran,
          I made same mistake as described by you and now I’m getting permission denied for wget. How did you manage to correct this issue? I will appreciate if you can post your solution.

          thanks
          dtmasd

  65. Alex

    Hi guys,

    Old pogoplug pro wireless here. Put a 16GB key in one of the ports. Everything was going smoothly and worked great following the standard instructions until the very last command.

    After I type ipkg install libnsl
    I get “-sh: ipkg: not found”

    Any idea how I get around this? I ended up trying “cp /opt/lib/libipkg.so.0.0.0 /opt/lib/libipkg.so.0” before ipkg install libnsl as per someone else’s post here…hopefully this doesn’t wreck it.

    Please help! Thank you in advance!

  66. Alex

    LOL It turns out that the instructions here

    /opt/bin/ipkg update
    ipkg install libnsl

    should read

    /opt/bin/ipkg update
    /opt/bin/ipkg install libnsl

    I haven’t played with Unix command line since 07, forgetting that it will search the default directory for commands. IPKG was not there obviously, so I typed it out literal and it worked.

  67. Here is what I did to get things remounting etc on reboot.
    This was on a Version 4.

    1) I created a ” /etc/mount.sh” file with the following contents

    sleep 30
    mount -o remount,rw /
    mount `df -h|grep 14.9|awk ‘{print $1}’` /opt
    sleep 5
    sh /opt/etc/startup.sh

    This first sleeps, then looks for my pen drive (14.9gb) and mounts it to /opt
    It then short sleeps before calling a startup.sh file on the the new mount (pen drive).

    This lets me easily edit the startup.sh file on the pen-drive to start whatever I like without editing any files on the actual file system etc

    Now, you could just manually call this after a reboot “sh /etc/mount.sh”, but I really wanted it done automatically.

    So, I think I found a safe-ish way…:

    1) Instead of editing the risky ‘/etc/init.d/rcS’ file..
    I saw at the end of this it calls ‘/etc/init.d/hbmgr.sh start’

    2) I made a backup of the hbmgr.sh file

    3) I edited the hbmgr.sh file and added the line “sh /etc/mount.sh” at the end of it’s start function… like so:

    case “$1” in
    start)
    start
    sh /etc/mount.sh
    …..

    This way, rcS will always run,and all the initialization inside hbmgr.sh start method before any possible issue with my SH file can arise. Thus eliminating possible bricking…
    I hope.

    • Jonno

      Great post Aaron. It really helped me out.

      Matt I’m curious how your scripts are working out. No problems?

      • Matt

        Hi Jono,

        Yes, still working great.
        I have made some slight changes.
        Also got MYSQL, NFS & Python installed and working.
        I use python as a JSON server and send commands to it to spin-down my hard-drive when I press a button in XBMC.
        I might do a write-up on the process sometime.

        Thanks,

        Matt

  68. Matt

    I have also formated my USB drive to ext3.

    I find this makes it much more compatible with installing packages (system links etc)
    & you can even still access it via my.pogoplug (and the PC software) as normal.

    • Aaron (Author)

      Hey Matt,

      Awesome, thanks for sharing! A bunch of people have been asking for this, so it’s great to have a solution 🙂

      Aaron

  69. Thanks a BUNCH for these great tutorials, Aaron.
    Using your explanation and some basic troubleshooting thanks to the comments and internet, I managed to set it up.
    (I had to reformat my USB to NTFS to avoid the “libipkg.so.0: cannot open shared object file” error)
    Thanks !!

  70. Thomas Bollaert

    Hello Aaron

    First of all, thank you for your comprehensive tutorial. My plug has a external hard drive connected to it which is set as a samba share for my media center and PC with windows 7 installed on it. This setup works great. I can access my data through the PC, the media center and SSH.

    However, when I try to copy large files to the share (over 4 GB), after a few minutes, the connection gets lost between the PC and the samba share. The only way I can fix this is by resetting the pogo.

    It seems to be a common problem that samba cannot handle it when you try to copy big amounts of data to a shared location. I’ve read about the problem on other linux distro’s, each with its own solution.

    Do you know how this problem can be fixed with this present configuration?
    Is anyone else familiar with this problem and how to solve it?

    Thanks in advance
    Thomas

  71. Michael McLeod

    I cannot get beyond entering the password “ceadmin” . I must be doing something wrong but I don’t know what. I am an absolute beginner. I did install putty and I can get to the command screen with the IP address of POGO but it won’t accept the password. I’d like to install samba so I can use my POGO as a network drive, I don’t care about their cloud.
    Michael

    • Michael McLeod

      I cannot get beyond entering the password “ceadmin” . I must be doing something wrong but I don’t know what. I am an absolute beginner. I did install putty and I can get to the command screen with the IP address of POGO but it won’t accept the password. I’d like to install samba so I can use my POGO as a network drive, I don’t care about their cloud.
      Michael

  72. Michael McLeod

    Sorry I didn’t mean to leave duplicate posts, I just wanted to add email notification of reply.
    Michael

  73. Jonno

    By the way I’m trying to get BitTorrent Sync working on this PP4 but I’m having issues with it stopping after a couple of minutes. No idea what the cause is. Has anyone else tried BTSync on a Pogoplug?

  74. Michael McLeod

    The password “ceaadmin” does not work what do I do now?

    • Aaron (Author)

      Hi Michael,

      Are you using the “root” user? If the password “ceadmin” isn’t working for you, I imagine you’re not specifying the user properly.

      You will need to ssh to the Pogoplug using:

      root@YOUR_POGOPLUG_IP

      As per: http://download.pogoplug.com/dev/linux.html

      Cheers,

      Aaron

      • Paul Stimpson

        Hi,

        My pink plug seems to have different software than the version tested here. The “ceadmin” password doesn’t work on it but the password I use to log into the web interface does. I would give that a go.

        Cheers,
        Paul.

  75. Michael McLeod

    Yes I sign as root and use the password ceadmin and I get the message “access denied”

    • Paul Stimpson

      Try root and the password you use when you sign into my.pogoplug.com

      • Michael McLeod

        The PoGo plug password didn’t work either.

        • Brandon H

          On my v4 when I enabled SSH access via my.pogoplug.com, I was prompted to set a password for SSH access.
          That was the password needed to SSH into the box. Unless you made it the same as your my.pogoplug.com password, it’s not the same – it’s whatever you put into the box. Not sure, but it might even be blank?

        • yussss

          Hey, had the same problem.
          What you do is go to my.pogoplug.com–>settings–>security–>tick “Enable SSH access for this Pogoplug device (change password)”

          AND THEN CLICK ON CHANGE PASSWORD and set a password. This password is the one you’re going to be using when loging in via SSH.

          Hope this helps 🙂

        • yussss

          Click on (change password) and not the big CHANGE PASSWORD icon.

  76. Hugo

    Hi
    any one stuck at “wget not found” with BusyBox v1.16.1 ,try “busybox wget ……..” on the first steps,that work for me. Pogoplug pro up and running ,thanks for this greats tutorials.

  77. Brandon H

    Thanks for this great blog and thanks to all the commenters who added as well!
    I successfully set up a v4 (aka Series 4) Pogoplug mainly using the information presented here (and a few tidbits from Arch, Optware and elsewhere).

    A few more tips:
    1) If your PogoPlug has an SD card slot, instead of a USB stick, you can use a SD or SDHC card! That way you don’t have something sticking out, and you leave your USB ports free. It makes it a much more elegant solution. 🙂
    On my v4 Pogoplug the SD card is /tmp/.cemnt/mmcblk0p1

    2) I’m launching mount.sh from hbmgr.sh as Matt suggested above (which I still believe is a good idea), but recently my device went into blinking yellow LED. I rebooted it (it seemed to still be working fine) and none of my Optware was running.
    Somehow my hbmgr.sh got overwritten, I’m guessing it downloaded some update.
    So I went back into the shell and did the edit again and all is good.
    Just something to keep in mind if you’re doing it this way and you suddenly notice none of your “extras” are running.

    3) I also added the optware.sh script (which runs the startup/shutdown scripts from /opt/etc/init.d) to my startup (at the end of mount.sh, run optware.sh start) and shutdown (in stop section of hbmgr.sh, run optware.sh stop) processes. That makes any Optware that has startup/shutdown scripts (for example, cron) work without needing to change the internal scripts every time.
    BTW, I used the optware.sh script from here: http://mybookworld.wikidot.com/optware

    • James M

      Hi.

      I was given a Pogoplug series 4 by a friend and I just found this site. I’m completely new to all of this but I can’t wait to start playing around with it. I need to get a SDHC card or USB stick for it though. Can anyone recommend what size I should get? At this point thinking maybe Apache, MySQL, NFS or Samba…not really sure what else. Would 16 GB be big enough or should I go with 32 GB or even larger?

      • Aaron (Author)

        Hey James,

        It really depends on how much you are planning on storing on the USB stick/SDHC card. I’m running an FTP server, BitTorrent server & SMB server using less than 100MB of space, so in my opinion 16GB should be plenty of space!

        Aaron

  78. Rick D

    Has anyone found how to control the LEDs? I have Samba running and all is good however when I kill off hbwd ( web connected tunnel to Pogoplug site ) I am left with a flashing LED orange/yellow in color. If you boot to Arch Linux you can see how to control the LEDs …

    • Aaron (Author)

      Hey Rick,

      It looks like you’d need to patch the kernel to support changing the LED. This site has some interesting info: http://fabiobaltieri.com/2011/09/21/linux-led-subsystem/

      Aaron

      • Rick D

        Thanks and that got me poking around… I found the source code from Pogoplug xce driver posted @ http://pogoplug.com/opensource this controls the LEDs …
        the variables are found /sys/module/xce/sections/
        I am just not sure how to interact with the xce driver. Its loaded here:
        /sys/module/xce/sections # busybox lsmod
        xce 22632 0 – Live 0xbf120000

        If I knew a bit more how to interact with the driver/variables we could easily change the LEDs without any mods to the system. Off is preferred.

        • Aaron (Author)

          Interesting. I think we should be able to interact with the LED in user space by echoing values into /sys/devices/system/leds/leds0/event

          e.g. echo some_cmd_to_turn_on_led > /sys/devices/system/leds/leds0/event

          I’m not sure what commands the LED driver supports without digging through the source code…

          • Brandon H

            Unfortunately /sys/devices/system/leds doesn’t exist on the stock Pogoplug firmware.
            I had an idea that it might be possible to manipulate the GPIOs by memory address.
            This is how the PogoPlug Pro (v3) units seem to work with the proled script:
            See the third post (the nano one) at http://archlinuxarm.org/forum/viewtopic.php?f=29&t=1362
            The proled script uses devmem2 which is equivalent to BASIC’s PEEK and POKE

            Problem is, I have no clue what the appropriate memory addresses would be for my v4. I poked through the source code (the v4 is Kirkwood platform, as far as I can tell, so it uses the _kw sources, I think) but I was unsuccessful.

            Hopefully someone else will have more success.

  79. Rick D

    The settings for the xce driver are in:
    /sys/module/xce/sections/
    The pogo source code shows what values and masks are sent to the i2C controller. If we know how to interact with the xce module we can control the LEDs…
    I echoed values into some of the settings however they don’t seem to be doing anything to control the i2C controller. In the source code of xce_gpio_ox820.c we have a function to set the mode of the LEDs

    void xce_gpio_led(int ledmode)
    {
    switch(ledmode) {
    case LED_MESSAGE:
    XCE_DLOG(“XCE: LED -> MESSAGE\n”);
    writel(g_xce_board->led->mask, GPIO_B_OUTPUT_SET); /* turn off leds */
    writel(g_xce_board->led->msg, GPIO_B_OUTPUT_CLEAR); /* turn on msg led */
    break;
    case LED_CONNECTED:
    XCE_DLOG(“XCE: LED -> CONNECTED\n”);
    writel(g_xce_board->led->mask, GPIO_B_OUTPUT_SET); /* turn off leds */
    writel(g_xce_board->led->online, GPIO_B_OUTPUT_CLEAR); /* turn on msg led */
    break;
    case LED_DISCONNECTED:
    XCE_DLOG(“XCE: LED -> DISCONNECTED\n”);
    writel(g_xce_board->led->mask, GPIO_B_OUTPUT_SET); /* turn off leds */
    writel(g_xce_board->led->msg, GPIO_B_OUTPUT_CLEAR); /* turn on msg led */
    break;
    case LED_ERROR:
    XCE_DLOG(“XCE: LED -> ERROR\n”);
    writel(g_xce_board->led->mask, GPIO_B_OUTPUT_CLEAR); /* turn on both leds */
    break;
    }
    }

    I am not sure how to echo into the driver process to interact with this function ? Any ideas?

    • Brandon H

      Okay, got the LEDs to change color on my v4/Series4 Pogoplug with the stock kernel!

      I have one plug with Green LED and another with Red LED so that let me peek around the likely memory addresses and figure out which one was right.
      I got the 0xf1010100 address from one of the source files.

      Note: the ox820 source I believe is for the v3 Pogoplug aka Pogoplug Pro, which already has the proled script to control its LEDs – that’s what turned me on to devmem2 and the peek/poke concept. Many thanks WarheadsSE if you read this!

      NOTE: This likely will ONLY work on a v4/Series4 Pogoplug. Heck, it might not even work on all v4/Series4 Pogoplugs… TRY AT YOUR OWN RISK!!

      1. Install the devmem2 optware package – ipkg install devmem2
      2. Try these…
      LED OFF:
      devmem2 0xf1010100 w 0x01f18400
      LED GREEN:
      devmem2 0xf1010100 w 0x01b18400
      LED RED:
      devmem2 0xf1010100 w 0x00f18400
      LED YELLOW/ORANGE:
      devmem2 0xf1010100 w 0x00b18400

      You’ll see there are only two bits that change between Green, Red and Yellow/Orange which is Green and Red both on.
      In the bits, 0 is LED On and 1 is LED Off, so setting both the Green bit and Red bit to 1 actually turns both LEDs off.
      I haven’t figured out which bit controls blink yet.

      If someone has a v4 Pogoplug that is in the blinking yellow/orange state because of a firmware update, please run
      devmem2 0xf1010100
      and let me know what the read value is – that should help us determine what bit or bits control blink.

  80. Rick D

    from my V4 Pogo lights are blinking yellow/orange

    /opt/bin # ./devmem2 0xf1010100
    /dev/mem opened.
    Memory mapped at address 0x40020000.
    Value at address 0xF1010100 (0x40020100): 0x1B18400

    • Brandon H

      Thanks Rick,
      I got mine to go blinky-yellow/orange by killing hbplug or hbwd (forgot which one), and got the same result.
      Unfortunately that value is the same as the Green LED state (which does work *normally*) so either the “path” to the GPIO gets severed when hbplug/hbwd is killed or the blinky yellow/orange is being driven by some other means.

      I see mention in the proled script about a “lock” function, so the LED might be locked somehow to not accept changes, not sure. This is all very dark and mysterious to me – I’m just happy I was able to turn my annoying red light to green, heh.

  81. Rick D

    I do know the xce driver stays loaded after you kill hbwd and its the mechanism to speak with the i2C controller that runs the leds … just need someone versed in reading the driver code that would highlight an avenue to talk through it …

    • Brandon H

      So the situation so far is I can change the LED colors via the devmem2 “pokes” I listed above, as long as things are running normally (hbwd and hbplug are running).

      Once hbwd/hbplug are killed, further attempts to change the LED status don’t seem to work – it stays blinky yellow.

      Would be great if someone figures out a way to directly speak to the driver, but I can’t make head or tail of the sources myself – way over my head, heh.

  82. Rick D

    OK here’s the best I can do:
    looking at the xce_dev.c code the driver will accept the following easy commands, blinking is going to be a bit more difficult:
    set the led to green
    /dev # echo “led=con” > /dev/xce
    set the ped to red
    /dev # echo “led=dis” > /dev/xce
    set the led to orange/yellow
    /dev # echo “led=err” > /dev/xce

    found the clue to how we interact in the hbmgr.sh
    # Make sure watchdog is off…
    echo “wdog=off” > /dev/xce ( /dev/xce accepts a few commands. )

    So at least we can turn the led to solid green which is better than blinking 🙂

    • Brandon H

      Awesome work Rick!! Way easier than poking random bits to memory. 🙂

      echo “led=msg” > /dev/xce
      will give us blinking yellow, though that result is easy enough to get via other means, heh.

    • Aaron (Author)

      Rick, this is awesome, great job!

      Reading the driver code, blinking the LED can be achieved with:

      echo “led=msg” > /dev/xce

      I’m going to write this up as a short blog post 🙂

      Aaron

  83. Brian Robbins

    Hi, spending some time with your blog posts to try to install Optware on my Pogoplug E02 and having a bit of trouble. First, because I had to go through the process a few times, as I got stuck, I managed to create 2 or 3 extra opt “folders” as I went through the step mkdir /opt a few times. How would I delete those?

    Pogoplug:/tmp$ df -h
    Filesystem Size Used Available Use% Mounted on
    /dev/mtdblock2 32.0M 15.8M 16.2M 49% /
    none 125.0M 608.0k 124.4M 0% /tmp
    /tmp/.cemnt/sda1 3.9G 716.0k 3.9G 0% /opt
    /tmp/.cemnt/sdb1 3.9G 716.0k 3.9G 0% /opt
    /tmp/.cemnt/sdc1 3.9G 716.0k 3.9G 0% /opt
    /tmp/.cemnt/sdd1 3.9G 716.0k 3.9G 0% /opt

    But the reason for my problem is this… trying to install to a USB drive and when I run the command “/opt/bin/ipkg update” because I have Buysbox 1.7.0, I get the result “/opt/bin/ipkg: error while loading shared libraries: libipkg.so.0: cannot open shared object file: No such file or directory”

    I can’t seem to get past this step. I see that other users had the same issue, but can’t seem to figure it out. I should also say that I’m a real beginner. Thanks

    • Brian Robbins

      Pretty big PITA… Finally got everything installed and working… even Transmission. Tried reboot in SSH to try to fix an issue I thought I have and now everything seems to be gone. I still have files on my USB drive when I mount it and see it in my.pogoplug.com, but I can’t show the Optware list or use Transmission.

      • Brandon H

        What is the output of mount ?

        • Brian R

          Looks like I needed to remount the USB drive and then restart Transmission. Rookie mistake.

          How would I go about setting this up so the USB drive automatically remounts in a situation like this?

          • Brandon H

            Note that when the Pogoplug firmware gets updated (flashing yellow light), you will need to re-edit hbmgr.sh as your changes will be overwritten and you’ll land in the same situation where the USB or SD storage is not mounted on /opt

            I ended up using Matt’s method, but instead of calling /opt/etc/startup.sh at the end of /etc/mount.sh, I call
            /opt/etc/optware.sh start

            That iterates through /opt/etc/init.d and launches the Sxxyyyy inits scripts in there. Since most optware that is installed includes startup scripts, they automatically get activated on the next reboot without me needing to edit anything else.

            (optware.sh script appears at end)

            My /opt/etc/optware.sh which was slightly modified from one I found for a WD Book NAS.

            #!/bin/sh

            start() {
            if [ -d /opt/etc/init.d ]; then
            echo “Launching Optware initialization scripts”
            for f in /opt/etc/init.d/S* ; do
            [ -x $f ] && $f start
            done
            else
            echo “error: /opt/etc/init.d directory not found” >&2
            exit 1
            fi
            }

            stop() {
            if [ -d /opt/etc/init.d ]; then
            echo “Launching Optware termination scripts”
            for f in /opt/etc/init.d/K* ; do
            [ -x $f ] && $f stop
            done
            else
            echo “error: /opt/etc/init.d directory not found” >&2
            exit 1
            fi
            }

            restart() {
            stop
            start
            }

            case “$1” in
            start)
            start
            ;;
            stop)
            stop
            ;;
            restart)
            restart
            ;;
            cleanup)
            ;;
            *)
            echo “Usage: $0 {start|stop|restart}”
            exit 1
            esac

            exit $?

          • Brian Robbins

            So… I’m having a bit of a hard time following how I enter in either Matt’s commands or Brandon H’s commands into an SSH window. Could someone simplify for a real newb? I thought I started to have a grasp of what I was doing here… but clearly not.

            Everything seems to be up and running, Pogoplug still works, Transmission working, web interface working. I just want to make sure that after a PP reboot or software update from the mothership, everything doesn’t go down the toilet.

            I feel like all I did after the reboot was “mount /tmp/.cemnt/sdb1 /opt”

          • Brandon H

            Brian – You’re on the right path. All you really *need* to have happen after a reboot is for the drive to get mounted at /opt
            by running “mount /tmp/.cemnt/sdb1 /opt”

            .sh files are really just text files – they’re the *nix equivalent of DOS batch files, sort of.

            You can create them on a PC and transfer them over, but I recommend getting used to one of the native text editors like vi – that way you can do everything within your SSH session.
            Here’s the vi cheat sheet I use:
            http://www.lagmonster.org/docs/vi.html

            There are other editors you can use, but I like to use vi simply because I know it’s present “out of the box.”

            The important thing to remember is that vi has two modes – insert mode and command mode. It’s not like your typical Notepad (which is always in insert mode, because commands are driven by the menus or keyboard shortcuts).

            To create a new file, for example, to create /opt/etc/startup.sh as in Matt’s post:
            vi /opt/etc/startup.sh

            This brings you to a blank screen (the tildes are just placeholders) and you’re in command mode.

            Hit i to enter Insert mode. You’ll see a capital I appear at the bottom left.
            Type your command
            mount /tmp/.cemnt/sdb1 /opt
            You’ll see [Modified] appear at the bottom.

            Hitting Enter will go to the next line. Unless you have a really dumb SSH client you can use the arrow keys to move around once there’s more than one line.

            If you’re happy with what you have, go back to command mode by hitting Escape, then type
            😡
            to exit saving changes (that’s just colon followed by x followed by Enter)

            If you screw up, :q! (hit the Escape key, then colon, then q, then bang, then Enter) will get you out without saving changes.

            As for “surviving” an update from the mothership, so far any additional files you have ADDED (anything in /opt) seem to be preserved, but native files that you EDIT like /etc/init.d/hbmgr.sh will likely have your changes overwritten with the stock, so you will have to go in and fix them after the update.

            Sorry for another lengthy reply. Hope that helps.

          • Brian R

            So… I can create this startup code in /etc as outlined by Matt to start me up again after a reboot or power failure, but if Pogoplug updates the software, I don’t really have any recourse against that? I’d have to go back in and redo Matt’s post?

            If all I really need to have happen after a reboot is enter in “mount /tmp/.cemnt/sdb1 /opt”, isn’t there a way to have it automatically do that after a reboot or power failure?

            Also… if I left it as is, and Pogoplug updates the software, what would I have to do? At this point, to my knowledge, I haven’t edited any of the native files.

          • Brandon H

            Hey Brian,
            Matt’s method has three parts
            1. Create /etc/mount.sh script that mounts the external storage (USB drive or SD card)
            This only needs to be done once.
            It will (so far) survive a Pogoplug firmware update.

            2. Create /opt/etc/startup.sh
            This also only needs to be done once and will (so far) survive a Pogoplug firmware update.

            3. Edit /etc/init.d/hbmgr.sh so it calls /opt/etc/mount.sh
            This is the part that actually makes things happen automatically after a reboot.*
            It will NOT survive a Pogoplug firmware update, as /etc/init.d/hbmgr.sh will be overwritten by the firmware update.

            #3, the edit to /etc/init.d/hbmgr.sh is the only thing that needs to be re-done after a Pogoplug firmware update.

            * During boot, /etc/init.d/hbmgr.sh is run. Because you’re modifying it to run /etc/mount.sh, your storage will get mounted on /opt. And because /etc/mount.sh runs /opt/etc/startup.sh, anything you put into /opt/etc/startup.sh will also be run.

          • Brian R

            I guess where my confusion lies is with what I need to do after a reboot. As it’s been stated, if all I really need to do after a PP reboot is “mount /tmp/.cemnt/sdb1 /opt”, what is the benefit of these additional steps. I understand step 3 makes it happen automatically, but if I didn’t do step 3 as Matt has said you can skip, what is the benefit of doing Steps 1 and 2 at all? Any why are they different than simply entering “mount /tmp/.cemnt/sdb1 /opt”.

          • Brandon H

            Oops, noticed a typo in my earlier comment…
            3. Edit /etc/init.d/hbmgr.sh so it calls /opt/etc/mount.sh
            should be
            3. Edit /etc/init.d/hbmgr.sh so it calls /etc/mount.sh
            instead

            To answer your question, it’s good practice and Matt’s trying to be as safe as possible.
            WIth embedded-type devices like Pogoplug “Safe Mode” and other rescue facilities are usually cumbersome or non-existent.
            Messing with the boot sequence can cause a device not to start any of its services, which can make it inaccessible, “bricking” the unit.

            Why don’t we just edit /etc/init.d/hbmgr.sh to run “mount /tmp/.cemnt/sdb1 /opt” directly instead of running /etc/mount.sh ?
            We *could*, but if we screw up, we could run a different command or worse. Besides, it’s pretty easy to typo /tmp/.cemnt/sdb1 (heck, I just mistyped it twice).
            So putting the “complicated” command into a separate file that we only have to do correctly once is the safer path.

            Why do we have /etc/mount.sh run /opt/etc/startup.sh to run any additional commands, instead of just putting the commands into /etc/mount.sh directly?
            Again, we *could*, but if you put the commands directly in /etc/mount.sh, if you do something that hangs the plug, there may be no way to stop it. Brick risk: Moderate. 🙁
            By calling another file that’s on external storage (in /opt), you can boot the Pogoplug without the external storage, then /etc/mount.sh will gracefully fail, and none of your “extra” that might be hanging the system will run. Closer to “safe mode” here. 🙂
            An added benefit of having it on external storage – you can reach /opt/etc/startup.sh from the Pogoplug web interface. This gives you another route of repair if for some reason you can’t get into a terminal session.
            It also means you can reduce the amount of time you have to spend in terminal – a good thing if you have children or pets that like to bash on your keyboard. 😉

            Here’s where using Matt’s method saved me from a brick situation…
            I was hardening my SSH security and decided to modify /etc/init.d/dropbear.sh (this is the script that runs the SSH server) to deny root login. I *did* make a backup copy of the dropbear.sh file before I made the modification.

            Then I rebooted the Pogoplug.
            …and couldn’t get a terminal session because root was denied – and I didn’t have a user/key pair that wasn’t tied to root. OOPS! 🙁

            Okay, well, I made a backup of the dropbear.sh, I can just restore that…
            Nope! That requires getting into the terminal, which I can’t.

            Maybe I can reset the Dropbear startup by disabling and re-enabling SSH access from the Pogoplug website…
            Nope, for whatever reason the Pogoplug website doesn’t show me the SSH option anymore – I must’ve broken whatever mechanism it uses.

            Do I have any other servers running that I could use as a backdoor?
            No…

            But I can still access the external storage via the Pogoplug website! Which means I can access /opt/etc/startup.sh
            and that means I can “inject” more stuff into the boot process!
            So that’s what I did. I added commands to run another instance of Dropbear that *wasn’t* super-locked on another port, SSH-ed to the alternate port to get a terminal session, then went in and un-did my stupid change to /etc/init.d/dropbear.sh

            If the Pogoplug website had not let me access the external storage, my next option would have been to boot a Linux LiveCD and edit the startup.sh on another computer.

            Point is, the only reason I could unlock my “overlocked” Pogoplug and fix my mistake was because I could access the external storage and add that additional Dropbear instance.
            Had I left everything “hard coded” on the Pogoplug internal storage, I would not have been able to “get in” and I would have had a partially bricked unit until *maybe* the next firmware update, and I’m not sure the automatic firmware update would have happened given that my change broke part of the Pogoplug website…

            So EXTRA THANKS to Matt for giving us a safety net that I ended up using. 🙂

          • Brian R

            So, this basically would be my step-by-step:

            1) vi /etc/mount.sh

            #Insert the following into the file…

            sleep 30
            mount -o remount,rw /
            mount `df -h|grep 14.9|awk ‘{print $1}’` /opt
            sleep 5
            sh /opt/etc/startup.sh

            #Save and Exit

            2) vi /opt/etc/startup.sh

            #What needs to be inserted here?

            #Save and Exit

            3) vi /etc/init.d/hbmgr.sh

            #Add the following at the end of file?

            case “$1″ in
            start)
            start
            sh /etc/mount.sh

            #Save and Exit

            So… this will now automatically mount my USB drive and get Transmission running after a PP reboot or power failure? But if PP pushes an update to the software, I would need to perform Step 3 again…

            vi /etc/init.d/hbmgr.sh

            #Add the following at the end of file?

            case “$1″ in
            start)
            start
            sh /etc/mount.sh

            Is that right?

          • Brandon H

            In Step 1, for simplicity, you could change
            mount `df -h|grep 14.9|awk ‘{print $1}’` /opt
            to
            mount /tmp/.cemnt/sdb1 /opt

            Just make sure you always use the same USB port for the stick (or card slot if you’re using a card).
            Matt’s mount tries to find his stick, but could potentially fail if the size or used size on rootfs just so happens to equal your external storage size.

            In Step 2,
            If everything you need is already launching after mounting, nothing needs to be added to /opt/etc/startup.sh
            I think you’re running Transmission, so you could put whatever command is necessary to start Transmission in here. Be careful to specify full paths.

            Step 3,
            The case “$1” in … start) … start lines should already be there. You’re just going to the
            sh /etc/mount.sh
            line below the existing start line (you probably already know that, just making 100% sure).

          • Brandon H

            Argh, typoitis today.
            You’re just going to *add* the
            sh /etc/mount.sh
            line below the existing start line…

          • Brian R

            Your super helpful btw! Thank you!

            So… I only am running Transmission (other than the standard PP software), so I think I would just need to add:

            /opt/bin/transmission-daemon –config-dir /opt/config/transmission-daemon/

            to

            /opt/etc/startup.sh

          • Brian R

            And I have my Optware on a 4 gig USB drive that I don’t move in the back, right above the ethernet. My external drives are 200 gigs and 1 TB, so I think I should be okay. The paths of the drives shouldn’t change unless I eject any of them right?

            Like sda1 or sdb1… etc.

          • Brandon H

            Paths are static based on port/slot, so you should be good there.

            Transmission startup line looks good too.

            I think you’re good to go! Now would be a good time to make a backup and/or notes of what you’ve done. 🙂

            Enjoy!

          • Brian R

            Oh, I am going to… so, barring any unforeseen event, all I would have to do would be

            vi /etc/init.d/hbmgr.sh

            #Add the following at the end of file?

            sh /etc/mount.sh

            and I am back on track.

          • Brandon H

            Yes, right after the line with start by itself, be careful not to get that confused with the previous line which says start)

            case “$1” in
            start)
            start
            sh /etc/mount.sh
            ;;

          • Brian Robbins

            Having a problem… when I try to enter the following “/opt/bin/transmission-daemon –config-dir /opt/config/transmission-daemon/” into the file “vi /opt/etc/startup.sh” I get a message Pattern not found. I copy that transmission line in, then press esc and the message comes up.

          • Brandon H

            Sounds like you’re in command mode – be sure to enter Insert mode by hitting i before you try to enter anything.

  84. Jubahn

    I am getting this result:

    /tmp # /opt/bin/ipkg update
    /opt/bin/ipkg: error while loading shared libraries: libipkg.so.0: cannot open shared object file: No such file or directory

    How can I fix this? Been reading and Raj said to copy it but do not know where to copy the file libipkg.so.0

    Thanks.

  85. Pieter

    Hi Aaron.

    I’ve been experiencing some problems with these instructions. It all runs well until I have to update the busybox. It’s 1.16.1 now, and for the love of me, I can’t seem to get it to update. I followed Raj his trick, it all runs normally, it says:

    /opt # /opt/bin/ipkg update
    /opt/etc/ipkg/armel-feed.conf:1: Ignoring invalid line: `“src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable >> /opt/etc/ipkg/armel-feed.conf’
    WARNING: Ignoring unknown configuration parameter: echo “src native
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages
    Updated list of available packages in /opt/lib/ipkg/lists/cross
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable/Packages
    Updated list of available packages in /opt/lib/ipkg/lists/native
    Successfully terminated.
    /opt # busybox | head -n1
    BusyBox v1.16.1 (2010-11-30 12:06:37 PST) multi-call binary.

    It’s all very confusing 🙁

    • Aaron (Author)

      Hi Pieter,

      It looks like you need to continue with the instructions from:

      “If you DO NOT have version “BusyBox v1.7.0″ (e.g. “BusyBox v1.16.1″)”

      Hope that helps.

      Aaron

      • Pieter

        Hi Aaron,

        I followed the steps listed above, with the following results (you can see the commands entered, I guess 🙂 )

        /tmp # cd /tmp/
        /tmp # wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk
        –2013-08-20 16:23:53– http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk
        Resolving ipkg.nslu2-linux.org… 140.211.169.161
        Connecting to ipkg.nslu2-linux.org|140.211.169.161|:80… connected.
        HTTP request sent, awaiting response… 200 OK
        Length: 165488 (162K) [text/plain]
        Saving to: `wget_1.12-2_arm.ipk.4′

        100%[============================================================================>] 165,488 119K/s in 1.4s

        2013-08-20 16:23:55 (119 KB/s) – `wget_1.12-2_arm.ipk.4′ saved [165488/165488]

        /tmp # tar xvzf wget_1.12-2_arm.ipk
        ./debian-binary
        ./data.tar.gz
        ./control.tar.gz
        /tmp # tar xzvf data.tar.gz -C /
        ./
        ./opt/
        ./opt/bin/
        ./opt/bin/wget
        ./opt/etc/
        ./opt/etc/wgetrc
        ./opt/man/
        ./opt/man/man1/
        ./opt/man/man1/wget.1
        /tmp # mv /usr/bin/wget /usr/bin/wget.old
        /tmp # ln -s /opt/bin/wget /usr/bin/wget
        /tmp #
        /tmp # mv /usr/bin/wget /usr/bin/wget.old
        /tmp # ln -s /opt/bin/wget /usr/bin/wget
        /tmp # /opt/bin/ipkg update
        /opt/etc/ipkg/armel-feed.conf:1: Ignoring invalid line: `“src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable >> /opt/etc/ipkg/armel-feed.conf’
        WARNING: Ignoring unknown configuration parameter: echo “src native
        Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/Packages
        Updated list of available packages in /opt/lib/ipkg/lists/cross
        Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable/Packages
        Updated list of available packages in /opt/lib/ipkg/lists/native
        Successfully terminated.
        /tmp # /opt/bin/ipkg install libnsl
        /opt/etc/ipkg/armel-feed.conf:1: Ignoring invalid line: `“src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable >> /opt/etc/ipkg/armel-feed.conf’
        WARNING: Ignoring unknown configuration parameter: echo “src native
        Package libnsl (2.5-4) installed in root is up to date.
        Nothing to be done
        Successfully terminated.

        But when I do a busybox | head -n1, it still shows BusyBox v1.16.1 🙁

        • Brandon H

          I think you’re trying to fix something that isn’t broken.

          From your output you don’t need to do anything more. The busybox | head -n1 was just to check your Busybox version and provide version-dependent guidance.
          Your Busybox version will NOT change because we’re NOT updating Busybox.

          If ipkg update works, you’re set to go.

  86. Pieter

    And now I just tried starting all over (power cycling the pogoplug, formatting the usb stick), but now the command wget won’t work (busybox wget works though), and now when i want to update ipkg, it says this:

    /opt/bin/ipkg: error while loading shared libraries: libipkg.so.0: cannot open shared object file: No such file or directory
    /tmp # /opt/bin/ipkg install libnsl
    /opt/bin/ipkg: error while loading shared libraries: libipkg.so.0: cannot open shared object file: No such file or directory

    Any idea? 🙂

  87. Brian Robbins

    I’m confused… I had a little power outage and the Pogoplug didn’t kick back on and start Transmission.

    When I go in to check my settings as per Matt and Brandon, it looks right. The one thing that I’m super confused about is when I enter “df -h” I see 2 listings for my usb drive.

    Filesystem Size Used Available Use% Mounted on
    /dev/mtdblock2 32.0M 15.8M 16.2M 49% /
    none 125.0M 8.0k 125.0M 0% /tmp
    /tmp/.cemnt/sda1 3.9G 11.5M 3.9G 0% /opt
    /tmp/.cemnt/sdb1 3.9G 11.5M 3.9G 0% /opt

    I unplugged my large externals to see what the USB drive would show up as, and its listed as two.

    • Pieter

      I think that’s because you used the “eject” method & the Pogoplug then re-mounts it when showing it in my.pogoplug.com (correct me if I’m wrong, but I think it’ll show up in my.pogoplug.com now)

  88. Brian

    Has anyone figured out how to go about streaming from their PP to a Roku? It seems like 1 way would be with Plex, but can’t seem to find a how to on installing that with Optware.

    I basicaly would love to stream videos that I download with Transmission to one of my Roku boxes.

  89. Brandon H

    2013/08/30
    Version 3.3.5 just rolled out to my plugs, so for those of you who “injected” automatic mount commands, you’ll have to do it again.

    Another note, my.pogoplug.com showed a little i icon next to my upgraded plugs that said “You have attached a drive that is not supported” or something like that. DON’T WORRY – the error went away after the Pogoplug was rebooted (don’t forget to re-apply any automatic startup).

  90. Anthony

    Hi Aaron,

    I am wondering if something has changed in the instructions recently. Yesterday afternoon I was able to install ipkg, but had the problem listed in previous comments with links to libs not working. I tried to format the drive and reinstall on one machine and tried a fresh install on a 2nd pogoplug but I keep getting -sh:/opt/bin/ipkg: Permission denied.

    I added /opt/bin and /opt/sbin to my profile, but am still stuck with the same problem.

    Thanks!

  91. Anthony

    Sorry about the last post. Following directions ACCURATELY is important.
    Mounting /tmp/.cemnt/mnt_sda1 doesn’t work but it works fine when I do it right

  92. David

    I can’t for the life of me seem to figure out how to find the IP address of my pogoplug. Any help with this would be greatly appreciated! I have a D-link DIR-655 and have not been able to locate a list of connected devices to the router. Am I missing something?

    • Andy

      David (post above) – I had the same problem. In my router the list of connected devices is hidden in the DHCP Client Table, which was revealed by clicking the button DHCP Reservations. I googled my router name along with “connected devices” to find out this information. Pogoplug was sitting right there! ….Andy

  93. Andy

    Hi Aaron,

    So this will reveal just how much of a n00b I am, but I don’t think the main guide states which port to use, to SSH to the Pogoplug. So I found this:
    http://mehl.co/articles/configuring_ssh_on_the_pogoplug/index.html
    which says Port 22 is the default. This article also talks about how to make your device more secure.

    …Andy

    • Brandon H

      when PuTTY opens the terminal window just enter the username of root (not ssh root@blahblahblah, that’s if you’re on a commandline or *nix host).
      It should look like login as: root

      Then use the password you set.

      I _DO_NOT_ recommend disabling root access as the article you linked suggests.
      I’d love to hear otherwise, but when I did that I COMPLETELY broke SSH.

      The Pogoplug website stopped even showing me the option – so I couldn’t just disable SSH and re-enable it in hopes of the configuration being reset.

      The only thing that saved me was the fact that I had already configured my startup to launch Optware from my SD card – that let me add a startup script to run a second instance of dropbear (on another part) that I could access to re-enable root login on the default dropbear.

      I *have* disabled password login and use key-based authentication – that doesn’t seem to break the Pogoplug site.

      If you do attempt disabling root login, I highly recommend setting up a second instance of dropbear as “backdoor” in case you get locked out. Once you have everything set up, then you can remove your “backdoor.”

      • Andy

        Hi Brandon,

        Thanks for your help. I don’t understand why the guide states
        “ssh root@123.456.789.100
        but the correct command is just
        “root”
        I followed the guide’s link (for Windows) to the PuTTY tutorial and then followed that, using the Port 22 I found in that other person’s “guide”.

        { Don’t worry I am nowhere near following all that other stuff he wrote, I was just pointing out that Aaron’s guide didn’t mention Port 22. }

        I think the answer is, I am a most ignorant n00b, and needed dummy proof instructions. What is most likely infantile-level knowledge to you guys is beyond me.

        I have decided to box up & return my Pogoplug so that I don’t burn any more hours on something that is way beyond my current knowledge level.

        Thanks!
        Andy

  94. Andy

    I have a Pogoplug V4-A3-01. On the My.Pogoplug website–>Settings–>Security, I checked the box “Enable SSH access” and it prompted me for a password, which I created.

    Then I use PuTTY.exe, with
    Host Name = address of my Pogoplug (192.###.#.###)
    Port = 22
    then clicked “Open”

    In the resulting terminal window, I typed
    ssh root@192.###.#.###
    as instructed in the guide.

    The terminal then prompted me for a password. I tried
    – the one I created (access denied)
    – “ceadmin”, per guide (access denied)

    So I am stuck before I can even get started.
    Any ideas?
    Thanks!

  95. Andy

    So, tried reading more about getting a V4 going. There is a great tutorial here:

    http://blog.qnology.com/2013/03/tutorial-pogoplug-e02-with-arch-linux.html

    I found this comment particularly noteworthy:

    Begin Quote :
    The E02 model is the ideal choice with 256MB RAM and a 1.2Ghz CPU versus other models which only has 128MB RAM and 800Mhz (dual-core) CPU. Don’t get fooled by the USB 3.0 Ports in the Series 4 model; the CPU is a bottleneck and there is no performance difference with the USB 3.0 ports. Saying that, I like the Pogoplug Series 4 form factor with its SATA USM slot. For the Pogoplug Series 4, I would recommend the USM slot compatible Seagate Backup Plus 1 TB USB 3.0 Portable Hard Drive.
    : End Quote

    …These are great guides if you know what you’re doing with SSH, Linux, etc. No so great for me as I don’t know this stuff. I bought a Pogoplug thinking it would be an easy way to get 2 hard drives shared onto my network. It doesn’t work that way out of the box and after wasting many hours trying to learn how to hack it, I’m sending it back.

    One of you folks could make some money selling these boxes pre-modified !

    Good luck, Andy

  96. Barry

    If your router will not show you the DHCP client list then you can use an application to scan all the devices on your network. It’s called Fring its made by the people that made Look@Lan

  97. Barry

    I have a Pogoplug V4 with 2 1tb Usb 3.0 Drives, 1 usb 2.0 500gb hdd 1 100gb Sata hdd & a 16gb sd card. I would like network shares as well as the my.pogoplug to work. If I’m reading everything correctly have to update busybox and install a package manager install the packages I want (optware) and configure Matts safe script to autorun on reboot.. So, what Optware would need to be installed in order to make this happen. Is there any optware that would give some type of GUI interface at the ip for the Pogo to manage permissions for the network shares (I know I’m asking a bit too much)

    I tried mounting the mtdblock3 /opt and received an invalid argument error although I do have the that folder. (Both the block3 and the opt).

    If I’m understanding this right at that point I should use the sd card and format it as ext3 for a more seamless communication? (Between pogo & card)

    Sorry for the paraphrasing I have been doing most of this from my phone for the instructions and have been using Juice SSH from my phone for the ssh commands.

    • Brandon H

      Pogoplug v4/Series4 does not have mtdblock3.

      The SD card is the least-intrusive method (doesn’t stick out), which on my v4 units is /tmp/.cemnt/mmcblk0p1

      I have my cards formatted ext3 (used Gparted on a computer).

      I have had good results with 16GB Sandisk and Transcend Class 4 and Class 6 cards. My 32GB PNY Class 10 card needed to get fsck-ed once, so I installed e2fstools on the internal memory by installing the optware package and copying the executables and dependencies to the internal memory. That way I can fsck the card directly rather than having to eject it and check it on a computer (yes, I’m lazy and sometimes I’m traveling).

  98. Jason

    Hi Aaron,
    Thank you, awesome post! Cheap, cheerful and simple! None of te drama of Archlinuxarm and Debian, what’s more is I can just use the .ceid method to find and use my drives 😉

    My question really is that, in your connected post of how to use a bittorrent client, you have used Transmission(the most popular) torrent client! Although I am a fan, I prefer using Deluge.

    I went through the host of packages and did not find Deluge to be there, so my question really is, is there a way to get Deluge package or using Deluge via your so cool method…

    Thank you.
    Regards,
    Jason.

  99. Anthony

    Hi Aaron, I have a problem every time I download this ipkg
    http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk
    it is say file not found. But I did download it manually using the browser. Is there another way for the busybox to be updated manually

    Thanks

  100. Anthony

    Hi Aaron, sorry for not pasting the exact message

    BusyBox v1.16.1 (2010-12-01 15:27:23 PST) multi-call binary.

    Usage: wget [-csq] [-O file] [-Y on/off] [-P DIR] [-U agent] url

    /tmp # http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1
    .12-2_arm.ipk
    -sh: http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk: not found
    /tmp #

    That’s the message I got
    Thanks

  101. Anthony

    Hi Aaron, Thanks, I got it right
    Thanks you so much

  102. Paul

    Hi Aaron,

    First, let me say that this is by far the simplest, most concise guide to modifying pogoplugs that I’ve found. I was a complete Linux novice but with this as a starting point I am well up the learning curve to tweaking my device.

    I have installed minidlna using ipkg via your guide and can now see the minidlna device from the TV & iOS DLNA players. However no media is showing in the directories

    I have a USB plugged into the device that has a single directory (testmedia) with one of each of these files: mp3, avi, jpg. I then mounted the usb to /mnt/USB1, so all the files now live in /mnt/USB1/testmedia.

    Here is my config file:

    port=8200
    media_dir=V,/mnt/USB1
    media_dir=P,/mnt/USB1
    media_dir=A,/mnt/USB1
    friendly_name=minidlna
    album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
    inotify=yes
    enable_tivo=no
    presentation_url=http://192.168.0.5:8200/
    system_uptime=no
    notify_interval=900
    serial=12345678
    model_number=1

    I then run minidlna. (As an aside, minidlna -R returns Unknown option: -R, but looks like it executes ok when I run top.)

    I can see the USB drive and all of the files via pogoplug.com, however minidlna isn’t showing the testmedia directory nor any of the media. Nor does it work when I change the config file to media_dir=V,/mnt/USB1/testmedia etc.

    Any ideas on how to fix this would be much appreciated!

  103. Rick Dunn

    Has anyone found how to get a rc file sourced when the system boots?
    I have tried adding these .bashrc and .shrc to the root directory and they don’t seem to be checked when the system is started nor when I ssh to the box.. I want to simply add some alias commands…
    I am not sure where else to add some code to tell the shell to check for rc files when someone logs on.

    Thanks

  104. Rick Dunn

    /root/.profile works! Thanks

  105. singla

    hi,
    i am new to pogoplug / linux..
    i bought the pogoplug thinking it was kind of a wireless storage device to store data (MAINLY MEDIA in my case) locally over the home wifi.
    after using it i realised that it requires internet to access and share data.

    i have managed to install arch linux on my pogoplug.
    now how do i go about attaching a usb hard disc to my pogoplug such that i can access it over wifi from my mac and PC.

  106. Koen

    Super tutorial, thanks!

  107. Clark

    I am trying to install on pink Pogo E02. I think I successful until I reached the code

    wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ipkg-opt_0.99.163-10_arm.ipk
    tar -xOvzf ipkg-opt_*_arm.ipk ./data.tar.gz | tar -C / -xzvf –
    mkdir -p /opt/etc/ipkg
    echo “src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable” > /opt/etc/ipkg/armel-feed.conf
    echo “src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable” >> /opt/etc/ipkg/armel-feed.conf

    Something went wrong. It may have been due to the difficulty of “cutting and pasting” from the slider box, but I think I got everything correct. The first errors I saw were in the last 2 lines where it said “gt” was unrecognized. Since I’m “off script” now, I’m a little lost. I’ve got a bit of command line experience but I’m not a guru. Could you point me in the right direction to get back on track? Thanks

  108. Luke

    Hi Aaron,

    Great post, getting me significantly further than Archlinux ARM install on V4!!

    I have carried out the instructions you gave Kailan all those posts back and everything runs smoothly till i test /opt/bin/ipkp list or update

    I get an error with the repo:

    WARNING: Ignoring unknown configuration parameter: “src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable”
    Successfully terminated.

    I’m about to get in a real pickle here, but first I will try and re-write /opt/etc/ipkg/armel-feed.conf

    Interesting problem though!

  109. Luke

    Problem solved, I copied the sources from eurides post.

    Then ran: /opt/bin/ipkg update

    Followed by /opt/bin/ipkg list

    Thanks guys ;o)

  110. Brandon

    I’ve tried everything from using the mtdblock3 method as well as the USB method and can only go as far as /opt/bin/ipkg update.

    I feel like ive tried every method posted in this blog to get this working with no results.

    (MAIN Problem)

    when running “/opt/bin/ipkg update” it returns:

    “WARNING: Ignoring unknown configuration parameter: “src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable
    Successfully terminated”

    I’ve tried replacing the > symbols, I’ve tried using two >, and a variation of the two

    I cannot move forward with this 🙁

    I’m using a pogoplug mobile POGO-V4-A1-01
    which uses Busybox v1.16.01

    I’ve been using busybox wget and etc which works and such, i just cannot execute the update. My external usb mounts to: /tmp/.cemnt/sda1

    List of all commands executed:

    login as: root
    root@192.168.1.38‘s password:
    ~ # rmdir /opt
    rmdir: ‘/opt’: Directory not empty
    ~ # df -h
    Filesystem Size Used Available Use% Mounted on
    ubi0:rootfs 96.9M 16.0M 80.9M 16% /
    none 57.9M 12.0K 57.9M 0% /tmp
    /tmp/.cemnt/sda1 74.5G 97.1M 74.4G 0% /tmp/.cemnt/mnt_sda1
    ~ # mount -o remount,rw /
    ~ # mkdir /opt
    mkdir: can’t create directory ‘/opt’: File exists
    ~ # mount /tmp/.cemnt/sda1 /opt
    ~ # cd /opt
    /opt # busybox wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/
    unstable/ipkg-opt_0.99.163-10_arm.ipk
    Connecting to ipkg.nslu2-linux.org (140.211.169.161:80)
    /opt # tar -xOvzf ipkg-opt_*_arm.ipk ./data.tar.gz | tar -C / -xzvf –
    ./
    ./opt/
    ./opt/bin/
    ./opt/bin/ipkg
    ./opt/bin/ipkg-opt
    ./opt/bin/update-alternatives
    ./opt/etc/
    ./opt/etc/ipkg.conf
    ./opt/lib/
    ./opt/lib/libipkg.so
    ./opt/lib/libipkg.so.0
    ./opt/lib/libipkg.so.0.0.0
    ./opt/share/
    ./opt/share/ipkg/
    ./opt/share/ipkg/intercept/
    ./opt/share/ipkg/intercept/depmod
    ./opt/share/ipkg/intercept/ldconfig
    ./opt/share/ipkg/intercept/update-modules
    /opt # mkdir -p /opt/etc/ipkg
    /opt # echo “src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/c
    ross/unstable” > /opt/etc/ipkg/armel-feed.conf
    /opt # echo “src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/
    native/unstable” > /opt/etc/ipkg/armel-feed.conf
    /opt # busybox | head -n1
    BusyBox v1.16.1 (2011-08-23 13:02:26 PDT) multi-call binary.
    /opt # cd /tmp/
    /tmp # busybox wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/
    stable/wget_1.12-2_arm.ipk
    Connecting to ipkg.nslu2-linux.org (140.211.169.161:80)
    /tmp # tar xvzf wget_1.12-2_arm.ipk
    ./debian-binary
    ./data.tar.gz
    ./control.tar.gz
    /tmp # tar xzvf data.tar.gz -C /
    ./
    ./opt/
    ./opt/bin/
    ./opt/bin/wget
    ./opt/etc/
    ./opt/etc/wgetrc
    ./opt/man/
    ./opt/man/man1/
    ./opt/man/man1/wget.1
    /tmp # mv /usr/bin/wget /usr/bin/wget.old
    /tmp # ln -s /opt/bin/wget /usr/bin/wget
    /tmp # /opt/bin/ipkg update
    WARNING: Ignoring unknown configuration parameter: “src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable”
    Successfully terminated.
    /tmp #

  111. EJ

    On my Pogoplug V4, I was having the same issue as Brandon above:
    when running “/opt/bin/ipkg update” it returns:

    “WARNING: Ignoring unknown configuration parameter: “src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable”
    Successfully terminated”

    I fixed this by having just a single line in the .conf file – I overwrote the file with this command:

    echo “src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable” > /opt/etc/ipkg/armel-feed.conf

    Then I completed with the installation of libnsl:
    /opt # /opt/bin/ipkg install libnsl
    Installing libnsl (2.5-4) to root…
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/libnsl_2.5-4_arm.ipk
    Configuring libnsl
    Successfully terminated.

  112. navporky

    :), just got to be patient and go through the post and then the following comments, there is nothing that you need more … :). Got stuck at 4-5 places and just had to scroll down further and dig deeper into comments, and the revelations kept coming. *Thanks a lot Aaron*, its wonderful to see a tech post from 2012 still relevant today at the end of 2015 with all the followup comments.

    Got my series 4 device a few months back (yeah I not, its perhaps time for a series 5 soon) and only enabled SSH as per this post and procrastinated the rest….. untill today. Now, I have the package manager running, tomorrow would be a power packed day. 🙂

  113. Bilou

    Thanks Aaron for this great tutorial.
    also works with Seagate FreeAgent GoFlex Net STAK200
    # busybox | head -n1
    BusyBox v1.7.0 (2008-02-26 19:25:17 IST) multi-call binary

    install sftp-server explained here
    http://ameblo.jp/uassist-ceo/entry-10990610146.html

    # ipkg install openssh-sftp-server
    # mount -o rw,remount /
    # mkdir /usr/libexec
    # cp /opt/libexec/sftp-server /usr/libexec/
    # chmod a+x /opt/libexec/sftp-server
    # chmod go+rw /dev/tty
    # mount -o ro,remount /

    and (not sure if really required)
    # mount -o rw,remount /
    # chmod a+rw /dev/null
    # mount -o ro,remount /

    My install did not survive a reboot
    no more SFTP connection

    missing lib
    libcrypto.so.0.9.8
    as described step 4 here
    http://forum.synology.com/wiki/index.php/How_to_setup_an_sftp-server

    My fix
    # mount -o rw,remount /
    # cp /opt/lib/libssl* /usr/lib
    # cp /opt/lib/libz* /usr/lib
    # cp /opt/lib/libcrypto* /usr/lib
    # mount -o ro,remount /
    maybe copy of some libs only was required or some soft links could be used instead

  114. Giuseppe

    Dear Aaron
    I have seagate goflex net.
    The USB port works fine. I can see the USB drive and all of the files via pogoplug.com. I cannot mount any SATA disk. Have you any tutorial to solve this issue?

    -bash-4.3# df -h
    Filesystem Size Used Available Use% Mounted on
    /dev/mtdblock2 32.0M 22.4M 9.6M 70% /
    none 61.6M 452.0k 61.1M 1% /tmp
    /tmp/.cemnt/sda2 28.8G 5.0G 23.8G 17% /tmp/.cemnt/mnt_sda2
    /dev/mtdblock3 219.0M 20.4M 198.6M 9% /opt
    -bash-4.3#

    Thanks
    Giuseppe

  115. Chris

    I recently decided to delete my /opt director (hopefully wiping out opt ware entirely) and reinstalling from scratch. A couple issue I came across following the guide above.

    1. wget wouldn’t work. In all instances of wget I had to use “busybox wget” instead. FYI I’m on 1.7.0 of Busybox

    2. “>” lines in step 3, are actually supposed to be greater than symbols >. Replacing each “>” with “>” makes them work

  116. mr koh

    with pogoplug mobile, if you ssh access and can’t SCP in due to ‘connection refused’ then:

    vi /etc/init.d/rcS
    Uncomment the fi/if telnet (and dropbear process if you want both)
    Reboot

    https://web.archive.org/web/20170202103706/http://geekyschmidt.com/2013/12/17/serial-port-on-the-pogoplug-v2

    thanks for a great writeup

  117. mr koh

    oops , I meant comment out the fi/if

    I only bricked one so far 🙂

Trackbacks for this post

  1. Adding Bittorrent Support to My PogoPlug | a data-driven life

Cancel Reply