(HOW TO) Turning a Pogoplug E02 into a music player.

KOWHeigel

High Gear of Your Soul
This guide should be good to go now. However use at your own risk.

Why a Pogoplug?
(1) Although a little harder to find now these are cheap. In fact, they are cheaper than a Raspberry Pi when you consider that for a Pi you need to buy a powersupply and a case.
(2) gigabit ethernet
(3) 4 USB ports
(4) low power plug device (like all plugs) This can't be overstated. Plug devices rock. They use like virtually no power. Can be left on 24/7. Small form factor. Awesome!
(5) Seems kind of hard to brick these things. If you do, most bricks can be recovered from. There is even a way to access the FTDI serial port in the plug with a little DIY skill. I will admit I wish these had direct serial port access like my sheevaplug but for some reason plug manufacturers seem to be moving away from that?
(6) The best reason IMHO is that there appear to be zero USB latency/resource issues that exist with the Pi. I can play Hi-Res material with absolutely zero issues using squeezelite. I could not do this with the Pi. I got MPD to play Hi-Res on my Pi but not 100% of the time. Even with the firmware update the Pi wasn't able to play Hi-Res perfectly. The pogoplug seems perfectly suited as a squeezelite device. Did I mention it's cheap?

______________


This thread will probably be a work in progress for a little bit. My goal is to create a thread like BadassBob did with the Raspberry Pi.

Things you will need:

(1) A pogoplug E02 (pink or gray). The other versions will not work with this tutorial. I think these are getting harder to come buy but I did find some at pretty cheap prices still on ebay.

(2) A USB dac and appropriate USB cable. I am using the Schiit Modi and it works flawlessly. I also have a HRT Music Streamer II that I have used with linux for the past couple of years with zero issues. Many USB dacs work natively on linux with zero need for specific drivers, etc. There are a few rare birds that don't so make sure you google your model to see if others have had success.

(3) flash drive or USB harddrive.

(4) Digital Music

(5) The other parts of a hi-fi system. Amp, pre-amp, speakers. The Pogoplug will become your "source."



Most, if not all, of my information has come from two places (big thanks to the archlinux arm project and to the author of the qnology blog):

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

http://archlinuxarm.org/platforms/armv5/pogoplug-v2-pinkgray

This guide utilizes Archlinux Arm as the distro. You can do this with Debian (and other) variants if you so choose. I like archlinux, as I learned linux on Gentoo, and archlinux is probably the closest pre-built package based distro to Gentoo. Archlinux has a powerful package manager (pacman) and a very good community both on the forums and in wiki's. I am not nearly as up to date on linux stuff now as I was (no time!) but I have a pretty good working linux knowledge base from using it for the past 10 years. I am not a computer programmer just a guy who likes computers.

Installing Archlinux
(1) Plug in an ethernet cord to your pogoplug and turn on the device. You will need to find the IP address that your router gave it. You can usually find the ip address by going to your router's web management page (i.e 192.168.1.1) and looking at something like a DHCP table. I have a lot of internet connected devices at my house so I get a lot of entries. I "know" most of mine offhand because I have lot's of linux devices that I SSH too. If you can't figure out what one is your plug by just looking you may (I can) click on the mac address (in your routers web management page under a DHCP table) and it should look up the manufacturer. It will say something like "cloud engine" in the description. That is your plug.

(2) you then need to SSH into your device. If you have a linux box then it's really simple:

Code:
ssh -p 22 root@192.168.1.5

where 192.168.1.5 is the actual IP address of your plug

If you use windows you need to use a program called putty . Putty is fairly self-explanatory for SSH. Just type in the IP address of yoru plug. Make sure the port is at 22 and that the SSH radial button is selected.

DEFAULT login for pogoplug should be root/ceadmin

Now that you have logged in you need to do the following: (lines that start with ** are simply telling/explaining what a given command is doing)

Code:
** Stop the Pogoplug software
killall hbwd

