Mandrake Linux 9.0, 9.1 & 9.2 (& 10 but that fails)

This page Copyright (c) 2003-2004 P.R. Nienhuis, Amsterdam
Last updated 20 June 2004

(An old version of this document, pertaining to various older Linux versions on the original 4.1 GB hard disk, is here.)


Be warned: this page is still under construction!

   


Contents

Preparation: Installation of Mandrake 9.0
    Preparations for booting an installation kernel from DOS
    Tidying up the diarrhoa of installed packages

Installation of Mandrake 9.1

Adapting Mandrake 9.1 to my wishes
    Screen resolution
    PCMCIA floppy driver
    Enabling sound
    NETBEUI support
    Kernel compilation and installation
    PCMCIA CD (rewriter) setup and mounting

Installation of Mandrake 9.2
    First impression of Mandrake 9.2
    Software suspend (aka hibernation)

Installation of Mandrake 10 (fails!)

Links
   
   
   

On the web several stories can be found about how various Linux distributions ("distros") have been installed on the Libretto. I've included a number of links here on the main Libretto page.
Recently I got a hint that Vector Linux (based on Slackware) may be especially suited for Librettos as it has been kept small; it features IceWM (one of the lightest weight X Windows managers) with desktop icons (probably dfm). Who is gonna give it a try?

It's hard to point down why I stick with Mandrake rather than, say, RedHat or SuSe, but anyway, here is my story on how I got Mandrake 9.1 to work with all Libretto hardware.

9.1 iso images can be downloaded from Mandrakesoft. I found out that during installation only CD # 1 is used, skipping e.g., all development stuff and more or less implying I consumed 6 hours ADSL bandwidth for nothing.
Recently I found this website where a number of important install options are clarified.

Therefore I decided to install Mandrake 9.0 first; at least, that distro asked what CD's I had downloaded and indeed used them all during install. Later I would upgrade it to 9.1, preserving all stuff like development tools which had been skipped during 9.1 installation.
Later on I concluded that it may be better to stick with 9.0 anyway - 9.1's graphical login menu doesn't allow proper reboot, it is crippled after running IceWM, etc.
 

PREPARATION: INSTALLATION OF MANDRAKE 9.0

A description of how I made the partitioning scheme is described on the OS/2 page, as I made it using mainly OS/2's FDISK with just casual assistance from Linux' fdisk (oh, and even some DOS in the very beginning....;-) )

A description of the main Linux-on-Libretto100 PITA (viz., circumventing the HD-area where the BIOS targets hibernation) is to be found here on the Windows 98 page for hard disks > 8 GB; for smaller HD's, just reserve 70 MB at the end of the disk and you're OK.

