Difference between revisions of "Installing Slackware 10.1 on a PC110"
(→Boot sequence) |
|||
Line 6: | Line 6: | ||
==Boot sequence== | ==Boot sequence== | ||
+ | |||
+ | Booting with {{path|/}} on a PCMCIA device is a bit tricky. There are two ways to do it: | ||
+ | |||
+ | # Add "PCMCIA" to the start-up disk choices in the BIOS, or</li> | ||
+ | # Use an initial ram disk to load the pcmcia modules.</li> | ||
+ | |||
+ | The first option is easier -- the BIOS takes over the slot with the Microdrive in, and the other | ||
+ | one is free for other devices. This works for booting, but the BIOS doesn't seem to be able to wake | ||
+ | the disk up after a suspend-resume cycle. It used to work with the original type III PCMCIA | ||
+ | disk, so it seems the Microdrive needs to be prodded in a different way to revive it. | ||
+ | |||
+ | The solution is to create a PCMCIA-aware <tt>initrd</tt> to initialise the PCMCIA controller | ||
+ | before {{path|/}} is mounted. {{path|/sbin/pcinitrd}}, part of the <tt>pcmcia-cs</tt> | ||
+ | package, will do most of the work. The ramdisk it creates uses <tt>ash</tt> to execute {{path|/linuxrc}}, | ||
+ | so make sure <tt>ash</tt> is installed before running <tt>pcinitrd</tt>. | ||
+ | The ramdisk created by <tt>pcinitrd</tt> isn't quite complete; add the missing libraries | ||
+ | and binaries like so: | ||
+ | |||
+ | <pre> | ||
+ | root@carrot:~# /sbin/pcinitrd initrd | ||
+ | 2400+0 records in | ||
+ | 2400+0 records out | ||
+ | mke2fs 1.35 (28-Feb-2004) | ||
+ | 1836K/2357K used | ||
+ | root@carrot:~# mount -o loop initrd /mnt/ | ||
+ | root@carrot:~# cp /sbin/insmod.old /mnt/bin/ | ||
+ | root@carrot:~# cp /lib/libblkid.so.1 /mnt/lib/ | ||
+ | root@carrot:~# cp /lib/libuuid.so.1 /mnt/lib/ | ||
+ | root@carrot:~# cp /lib/modules/2.4.29/kernel/drivers/pcmcia/i82365.o /mnt/lib/pcmcia | ||
+ | root@carrot:~# cp /lib/modules/2.4.29/kernel/drivers/ide/legacy/ide-cs.o /mnt/lib/pcmcia | ||
+ | root@carrot:~# ldconfig -v -r /mnt | ||
+ | ldconfig: Can't open configuration file /etc/ld.so.conf: No such file or directory | ||
+ | ldconfig: Can't stat /usr/lib: No such file or directory | ||
+ | /lib: | ||
+ | libuuid.so.1 -> libuuid.so.1 | ||
+ | libblkid.so.1 -> libblkid.so.1 | ||
+ | ld-linux.so.2 -> ld-linux.so.2 | ||
+ | libc.so.6 -> libc.so.6 | ||
+ | root@carrot:~# umount /mnt/ | ||
+ | root@carrot:~# gzip initrd | ||
+ | root@carrot:~# cp initrd.gz /boot/initrd | ||
+ | </pre> | ||
+ | |||
+ | Set the [http://www.basterfield.com/pc110/bios/startup.htm BIOS startup | ||
+ | sequence] to "FDD-1", "HDD-1", in that order{{footnote|1}}. | ||
+ | {{path|/boot}} is mounted on {{path|/dev/hda1}}, the 4MB internal flash disk (Hard | ||
+ | disk 1 in the BIOS). | ||
=={{path|/etc/fstab}}== | =={{path|/etc/fstab}}== |
Revision as of 00:01, 25 July 2006
Contents
Kernel configuration
These instructions are intended for use with kernel version 2.4.29, and not with any of the kernels included with the Slackware 10.1 distribution.
The stock kernel requires a patch before $ make config
will produce a configuration appropriate for an i486. Alternatively, skip the $ make config
stage and use this configuration.
Boot sequence
Booting with / on a PCMCIA device is a bit tricky. There are two ways to do it:
- Add "PCMCIA" to the start-up disk choices in the BIOS, or
- Use an initial ram disk to load the pcmcia modules.
The first option is easier -- the BIOS takes over the slot with the Microdrive in, and the other one is free for other devices. This works for booting, but the BIOS doesn't seem to be able to wake the disk up after a suspend-resume cycle. It used to work with the original type III PCMCIA disk, so it seems the Microdrive needs to be prodded in a different way to revive it.
The solution is to create a PCMCIA-aware initrd to initialise the PCMCIA controller before / is mounted. /sbin/pcinitrd, part of the pcmcia-cs package, will do most of the work. The ramdisk it creates uses ash to execute /linuxrc, so make sure ash is installed before running pcinitrd. The ramdisk created by pcinitrd isn't quite complete; add the missing libraries and binaries like so:
root@carrot:~# /sbin/pcinitrd initrd 2400+0 records in 2400+0 records out mke2fs 1.35 (28-Feb-2004) 1836K/2357K used root@carrot:~# mount -o loop initrd /mnt/ root@carrot:~# cp /sbin/insmod.old /mnt/bin/ root@carrot:~# cp /lib/libblkid.so.1 /mnt/lib/ root@carrot:~# cp /lib/libuuid.so.1 /mnt/lib/ root@carrot:~# cp /lib/modules/2.4.29/kernel/drivers/pcmcia/i82365.o /mnt/lib/pcmcia root@carrot:~# cp /lib/modules/2.4.29/kernel/drivers/ide/legacy/ide-cs.o /mnt/lib/pcmcia root@carrot:~# ldconfig -v -r /mnt ldconfig: Can't open configuration file /etc/ld.so.conf: No such file or directory ldconfig: Can't stat /usr/lib: No such file or directory /lib: libuuid.so.1 -> libuuid.so.1 libblkid.so.1 -> libblkid.so.1 ld-linux.so.2 -> ld-linux.so.2 libc.so.6 -> libc.so.6 root@carrot:~# umount /mnt/ root@carrot:~# gzip initrd root@carrot:~# cp initrd.gz /boot/initrd
Set the [http://www.basterfield.com/pc110/bios/startup.htm BIOS startup sequence] to "FDD-1", "HDD-1", in that order1. /boot is mounted on /dev/hda1, the 4MB internal flash disk (Hard disk 1 in the BIOS).