Xcopilot
Encyclopedia
Xcopilot is a Palm Pilot emulator that runs under Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

/X11
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

. It offers emulation of the timer, serial port
Serial port
In computing, a serial port is a serial communication physical interface through which information transfers in or out one bit at a time...

s, touch pad and LCD along with Motorola 68000
Motorola 68000
The Motorola 68000 is a 16/32-bit CISC microprocessor core designed and marketed by Freescale Semiconductor...

 emulation (m68k), specifically the Freescale DragonBall
Freescale DragonBall
Motorola/Freescale Semiconductor's DragonBall, or MC68328, is a microcontroller design based on the famous 68000 core, but implemented as an all-in-one low-power solution for handheld computer use...

 used in Palm Pilots until they switched to Intel XScale
Intel XScale
The XScale, a microprocessor core, is Intel's and Marvell's implementation of the ARMv5 architecture, and consists of several distinct families: IXP, IXC, IOP, PXA and CE . Intel sold the PXA family to Marvell Technology Group in June 2006....

 ARM processors (later DragonBalls were based on an ARM core not a 68000 but retained the same name, however were not used by Palm.) Xcopilot was originally developed by Ivan Curtis with contributions from Ian Goldberg, Jef Dionne, Kresten Krab Thorup, and Andrew Pfiffer based on the Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 program Copilot. While the original Copilot application eventually turned into the Palm OS Emulator, the Unix/X11 port branched off and enjoyed its own popularity. Written in 1997, Xcopilot was aimed at developers of applications on the Palm OS
Palm OS
Palm OS is a mobile operating system initially developed by Palm, Inc., for personal digital assistants in 1996. Palm OS is designed for ease of use with a touchscreen-based graphical user interface. It is provided with a suite of basic applications for personal information management...

 platform, freeing them from the drudgery of interfacing to the real hardware during the development process.

Xcopilot found a new role in the 2000s with the development of uCLinux
UClinux
μClinux stands for "MicroController Linux," and is pronounced "you-see-Linux" as explained on the website, not the way the Greek letter mu is normally pronounced. It was a fork of the Linux kernel for microcontrollers without a memory management unit...

, a version of Linux meant for very low-end microprocessors without an MMU
Memory management unit
A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to memory requested by the CPU...

 . Today Xcopilot is no longer maintained but is still useful for trying out uClinux. With the addition of a virtual ethernet Xcopilot would probably become more popular again, because the simulated hardware would then look very like many modern firewall and VPN devices based on Motorola processors. Networking is only available over PPP
Point-to-Point Protocol
In networking, the Point-to-Point Protocol is a data link protocol commonly used in establishing a direct connection between two networking nodes...

 on the simulated serial port.

At linux.conf.au 2004
Linux.conf.au
linux.conf.au is Australasia's regional Linux and Open Source conference. It is a roaming conference, held in a different city every year, coordinated by Linux Australia and organised by local volunteers....

 a Live CD
Live CD
A live CD, live DVD, or live disc is a CD or DVD containing a bootable computer operating system. Live CDs are unique in that they have the ability to run a complete, modern operating system on a computer lacking mutable secondary storage, such as a hard disk drive...

 was produced to support the talks, one of which was on uCLinux . The screenshot shows Xcopilot used on this CD to run a webserver explaining how to use the CD.

Obtaining Xcopilot

Xcopilot is no longer maintained, and there are problems building
it on recent distributions of Linux. You may instead wish to use the Palm OS Emulator.

Xcopilot can be compiled successfully on Suse Linux 10.1 after making a few changes in the source code,
as follows:

1. cd to subdirectory mc68k
2. edit file custom.c line 803:

static unsigned long cycles; /* original */

by deleting "static"

unsigned long cycles; /* new */

3. edit file memory.c

line 382:

if ((*((char *)rom)++ & *bootmask++) != *bootsign++)
return 0;

by changing it to:

{ if ((*((char *)rom) & *bootmask++) != *bootsign++)
return 0;
rom++;
}

line 501:

(char *) rommemory -= offset; /* original */

by changing it to:

rommemory = (char *) rommemory - offset; /* new */


Notes:

a. The patches above also fixed xcopilot compilation on a Ubuntu 8.04 (Hardy) system;

b. To compile the above sources, you will need to install the development packages for libxpm-dev and libxt-dev (if they aren't installed already), or else you will
get compilation errors because of missing header files;

c. The binary produced with the above procedure mostly works, but has the following shortcomings:

c1. will only be able to use PalmOS 1.0 and 2.0 ROMs (anything from 3.0 and above will either make xcopilot output "E - Error loading ROM file" or "Fatal/BUSERR"
error messages to stderr, or will simply hang with no messages;

c2. Graffiti
Graffiti (Palm OS)
Graffiti is an essentially single-stroke shorthand handwriting recognition system used in PDAs based on the Palm OS. Graffiti was originally written by Palm, Inc...

will not work: you will have to use the on-screen keyboard to input anything;

c3. The emulated Palm will turn itself off every few seconds,requiring you to hit the power-on button all the time to continue.


d. There does not seem to be any current Xcopilot homepage. The most up to date source for using Xcopilot with uClinux is the version in CVS on cvs.uclinux.org.

cvs -d:pserver:anonymous@cvs.uclinux.org:/var/cvs login

Just press enter at the password prompt, and then run:

cvs -d:pserver:anonymous@cvs.uclinux.org:/var/cvs checkout xcopilot

Otherwise a reasonably recent version can be downloaded from http://www.uclinux.org/pub/uClinux/utilities/xcopilot-0.6.6-uc0.tar.gz

External links

  • Tutorial a tutorial on getting uClinux working with Xcopilot.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK