Linux-based UMPC / Tablet from 2005
The Pepper Pad 2 is a Linux-based Tablet/UMPC released in 2005. Developed and marketed by Pepper, Inc in Massachussets, it borrows much of its architecture from the Intel 2700G "Carbonado" or the earlier "Mainstone II" development boards.
The device was designed for semi-rugged usage: big rubber end caps protected the left and right edges of the case, along with a rubber screen bezel and gaskets around the speakers for some splash-resistance. Centered in the case is an 8.4" 800x600 colour backlit screen with resistive touch. On either side are thumbboard keyboards, with a modified split QWERTY layout. The left side also has directional arrows, and the right side a large scroll wheel. Stereo speakers are near the lower edge of the case, with a microphone at the top-left.
Rubber covers at each corner of the case can be lifted to reveal a single USB 1.1 port, an SD card slot, microphone input and headphone output jacks, composite audio and video output via a TRRS jack, and power input. On the back, an integrated metal stand can be swung out to hold the unit at about a 45° angle.
More technical details are available on eLinux (I happened to write that page)
After Pepper, Inc stopped being a going concern (they were acquired by Canonical) I've tried on and off to update the Pad 2's operating system to something more modern. I had downloaded all of the source code that Pepper had distributed to comply with the GPL, including kernel patches up to the last version they upgraded to, 2.6.13.4.
I've always wanted to get a more modern version of Linux running on the Pad 2, but there are a number of hurdles to getting that:
It's easy to build things at first, since RPMs for Montavista Linux shipped on disk. Install gcc and your other regular tools and off you
go... except that those tools are ancient (GCC 3.3.1 and glibc 2.3.2), and squarely focused on the older ABI.
A real problem for upgrading any software on the Pad's hacked-together Linux is that all of it was built using the original/old ARM/GNU C Application Binary
Interface, or OABI. Just after the Pad 2 was launched, a new embedded ABI or EABI was introduced, and quickly adopted by Linux and the
GNU C Library. A lot of software from just a few years after the Pad 2 stopped getting updates simply won't build on that version of GCC.
Okay, so, we can use a more recent GCC cross-compiler that supports EABI to build software, right? Except that the Linux kernel also
needs to support EABI, and the first version of the Linux kernel to support EABI was 2.6.16 - a few patch versions later than last version
of the Pad 2's kernel.
Also, Pepper's patches to the Linux kernel come to 17k lines. Entire drivers that were never mainlined and a lot more. And they're stuck on version 2.6.13.4.
So the order of operations actually has to be, at a minimum:
armv5te and EABI that will build a 2.6 series Linux kernel (so, old, but not too old)init just fine.This quickly turns into Linux From Scratchâ„¢.
Oh, and there's one more problem. The Pad 2 shipped with a driver, pvrdrv.ko for the 2700G5 graphics chip that supported some graphics
acceleration. No source for this driver is known to exist, and it's built for OABI, of course, so it will not load into a later EABI
based kernel. So my new kernel will probably also have to disable the 2700G (or put it into passthrough?) and use the XScale's LCD driver and framebuffer.
Inside, an Intel XScale PXA270 (ARMv5 architecture) application processor at 624MHz provided the CPU and most I/O functionality built in, along with the Intel 2700G5 GPU with video acceleration and OpenGL ES and its own VRAM, 256MB of system RAM, a 20GB disk, Bluetooth, Wi-Fi, and IrDA/TVIR connectivity. Two internal lithium-ion batteries provide a total of 3.6Ah of capacity.
The Pad 2's UI was known as Pepper Keeper, written in Java. The Keeper made extensive use of JRex, which embedded the Gecko web engine from
Firefox 1.5 into Java applications. The Keeper had a number of built-in applications: a web browser, notes, music library and player, video
library and player, TV remote (using the Pad's built-in IR blaster), eBook reader, and a few others.
Applications for the Pepper Pad were written as extensions of the Keeper, either in Java or in XUL+JavaScript.
The Keeper could also run software written for the Macromedia Flash browser plug-in. Video playback was provided by a customized mplayer
binary.
The base operating system was Montavista Linux CEE and Pro version 3.1.1 with patches and additional packages. The main interface, "Pepper Keeper", was written in Java and used an embedded Firefox 1.5 engine (JRex) for web browsing and running applications written in XUL and JavaScript.
Since Pepper Keeper was written in Java, it could also be downloaded and run on desktop computers running Windows and MacOS. Data could easily be moved between the Pad's Keeper and that on a desktop computer; in this manner, media files could be loaded onto the Pepper Pad, and data created on the Pad could be backed up.
Sometime in the year 2004, I learned about an upcoming Linux-based "tablet" computer, called the Pepper Pad. And I got really really excited about it, bought one and started hacking on it.
For about a year or two I used it and started hacking around on it. It was pre-eminently hackable: pressing Ctrl-Shift-1 launched
a terminal window running as root. And since an entire copy of Montavista Linux Pro RPMs were sitting on the disk, I soon installed
a development environment and started building Linux software on it so I could run what I wanted to there. I even adapted a few XUL applications
for the Keeper. That stuff is still on my old site here
After I stopped using my Pad for surfing the web from my couch, I actually used one as a mini web server for a number of years, within my house. Why not?