I have the Debian install CD, and I used it to get the base system on the computer. It looks like you will not be able to install from the floppies, because there is no USB floppy driver, the kernel has no way to get the rest of the filesystem once it's booted from a floppy. Buy a CD/burn an ISO image. It's a lot easier, trust me.
Once I got to the main menu, the Debian installer saw my existing ext2 partitions from Mandrake. I then mounted the swap and /dev/hda8 partitions, and that's where I'll install to. Once I'm done with the install, I'm going to build a ReiserFS kernel, then format the rest of the partitions, move the files over, and then install a boatload of packages to complete my system.
On the 'Install Modules' part of the install, the below listed modules are what I think the laptop has as far as hardware that would be supported from the kernel modules. Choose the modules from their respective menus:
- fs - binfmt_misc (Java binary support; optional); nfs, nfsd, lockd (NFS; optional but recommended for the nfs module); vfat (if you are keeping a Windows partion around)
- misc - ac97_codec (the module 'ac97' won't load); i810_audio (for the sound card); irport, irtty, ircomm-tty (Infrared support); sound, soundlow (OSSFree sound modules); serial (serial support)
- net - eepro100 (ethernet card); irlan (Infrared LAN support); ppp (PPP support for dialup)usb - usbcore, usb-uhci (core USB modules); usb-storage (floppy); mousedev, usbmouse (mouse); dc2xx (Kodak series cameras USB support; I have a DC280 :) )
- video - if you want framebuffer console video, choose a framebuffer driver here, I chose fbcon-cf24
I'm on a DHCP network, so the laptop got an IP address via the built-in Intel ethernet adapter right away.
Install the Base System
I have the Debian CD, so I chose 'cdrom'. My CD was in the drive, so I hit Enter again, and hit Enter again because the installer will find the Debian Archive path automagically. Choose the 'default' option from the next menu. The base system will now install itself. Next step is 'Configure the Base System', which lets you set the system timezone and if the computer's hardware clock is set to GMT.
Next, 'Make Linux Bootable Directly From Hard Disk'; I always put LILO in the Master Boot Record (MBR), you can put it where you wish. I don't know if I can make boot floppies in the 'Make a Boot Floppy' step, I left my floppy drive at home. So I 'Reboot(ed) the System'.
Once the computer came back up from the reboot, you will be asked some more configuration questions. Yes, you want MD5 and shadow passwords enabled. Set the password for root, and create a normal user as well. Don't remove the PCMCIA packages unless you know for a fact that you will never use them. I've got tons of PCMCIA cards, so I'm keeping mine. Next step asks you if you want to use PPP to install the system. That's up to you, I chose no. My system scanned my CD, and then asked me if I want to scan more (I only had 1). I then picked a few sites for downloading packages; this is how apt-get knows where you want to get packages from. You will be asked if you want to view non-free, non-US and contrib packages (yes, yes, and yes). I don't have a proxy server, so after I hit enter for that step, it goes out and tests the package archives for connectivity speed. When you have selected multiple apt-get package archives, go back in and 'edit the sources list by hand' and uncomment the line that says:
deb http://security.debian.org stable/updates main contrib non-free
This will allow you to automatically install with the latest versions of packages that have been updated from what's on the CD ROM, instead of having to update right after the install. Choose the 'simple' install in the next step, and the 'C' and 'Laptop' task packages. I wanted just enough stuff to compile ReiserFS and utilities. Once we are ReiserFS-enabled, we can install the rest of the packages we want to use.
Log in as root, then start getting ready to compile a new kernel. You will need the following extra packages/tarballs:
- Kernel source. Use your local kernel.org FTP mirror or install the kernel .deb
- ReiserFS patch.
- Any other patches you want to use. (kernel crypto patch for example)
- patch package
- bin86 package
- libncurses5-dev package if you like using 'make menuconfig' in the kernel source
Install the above packages with the following command:
apt-get install package_name
You can patch your kernel source by moving the file into /usr/src/linux, and doing this:
cat filename.patch | patch -p1
The -p# number is how many levels of directories to strip off of the patch. Most developers do something like /usr/src/v2.2.18/files, so the patch will have the extra v2.2.18 in the front of it. If you patch from /usr/src/linux, you don't need that extra directory. The patch -p1 removes that extra directory that's in the patch. If you see a lot of error messages when you are patching, rm the source and start over, but try using a higher -p number next time.
Compliling a new kernel
Once you get the kernel patched up, you can go ahead and run make [config | menuconfig], and choose the options that you want to use in your new kernel. Make sure that you build ReiserFS into the kernel, not as a module, unless you know how to build initrd images as well. I added the following to my kernel:
- ReiserFS (in-line, not built as a module)
- all crypto built as modules
- USB all built as modules
make dep; make clean; make bzImage; make modules; make modules_install
Move the kernel to /boot, and then let lilo know about it, then reboot the system. Bring the system back up in Single User mode, then start making all the other partitions into ReiserFS partitions with the mkreiserfs command. Mount 1 partition at a time, and copy off it's contents.
cp -av works nicely here. Then rename the old partition (
/usr.old), and make a new stub for that partition (
mkdir /usr), and remount what you copied (
umount /mnt/tmp; mount -t resierfs /dev/hdaX /usr). I did the partitions in this order: /boot, /usr, /var. /home is where I installed to origninally, so it's going to be last. Also, leave /boot as an EXT2 formatted filesystem, or lilo won't know how to find your kernel :). As you move everything around, don't forget to add an entry into /etc/fstab for each partition that you migrate. Use cp -axv for the root ( / ) partition, so that way you don't copy any partitions mounted off of root. I could not get
cp -axv to work right (operator error), so I just did
cp -av /directory /mnt/tmp for each directory in the root, and made sure that there are stubs (empty directories) for other mounted filesystems like
/usr, /var, /boot, and
/home. Edit the /etc/fstab one last time, but make sure you edit the fstab where it will be when you reboot, not the current one. Example, don't edit /etc/fstab and change the root filesystem in there, do it in the fstab located in mnt/tmp/etc, which is where your new root partition is mounted temporarily. For each partition that you Reiser-ize, do not add the dump or fsck pass values at the end of the line, that will hang your startup scripts. Last two steps before you reboot is to tell the kernel where it will be booting from (the
rdev command), and to rerun lilo a few times for that warm fuzzy feeling.
rdev /mnt/tmp/boot/vmlinuz /dev/root_partition
/mnt/tmp/etc/lilo.conf, and change everything from your old root partiton to your new one, and run lilo with -C:
lilo -C /mnt/tmp/etc/lilo.conf
After -ALL THAT-, you can use the /usr/bin/tasksel program to select more tasks that you want this comptuer to do, as well as apt-get/dselect to get individual packages.
Here's a list of what worked on the laptop with Debian:
- X: I downloaded the X 4.0.2 binaries off of XFree86.org. I have X up and running fine with the trackpad and a USB mouse running at the same time. View my XF86Config-4 file for Debian. I've got X running at 1024x768 in 24 bit colors, with WindowMaker and Blackbox installed. Hint: When you are installing the packages in the Debian install for the rest of the system, and you are planning to use X 4.0 instead of X 3.3.6 that comes with Potato, install all of your window managers and X apps like normal, and use the vncserver package to solve your dependency for an X server. That way, you will save yourself from downloading/installing a bunch of crap you are not going to use anyways. I've gotten imwheel to use the scroll wheel on both of the Logitech USB mice that I use. Here's my gpm.conf file. The way I have mice set up, I have X listening to /dev/gpmdata as 'Mouse1' with the 'GlidePointPS/2' X driver, this is the Glidepad built into the laptop. I have multiple Logitech mice (A MouseMan+ and a MouseMan Optical) running as 'Mouse2' using the 'MouseManPlusPS/2' X driver listening to /dev/input/mice. This will catch *ANY* USB mouse input from any USB mouse. So if you have 2 different types of mice, you'll have to specify where the device is you want to attach to mouse #2, and mouse #3, etc. so you can use different X drivers for each type of mouse.
- Video: console uses regular VGA mode. Update: See the notes page for the year 2001 for more information on getting the ATI framebuffer driver working, and fun with the Linux Progress Patch (framebuffer startup screen)
- Modem: It's a WinModem, and it won't work in Linux. See Linmodems.org for some workarounds. I'll be using a 3Com 3C756 real PCMCIA modem card.
- Sound: Get ALSA ASAP. Use this ./configure line for alsa-driver:
./configure --with-card=intel8x0 --with-oss=yes --with-sequencer=yes. Once you have made and installed the alsa-driver modules, use
modprobe snd-card-intel8x0' and '
modprobe snd-pcm-oss to insert the sound modules. Once all the sound modules are in, edit '/etc/modules', and add all of the 'snd' modules that you see in '/sbin/lsmod'. I posted my new '/sbin/lsmod' output below. I compiled XMMS 1.2.4 from source and it works fine, the stock mpg123 package that comes with debian does not work, I'll try recompiling that too. Also, you will need to set 'PnP OS' == OFF in the BIOS. See the BIOS section.
- Ethernet: Works out of the box. The kernel reports it as a Intel i82557/i82558 10/100 Ethernet, using IRQ 9. The eepro100 driver is what it uses. You will have to unload/reload the module upon apm suspend/resume. I read somewhere that's there's something you can do with '/etc/apm/event.d' to get modules to be unloaded/reloaded automatically. I'll be looking into that soon :)
- DVD Video: You can use the LiViD project to get the DVD player working somewhat; I'll be trying to get it working in Debian. Here's a better description from Alex Lancaster, who got DVD working on a Lifebook S-4542.
- USB: Update Feb 5th, 2001 - USB version of Logitech First Mouse Plus and Logitech Opitcal Wheel Mouse works fine in X alongside the PS/2 trackpad.
- Infrared: It runs. I'm playing with it right now, and I have not loaded any extra modules to get it to work, so my lsmod listed below is all you should need.. So far, I've talked to my Palm III and my Nokia 8290 cell phone. See the notes page for the year 2001 for screenshots :). I had to modify
/etc/irda/drivers to point it to /dev/ttyS3 which is what the IR port is on these laptops. I have the irda-common and irda-tools packages loaded, and here's the drivers file: drivers.
Here's my dmesg and lsmod outputs with Debian 2.2 Potato.
Here's the updated lsmod with all of the ALSA sound modules up and running. I CAN STREAM MP3'S NOW!!! Life is much better :). Now I need to find some kind of dockapplet for WindowMaker that does cute things when you feed it an audio signal.
Here's the /etc/modules file, as well as /etc/fstab, for your reference.
That's it! Sure it's work, but it's worth it; when your battery dies, or if your laptop crashes, reboots will be a breeze.