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 :)
11/01/2012 - Please note that a number of users appear to be having issues completing the steps described below on the latest incarnation of the Pogoplug (v4). Unfortunately I do not own v4 of this device, so I cannot experiment/resolve this issue. If you have any information to help get users working with this version, please post in the comments section below.
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 Windows, Linux and Mac)
- Once you have your selected terminal open, type the following (replacing “123.456.789.100” with your Pogoplugs IP address:
- When prompted for a password, use “ceadmin” and hit enter
Congratulations! You are now connected to your Pogoplug.
2. 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):
mount -o remount,rw /
mkdir /opt
mount /dev/mtdblock3 /opt
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
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.
Future posts will cover installing a BitTorrent client, SAMBA and a webserver :)
thank you. please explain how to install torrent client.
ReplyDeleteHi Jin,
ReplyDeleteSorry, 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 transmission
From 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
Hi Jin,
ReplyDeleteI'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.blogspot.com/2011/07/installing-bittorrent-client-on.html
Cheers,
Aaron
Works a treat, I installed an Apache webserver. Didn't take very long to install either.
ReplyDeleteS
Since Pogoplug only has 128MB NAND, how much space do you have to install these packages ? Do you install them on an external drive ?
ReplyDeleteHi Asim,
ReplyDeleteThe 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.blogspot.com/2011/07/installing-bittorrent-client-on.html), 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
Just ran through your tutorial - very nice, much easier than the old optware way, using a separate usb thumbdrive.
ReplyDeleteI 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 me
tar -xOvzf ipkg-opt_0.99.163-10_arm.ipk ./data.tar.gz | tar -C / -xzvf -
Thanks!!
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?
ReplyDeleteThanks a lot!!
Hi Anonymous :)
ReplyDeleteYou sure can, my.pogoplug.com continues to work just fine.
Enjoy!
Aaron
Can you help me?I have a pink POGO B01 When I type mkdir /opt I get an error
ReplyDeletemkdir: can't create directory '/opt': File exists
Thanks.
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?
ReplyDeleteAny ideas on navigating this new device? Thanks!
Can you help me? When I type in mkdir /opt I get error mkdir: can't create directory '/opt': File exists
ReplyDeleteHi @Fixsony,
ReplyDeleteDid you run the steps above multiple times?
Please could you run "ls -la /opt" and post the output of the command here?
Thanks,
Aaron
Hi @awhilliard,
ReplyDeleteI 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
After run "ls -la /opt"
ReplyDeletedrwxr-xr-x 2 root root 160 Jan 10 03:38 .
drwxr-xr-x 15 root root 1064 Jan 10 03:38 ..
Hi @Fixsony,
ReplyDeleteOk, 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"
?
Aaron Here are the results for the Pogo V4 you gave to awhillard...truncated a bit to fit
ReplyDelete~ # df -h
Filesystem Size Used Available Use% Mounted on
ubi0: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
after "mount /dev/mtdblock3 /opt" I got this:
ReplyDeletemount: mounting /dev/mtdblock3 on /opt failed: No such device or address
@Fixsony,
ReplyDeleteDo 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 :D
I'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
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:
ReplyDeleteDownloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages
wget: 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] url
Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable/Packages
wget: 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] url
Any Ideas???
Hi Barneysburgers,
DeleteApologies for the delay; I'm not actively monitoring this blog as it has moved to http://aaronrandall.com/blog/customising-your-pogoplug/
Anyway, this comment (http://aaronrandall.com/blog/customising-your-pogoplug/comment-page-1/#comment-304) could potentially fix the issue you are seeing. Particularly the following commands (to install the required version of wget):
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
Let me know if you try it and have any success (over on the linked page).
Regards,
Aaron
I've the same problem executing 3rd line here on my Plug Model: POGO-B01 Pink (v3.2.4.2).
ReplyDelete"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.
Hello Aaron,
ReplyDeleteThanks for the guide but i have the same problem as Fixsony. When i ran
mkdir /opt
I get
mkdir: can't create directory '/opt': File exists
so i ran ls -la /opt and df -h as asked and got
lrwxrwxrwx 1 root root 17 Jul 24 2011 /opt -> /tmp/mnt_opt/.opt
Filesystem Size Used Available Use% Mounted on
ubi0:rootfs 101.8M 12.4M 89.4M 12% /
none 61.4M 16.0K 61.4M 0% /tmp
I have the pogoplug pro so version 3
Thanks for your help.
Hi, Aaron,
ReplyDeleteHave 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
I too am getting the error:
Deletemount: mounting /dev/mtdblock3 on /opt failed: Invalid argument
To resolve this, I had to run the following command:
Deleteflash_eraseall /dev/mtd3 ****NOTE: mtd3 instead of mtdblock3****
Then the standard:
mount -t jffs2 /dev/mtdblock3 /opt
This let me mount the internal spare flash and use it.
Thankyou soooo muck to the above poster.... freed up my usb port! Yeah!
DeleteRegarding the 'wget' issue (after ignoring the mtdblock3 issue), I made a short-lived wrapper:
ReplyDelete#File /opt/wget
wget "$2" "$3" "$4" "$5" "$6" "$7" "$8"
and followed by:
PATH=/opt:$PATH
This will suppress the '--passive-ftp' option in a pretty dirty, but acceptable short-term manner.
Then you can do a:
/opt/bin/ipkg install wget
to get a fuller version of wget.
After that you can remove '/opt/wget' and make sure that your path points to '/opt/bin:$PATH'.
This is more effective
Delete/opt # vi wget
busybox wget "$2" "$3" "$4" "$5" "$6" "$7" "$8"
[ESC]wq!
where [ESQ] means pressing the escape key to change to vi command mode.
Change the path as above.
This is more effective
Delete/opt # vi wget
busybox wget "$2" "$3" "$4" "$5" "$6" "$7" "$8"
[ESC]wq!
where [ESQ] means pressing the escape key to change to vi command mode.
Change the path as above.
In case anyone else encounters a Permission Denied error while trying to execute ipkg (as I did), I found a solution here (first comment): http://www.pogoplugged.com/forum/thread/21862/ipkg-Permission-denied-error/
ReplyDeleteThe issue was that I let the Pogoplug mount the USB drive on reboot (I'm not sure how to mount it manually -- "mount /dev/sdb1 /opt" and "mount /tmp/.cemnt/mnt_sdb1 /opt" don't work), and as shown in the SSH session above the Pogoplug was mounting the USB drive with the "noexec" option. I had to remount the USB drive with exec rights for the ipkg executable on the drive to be able to run ("mount -o exec,remount /tmp/.cemnt/mnt_sdb1").
I am still not completely clear on how to supress the --passive-ftp option anonymous. can you clarify?
ReplyDeleteDid anyone ever figure out the problem:
ReplyDeletemount: mounting /dev/mtdblock3 on /opt failed: No such device or address"
Has anyone anyone solved the problem
ReplyDeletemount: mounting /dev/mtdblock3 on /opt failed: No such device or address
flash_eraseall /dev/mtd3 ****NOTE: mtd3 instead of mtdblock3****
DeleteThen the standard:
mount -t jffs2 /dev/mtdblock3 /opt
Worked great on my Seagate Flex Net (which also uses PogoPlug software): I was expecting to have to do some tweaking, but it does have a 219MB /dev/mtblock3 available
ReplyDeleteDon't forget to add a line like the following to /etc/fstab, so /opt is mounted automatically on reboot:
ReplyDelete/dev/mtdblock3 /opt auto defaults 0 0
Thanks, adding "busybox" in front of some commands helped me through the first part. Now trying to get samba working.
ReplyDelete/opt # /opt/bin/ipkg update
ReplyDeleteDownloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Packages
wget: unrecognized option '--passive-ftp'
Seems that the wget on Pogoplug 4 doesn't has --passive-ftp. How can I workaround this?
Thanks!
For everybody who is struggling to install SAMBA on Pogoplug 4, Pogoplug Pro and Pogoplug Office here's a very comprehensive step-by-step idiot-proof tutorial: http://www.razva.ro/how-to-install-samba-on-pogoplug-4/ :)
ReplyDeleteEverytime i try to get use of WGET i got the sollowing error m. :
ReplyDelete-bash: /usr/bin/wget: Permission denied
Has anyone an idea ?
Thanks !