(I beg forgiveness from Linux-zealots: admittedly, one CAN install Linux on a Lib100 while ignoring any other OS present on its HD, but it's not easy: earlier Red Hat distros allowed NFS installs after having booted from only the first Linux install floppy. While that should give a decent start, another PC running an OS which supports NFS is needed (= almost any OS, after some Internet searching), and afterward quite a bit of upgrading is warranted to get Cardbus, floppy, IrDA, USB and what-not support. In my case, I do like OS/2 too, and I do not dislike Windows (though IE and Outlook are quite a different issue, yechhh).)

Preparations for booting an installation kernel from DOS

Installation of Mandrake 9.x on a Toshiba Libretto is still hampered by the lack of PCMCIA boot features and the PCMCIA floppy driver which can't be used to boot an installation kernel. However, starting with Mandrake 9.0, the installation kernel does indeed recognize and correctly initialize PCMCIA CD-ROM players, obviating the need to copy the contents of 3 CD-ROMs to the hard disk. But one still must boot the development kernel from harddisk.
(Another option is to boot into Win9x and use the autostart option of the CD to start installation; but I never trust installation of one OS from the other.)
Somewhere on one of my Windows Fat32 partitions I made a directory Mandrake90 which contained the following files:

I inserted one of my PCMCIA CD-ROM players (the Freecom one), booted into pure DOS from a boot floppy, navigated to the Mandra~1.0 directory, typed INST_90 <return> and voilà, installation started..... (albeit with a lot of waiting for the several installation boot stages - Hint: pressing F1-F4 shows various terminals with useful info on what's currently happening.) Only glitch I could find is that MD9.0 installation couldn't cope with Microsoft's optical wheel mouse; I had to select a generic PS/2 mouse and lacked wheel support.
The rest went smoothly. I specified "expert" install mode, selected all packages I needed (everything except server and database stuff) and found that all those packages would take 2.1 GB of the available 2.3 GB. So I decided to clean up a bit.

Tidying up the diarrhoa of installed packages

Like all modern Linux distributions, Mandrake 9.0 by default silently installs 6 ICQ clients, 3 browsers, 4 office suites, 5 Pilot communication tools, 3 or 4 or more multimedia players each fitted with several plugins to play all the other MM-player formats, and loads and loads of other superfluous crap nobody really needs (Oh, I forgot 5 or so FTP clients). So it really pays to select "expert" install mode to be able to cut down on such packages.
Other candidates (besides the ones mentioned above) for dropping are supporting packages for Perl (a rarely used program, but still consuming 40 MB or so) and sane stuff (only the sane-libs are needed for KDE).
In addition, when I did my supporting subject Computer Science / Mathematics on university I had to type in and run my programs on PDP11's and it is probably there that I picked up my deep hatred of vi. So I was a bit alarmed to learn that for some obscure reason vi-minimal is needed by some Mandrake base packages but I'll try to remove it someday - I fail to believe that vim is needed to boot Linux.
This touches opun another issue with Mandrake, and possibly many other modern distros:
Often some unexpected packages are silently installed because just one or two files from those packages are needed for some Mandrake base package. Examples are Vi-minimal and TightVNC (a remote desktop-client); I happened to stumble upon those, but there may be many others. It would be much better if the base packages would be independent from the add-ons. I suspect that such dependencies account for several hundreds of MB wasted on complete packages of which just some files are needed for base configuration and which are simply not needed otherwise.

All in all, Mandrake 9.0 tuned to my wishes needed about 1700 MB on disk.

I had the lilo boot stuff written to /dev/hda6 (/boot, just a logical 16 MB partition within the first 8 GB of the hard disk) and the rest of the system on hda10 (/). OS/2 boot manager would be used to boot the lilo bootloader, which in turn would be used to select a linux kernel and boot it.

Installation and selection of all packages took about 4-5 hours and 2 CD-ROM changes. After that, the "post-install" stuff, i.e. installation of my HP970CXi printer connected to a HP170x JetDirect printer server, configuring X, network options and other settings took another hour. Automatic upgrading of some vital packages took again 2-3 hours. Finally, I could boot Mandrake 9.0.
 

INSTALLATION OF MANDRAKE 9.1

As described above, I used the upgrade option to install Mandrake 9.1 over Mandrake 9.0. Similarly to installation of Mandrake 9.0, I made a directory Mandrake9.1 on a Fat32 partition containing the files:

After booting from floppy, navigating to C:\Mandra~1.1, typing MDK91INS.BAT <return> and specifying some obvious answers, upgrading to 9.1 took 4+ hours and no CD-ROM change at all. The latter already made me suspicious.
In the end, some packages had to be dropped, but later on I could reinstall/upgrade them manually from the other 2 CD-ROMs which the installation procedure never had asked for.

In the end, the lilo boot loader had saved the old 2.4.19 kernel image and modules from the Mandrake 9.0 installation as 'oldlinux".
 

ADAPTING MANDRAKE 9.1 TO MY WISHES

Adapting MD9.1 to my wishes comprised as regards software:

and as regards hardware: and finally: Cleaning up is facilitated because a kernel recompile is needed to get PCMCIA floppy support and NETBEUI support. That implied that the rather "complete" default kernel configuration could be dispensed of once the "floppy-enabled" kernel would run OK, implying all modules needed for extraneous hardware etc. could be left out and the kernel image could be much smaller.
 

Screen resolution

I found that Xfree86 version 4.3 (from MD9.1) could by itself find out whether an external screen was connected or not. If so, it would default to 1024x768 resolution, otherwise it would select 800x600.
The latter implied that the lower parts of the screen would fall below the screen bottom and would become inaccessible, let alone unusable. So I needed 800x480 support.
The fact that XFree86 could by itself find out the maximum resolution gave me hope that it could automatically switch between 1024x768 and 800x480, depending on the presence of a connected external screen. However, things turned out to be not that easy.

XFree86 by itself interogates the screens for screen resolutions and by default selects the maximum resolution. However, for 800x480 the server option "override_validate_mode" or a variant of this option is needed, which is incompatible with autoselection of screen resolutiun. The only way out was to use two boot options as described on Quentin Stafford-Frazer's Libretto web page, comprising:

(Hint: for non-standard screen resolutions like e.g. the Libretto 100/110 has got, go to xtiming.sf.net to have a suitable mode line calculated.)

In Jonathan Buzzard's Toshiba Utilities a Display Switch utility has been included which can switch displays on the fly. For this to work the Toshiba kernel module must be up and running.
Additional resolution switching can be done (but not in KDE, that WM seems to screw up this option) using the standard <Ctrl><Alt><grey +>/<grey -> key combinations (use <Fn>< F11> to toggle the numeric keypad mappings on the Libretto keyboard, have a look at Xin Feng's Libretto keyboard secrets for that).

Christian Gennerat has put up a Libretto display utility based on the Toshiba Utilities. You can use it for switching the internal display brightness.

PCMCIA floppy driver

David Bateman made a Libretto floppy driver for 2.0 and 2.2 kernels (I used it for Mandrake 7.2 on a 2.2.19 kernel, it always worked without any problems). Christian Gennerat updated it for 2.4 and 2.5 kernels. All these packages can be found at Gennerat's site.

Unlike 2.0 and 2.2 kernels, where PCMCIA support is supplied by the external pcmcia-cs package, 2.4 and later kernels feature PCMCIA support built into the kernel itself. There is an option to disable it and to use external PCMCIA support instead. I have some reason to believe that external support is still better; e.g. I can't get my external hard disk (Cardbus) properly recognized and support for my Freecom Traveller I is lousy, the connection is lost after 4-5 CD-ROM changes. Nevertheless, I have been too lazy to switch to external PCMCIA support and use the kernel support (yenta socket) up till now.

As regards the floppy driver, take care to select the proper one. For 2.4.19 and up kernels, use floppy_cs-2.05. The instructions must be interpreted a little bit, but are clear enough.
It may happen that patching the kernel fails and one or two hunks to floppy.c must be typed in manually. Using the 2.4.19 kernel and floppy_cs-2.05, all patches were accepted completely.
Be sure to select loadable module support and to specify the floppy driver as a module.

In the file /etc/pcmcia/config, two stanzas must be included which can be found in the file post-install. Another stanza is to be added to /etc/modules.conf
Christian Gennerat was so kind to inform me how to circumvent devfs:
"... as I asked that /dev/fd0 is not created by DEVFS,
(replace the floppy lines in devfs config       (he means /etc/modules.devfs, PRN)
#alias /dev/floppy floppy
#alias /dev/fd* floppy
alias /dev/floppy off
alias /dev/fd* off

I have added theese 2 lines in /etc/modules.conf
pre-install floppy /bin/mknod /dev/fd0 b 2 0
post-remove floppy /bin/rm -f /dev/fd0
And the /dev/fd0 exists only when the floppy is connected.
so it works with DEVFS without any patch !"

Once this is done all is ready for kernel compilation. But first some other kernel options must be selected.

Enabling sound

Although sound can probably enabled using the stock Mandrake 9.0 and 9.1 kernels, I enabled general sound support, disabled all sound hardware incl. OSS, selected ALSA and in the ALSA menus only selected Yamaha OPL3SAx support plus OSS emulation. See elsewhere on this page for links to my kernel config files.

Once this is done, the kernel can be recompiled.

To get sound working with the stock or newly compiled kernel, some things have to be adapted here and there.
The following instructions were taken from James Tattin and Jonathan Buzzard.

It may help to install alsa-utils (see CD #1) and alsamixergui (CD #3). The latter has a very easy visual interface.

In /etc/modules.conf, add the lines:

alias char-major-116 snd
alias snd-0 snd-opl3sa2
options snd-opl3sa2 snd_port=0x370 \
snd_wss_port=0x530 snd_midi_port=0x330 \
snd_fm_port=0x388 snd_irq=5 snd_dma1=1 \
snd_dma2=0 snd_isapnp=0
alias char-major-14 soundcore
alias sound-slot-0 snd-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

and then do a "modprobe snd-opl3sa2". Be sure to unmute!

Now, as the Libretto has no built-in CD player, playing audio CD's is a bit involved. I have to connect the line-out / headphone jack on my PCMCIA CD-ROM players with the microphone jack on the back of the Libretto. Using e.g. xmms or KDE CD-player does not work properly with an external CD-ROM player.

NETBEUI support

Netbeui, or NetBIOS without TCP/IP layer (it runs on 802.2 LLC rather), is a protocol invented by Sytec in collaboration with IBM and later used by Microsoft for a.o. file and printer sharing using serial or parallel cables ("DCC" or "Direct Cable Connect"). Standard linux distros install Samba, which also features NetBIOS but then in the form of NetBIOS over TCP/IP. The problem with the latter is that by itself, NETBEUI is a non-routable protocol. It just can't pass a router, which is a very effective safeguard against attacks and hacks from outside. Using NetBIOS over TCP/IP, file and printer sharing becomes routable, in principle applying that hacker from the other side of the globe to peek at my bank account data etc.
Ok, I can also use NFS and limit access to the hosts on my LAN using entries in the /etc/exports file, but then again NFS is on top of TCP/IP ....

In addition, NETBEUI is a fast protocol, a little bit faster than TCP/IP, IPX/SPX or NetBIOS over TCP/IP (elsewhere also called TCPBEUI or NBT). More info on NetBios is here.

Well OK, the gurus *are* right, NETBEUI is old and there are firewalls for TCP/IP, but why mend a leak if it can be avoided in the first place?
One answer might be that a firewall is needed anyway as soon as you browse the internet. But then again, shielding locally shared resources is easily accomplished by separating NetBios from TCP/IP. All operating systems which I have up and running at home, including Windows 98, ME and 2000 Pro and OS/2 Warp Connect, allow that out of the box; just that one operating system with that superior network support, i.e. linux, can not (no kidding here, although OS/2 Warp also shines as regards networking).
Although all mentioned OS-es except Linux can also run NetBIOS over TCP/IP, I like the implied safety induced by filesharing with NETBEUI behind a NAT router too much to sacrifice it because of one operating system which (still) cannot run it.

BTW from the kernel developers mailing list I concluded that there is still some ongoing NETBEUI development for 2.6+ kernels. LLC has already been merged in the 2.5 series.

Procomm Technologies started development of a NetBIOS stack and later on donated it to the public domain (perhaps because it is so terribly complicated that they got stuck). Arnaldo Cavalho de Melo patched them for 2.4.x kernels. The latest version, for 2.4.16 kernels and Samba 2.0.6 can still be found in the various /pub/linux/kernel/people/acme/old mirrors around the Internet.

Recently, Nikolai Zhubr and friends patched them for 2.4.20 and currently 2.4.22 kernels and Samba 2.2.8a.
Presently it comprises two (series of) patches, one to the kernel and one to Samba. I could apply the first without any rejected hunks to a stock Mandrake 2.4.19 kernel source. Applying the second one to Samba proved less successfull as gcc by default included from untouched /usr/include/linux rather than /usr/src/linux/include/linux where the patched kernel include files reside. I simply changed the ./linux and ./asm directories in /usr/include into symlinks to /usr/src/linux/include. That may or may not be good practice, but it worked.

OK, the results as of today are that smbclient works somewhat; Windows and OS/2 can see the Samba NETBEUI server (smbd / nmbd); but even with NetBios over TCP/IP I cannot get my Linux boxes to talk to OS/2 and/or Windows boxes, not even to another Linux box. Perhaps the patches also broke regular Samba internals. Moreover, there are some leaks as smbclient hangs after a while even if it is completely idle.
Right, some more debugging is needed. Perhaps I should upgrade to kernel 2.4.20 just like Nikolai Zhubr, maybe I use a too recent C++ compiler (it seems gcc 2.96-3 is still recommended rather than 3.+ versons). Additionally, it is not unlikely that smbmount also has to be patched to support netbeui.
If you want to try it yourself, then you might use my netbeui script in /etc/rc.d/init.d to load and unload netbeui support and the samba daemons at boot and shutdown/reboot. The samba daemons, once started with netbeui support rather than TCP/IP, ignore killall requests and have to be terminated with more convincing arguments (i.e., kill -9); otherwise the netbeui and llc kernel modules will remain busy and never unload, and thus inhibit kernel shutdown for ever.

Kernel compilation and installation

Although the steps needed to compile and install the kernel are straightforward and very clearly described a.o. in the README in /usr/src/linux, some little things to know may save the kernel building novice quite a bit of time and frustration:


PCMCIA (re)writer setup and mounting

My Freecom Traveller I CD-R/RW rewriter could be used as per the instructions outlined in the CD-Writing-HOWTO:

Although deprecated by David Hinds, the pcmcia-cs maintainer, it may be handy to allow only a genuine PCMCIA rewriter to be mounted at e.g., /mnt/cdrw. Problem was that my PCMCIA CR-ROM and CD-R/RW have no serial nos. The only way to distinguish them is by the MODEL string.
To do so, in the file /etc/pcmcia/ide.opts the following stanzas must be included (see pcmcia-cs IDE forum message):

case {ADDR} in {*,*,MODEL}
      :
      :
      MOUNTPT="/mnt/cdrw"
esac

As an example, you can have a look at my /etc/pcmcia/ide.opts file. Not everything works out OK yet, but at least the Freecom Traveler I CD-R/RW is always mounted at the right place.

Next, in the lilo.conf file (or equivalent) kernel options more or less like the ones below must be specified:

Image=...........
      label=
      read-only
      append="hdc=ide-scsi"

to ensure that the scsi emulator can grab the /dev/hdc connection.

 

INSTALLATION OF MANDRAKE 9.2

To be able to use swsusp (software suspend (to swap)) at least kernel version 2.4.22 was needed. Downloading that from the Mandrake site (from the raw kernel tree) showed dependency on glibc2.3, and that would blow up initscripts, and that .....
So I downloaded the raw kernel tree from kernel.org and first started to patch and compile in floppy support. I tried that both with yenta and pcmcia-cs, to no luck - there were always some unresolved linker issues, so I gave up.
So I decided to go for Mandrake 9.2.

First try:NFS
As there were no iso images yet, I downloaded the entire raw tree (altogether 6+ GB) and first tried an NFS install. I copied vmlinuz and all.rdz from /isolinux/alt0 to a directory on one of my Windows FAT drives, copied loadlin.exe from somewhere else and typed:
loadlin vmlinuz initrd=all.rdz ramdisk_size=128000 root=/dev/hda3 vga=788
After about a minute a question would appear about what installation type I needed. Turned out I could use only NFS and CD-ROM; FTP and HTTP would need 68 MB (the Libretto 110 only got 64 :-( ). After selecting NFS, I was asked for some IP adresses. I entered a blank for hostname, after a while I got another window asking for hostname and domain. Finally it asked for the NFS server and exported MAndrake directory; I found I had to enter an IP address rather than a hostname as there is no DNS anywhere on my local peer-to-peer LAN.
After many tries I finally found that the install locked up somewhere in install stage 2. I think it may have to do with the fact that the RPMS dirs are in fact symbolic links to directories on a NTFS drive - NFS may not like that.

Next try: CD-ROM
Next option was CD-ROM. I plugged in my rusty Freecom Traveller I CD-R/RW and tried the same loadlin options as above. Result: lockup in install stage 2.
After some Internet searching I stumbled on this page where instructions are given for the various append options Mandrake needs to do the proper thing. So I finally entered all the pcmcia CD-ROM options on one line:
loadlin vmlinuz initrd=all.rdz ramdisk_size=128000 root=/dev/ram3 vga=788 acpi=off pcmcia automatic=method:cdrom
Finally that made it: Although I had to try several times (and the install process stuck somewhere, usually during stage 2), at one time the process continued and I could install MD92 without much troubles. That is, until I tested XFree86 - the installation hanged rock solid. On the second try I did not test anything, just entered what I thought was needed and deferred testing until booting the newly installed Mandrake 9.2.

Accessing all three CDs
Again, like with Mandrake 9.2, only the first CD was used. But another Internet search turned up that in the newly installed system I had to go to the Configuration => Packaging => Software Media Manager and check the entries there - indeed all 3 CD's were mentioned. When I clicked OK rpmdrake immediately started generating the full list of packages from all 3 CD's. When I added the raw tree on my desktop via an NFS mount, rpmdrake took > 1 hour to generate the full list of *all* MD92 packages....


Experiences with Mandrake 9.2

At first sight it seems that Mandrake 9.2 is too heavy for the Lib. But there must be some install glitch, as the cause lies with devfs; disabling devfs makes booting 9.2 faster than 9.0, and the logins are processed rapidly then. I suspect that the devfs daemon takes its time to wait for the various hardware devices to respond.
The floppy works OK with kernel 2.4.21-22mdk and 2.4.25-5mdk.


SWSUSP on MD 9.2

Software suspend (Hibernate-to-disk, not the BIOS hibernation but more like Windows 2000) works quite well on the stock Mandrake distro. All one needs is adequate swap space (say, 120 MB on the Libretto 1x0), an append option in lilo.conf "resume=/dev/hda$" where /dev/hda$ refers to the swap partition. Entering from a terminal:
sudo /usr/sbin/pmsuspend2
will do the trick then. Neat!

INSTALLATION OF MANDRAKE 10 (fails!)

I tried to install Mandrake 10 along the lines described above. But up till now the MD10 install kernel doesn't recognize the Libretto HW properly. It keeps asking for a supplemental driver floppy - an ominous sign. Further down the install, during "configuring IDE", it apparently asks for imm or ppa interfaces; finally it reports "No valid devices were found on which to create new file systems. ".
I suspect the ISA IDE is the culprit, the Mandrake 10 install kernel may be configured for PCI IDE only.....


LINKS

That's all for now. For further info, you can browse to these web sites:
Linux on Laptops
Synack Libretto 100 experiences
Toshiba Linux web site
Werner Heuser's Tuxmobil site (his mobilix.org site has currently been hijacked by lawyers of Les Edition Albert René, the publishers of Asterix and Obelix comics strip albums). Nevertheless, on tuxmobil you can find a.o an inventory of various not-officially-supported PC-cards.
The Linux Laptop-HOWTO
Linux+DOS+Win95+OS2-HOWTO (a bit outdated I think, but it still makes for interesting reading.)
Synack Libretto 100 experiences
Quentin Stafford-Fraser's Libretto page (Xfree86, sound)
Tim Pozar's Libretto 100 page (Slackware)
Someone else's Libretto page (no name found on page)
Solaris on Lib100 (Japanese, translate with Altavista Babelfish
Linux auf Toshiba Libretto 100 (in German)
Bernhard Strathewerd's Libretto page (in German)

< >