Turning a Pogoplug Into a Music Player
2013-06-18 (Paul Saletan)
The Pogoplug Classic is a popular item on eBay and online retailers, often selling for less than $20. It was marketed as a way to share media like external hard drives on your home network (it has several USB ports). The company behind it hopes you’ll use their service to back up your files in the cloud. But hobbyists discovered they could root it, install their own version of Linux, and use it for much more than a file server.
I’ve been running a music server called Vortexbox. It allows me to rip and stream my CD collection. However, I had to dedicate a second computer as the music player, connected directly to my home stereo receiver. Then I found that the lead author of Vortexbox had converted a Pogoplug into a player with features rivaling the Logitech Squeezebox. I followed his step by step for installing the software and turning a PogoPlug into a “VAMP”. For under $50, I’ve replaced the bulky and energy-inefficient computer/receiver setup with a PogoPlug, a USB audio adapter, and a tiny amplifier.
The VAMP is lightweight. It can run on modest hardware like the PogoPlug because it passively receives and plays the streams fed to it by a server like Vortexbox. You’ll need to also install the Vortexbox .ISO image, or other software with the Logitech Music Server. I have my Vortexbox running in a 512mb KVM virtual machine. These instructions cover only the VAMP player. The only thing you need for that is the PogoPlug device plus a USB stick with a capacity of at least 4 GB. I recommend you read and follow Andrew’s instructions. Mine are copied from his, with minor additions to the post-installation procedures.
Buying the PogoPlug
Be sure you purchase a PogoPlug with the right CPU. There are several different PogoPlug models that look almost the same on the outside. Even more confusing, the model number shown in the ads may not match what you receive in the box. You want the Pogoplug version 2, with an ARMv5-compatible processor, not a more recent Pogplug. The model number is printed on the bottom of the Pogoplug (along witht its MAC address) and should start with “POGO-E02”. Mine is pink, a good indication that it’s a v2. If that shade bothers you, and you don’t want to re-paint it, you’re free to order one in a more manly color. However, this increases the chance you’ll receive one of the later, incompatible versions.
Install a new boot loader
Assuming you already have a router on your home LAN running a DHCP server, connect the Pogoplug to it with the LAN cable that comes in the box, and power it up. Wait for the light on the front to turn green. Open a web browser from your regular computer and connect to your router’s web interface. Find the Pogoplug’s IP address by searching for its MAC address in the DHCP list of dynamically assigned addresses.
SSH from your computer into the Pogoplug root account, using the pre-configured password. Mine was “ceadmin”.
Run these commands after logging in:
cd /tmp wget jeff.doozan.com/debian/uboot/install_uboot_mtd0.sh chmod +x install_uboot_mtd0.sh export PATH=$PATH:/usr/sbin:/sbin ./install_uboot_mtd0.sh
You’ll be prompted on the last step. Answer “ok” and “y” to disable Pogoplug services. Then finish up with these commands:
fw_setenv arcNumber fw_setenv machid dd6
Prepare the USB stick.
Download the latest VAMP image from the link on this page. To install it in Windows, you can use the USB Image Tool Andrew recommends. On Linux, you have several options, including the Ubuntu usb-imagewriter package.
After writing the image, you can check the results. I’m using version 3.0 of the VAMP software. My Ubuntu 12.04 computer automatically mounted it (as /media/rootfs). Two partitions had been created, according to Ubuntu Disk Utility: “rootfs” (3.2 GB ext3); and 268 MB Swap partition.
Booting the VAMP for the first time
Insert the USB stick into one of the Pogoplug’s USB ports. If you’re still connected to it by SSH, type
rebootand press the
Enter key. After a minute or so, try re-connecting:
You’ll receive a warning that the SSH key on the host has changed. If necessary, delete the old key from your
~/.ssh/known_hosts file and retry. The password is
The PogoPlug has no audio jacks – what do you expect for 20 bucks? You can remedy this easily by adding a USB audio adapter. I bought this USB adapter with a Cmedia chipset for under $10. It has two jacks: the green one’s for output to headphones or speakers; the red one’s for microphone or other input. I’m no audiophile, but I find the sound more than adequate. I like it enough that I bought a second one for my regular computer, because it produces much less miicrophone hiss than the audio built into my motherboard.
Use a standard 3.5” stereo cable to connect the USB audio device to your receiver, amplifier or powered speakers. Run the
alsamixer command to configure audio levels, using the cursor keys. I’d read warnings that default sound output is much too loud. I experienced just the opposite. My mini-amplifier is a Lepai 2020A+. I have output set to about 60% of maximum. When you’re done tweaking, don’t forget to run the
alsactl store command to save the settings so that they’ll be used the next time the device reboots.
Squeezelite, the Logitech Squeezebox emulator, is the app that plays your music, and it does so efficiently, consuming a very small percent of CPU time. If you have problems connecting to your VAMP, you’ll need to know how to restart the player. Login and type these command to find `the process ID under which it’s running, kill it, then restart the player.
pgrep squeezelite kill <PID> /usr/sbin/squeezelite -n VAMP &;
The software is rapidly improving. Chances are you’ll want to upgrade squeezelite periodically, without re-installing the entire operating system. Stop the server using commands like the above, then download, backup and replace the existing squeezeplayer with the new code:
cd /root wget https://squeezelite.googlecode.com/files/squeezelite-armv5te cd /usr/sbin mv squeezelite squeezelite.BACKUP cp /root/squeezelite-armv5te squeezelite chmod u+x squeezelite