Libretto 70 CT and Linux : additional information

Kees Lemmens, TU Delft

March 2001

I use Linux on my little Libretto 70 CT since May 1998 and I am absolutely very satisfied about it. The system was used very extensively but never crashed under normal use in these 3 years (no I didn't run any Microsoft software on it, thank you ;-)

Recently I did some minor upgrade (a larger disk) and thought the things I figured out during this upgrade might be useful for others as well.

Links

I found most of the information to install Linux on the Libretto on the following websites :

Some Libretto Quirks

1) Get the PCMCIA floppy drive going

To make the external flopppy work you have to obtain the kernel patch by David Bateman (which I have slightly modified to make it work on more recent kernels). You can find this "patched patch" here : floppy_cs-1.02-fix2213.tar.bz2

Also obtain the source for the pcmcia package (I used 3.1.26) and the kernel source (I used 2.2.19).

  1. Unpack pcmcia and kernel source in /usr/src
  2. Unpack the floppy patch in the pcmcia directory
  3. Link /usr/src/linux-2.2.19 to /usr/src/linux
  4. Patch the kernel directory :

    prompt % cd /usr/src/linux-2.2.19
    prompt % cat ../pcmcia-cs-3.1.26/modules/patches/floppy22.13.fix | patch -p0

  5. Build the new kernel (e.g. by using the old config file and "make oldconfig"). Don't forget to enable floppy pcmcia support as a module ! And there should be NO permament FLOPPY DRIVER BUILDIN into the kernel !!
  6. Move it to its place (eg move arch/i386/boot/bzImage -> /vmlinuz) and install the modules as well.
  7. Also copy the new System.map to /boot (important !!)
  8. Rerun LILO and reboot the system.
  9. Now change to /usr/src/pcmcia-cs-3.1.26 and build the pcmcia modules with the floppy module by typing "make install"
  10. Modify /etc/pcmcia/config.opts if not already done so and add :

    # Floppy driver for Libretto PCMCIA floppy : 
    device "floppy_cs"
    class "floppy" module "block/floppy" opts
    "floppy='pcmcia'","floppy_cs"

    card "Y-E DATA External FDD Controller"
    version "Y-E DATA", "External FDD", "Controller", "*"
    cis "cis/FB2FDC.dat"
    bind "floppy_cs

  11. (Re)start the cardmgr and see if the floppy works !

2) Install a larger harddisk (10 GB)

I recently installed a 10 GB Toshiba harddisk instead of the old 1.6 GB disk. I backed up the old data to another system using NFS and rebooted using a ZIP bootdisk (ppaboot.img) and a ZIPdrive contaning a disk with both color.gz and pcmcia.dsk on it.
This is necessary as the PCMCIA floppy disk is not recognized by the standard bootdisks and there is also no CDROM available. Booting from a floppy is no problem, but reading data afterwards is not possible without the patch by David Bateman. The ZIP drive now works as a kind of second floppydrive just to be able to start the system for the first time.

Note that I used the loop device to copy the contents of the color.gz file to the ZIP drive :

cp color.gz /tmp
unzip /tmp/color.gz
insmod loop # if not loaded
insmod minix # if not loaded
mount /tmp/color /mnt/tmp -o loop
cd /mnt/tmp
mount /zip0
find . | cpio -pdmv /zip0

Installation was further relatively standard by using a PCMCIA ethernet card to mount an exported CDROM containing Slackware 7.1 using NFS on a remote system.

3) Get the hibernation mode working on the larger harddisk

The only thing that caused me a real headache was the hibernation mode that uses a part on the harddisk to store the memory while the Libretto was switched off. If this part lays somewhere in the middle of a Linux partition the latter will be partly or wholly destroyed after one hibernation ....

In the original disk simply the last 18 cylinders were reserved for hibernation :

raw size of 1.6 GB disk :788/64/63 (C/H/S), Linux usable size :770/64/63 (C/H/S)

However, with this new disk things were much more complicated as the Libretto BIOS - just like many older PCs - can't recognize disks larger than 8.4 GB. After some disasters (a trashed second partition and a trashed swap space !) I found out that hibernation takes place in the first sectors AFTER the 8.4 GB.

To put things absolutely clear: it is NOT at the end of the 10 GB and it is also NOT just BEFORE the end of the 8.4 GB.

After finding this out I decided upon the following partitioning scheme that already works flawlessly for some time without causing any damage to the Linux partitions after several hibernations and fscks / memory checks :

Layout of the 10 GB disk : 1222 cylinders, 255 heads, 63 sectors

My partitioning scheme :

Linux partition :    1 -  192 (1.5 GB) 
Work partition  :  193 - 1015 (6.5 GB) 
Swap partition  : 1016 - 1023 ( 64 MB) 
Hibernation     : 1024 - 1929 ( 48 MB) (can be smaller : only need 32 MB) 
Third partition : 1030 - 1222 (1.5 GB)

Fdisk reports the following :

Disk /dev/hda: 255 heads, 63 sectors, 1222 cylinders  Units = cylinders of 16065 * 512 bytes 

   Device Boot Start End  Blocks  Id System 
/dev/hda1  *      1  192 1542208+ 83 Linux native 
/dev/hda2       193 1015 6610747+ 83 Linux native 
/dev/hda3      1016 1023 64260    83 Linux native 
/dev/hda4      1024 1222 1598467+  5 Extended 
/dev/hda5      1024 1029 48163+   70 DiskSecure Multi-Boot 
/dev/hda6      1030 1222 1550241  83 Linux native

4) Get Sound to work in 16 bit mode

In the last 3 years I used only 8-bit sound using the SoundBlaster Pro module, inserted by :

/sbin/modprobe sb io=0x220 irq=5 dma=3 dma16=5 mpu_io=0x300 

It worked fine, but the sound quality was barely acceptable. However, recently I found out that it is also possible to use 16 bit sound on the Libretto !!! To use that you have to use another kernel module that I didn't know about until recently and which is named the OPL3-SA2 driver.

/sbin/rmmod sb

/sbin/modprobe opl3sa2 io=0x220 mss_io=0x530 mpu_io=0x330 irq=5 dma=1 dma2=0

Notes:

And believe me: this makes an incredible difference in Sound quality. Finally my MP3 files also sound perfectly well on the Libretto ;-)


File translated from TEX by TTH, version 2.58.
On 19 Mar 2001, 14:02.