Linux on the Compaq Aero 8000 summary A few years ago, I started porting Linux to the Compaq Aero 8000, a PocketPC that ships with Windows CE. Unfortunately, due to what I think are hardware limitations, the port never became usable. However, as there are still a lot of people asking me about this, I've decided to make available as much as I currently can to help anyone who wants to finish the port. status Fully documented (or fully figured out through reverse-engineering): keyboard display serial ports simple input events AC power present power button lid open/closed the record/alarm buttons on the front I2C (i.e. SMBus, so we could read battery status with the right software) Some of the LEDs (they have hardware-controlled blinking) Unsupported, and likely to remain so without documentation: CPU suspend mode (I think we cannot prevent the CPU from resuming into Windows CE, so we'd have to exchange the ROM) PCMCIA Might be easy, but no hardware to test with: IrDA Partially supported (should be easy, but there might be unexpected behaviour): External PS/2 Touch Pad (note: this is completely different from the external PS/2 port) Sound code This is unusually crufty code, and a lot of it really hasn't been cleaned up at all. It's basically here so I don't accidentally delete it: GDB stub program, modified for the Aero. This is based on an old (?) version by Niibe Yutaka, with minor changes to support the EC3104 serial port. The GDB stub as Windows CE executable. This will overwrite your Aero's RAM and potentially damage the hardware when run. That aside, this works by running a gdb stub on the serial port with the proprietary Compaq connector; we don't try to set transmission speed or parity, so only run this when Windows CE has established a PPP connection and you can run gdb on the other end. howto Okay, so if you have an Aero, really don't care what happens to it, the data on it, or anything that's close enough to it to catch fire, you might want to try to duplicate the process I've used to run (in a way) Linux on an Aero: Connect the proprietary Compaq serial port on the Aero to a serial port on a PC running Linux Boot the Aero in Windows CE Start pppd on the Linux box. The command line should look similar to: /usr/sbin/pppd /dev/ttyS0 115200 passive debug nobsdcomp 192.168.0.2:192.168.0.3 nodeflate netmask 255.255.255.0 noauth connect '/usr/sbin/chat -vf chatfile'. The chatfile should look exactly like this: CLIENT CLIENTSERVER Watch what happens on the Aero. It should connect and, after a few seconds, open an error message window. As long as you do not close this window, the connection will remain functional, so just ignore it. Transfer sh4celd.exe (see above) to the Aero. (FTP or HTTP will both work. DNS might not with the above PPP command line). Run sh4celd.exe while the PPP connection is still up. Otherwise, nothing will happen. Obtain a cross-architecture version of gdb, configured to run on i386 but debug sh4 binaries. Run this on the same Linux box that's running pppd. Try to connect to the Aero, using something like: set archi sh set end li target remote /dev/ttyS0 on the gdb command prompt. If that works, try x/64wx 0xb0ec0000 on the gdb command prompt and email the output to prumpf@tux.org. Obtain or compile a kernel. binutils compile out of the box using configure --target=sh-linux-gnu . GCC compiles with configure --target=sh-linux-gnu --disable-threads You can now load a kernel image using the gdb stub. To do this, simply use load vmlinux on the gdb command line, then run