** Install UBoot [this allows us to boot a linux distro other than the proprietary software that comes with the pogoplug by default
cd /tmp
wget http://jeff.doozan.com/debian/uboot/install_uboot_mtd0.sh
chmod +x install_uboot_mtd0.sh
./install_uboot_mtd0.sh

**Would you like to disable the Pogoplug services? [Y/n]
**n - to keep original Pogoplug software 
**when booting without USB drives attached
**y - if you're not planning on ever using the stock
**Pogoplug software again
** I have chosen to hit n. I think this keeps the pogoplug software on the nand in case you ever want to revert back

Now you need to Plug in USB Flash Drive or Hard Drive and you need to connect to the back bottom USB port.

If you plan to setup the Pogoplug as NAS using SAMBA with a hard drive, my recommendation would be to install ALARM directly on the hard drive and skip using a USB flash drive. This will avoid some potential boot up issues. To do this, create two partition, a small 4GB partition for ALARM and the rest for data.

Another way to think about this would be this. Do you plan on having your music files stored and served to your pogoplug from a USB harddrive attached to the plug? or are your music files somewhere else? (my files are all being served by a sheevaplug via NFS from my basement) If you are going to have your music files stored on a USB harddrive attached to the pogoplug then you should create two partitions on that drive. If not, then I would use a cheap flash drive and have only one partition. The real point here is, use one drive not multiple, as multiple sometimes causes confusion when U-boot attempts to boot.

At this point this guide will focus on those of you who plan on storing your music locally (i.e. attached to the plug) on a USB harddrive. I think this is probably the majority of folks. If you have your files somewhere else the same basic principles apply you will just have one partition instead of two, and you will need a way to access those file remotes (i.e. NFS or samba) I can, and may, edit this tutorial at some point to describe accessing remote files but there any many variables to this kind of setup. If anyone has any specific questions I will do my best to answer them. Beware that my windows knowledge is very limited as I don't use it so if you are storing your music files on a windows box I probably can't help you.

REMINDER: You should now have your drive attached to the plug. Bottom USB port. BEWARE: The next step will destroy ALL DATA on your drive. You should be using a drive with no data that you want to keep on it

Code:
** this command fires up the disc partitioning program
/sbin/fdisk /dev/sda
## type o to erase all partitions
## type n to make a new partition
## type p for a primary partition
## type 1 to create the first partition
## hit enter to start at default
## type +4G to make the partition 4 Gig (this is where archlinux arm will be installed. The rest will be for your date (music)
## type n to make a enw partition
## type p for a primary partition
## type 2 to create the second partition
## hit enter to start at next default
## hit enter to fill rest of disc with second partition
## hit w to make this changes permanent and write to disc

Code:
**Format USB drive
cd /tmp
wget http://archlinuxarm.org/os/pogoplug/mke2fs
chmod 755 mke2fs

**format and label partition
./mke2fs -L ROOTFS -j /dev/sda1

** format data partition
./mke2fs -j /dev/sda2

** mount usb drive
mkdir -p /tmp/usb
mount /dev/sda1 /tmp/usb

Code:
** Download and install Arch Linux ARM (aka ALARM):
cd /tmp/usb
wget http://archlinuxarm.org/os/ArchLinuxARM-armv5te-latest.tar.gz
** this next command may take a while
tar -xzvf ArchLinuxARM-armv5te-*.tar.gz
rm ArchLinuxARM-armv5te-*.tar.gz
** this next command may also take a whiile
sync  
cd ..
umount /tmp/usb
/usr/sbin/reboot
## the second time I did the install this command was not there. ldatlof said just plain old reboot (without the /usr/sbin) worked for him but I couldn't find reboot at all. So I just unplugged the pogoplug and plugged it back in. This should be fine as all data was written to disk with the sync command

Huge thanks to AK member greenmark59 who graciously sent me (at his own expense) a pogoplug E02 because he knew I was interested in trying out the unit. This was a complete act of kindness and generosity and is one of the reasons why I love AK.
 
Last edited:
I am looking forward to this thread. I want one of these to run squeezelite. It is even cheaper than the raspberry pi and comes with its own case and power supply.

Thanks for putting this up.
 
There is a very good chance that your IP address for your plug has changed. You will need to go into your router again and see what address was assigned to your plug. You may be able to just try pinging the host "alarm" to get it but this did not work for me. YMMV.

Once you find out the ip address you need to SSH into the pogoplug again. The default user pass for archlinux is: root/root

Now that you have booted into your archlinux install the first thing you should do is change your root password. Choose your root password like you would your password for your online banking (secure!!!).

Code:
passwd

Now we should add a regular old user as root should only be used when necessary

Code:
useradd -m -g users -G wheel,audio,storage -s /bin/bash bob
** where "bob" is the name of the user you want to creat
** not let's give bob his password
passwd bob
** now let's see if we created the user right and try logging into bob
su bob
cd
** you should now be in in /home/bob 
** to check
ls
** now let's switch back to root because we need to install some things
su

At this point we are going to install some stuff. Some of this might not be necessary for everyone but quite frankly it won't hurt ya. If you are following the two guides I posted the part about linux-hearders-kirkwood must be outdated as that package no longer exists. It's fine we don't need it. We will be using pacman .
Code:
** update repositories
pacman -Sy
** get some needed packages and update some base stuff. When prompted about replacing things you can safetly say Yes.
pacman -S linux-kirkwood ntp yaourt base-devel nano wget
** now let's set our timezone. The below example is for EST. 
timedatectl set-timezone America/New_York
** if you live somewhere else you can find your options by doing
timedatectl list-timezones
** pogoplug does not have a hardware clock so we will use ntp.
systemctl enable ntpd
systemctl start ntpd
** I'm not sure if this is necessary or not but I did it and it sure doesn't hurt. This command apparently tells ntpd to wait until after your network is up to query for the time. Makes sense to me.
echo "ExecUpPost='/usr/bin/ntpdate -u pool.ntp.org'">>/etc/netctl/eth0

No we are going to edit fstab . fstab can definitely be confusing at first. The important thing you should know for now is that this is the file that tells your system where, when, and how to mount your discs. In windows this is all done behind the scenes. With the plug you will directing the action. So exciting isn't it. :D Moreover, we will also be using a text editor. The editor that I prefer, and I think is the easiest, is nano

Code:
nano -w /etc/fstab

YOUR FSTAB SHOULD LOOK THIS - EACH ENTRY ON ITS OWN LINE said:
LABEL=ROOTFS / ext3 rw,noatime 0 1
/dev/sda2 /media/storage ext3 defaults,noatime 0 2

You can exit out of nano by doing
Code:
ctlr and then X

let's make sure you saved fstab right
Code:
cat /etc/fstab
** this should spit out the contents of fstab. It probably isn't justified right but don't worry about that, just make sure the file as what you wrote in it.

Now let's create that folder "/media/storage" where all your music and goodies are going to go

Code:
mkdir -p /media/storage
** if you get permission errors trying to copy stuff to /media/storage you can do this
chmod -R 777 /media/storage
** this isn't advised because it basically allows unrestricted access. But we are safeguarding fort knox here so it isn't probably an issue.

Now let's see if we did the fstab entry right
Code:
mount /media/storage
cd /media/storage
ls -all
** you should get some kind of output on screen maybe a Lost+Found folder. Or just a couple ..
** let's double check
mount
** this will tell you what discs (and other stuff) are mounted
df -h
** this will list your drives and the storage used and available in human readable form
** if all these come back as expected you have successfully mounted your second partition on your usb drive.

We need to tell U-Boot a couple things
Code:
** first tell u-boot that our / filesystem is ext3
fw_setenv usb_rootfstype ext3
** apparently u-boot mistakenly thinks the pogoplug is some other plug which messes with the led light. this fixes that.
fw_setenv machid dd6
If the above didn't work. (It did on my first plug but not on my second one ... run these commands (thanks ldatlof!)
Code:
pacman -Sy uboot-env
echo "/dev/mtd0 0xc0000 0x20000 0x20000">>/etc/fw_env.config
fw_setenv usb_rootfstype ext3
fw_setenv machid dd6
Now let's reboot again to see if everything is still peachy
Code:
reboot

** remember you will now login in with your regular user "bob" using his password. If you need to get to root you issue the command "su" and enter root's password.

** at this point you should be back in your archlinux install as long as everything went ok. Your usb drive should be mounted on both / and /media/storage. Remember you can check by using the "mount" command. You should be updated to the newest kernel and have the necessary base packages installed. We will next install the necessary components to actually start listening to music. You are almost there.
 
Last edited:
Thanks for posting this. I've been using the Vortexbox "Vamp .4" for quite awhile. Thinking of upgrading to "Vamp .6" in hopes that my Schiit Modi would be supported.

Maybe I'll just reload one of mine with your instructions. Looks like you run the Modi?
 
Very nice write-up. The Pogoplug's are amazing deals when you can find them. I think Amazon had them somewhere between $20 and $30 sometime within the last month IIRC.
 
ok I'm back.

We are now logged into our archlinux install (again) (remember you will need ssh in everytime you reboot). We have updated our kernel. We have updated our fstab. We have done some uboot stuff. We are now ready to get some music going.

** for this guide I am assuming you are using a wired connection. You can use wireless (if you buy a usb dongle) and there are many ways to do so. I do not plan on trying to to explain the countless ways to get wireless working. You can google it and it should be fairly easy. **

Code:
su
** update your install to latest packages
pacman -Syu
** install some needed audio packages
pacman -S faad2 libmad mpg123 libao alsa-utils avahi mpd
** plug in your dac if you haven't already. This will see if its detected. Also let's make sure it's unmuted.
alsamixer

If your dac doesn't show up with alsamixer you have a problem. Check to make sure it's powered on (if it isn't just usb bus powered). Check to make sure the usb cable is plugged in correctly. Check to see if the command (lsusb) shows it. Check google. Post here.

Code:
** download squeezelite
su bob
wget https://squeezelite.googlecode.com/files/squeezelite-armv5te
chmod +x squeezelite-armv5te

download and install LMS software. Two options
Code:
[color=red]** option one. The easiest and most likely to just work but does rely on someone elses precompiled binary. I recommend this option.
** we need to be root for pacman
su
pacman -U [url]http://dl.dropbox.com/u/42238/pogoplug/v2/logitechmediaserver-7.8.0-3-arm.pkg.tar.xz[/url][/color]
[color=green]** option two. Don't do both just one or the other
pacman -S yaourt
** always use yaourt as a regular user
su bob
** this will attempt to install and build (from source) LMS from the archlinux [url=https://wiki.archlinux.org/index.php/Arch_User_Repository] aur [/url]. This will probably take a long time (hours) so I would suggest the first option unless you are a masochist.
yaourt -S logitechmediaserver[/color]
** ok whether you chose option 1 or 2 the next steps are the same.
** we are going to start LMS and enable it to start everytime we turn on our plug
systemctl start logitechmediaserver
systemctl enable logitechmediaserver
** now your are going to login into the LMS webui and setup the server. This is pretty easy. Just make sure you point the server at your correct directory for music. In this example its /media/storage
[url]http://ip-address-of-your-plug:9000[/url]

You need to initiate a library scan. This can take a long time. It's best to just let it do it's thing before trying to Now we are ready to start squeezelite and hope that it connects to our LMS install and we can play some music.

Code:
** if not already your regular user su back to him/her
su bob
** check out this [url=https://code.google.com/p/squeezelite/] page [/url] for what the options mean and what the other one's are. My command directly accesses your USB Dac (which should be the only audio device) allowing for bitperfect playback. I am using a slightly increased audio buffer to allow for smooth hi-res audio playback. I am also creating a general log in case you want to see what's going on or in case of problems. If there are big problems we can change the level to debug. I have also daemonized the program -- which just means it runs in the background. 
./squeezelite-armv5te -o hw:0,0 -a 120 -d all=info -f squeeze-log.txt -s 192.168.1.5 -z
** where 192.168.1.5 is the ip address of the computer running LMS. In this example it's our pogoplug. You might not need this but I do when LMS in on another computer. It certainly doesn't hurt.

now fire up your favorite android, I-os, or the webui app and try to play some music. You should obviously have your dac hooked up to your integrated amp or pre-amp at this time. I would start with the volume low in case anything goes awry (always a good idea right!)

If you have sound then you are in luck. With my instructions so far the only thing you would need to do upon a reboot would be to the re-run the "./squeezelite-armv5t3 -o hw:0,0 -a 120 -d all:info -f squeeze-log.txt -s 192.168.1.5 -z" command. There appears to be a script for this but I haven't messed around with it yet as I leave the plug on 24/7. If I get the chance I will take a look at it and see if it work with the needed variables.

If you don't have sound first make sure that your LMS program is still working. You can check that through the webui or your app. Make sure your plug is recognized by the server. Once again this can be checked through either the webui or the app (at least the squeezecommand app does this which is the one I use). If both those things come back as expected then check stupid things like you have the right input on your amp selected (duh ... I have done this before). If still no luck go back and use the alsamixer command (as root) to make sure your DAC is still recognized and is unmuted.

No luck still. Re-trace your steps. Check your log you created with the squeezelite command. Post here.

I will do the MPD right up in the next post.
 
Last edited:
Very nice write-up. The Pogoplug's are amazing deals when you can find them. I think Amazon had them somewhere between $20 and $30 sometime within the last month IIRC.
Yes they are. I just got one from that auction site for $28.50 shipped. :banana:

I started with ArchLinux and everything worked great but I couldn't get my wireless dongle to work (Ralink RT5370) which was a deal breaker for me.

So I loaded in Debian/Wheezy as the OS and I was able to get the wireless dongle to work. Seems to be working really well. Plays 24/96 files just fine but the Behringer DAC can only go to 48 kHz. No dropouts.

Total Cost was $53.70. I already had the WiFI Dongle and Flash drive. A great deal compared to the cost of a used SBT.

Thanks again for the thread. :tresbon:
 
I went back to archlinux

I bought a wifi dongle that was known to work with Archlinux (Edimax EW-7811Un with a Realtek RTL8188CUS chipset) because I liked the way Archlinux worked. This added another $9.99 to the project.

I installed webmin which lets you monitor the pogo via a browser. I also installed a script that makes the LED flash orange when there is disk activity. It seems that this can't be done in the Debian distro.

WARNING: using the blinking LED script can effect the ability of the pogo to boot without a usb stick (i.e. uboot or recovery) which will require a serial cable or netconsole to fix. Do not use if you don't want the hassle.

Lastly, I added color to the bash prompt so the terminal is no longer just white letters and numerals. This lets you see which files are executable and which are really directories. The instructions for installing webmin, making the LED blink and adding color to the bash prompt are here.

I have both the RaspberryPi and the Pogoplug running Squeezelite and if I had to choose one for running Squeezelite only I would choose the Pogoplug. Its cheaper (less than $30 for the ARM, case and power supply) and is very easy to set up. It works right out of the box.

Thanks again to the OP for suggesting the Pogoplug.
 
Last edited:
I haven't 100% checked my writeup yet but I think it should be pretty much good to go as is. If anyone wants to give it a shot (or to just check for stupid typos) I would greatly appreciate it.
 
I got it working. :music:

I will send you a PM with my comments. Great write up overall. :tresbon: :thmbsp:
 
Thanks to ldatlof for being a test dummy for me. I have read over his comments and will incorporate them into my how-to.

Also, I just found a good deal on a pogoplug E02 on the ebay lastnight so i scopped it up for ~$30.00 and therefore I will be my own test dummy with my instructions when it gets to me. If everything goes smooth the instructions will be ready for prime time. I know that these are getting harder to find but for somewhere between $30-50 with a USB dac these make a pretty killer system.

There are also many other plug computer type devices coming out now and in the recent past. The Cubox-I looks very interesting, wandboard [which I think squeezelite was actually developed for]), beagleboard black, paralella board, and more.
 
Alright this guide should be ready for prime time.

I will note one hiccup that I ran into recently. I am demoing a wavelength proton which is linux compatible and worked right out of the box on my sheevaplug and laptop however I was having the hardest time with the pogoplug. Turns out that certain async dacs have issues with arm devices when you don't use a usb hub. I found this out from some random post by triode on the slimdevices forum. Using a hub has solved my issues and the wavelenght works great on the pogoplug. So if you see your device, can control your device, but can't get sound maybe try a hub.

I should also mention that if you get a pogoplug E02 off from ebay and its used there is a good chance that is was registered to that person (or someone else) and that SSH was either turned off or the login information changed. Moreover, you won't be able to register the device my.pogoplug.com. However, you have two solutions. Before you buy one make sure you request that the person you are buying from unegisters the device. Send them this link If you get the device and you still can't SSH or register it they didn't do it for you. Your second option is follow these instructions which basically just involves emailing the pogoplug people. This is what I had to do. Amazingly someone responded to me in less than 5 minutes and the device was good to go in less than 10 mins. After the device becomes unregistered you will need to register it and turn back on SSH instructions for doing that are here

A couple more thoughts.

I would advise changing the default SSH port for security reasons. You just need to edit two files:

Code:
su
** find the field that says Port and change it to something like 3000
nano -w /etc/ssh/ssh_config
** same thing ... find field that says Port and change it to same thing you did in the other file, i.e. 3000
nano -w /etc/ssh/sshd_config
systemctl restart sshd
 
Last edited:
Sounds like you are enjoying your TWO new little toys - GREAT!!!!

I use my PogoPlug with MPD (just more familiar with it than LMS/Squeezlite) and use it nearly every day and I just leave it plugged in and running and haven't had a problem with it over the last year I've had it up and running. I have only a 500 gig hard drive now connected to it (almost filled) and keep it synched to another USB hard drive so that I have a backup of my music.

Thanks for the write up and I hope others will benefit from it.
 
Sounds like you are enjoying your TWO new little toys - GREAT!!!!

I use my PogoPlug with MPD (just more familiar with it than LMS/Squeezlite) and use it nearly every day and I just leave it plugged in and running and haven't had a problem with it over the last year I've had it up and running. I have only a 500 gig hard drive now connected to it (almost filled) and keep it synched to another USB hard drive so that I have a backup of my music.

Thanks for the write up and I hope others will benefit from it.

Yep, these are pretty sweet little music machines. I was also flabergasted with the quick and helpful response from the pogoplug support. I thought that I was SOL for a little while when I realized that the supposedely "refurbished" unit I bought of ebay was really just used and not unregistered. I wish they still made this exact machine and didn't "upgrade" their line --- and by upgrade I mean less ram and a slower processor ;)

Thanks again for original plug. This is really the first how to I think I've ever written. I hope someone finds the info useful.
 
I totally bricked my Pogo. I could't boot from a USB stick or into recovery mode so netconsole wouldn't work. I had to make a serial cable and I got it to boot into recovery mode with the help of bohdi over at the Jeff Doozan forum.

So its a fresh install for me. Back to the top of the thread.
 
I totally bricked my Pogo. I could't boot from a USB stick or into recovery mode so netconsole wouldn't work. I had to make a serial cable and I got it to boot into recovery mode with the help of bohdi over at the Jeff Doozan forum.

So its a fresh install for me. Back to the top of the thread.

Wow. Can you send me a PM regarding how your recovered. I know how to make the serial connection but don't know the next step if I need it. Even a link to the thread or whatever on the Jeff Doozan forum would be great. Thanks!


EDIT:

Also, I hate to say it but I see and hear of people having problems with the Pi and I think to myself ... most of those problems would be solved when using the Pogoplug as your player. I wish this E02 wasn't discontinued. I have thought about getting the new currently available version 4 and seeing how that works as even though the cpu is slower and it has less ram I think it would be fine as long as decoding was done on LMS computer.
 
Wow. Can you send me a PM regarding how your recovered. I know how to make the serial connection but don't know the next step if I need it. Even a link to the thread or whatever on the Jeff Doozan forum would be great. Thanks!


EDIT:

Also, I hate to say it but I see and hear of people having problems with the Pi and I think to myself ... most of those problems would be solved when using the Pogoplug as your player. I wish this E02 wasn't discontinued. I have thought about getting the new currently available version 4 and seeing how that works as even though the cpu is slower and it has less ram I think it would be fine as long as decoding was done on LMS computer.

PM sent. I am now using my pi to run XMBC instead of using it to run squeezelite. It runs XMBC much better than it runs squeezelite. The pogo is great for running squeezelite. You also get 5GB of cloud storage with the pogo. Bonus!
 
Got both over the past year. The last one a couple months ago. The model on the bottom label is E02. If you read the reviews you will see others got the same model. I believe they changed the model on the box but both of mine were the original version. They are black.
 
Back
Top Bottom