
The Mitsubishi Amity CN is a very small and light circa 1997 subnotebook computer. It's not nearly as tiny as the Toshiba Libretto 70CT that was being sold at the same time but it is still small by any reasonable standard. Recent selling price for an Amity CN in good working and cosmetic condition on eBay seems to be right around $50-60. With a very lightweight Linux distribution and applications an Amity CN can still run well enough to do lots of productive work.
The only surviving web page detailing a Linux installation on an Amity CN other than this one hasn't been updated since 1998 or so and details a Red Hat Linux 5.2 installation. While running very old software is certainly an alternative I think it is preferable by far to run a current, albeit lightweight operating system and current applications that are still being maintained. Back in May of 2006 I wrote a piece for the O'Reilly Linux Dev Center blog about my experience reviving the Amity CN and received some e-mail from folks who wanted to do the same with theirs and wanted help. This web page is the result.
My Amity CN has 48MB of RAM so performance on a system with 32MB may be poor. Damn Small Linux with X windows does require a minimum of 32MB of RAM. It should run in text-only mode (runlevel 2) on an Amity CN with 16MB of RAM. Memory upgrades for the Amity are dirt cheap (as in under $20) so upgrading to 48MB of RAM is highly recommended.
You will also need some method of transferring the contents of the Damn Small Linux iso to your Amity CN hard drive, such as a PCMCIA or parallel port CD-ROM drive or a PCMCIA network card and a functioning network connection in the operating system currently installed.
NOTE: A lot of this is not terribly Amity specific and may well work on other older laptops which do not have the ability to boot from CD-ROM or USB and have at least 32MB of RAM, such as the Toshiba Libretto 50CT, 60CT, 70CT, and 100CT.
Installing Damn Small Linux on an Amity CN really isn't all that hard but there are a number of steps to go through. This will take you a couple of hours so make yourself a nice cup of coffee or tea first. These instructions assume a solid basic knowledge of Linux and a reasonable level of comfort working at the command line. This may be more than a bit daunting to a Linux newcomer. Be sure to backup your existing OS installation, applications, and data before beginning. I will not be held responsible for loss of data or any other unfortunate things that may happen if things go wrong.
The only problem I have encountered is that I haven't been able to get the internal trackpoint (mouse) to work correctly. My trackpoint doesn't work under DOS/Windows either so I assume the problem is hardware. I use an external PS2 mouse which works flawlessly.
Please let me know if anything could be written more clearly or if you have any problems with these instructions. While I do NOT, as a rule, provide any free technical support, feedback which helps me improve this page is welcome.
These instructions assume DSL 2.3 or higher. I recommend DSL 3.1 or higher as the .unc extensions will allow you to add more applications without running out of RAM. To date I have successfully run the following Damn Small Linux (DSL) versions on my Amity CN: 2.3, 2.4, 3.0RC2, 3.0.1, 3.1
I am assuming you have DOS, Windows '95, or Windows '98 on your Amity now. Clear as much space as you can on the hard drive. Alternately, if you have a PCMCIA or parallel port CD-ROM drive and DOS drivers for the CD-ROM, you can do what I did:
If you are keeping a small Windows '9x or DOS installation and plan to dual boot and you've made as much space as possible you probably want to defrag your hard drive. You can then reduce the size of your Windows/DOS partition. I used an old copy of Partition Magic to manage my partitions but an OpenSource tool like FIPS will do just as well.
Once you have a bunch of free space you can create your new partitions for the DSL installation. Alternately you can do it after getting DSL to load the first time with either cfdisk or fdisk. Sooner or later you'll need to have the following:
Don't worry about formatting these partitions just yet. We'll do that from within DSL.
Do NOT delete your hibernation partition. It lives at cylinders 568-592. It can be recreated within Linux using lphdisk, but you'd have to setup another, more powerful machine with DSL to compile that and transfer it to your Amity. lphdisk is the Linux equivalent to phdisk for DOS/Windows on your Amity Drivers Disk.
Create two directories at the root of your DOS/Windows partition:
Download loadlin.exe put it into C:\linux. Copy the contents of the \BOOT\ISOLINUX directory on your DSL CD-ROM to C:\linux as well. In DOS or a DOS window in Windows you'll find this command fastest (assuming your CD-ROM drive is D:)
xcopy D:\BOOT\ISOLINUX C:\linux /s/e/v
copy the contents of D:\KNOPPIX to C:\KNOPPIX:
xcopy D:\KNOPPIX C:\KNOPPIX /s/e/vYou will now be able to boot DSL from within DOS or Windows '95 in DOS mode as follows:
C: cd \linux loadlin linux24 initrd=minirt24.gz dsl vga=786The vga=786 tells DSL that you can only handle 640x480 resolution with your Amity CN and it is absolutely critical. You will see lots of errors during the boot process (i.e.: modprobe won't be able to load a bunch of modules, invalid filesystems on your new partitions). You can safely ignore these. You will be prompted for an X server. The one that works with the Amity is xfbdev. You'll also need to answer "NO" to USB mouse. IMPS2 mouse is a wheel mouse. Answer that question based on what you are using for an external mouse. If it's just the trackpoint answer "NO". The system should then boot into DSL successfully in graphical mode. You'll have a Dillo browser window filling your screen and telling you all about DSL. You can safely close this. In DSL 2.x it may more than fill the screen (fixed in 3.0 or higher). If this is the case ALT-X will close Dillo. You should now see the Fluxbox window manager and lots of icons. If you haven't created your partitions yet you'll need to do it now. Open an ATerminal window and type:
sudo -sThat will make you root. You can then use cfdisk or fdisk to create your new partitions. If you list your existing partition table you should see a FAT16 partition for DOS or Windows at /dev/hda1. Don't touch this. There will also be a type a0 IBM Thinkpad hibernation partition. Mine is at /dev/hda3. Don't touch this either. I created an Extended partition with all my available space (~940MB) and created logical partitions as I described above. Type 83 is Linux (both ext2 and ext3) and Type 82 is swap. I'm going to assume you know how to partition a hard disk and not go through it step by step.
The next step is the actual installation. I recommend the "frugal" install method on an Amity with 48MB of RAM. It makes upgrading to future versions of DSL a snap (just replace the KNOPPIX image and *maybe* the contents of /boot for a major version upgrade) while preserving your extensions (applications you've installed), settings, and data. It also loads the core OS read-only, much as if you were running from CD-ROM, which enhances security since it makes it very difficult for a would-be intruder to change anything in DSL. You'll need to know the partition number of your 55MB partition. If you're unsure open an ATerminal window and enter the following:
sudo -s fdisk -l
Your partition table will then be displayed, with each entry listed as hda<n> where n is the partition number.
Right mouse click on the desktop to bring up the DSL menu. Click on Apps -> Tools -> Frugal Install -> Frugal Grub Install
The install script will then ask you to enter the target partition. The default is hda2. Enter the appropriate partition as described above. You will then be prompted where to install from. Choose "l" for live CD-ROM or Frugal Install. (NOTE: Prior to version 3.1 it will just read live CD-ROM. This is still correct. Even though you booted off the hard disk from within Windows or DOS the OS still thinks you're running a live CD.) At this point you'll be asked if you want to format the target partition (the 55MB one). Assuming you have an unformatted partition at this point the answer is "y". Make certain you have the right partition number. You'll get a warning saying you are about to destroy all data on that partition. If you are sure you've got it right answer "y" again. DSL will now be installed.
For versions prior to 3.1 you will receive two errors:
cp: cannot stat '/cdrom/boot/isolinux/linux24': No such file or directory cp: cannot stat '/cdrom/boot/isolinux/minirt24.gz': No such file or directory
This happens because DSL's frugal install script had no code to detect you've booted from within DOS/Windows rather than from an actual CD-ROM. You will have to copy those files manually after the script completes, otherwise your system will not boot.
You will then be asked if you have Windows installed on /dev/hda1. Even if you actually have DOS go ahead and answer "y". You're going to need to edit your grub menu in any case. That will complete the installation script. Now we do some additional manual steps to insure that the system will boot properly into either DSL or DOS/Windows, but first we need to format any partitions you created for persistent /opt or /home filesystems so that we can let the new DSL install know to use them at boot. Open an ATerminal window and type:
sudo -s
You will now be working as root. If you're unsure which partitions are which you can type:
fdisk -l
for a listing. In my case I have /dev/hda6 with 500MB as type 83 (Linux) which I am setting aside for /opt and mydsl and /dev/hda7 with 400MB that I am setting aside for /home and backup/restore. (NOTE: DSL developers call this a "hybrid" installation, as in part frugal, part on your hard drive. It keeps applications not available as .uci or .unc extensions from filling up your very small RAM disk.) Again, your partition numbers may be different. Be sure you use the correct partition numbers as these commands erase everything that exists on the partitions. Create an ext3 (journaling) filesystem on each of those partitons with the commands:
mke2fs -j /dev/hda6 mke2fs -j /dev/hda7
Test that these can be mounted and are ready to go with the commands:
mount -t ext3 /dev/hda6 /mnt/hda6 mount -t ext3 /dev/hda7 /mnt/hda7
Note that DSL has already created the mount points. A df command should now show those filesystems as mounted and usable.
The next step is to format and enable the swap partition. Again, you need to the correct partition number. If in doubt:fdisk -l
I created a primary partition for swap (type 82) at /dev/hda4. A logical partition within an extended partition is perfectly acceptable and actually makes a whole lot more sense. To format the swap partition type in:
mkswap /dev/hda4
We can begin using the swap space immediately by issuing the command:
swapon -a
Now we need to make sure the system is bootable and will use the new filesystem. You'll need to mount the newly created frugal DSL install. That was your target partition during the installation script. In my case I used hda5 so my command would be:
mount /mnt/hda5
Note that the correct entry was setup in /etc/fstab during the frugal installation so you don't have to specify the filesystem type (which happens to be ext2) or the device. Now go into the new boot directory for your installation and look at the contents:
cd /mnt/hda5/boot ls
You will only have a grub directory in there. As noted above you may need two additional files: linux24 and minirt24.gz. Copy them into the boot directory now. This is critical if you received the abovementioned errors as your system will never boot into Linux without them. If you remember these files live in C:\linux under DOS or Windows. Your DOS/Windows partition is mounted as /cdrom. So, the command you would use (again, substitute your install partition for hda5 if appropriate):
cp /cdrom/linux/linux24 . cp /cdrom/linux/minirt24.gz .
The next step is to edit the grub menu so that you get a reasonable set of choices when you reboot your machine and that any options you need (i.e.: letting DSL know your display resolution is 640x480) are properly set. On my Amity CN I wanted three choices at boot:
While this may all sound complex a few "cheat codes" in my grub menu handle all of it.
cd grub ls
You should see a dozen files in your /mnt/hda5/boot/grub directory. The one you need to edit is menu.lst. I'd back it up first and then edit it:
cp menu.lst menu.orig vi menu.lst--OR--
cp menu.lst menu.orig nano menu.lst
The choice of editor is up to you. If you are an emacs person, sorry, but your editor is big, bloated, and not included by default in DSL. You can add an emacs extension later.
At line 13 you will see:
title DSL
You want to keep this entry but change the options. The next line (line 14) will look something like this:
kernel /boot/linux24 root=/dev/hda5 quiet vga=normal noacpi noapm nodma noscsi frugal
I changed mine to:
kernel /boot/linux24 root=/dev/hda5 quiet vga=786 noacpi nousb dma noscsi opt=hda6 mydsl=hda6 home=hda7 restore=hda7 host=amity desktop=jwm frugal
The vga setting is critical. The host= option sets the hostname, which can be anything you want. Note that I enabled apm and dma support for the hard drive but disabled acpi, usb, and scsi. These are optimizations for the Amity CN and allow me to preserve available RAM and let the system run a bit faster. I am also setting persistent filesystems for /opt, /home, and mydsl extensions. I am also having my settings and customizations restored from the previous session and backed up at the end of each session to /mnt/hda7. The choice of the jwm desktop is a personal one. The default, fluxbox, will work just fine on an Amity CN but it does use a touch more memory. If you only have 32MB of memory using jwm should improve performance a little. On a memory starved machine you can also use the noicons option which will save a little more RAM. Additional useful boot options are listed in the post-install section.
Comment out lines 17-27, all of which won't work on an Amity CN.
Uncomment lines 41-43. This is the text-only boot. I edited lines 41-42 to read:
title DSL Runlevel 2 (text only) kernel /boot/linux24 root=/dev/hda5 quiet vga=786 noacpi dma noscsi nousb opt=hda6 home=hda7 mydsl=hda6 host=amity frugal 2 base norestore
The norestore option is particularly important as you do not want to use or write over your settings from a normal graphical boot. vga=786 is still important if you want to be able to start X later without rebooting.
Finally, on line 45 I changed the title from Windows to DOS since I don't have Windows on my machine. The remaining lines work for either OS.
Review your changes, save, and exit.
The final step is to make certain that DSL doesn't boot from the copy in your DOS/Windows filesystem. DSL scans for a Knoppix image at boot even if you use the from= option to tell it where it really should find the OS. Since the DOS/Windows filesystem is mounted read-only we need to reboot. Since DSL is likely to scan and find that copy on /dev/hda1 again we need to do this from DOS or Windows. First issue the command:
reboot
The system will oblige with lots of errors you can safely ignore. Once the system reboots you'll see your newly edited grub menu. Choose the third line (DOS or Windows). Change the name of C:\KNOPPIX\KNOPPIX to C:\KNOPPIX\SAVE. You can always rename it back to KNOPPIX if you have problems with your installation and want to go back to a plain vanilla DSL. You'll also use this directory for upgrades. You'll place the new KNOPPIX image from a new version of DSL here, try it out, and if you like it you can replace the one in your frugal installation. It's just that easy.
You are finally ready to try your new DSL installation. Reboot (CTRL+ALT+DEL) and this time choose the first (default) option in your grub menu. You should see a line like:
Accessing DSL image at /dev/hda5
Again, you can safely ignore some of the interesting errors. You should also see it enable swap and enable networking if you have a PCMCIA network card. The system should now successfully boot into the window manager of your choice.
Additional useful boot options, which can be placed in your /boot/grub/menu.lst file or else invoked on a one-time basis by using the 'e' (edit) option at the grub menu include:
One last tip: If you don't want your system to start with a full screen version of Dillo every time you boot edit the file .xinitrc in your home directory and comment out the line that starts with dillo. This change will be saved if you have backup/restore enabled.
On my two Amity CNs, each with 48MB of RAM, I've found that Damn Small Linux runs surprisingly quickly. All the applications run crisply with the sole exception of Firefox, which is quite slow. I expect Firefox would be completely unusable on a system with 32MB of RAM. For simpler web pages Dillo is a very good alternative.
Adding .uci or .unc extensions works well and I can add some very nice apps and gtk2 libraries and still get decent performance. I've also run some .tar.gz extensions and some lightweight applications which are not packaged for DSL. So long as everything lives under /opt I don't run out of ramdisk space and things continue to run well.
The older .dsl extensions, which do go into the ramdisk, often will not work with an Amity CN. I also do NOT recommend enabling the GNU utilities until they become available as .unc extensions. Enabling apt and synaptic does NOT work due to inadequate ramdisk space. I have used some smallish .dsl extensions successfully, including madwifi drivers for my Atheros chipset WiFi card and xchat, so using one or perhaps two .dsl extensions is not entirely out of the question. If a .unc or .uci extension is available it is always preferable.
If you do completely fill your ramdisk simply delete the offending .dsl extensions. Mine live in /mnt/hda6. You can also delete .uci and .unc extensions. They will disappear from your DSL menu.
Enjoy!
Last update: 4 January 2007