Linux on a Ricoh G-1200s

For Sale

Sadly, I just do not have the time to hack on this thing much anymore. You can have it, including factory box and manuals, for $150 (including shipping and handling). I revived the original battery and it will hold a charge for about an hour; unit is otherwise in perfect working order. My 340MB PCMCIA hard drive (with current Debian Linux "testing" distribution installed) is included, as well as an old IBM 105MB drive (also usable as a boot device). Please E-mail me if you are interested.


For a while, these things were popping up all over on ebay and occupying lots of bandwidth on comp.sys.pen, so I decided to score one and try to cram a Debian Linux system onto the thing.

Having (more or less) succeeded with that, I'm not looking to put a leaner (and possibly meaner?) distro on instead, namely, Midori.


Trying to get Midori Linux to compile; not easy, since they seem to calibrate their release notes and build instructions against RedHat releases, which don't line up well (especially in the compiler and devel tools arenas) with Debian, my distro of choice. I'm using a full-size PIII Debian box as the host system. While I triggered some compile problems in early attempts that may be a product of the defaults gcc in debian/testing being an earlier version (2.95?) than that in RedHat (2.97?), I later had just basic problems of the Midori makefiles internally failing. Not good. Anyway, I've just installed the gcc-3.0 package and will try a fresh build from scratch, just to see what happens.
Did a two-phase upgrade, first the to current debian stable, then to the current debian testing. Had to drop a few pacakges in order to fit, and toward the end had to do things one pacakge at a time with an apt-get clean between each, but it worked nonetheless. The new XFree86 server ( works great using the "chips" driver in 8bpp mode, nothing else really worth noting in the changes. Also upgraded to a 2.4.14 kernel, which runs like a charm.
Found a 32MB SODIMM on ebay, and in so doing quintuppled the unit's RAM. It makes a WORLD of difference, too; it now takes seconds for apt-get to run instead of minutes. Also got an old Xircom 10baseT PCMCIA card, so I can now plug the unit in on my home network and work on the unit there instead of having to bring it into the lab and do everything over the WaveLAN (all of my other PCMCIA ethernet cards have the CardBus form factor, which doesn't work in the G's slots).
Yeah, it's been forever. I've been writing papers and grant proposals. Let's not forget, I am a Ph. D. student here. Anyway, after clearing one mroe deadline on the 14th I'm going to indulge in a little upgrading around here, bringing up a 2.4 kernel, actually getting around to getting the pen going, moving to XFree86 4.1 (and other changes pertinent to Debian's testing distro), and finally doing a full wipe and moving to Midori as the basic platform. I had thought about twiddling with Troll Tech's Embedded QT as a GUI platform, but it's not free as in beer or speech, so tough. I'll stick with XFree86 and gtk+, thanks. (Anyone heard how GtkFB is coming along?)
Transmeta just released Midori Linux, their mobile computing distribution. Wedging this puppy onto the Ricoh is my next project on this front, as Debian (beautiful creation that it may be) is just too heavyweight. So I'll do this as soon as I find some time.
I'm finally tossing up some initial install stuff, including instructions. Take a look and see if it looks helpful to you.
Been a while since I've added anything... things have been crazy. I've moved into a new studio apartment, and have rigged it with some X-10 home automation hardware, and have been using including a firecracker X-10 transmitter and the bottlerocket program on my G-1200s to control them. Little progress on other fronts - too many family and personal concerns taking up my time lately. But fear not! I intend to have handwriting recognition on-line before the end of the year!
IrDA is now up and running. You need two Debian packages: irda-common and irda-tools. At the moment, I can get it working (thanks to MKH - see this post to comp.sys.pen) with some BIOS setup tweaks and a single change to the default irda-common configuration (see below).
I'm back from Florida. Thanks to dad for letting me borrow a keyboard while I was staying with him, which made hacking much easier /grin/! X is up and running, 640x480x8bpp. I have a kernel with Monty's latest pc_keyb.c patch installed, but I haven't gotten around to doing the calibration yet. I'll probably have to dump Win3.1 onto the box temporarily to get it (blech!), which is a good motivator for me to get off my duff and formalize an installation procedure so I can then remove it as quickly as possible. The apt-get/dpkg/etc tools are still painfully slow... I'm probably going to break down and get some more RAM for this poor little thing. (Ah, the memories... I used to have a 486dx/33 system with 8MB of RAM, and even compiled kernels with it... of course, those were the 1.2.13/1.3.X days, and a lean Slackware 2.x install, and I remember getting a significant-constant-factor speedup by upgrading to 20MB...)
Ph34r my 3l337 h4x0r 5killz! (Don't be afraid, I've never said that before, and I'll never say it again.) I've managed (through a roundabout process which I will document when I get back from vacation) to bootstrap the machine with Debian 2.2 (release candidate). My G-1200s running Debian I got my Lucent WaveLAN/IEEE network card running (using pcmcia-cs 3.1.13, which is newer than the current Debian package), and am now apt-get-ing my heart away. The dpkg program is extremely slow, probably because it's manipulating debian's fairly massive package database files in the Ricoh's 8MB of memory. Haven't gotten X or sound correctly configured yet (X is running, but the sync rate is off, producing delightful flicker), but I'm bringing my Inspiron 3500 along on vacation (which is well equipped for kernel compilation!) so I hope to have a much more functional tablet by the time I get back.
Monty Walls has posted a first-draft Linux driver for the digitizer! announcement, kernel diff, gpm diff. This is going to be a good summer. [ NOTE NOTE NOTE: these patches are obsolete. Go here for up-to-date driver info ]
Viper 8260PA arrived today, the unit recognizes it. Middle of exam week, so I'm a little too busy to do much with it.
Apparently I have a "cursed" IBM 8105PA, which is keeping me from getting anywhere. I have a Viper 8260PA on the way, which is another "known good" drive, hopefully when that shows up I'll be able to get underway. Meanwhile, I'm keeping my eyes open for any spare 2.5" IDE disks...


I'm planning on starting with a bare-bones Debian install and work up the reset of the system from there. The plan of attack:

  • Bootstrap: bring up a working Debian base - done

    If I had a Debian CD around (or a CD burner), this would have been much easier. I did it in probably the most roundabout of ways, but it seems to be working now, so I'm not complaining. For now, you should know that my first install involved extensive use of "cp -a", "chroot", and "apt-get remove --purge", and a big scratch NFS filesystem (well-funded research file servers are my friends...)

    I suppose I should note that I'm hand-compiling my kernels (on another machine) in an attempt to trim some of the fat that gets included in the default packaged ones. At the moment I'm using a stock 2.2.13 kernel with this .config. APM isn't quite set up properly (I need to disable the kernel's APM-based screen blanking, among other things, but just haven't gotten around to it).

  • PCMCIA/networking: get wireless ethernet (Lucent WaveLAN/IEEE) and dhclient working - done

    pcmcia-cs 3.1.13 includes a "true" GPL driver for my Lucent WaveLAN/IEEE card. The card is properly detected and configured as interface "wvlan0", and (assuming you've compiled packet socket support into your kernel) ISC's dhclient (available in package dhcp-client, but I installed it myself by hand) works just fine.

  • X: get it running - done

    The XF86_SVGA server works fine. The graphics chip is a Chips & Technologies ct65545 (which is correctly auto-detected) with 1MB VRAM, all settings seem to be correctly auto-detected as long as you start the server in 8bpp mode (debian's xdm default setup uses 16bpp). Once I get the digitizer up and running, I'll post my XF86Config file.

  • Pen Screen: get calibration data, then get it all working using Monty's kernel/gpm/etc mods.

    Go to Monty Walls' drivers page to get patches, CMOS setup utils, etc. Some day we'll write a Linux calibration tool... if we can just figure out what the heck the calibration data means...

    MKH has mentioned that he crammed Win3.1 into 8MB. My DOS bootstrap partition is a whopping 15MB and virtually empty, so I may actually be able to get calibrated this weekend.

    GTKeyboard has been mentioned for chicklet-less situations.

  • IrDA: start playing with it - working

    Four steps to get IrDA working under Debian.

    1. Compile a kernel with IrDA support.

      Alternately, compile the appropriate modules. If you're using a debian-stock kernel, kernel-image-2.2.* already includes (AFAICT) all of the basic modules you need.

    2. Switch the serial port settings in the BIOS.

      On bootup, Ctrl-Alt-S to get into BIOS setup mode. On page 2, swap entries for "Serial Port 1" and "Serial Port 2" so "1->COM2" and "2->COM1". Other combinations probably work, but this is the one I've tried. This particular one also disable your external serial connector... not an issue for me.

    3. Get the irda-common and irda-utils packages.
      # apt-get install irda-common irda-utils
    4. Modify /etc/irda/devices:

      You can read unified diffs, can't you?

      --- /etc/irda/drivers.old Wed May 31 16:32:42 2000
      +++ /etc/irda/drivers     Wed May 31 16:40:27 2000
      @@ -15,7 +15,8 @@
      	#irattach /dev/ttyS2          # The third serial port is an IrDA port
      	# irattach /dev/ttyS0 -d esi # Attach a ESI dongle to the first serial port
      -	irattach /dev/ttyS0 -d tekram
      +	#irattach /dev/ttyS0 -d tekram
      +	irattach /dev/ttyS0
      	# insmod pc87108             # If your machine as a pc87108 FIR chipset
      	# modprobe uircc             # Sharp UIRCC chipset

    At this point, you can start really playing. For starters, run "irdadump" and point your Palm V at the thing while trying to beam something. Oodles of fun for the whole family!

  • APM: get suspend-and-resume functionality, etc working
  • Find/write some good handwriting recognition software, etc... <grin>