Victory: Topologilinux/Debian Hybrid on the M200

I just finished installing Debian GNU/Linux (as much as one can finish installing Linux) on my Toshiba M200 Tablet (thanks to these linux links for smoothing the stumbling toward the end). More or less everything is functioning as it should. The install was special because I started with Topologilinux‘s installer, a slackware based distro which features support for NTFS loopback image install. In other words I didn’t have to repartition or even change from NTFS on the tablet. I’d had enough low-level futzing with all the buggy custom XP Tablet PC edition CD and SP2 installer debacles I’ve run though.

A portion of the Topologilinux installer runs in windows and generates the blank voids (aka swap-like files) for Linux to use safely. One for the base and one for the swap. It also sets up a new version of the Grub bootloader, w32grub, which runs cleanly and kindly underneith the windows default NTDLR. The installer, in the wonderful tradition of windows installer is as simple as few textboxes and next-next-next. So I potentially have a Linux install that I can scoot around or easily backup should I run out of disk space on the small 40gb drive. Or delete/restore with a simple edit of the boot.ini.

Anyway, back to how I installed. I edited the C:/boot/menu.lst grub menu file to have another entry which used the topologilinux kernel with the debian initial root directory (initrd) called root.bin,which you might extract from the debian bootcd’s rescue.bin boot floppy image, with an app like WinImage (I mounted it under linux while I was trying to get all this figured out). Drop that in the C:/boot directory, edit the file, and reboot picking your new entry. I mounted the NTFS drive rw (so I can make a mess inside the swappish file). I set up the loopback with:

mkdir /mnt/ntfs
mount -t ntfs -o rw /dev/hda1 /mnt/ntfs
losetup /dev/loop0 /mnt/ntfs/tlinux4/base.img
losetup /dev/loop1 /mnt/ntfs/tlinux4/swap.img
mkswap /dev/loop1 (CAREFUL!)
(format /dev/loop0 with the fs of choice)
swapon /dev/loop1
mount /dev/loop0 /target/

Then I simply proceeded with the debian base install with their utility. After that I had to dig in the CD image for Topologilinux to get the kernel-modules package (which since it’s slackware is simply tgz) and wade through it to find the e100 ethernet module. Debian is amazing once you have ethernet. You just `apt-get install` to your heart’s content.

I compiled the 2.6 kernel with debian’s kernel package and ran across another large bump. This took me ages to figure out. Not only do you have to explicitly complile initrd, loopback and ram disk support (in block devices) for all this to work but for Kernel 2.6 you need to add ramdisk_size=10000 to your grub configuration otherwise the kernel panics on boot RAMDISK: incomplete write (-28 != 32768) You also can’t have “devfs mounting on boot” in the kernel for the Topologilinux initrd’s linuxrc script to run properly.

I have an Atheros card in my tablet so I grabbed the cvs of the madwifi drivers from sourceforge (see cvs tab) and compiled them into my 2.6 kernel with the kernel-sources I’d downloaded. (after apt-getting cvs and sharutils)

After getting all the software online with my nice XFCE desktop using the instructions provided at those linux links provided earlier (also, for alsa–add your users to the audio group). I tried out xstroke, gok, xkbd. xstroke is okay, but I don’t particularly want to learn scribbles or any pda scribble techniques. I’m kind of partial to the Windows TIP way. Maybe the Mono team can get the Ink stuff to run in Linux some day. Gok is nice but so many features I couldn’t figure out how to get it totally set up in my time available. xkbd is plain and simple, no preference window so I had to look up fonts manually and flag them in, meh.

Wow, 20 hours of mussing round it all boils to a page of solutions. Linux is such a frelling timesink when you run into the odd corner. Hope this helps someone. At least I’m not running gentoo anymore, this same system would’ve likely taken 10x as long with extra maintenance over there and I’m more familiar with that distro (sadly). It sucked up thousands of hours in 2003 when I managed to go a full year with the dubious Linux Only title until I got this tablet on Dec 31 (coincidentally exactly a year from when I installed it to a few hours). That and people started playing addictive FPS games in the dorms and managed to drag me into them, which required having Windows running and dual-booting like crazy.

Now that I have this crazy setup running I wonder if I could rig it to something even crazier…use coLinux to optionally use my linux INSIDE windows or booted on the hardware. The excitement never ends! I’d also be interested in setting up a mini NETBSD install on the SD card similiar in function to the HP/Compaq tablet’s QuickInfo (err?) feature. I could hibernate windows then reboot and pick the SD card on the BIOS screen. It wouldn’t mount the hard drive and only light the screen. Wonder how much battery this would save, if any…

5 Responses to “Victory: Topologilinux/Debian Hybrid on the M200”


  • colinux works brilliantly from my experiments on the m200. I use the nvidia virtual desktops to switch between the “windows side” and “linux side.” Very nice.

  • Those nView virtual desktops have always been very slow for me in previous releases. I wonder, have they improved them? I’ve been spoiled by various linux virtual desktop and can’t stand more than a few milliseconds of redraw before I give up on them (and I’ve given up on at least 3 under Windows).

  • Ahh, another m200/linux user. I repartitioned my disk without any issue but found it easiest to remove the HDD and put it in a desktop for installation.

    Can you tell me how you got X running? I was under the impression that Xfree 4.4 was required for the correct driver, which is in a political mess, so have been using colinux under winxp, which works mostly brilliantly.

    I would also like to know if you can rotate the screen without restarting X, as I find that a useful feature.

    I also use the nvidia virtual desktops, which are fast enough, except for some crazy reason when the system is under high load it refuses to switch desktops, so if you need to kill a runaway process on another desktop you are basically hosed.

    Checking out tablet pc land has been interesting, but not compelling, and I can’t wait to get Debian running fully.

  • Thadk,

    are you able to cleanly shutdown with your setup using a 2.6 kernel? I tried something similar, and it always marks the NTFS drive “dirty” and hence requires a windows boot chkdsk before it can boot back to the hybrid setup.

    If you succeeded in getting this to work, it would be great oif you could post your shutdown scripts (or a tgz for /etc/rc.* and /etc/init.d) as well as any mods you have done for your initrd and the config file for the kernel.

    TIA
    Noel

  • I seem to recall the dirty startup problem. It might be inherant. I broke my grub a while ago and haven’t had a chance to fix it.

Leave a Reply