The only things of note along the way were just minor Tiny Core documentation issues:
Removing the Compact Flash card and plugging a CDROM into the 40-pin IDE connector allowed me to boot Puppy Linux (5.1). There was a long wait whilst the X-server started!
I have also run DSL 4.4.10 and Tinycore 3.4 from Compact Flash (but see below).
Philippe Duchene also has a Percio and his experience is:
"The Percio indeed boots on a CDROM plugged into the IDE connector. So easy. I replaced the original 32MB compact flash card containing the VXL OS by an empty 128MB compact.
I initially booted Puppy Linux from CDROM, and ran a frugal install on the compact flash. So, without the CDROM, the Percio boots Puppy Linux seamlessly from the flash memory. I could install my favourite P2P app, and ran it for days, enjoying the low power consumption.
However, every 24 to 48 hours, the system was crashing, with several VM alloc error messages in the kernel log beforehand. I suspect I was running out of memory. I had no swap installed.
So I installed Damn Small Linux ( in a similar frugal install from the CDROM onto the compact flash), and I am now enjoying a very stable system, still without swap, which now runs for weeks without any problem. "
DSL from Compact Flash
I have a pile of old low capacity Compact Flash cards from my early days of digital photography when I had a 2.1M pixel Canon digital camera. Below are the steps I went through on a Windows PC to create a bootable CF card with DSL 4.4.10 on it for the Percio.
Hopefully this will run without error.
Plug the CF card into the Percio in place of the one that's there. When you power up you should see the standard DSL boot screen. Just hitting return will boot DSL but in my case resulted in a complaint from my monitor as the timing parameters were out of range. This is the same behaviour as the Neoware CA5 which uses the same chipset. You need to type dsl vga=788 at the boot prompt and then select an 800 x 600 display.
Tinycore 3.4 from Compact Flash
My first attempt to use Tinycore 3.4 in a similar manner was not successful. Tinycore hung during start up whilst trying to initialise the IDE interface. The problem with a non-starting version of Linux is that there is no log file to examine, and early start-up messages that might be useful have generally vanished off the top of the screen! However, Puppy (using a 2.6 kernel), did boot and things ran. This gave the opportunity to peruse the output from dmesg along with the output from lspci. :
#lspci -k 00:00.0 Host bridge: Silicon Integrated Systems [SiS] 550 Host (rev 01) Kernel driver in use: agpgart-sis 00:00.1 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev d0) Kernel driver in use: pata_sis 00:01.0 ISA bridge: Silicon Integrated Systems [SiS] SiS85C503/5513 (LPC Bridge) 00:01.1 FLASH memory: Silicon Integrated Systems [SiS] Device 7005 (rev 01) 00:01.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 07) Kernel driver in use: ohci_hcd 00:01.4 Multimedia audio controller: Silicon Integrated Systems [SiS] SiS7019 Audio Accelerator 00:02.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual PCI-to-PCI bridge (AGP) 00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) Kernel driver in use: 8139too 01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 550 PCI/AGP VGA Display Adapter
This showed me that Puppy was happily using the pata_sis driver for the IDE interface although some of the early startup messages showed that it was struggling finding the right driver to use. On the other hand, from the various on-screen messages, it looked like Tinycore had initially decided to use some generic IDE drivers and wasn't as good as Puppy in sorting out the problems. The obvious solution was to leave it no choice so I built a custom kernel for Tinycore that was specifically tailored for the Percio. I left out all the unwanted drivers and built a monolithic kernel with the right IDE, Video and Ethernet drivers. This worked perfectly.
However, as part of documenting the process, I started off with the standard distribution and found that this worked perfectly! The difference here was that the 'Windows' installer put Tinycore in a FAT32 partition and used syslinux as the boot loader. My Linux-based installation used an ext2 partition and grub as the boot loader.
How to install Tinycore on a Compact Flash card is documented here.
How to rebuild the Tinycore kernel is documented here.
Any comments? email me. Last update January 2011