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 Windows, Linux 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.
thank you. please explain how to install torrent client.
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
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
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
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 <
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.
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
Works a treat, I installed an Apache webserver. Didn't take very long to install either.S
Since Pogoplug only has 128MB NAND, how much space do you have to install these packages ? Do you install them on an external drive ?
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
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!!
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!!
Hi Anonymous :)You 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 errormkdir: can't create directory '/opt': File existsThanks.
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!
Can you help me? When I type in mkdir /opt I get error mkdir: can't create directory '/opt': File exists
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
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
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 ..
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"?
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
after "mount /dev/mtdblock3 /opt" I got this:mount: mounting /dev/mtdblock3 on /opt failed: No such device or address
@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
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???
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
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.
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.
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
Has anyone solved the problem getting the “mount /dev/mtdblock3 /opt” command to work.?
Hi Mike,
Which version of the Pogoplug do you have? And have you previously modified the Pogoplug?
Thanks,
Aaron
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.
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
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.
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
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
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
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
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
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
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 🙂
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.
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
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
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
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!!
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
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.
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
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.
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
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
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
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.
Hi Kailan,
It looks very similar to the V4 internally I believe, so my instructions should still apply.
Cheers,
Aaron
Hi Aaron,
When i do the first step, cd /opt
i get -sh: cd: can’t cd to /opt
Thanks
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?
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
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
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.
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 🙂
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?
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?
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.
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
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.
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.
Ok i figured it out. I was getting:
/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’
I went ahead and manually edited the armal-feed.conf located in /opt/etc/ipkg and removed a corrupt line. Edit file and there should be two lines:
src cross http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable
src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/native/unstable
i believe the >> was a mistake in the instructions it should only have one > which may have caused the corrupt line.
I am not installing SAMBA! =) Thank you!
-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 got it all working. including Samba. After replacing the ipkg and wget applets, reformatting the USB stick to NTFS – Here is what I did that worked for me:
rmdir /opt
df -h
mount -o remount,rw /
mkdir /opt
mount /tmp/.cemnt/sda /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/cro
ss/unstable” >> /opt/etc/ipkg/armel-feed.conf
echo “src native http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/na
tive/unstable” >> /opt/etc/ipkg/armel-feed.conf
busybox | head -n1
cd /tmp/
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/w
get_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
cp /opt/lib/libipkg.so.0.0.0 /opt/lib/libipkg.so.0
ipkg install libnsl
/opt/bin/ipkg install samba2
cd /opt/etc/samba/
cp smb.conf smb.conf.backup
cp smb.conf smb.conf-ORIGINAL.backup
df -h
/opt/etc/init.d/S80samba start
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
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
———
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.
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!
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
Hi Koen,
Yep, I’ve got a pink V2 Pogoplug, so you should be fine 🙂
Cheers,
Aaron
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
Oh btw, I’m using PogoPlug Mobile. 🙂
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
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!
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
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
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?
nevermind, i found the answer in Artur’s comment above.
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.
(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‘
Hey,
Try the following to update 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
Then you can try updating ipkg again. Let me know how that goes 🙂
Cheers,
Aaron
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
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
Hey I just fixed it following this (look at Raj and Eurides comments for extra help):
1) manually download: http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk
2) use 7-zip to extract the .ipk
3) use 7-zip to extract the data.tar.gz
4) use winscp to ssh into pogoplug
5) copy contents of /opt folder to /opt folder on pogoplug
6) run ln -s /opt/bin/wget /usr/bin/wget
7) change permission of /opt/bin/wget to allow execute
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!
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?
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
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.
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
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
Hi George,
Great, glad to hear that’s working for you, thanks for sharing 🙂
Aaron
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
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.
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
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
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.
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.
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
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‘
Hi Rob,
You should be able to do the following to update your 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 how that goes 🙂
Aaron
Hi Aaron,
Thank you for your help, I now receive the following error:
bash-3.2# mv /usr/bin/wget /usr/bin/wget.old
mv: cannot rename ‘/usr/bin/wget’: Read-only file system
I tried to remount: bash-3.2# mount -o remount,rw /opt
but no luck so far. Do you have any suggestions?
Hi Rob,
Is your root filesystem mounted read/write? If not, you’ll have to do this first:
mount -o remount,rw /
Cheers,
Aaron
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
Nevermind, worked it out
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
P.s I’ve done a chmod 777 just incase, but that never worked. Also, which wget/ipkg brings nothing…
A little hacking around and it’s working 🙂
Cheers!
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
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!
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.
confirmed. aaron should update the instructions to reflect this.
Ah yes, thanks for the feedback! I’ve fixed that now 🙂
Aaron
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.
Great post Aaron. It really helped me out.
Matt I’m curious how your scripts are working out. No problems?
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
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.
Hey Matt,
Awesome, thanks for sharing! A bunch of people have been asking for this, so it’s great to have a solution 🙂
Aaron
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 !!
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
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
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
Sorry I didn’t mean to leave duplicate posts, I just wanted to add email notification of reply.
Michael
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?
The password “ceaadmin” does not work what do I do now?
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
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.
Yes I sign as root and use the password ceadmin and I get the message “access denied”
Try root and the password you use when you sign into my.pogoplug.com
The PoGo plug password didn’t work either.
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?
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 🙂
Click on (change password) and not the big CHANGE PASSWORD icon.
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.
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
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?
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
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 …
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
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.
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…
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.
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?
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.
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
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.
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 …
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.
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 🙂
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.
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
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
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.
What is the output of mount ?
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?
Hi Brian,
See Matt’s comment above:
http://aaronrandall.com/blog/customising-your-pogoplug/#comment-1328
Cheers,
Aaron
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 $?
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”
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.
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.
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.
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”.
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. 🙂
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?
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).
Argh, typoitis today.
You’re just going to *add* the
sh /etc/mount.sh
line below the existing start line…
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
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.
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!
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.
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
;;
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.
Sounds like you’re in command mode – be sure to enter Insert mode by hitting i before you try to enter anything.
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.
I believe what I did was this command…
cp /opt/lib/libipkg.so.0.0.0 /opt/lib/libipkg.so.0
I think it should work after.
Thanks.
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 🙁
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
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 🙁
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.
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? 🙂
Try the manual update for wget using the commands in the
If you DO NOT have version “BusyBox v1.7.0″ (e.g. “BusyBox v1.16.1″)
section, but replace
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk
with
busybox wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk
since you said that works.
Then go back and reinstall ipkg with the commands in
3. INSTALLING A PACKAGE MANAGEMENT SYSTEM
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.
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)
Why is it listed multiple times? How do I get rid of that?
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.
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).
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!
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
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?
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
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
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.”
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
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!
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
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
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.
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).
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.
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
Hi Anthony,
You should be able to run:
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk
to download the package (I just tried and it worked fine for me). There was an extra line break in my instructions (which I’ve now fixed), perhaps that was the issue?
Aaron
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
Yep, it looks like the extra line break is causing issues, copy, paste & run the following:
wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/wget_1.12-2_arm.ipk
Hi Aaron, Thanks, I got it right
Thanks you so much
Great 🙂
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!
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
Can you put it in .profile?
/root/.profile works! Thanks
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.
Super tutorial, thanks!
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
Answer can be found here:
http://stackoverflow.com/questions/5068951/what-do-entities-lt-and-gt-stand-for
< stands for the less-than sign ( )
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!
Problem solved, I copied the sources from eurides post.
Then ran: /opt/bin/ipkg update
Followed by /opt/bin/ipkg list
Thanks guys ;o)
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 #
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.
:), 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. 🙂
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
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
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
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
oops , I meant comment out the fi/if
I only bricked one so far 🙂