Pogoplug[ged]

Keywords: #ARM9 #cifs #feroceon #hfs+ #JTAG #Linux #marvell #ntfs #orion #osx #pogoplug #samba #smb

So I recently bought a Pogoplug device, sort of on a whim. I needed a NAS device, and the fact that the Pogoplug had HFS+ (OS/X filesystem) support made it a clear winner for me. I’ve been living with mine for about a week now, mostly with single 320GB HFS+ formatted drive. The $130 device runs Linux, is supported as open (they give you the default root login and password on their site) and sports 256MB of RAM, 32MB of flash for the OS/on-board software, and what I’m pretty sure is a 1.2Ghz variant of the ARM926EJ-S in the form of a Marvell Orion/Feroceon 88F6281 SoC. You have 4x USB2.0 ports hanging off of the Marvell Orion EHCI controller giving you four directly connected ports, you can also connect USB2.0 hubs for more. Ethernet connectivity is provided by the Orion SoC’s integrated Gig-E. All of this hardware puts it in the same category as many more expensive devices, without any mind burning annoying-as-all-heck blue LEDs either.

CloudEngines saw fit to include relatively robust filesystem support sporting HFS+, NTFS as well as the usual ext2/3, FAT/FAT32/VFAT. HFS+ is provided by custom kernel modules, that work better than their cousins integrated into the Linux kernel (I’ve had some experience with them). I haven’t yet tested the NTFS support.

The really unique thing about the Pogoplug is that it is completely integrated with the Internet. The API system allows you to write your own scripts, or use others. You can even cross-compile and run binaries on the Pogoplug itself. Setup was easier than anything I’ve ever used of this nature. I plugged my device in, and went to the Pogoplug site. I created a login, it quickly identified my Pogoplug device (I assume the Pogoplug called home and it saw us both coming from the same IP) and I was able to immediately use the WebUI to upload and download files. They don’t support SMB/CIFS, but they have OS level drivers for Windows, OS/X, and Linux readily available. I’ve only tried the OS/X and Win64 (Windows 7) drivers and they work very well. Honestly since they seem to be fully supporting multiple OSes, and SMB/CIFS is so complicated and slow I don’t feel like this is much of a minus. It does limit native support to “Supported” OSes for now unless the WebUI/API access fits for you. I don’t know what their product roadmap is but I did find a (broken) symlink/mention of Samba within the device itself, and for those users that are on other OSes and *really* want CIFS they can cross-compile and install/run their own Samba binaries.

The native clients I’ve tested under Windows 7 and OS/X 10.6 (Snow Leopard) seem to perform well and bug free. I’ll be pushing them a bit harder in the coming days to see what happens. So far though I’ve had no issues. The Native clients can be set to multiple drive or single drive mode. The Windows client defaults to single drive mode with all of your connected drives showing up as P:\<Device Name>. The OS/X (and I assume Linux clients) default to multiple drive mode with all of your connected drives showing up as separately mounted volumes.

You also can not initialize (format) a drive from the Pogoplug. So you have to format your removable devices with a PC/Mac first. This rather minor since if you have this device, then you have a machine, and the drives are removable by nature.

Performance is also very good, thanks in no small part to the speedy embedded Orion SoC, the Ethernet controller also has TSO, Receive and Transmit Checksum Offloading (part of TOE) which helps keep the CPU free from a lot of overhead. These offload features are common in higher end servers and many ‘gaming’ Ethernet adapters. Having a 1.2GHz CPU and these helpful hardware offload engines means that the CPU doesn’t work too hard and the performance will generally be limited by the RAM speeds. To get the full LAN performance you do need to install the native clients. The unit may be a little slow when you first start it as it indexes your files for searching and generates thumbnails and video previews. This latter bit enables one of the more interesting features, search.

You can search all of your Pogoplug drives relatively easily from the WebUI, I haven’t toyed with this much yet but on the drive after you mount it the Pogoplug software creates a .ceid file that includes the name of the device and the version of the metadata, and a .cedata directory holding an SQLite 3 database file for indexed information and directories for the generated thumbnails and video previews.

The Pogoplug also ‘integrates’ with Facebook, MySpace and Twitter. The Twitter support is definitely buggy, I was able to authenticate to it for one drive but not for another, and after signing out I have been unable to authenticate again. Once setup you can ‘share’ a folder to these services and the unit will post updates whenever the folders are changed. The update includes a (public) link to the folder’s contents. Users can then download the data. However the data is pushed directly from your Pogoplug so you must be connected via broadband.

On the hardware side inside the case there’s documented JTAG and Serial Port. What does this mean? Well if you’re asking then it won’t matter to you. 🙂 Basically it means that with a JTAG dongle and a 3.3v FTDI to USB serial adapter you have a $130 ARM9 dev kit, not bad at all.

I haven’t (yet) opened mine…I may yet buy another to do just that. The Orion/Feroceon has a SATA controller that’s turned off (and quite possibly not even pinned out) on this board. It also has a second Gig-E MAC thats likewise not available. The CloudEngines/Pogoplug Engineers do read their forums, and seem to be (refreshingly!) helpful to those people who ask specific questions about the hardware and essentially how to use it as a dev platform, de-brick it, etc. Being so helpful as to even link to DigiKey Parts for the mating connectors to the JTAG/Serial ports.

There are some chinks. It has a NEON PINK “foot”. The device has no ‘shutdown’ command (either via WebUI or SSH, or anything) so you can’t cleanly shut down the unit, you have to manually eject via the WebUI. Unplugging the device, at least with HFS+, can cause the filesystem to come up ReadOnly with no way to fix it from the Pogoplug short of ejecting the device and manually running the included chkhfs utility. Even that may not work since the utility is based off hfsprogs, which aren’t very good. It will claim errors, not tell you what they are, and refuse to fix them. Morale, either eject before you unplug the Pogoplug, or use other, better supported, filesystems. I also have no clue what happens to the device when it loses Internet connectivity. It may turn into a pretty pink and white brick, I don’t know, that’s one of the only things that actually worry me so far. I’ll be toying with that in coming days and make an updated post time permitting.