Most of what follows came from what I found in the CD-Writing HOWTO, with some updates and specific details about my particular hardware/software configuration. I suggest you read that document before you go much further.
To begin, I grabbed the source for Linux 2.2.14. I downloaded the
linux-2.2.14.tar.gzfile into my home directory, and then did the following to put it into it's proper place (as user 'root'):cd /home/jason
tar zxf linux-2.2.14.tar.gz
mv linux/ linux-2.2.14/
mv linux-2.2.14 /usr/src/Once you've finished these steps, you should have a proper installation of the Linux 2.2.14 source. Before we configure our new kernel, we need to prepare a few things in
/usr/src/linux-2.2.14:cd /usr/src/linux-2.2.14
make mrproperNow we're actually ready to configure the kernel. So that you understand which options I've selected, here is a rundown of the hardware that I have installed:
2 x 400 Celerons on the Abit BP6 motherboard
2 x 9 GB IDE Hard disks
Sony IDE CD-ROM CDU4011
Mitsumi IDE CD-RW CR-4804TEI am not going to cover ALL of the kernel options that you need to have enabled, modularized, or turned off in order to make your kernel work. I'm only going to cover those items that are important to getting this to work under Linux 2.2.14.
If you aren't sure what else needs to be configured in order for a kernel to work on your computer, it's good to check out your previous kernel source installation for pointers. If your current kernel is Linux 2.2.5 (which ships with RedHat 6.0), you could find out how it's configured by doing the following as root:
cd /usr/src/linux-2.2.5/
make xconfigThis will bring up a graphical display of your kernel's current configuration. You should probably go through each sub-menu and make notes on what is turned on and off. Doing so has saved me from much pain in the past. Write it all down in a notebook that you keep close to your computer.
Once you're confident that you know what it takes (in terms of kernel configuration) to make your computer work, you need to configure the Linux 2.2.14 source. To get this started, you should do this as 'root':
cd /usr/src/linux-2.2.14
make xconfigUsing the notes that you made from looking at your 2.2.5 kernel configuration, go through each menu and choose those same setting choices. That way you can be reasonably sure that this new kernel will at least boot your computer.
What follows below are the changes that I made to my 2.2.14 sources in order to get my CD-RW to work. Keep in mind that I may have been overzealous when it comes to turning certain things on/off/module. I'm not saying this is the BEST way to do things, I'm only saying that this is what worked for me! If I didn't know what something meant, I just left it at it's default value, or used the valued from my old kernel (2.2.5). I have listed my settings by where they occur on the
xconfiggraphical interface:YES: Block Devices: Normal PC Floppy Disk Support
YES: Block Devices: Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
YES: Block Devices: Include IDE/ATA-2 DISK support
NO : Block Devices: Include IDE/ATAPI CDROM support
NO : Block Devices: Include IDE/ATAPI TAPE support
NO : Block Devices: Include IDE/ATAPI FLOPPY support
YES: Block Devices: SCSI emulation support
MOD: Block Devices: Loopback device suport
YES: SCSI Support: SCSI support
NO : SCSI Support: SCSI disk support
NO : SCSI Support: SCSI tape suport
YES: SCSI Support: SCSI CD-ROM support
YES: SCSI Support: Enable vendor-specific extensions (for SCSI CDROM)
YES: SCSI Support: SCSI generic support
(I said NO to everything else in the SCSI Support menu).
YES: File systems: ISO 9660 CDROM file system support
YES: File systems: Microsoft Joliet CDROM extensionsOnce I was done, I returned to the main menu and clicked the 'Save and Exit' option. I then went through the usual steps for building my kernel, which look like this:
cd /usr/src/linux-2.2.14
make dep ; make bzImage ; make modules ; make modules_install
I do everything in one step because it makes me think I'm cool. Next, we need to move the new kernel file into place:
cd /usr/src/linux-2.2.14/arch/i386/boot/
cp bzImage /boot/vmlinuz-2.2.14-cdrwNow that the kernel file is in place, we need to make sure that all the proper symbolic links and other sundries are ready to go. First, I usually copy the
System.mapfile around and reset a few symbolic links. I'm not sure if this is strictly necessary, but I do it anyways:cd /usr/src/linux-2.2.14/
cp System.map /boot/System.map-cdrw
cd /boot
rm System.map
ln -s System.map-cdrw System.mapThe next step is to tell the boot loader lilo about the new kernel. To make this happen, I edited
/etc/lilo.conf, and inserted the highlighted text:boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.14-cdrw
label=linux
root=/dev/hda8
read-only
image=/boot/vmlinuz-2.2.14
label=linux-old-14
root=/dev/hda8
read-onlyAfter I made the changes to the file, I reran the command
'lilo'as user root to make the changes take effect. Next, I did a few things to further ensure that my system would work properly after the reboot. These were modifications that I made to my'/etc/conf.modules'file, which now looks like this (I have highlighted the important lines):depfile=/lib/modules/`uname -r`/modules.dep
path=/lib/modules/`uname -r`
alias eth0 eepro100
alias scd0 sr_mod
alias scd1 sr_mod
alias scsi_hostadaptor ide-scsi
options ide-cd ignore=hdc
options ide-cd ignore=hdd
While I was at it, I also added two lines to my
'/etc/fstab'file to make using my drives easier:/dev/scd0 /mnt/cdrom iso9660 noauto,ro 0 0
/dev/scd1 /mnt/cdrw iso9660 noauto,rw 0 0I also made sure that the directories
'/mnt/cdrom'and'/mnt/cdrw'had been created correctly. My directory looks like this (don't worry too much about the permissions. CD-RWs and CD-ROMs are always read only, and the recording program doesn't use these permissions when writing the CD-ROM image to disk):[jason@taylor:/etc]$ ls -l /mnt
total 3
drwxrwxr-x 2 root root 1024 Oct 9 1998 cdrom/
drwxr-xr-x 2 root root 1024 Oct 29 17:54 cdrw/
drwxrwxr-x 2 root root 1024 Feb 6 1996 floppy/
The next thing that I did was reboot my computer to make the new kernel take effect. I did this using the
'shutdown -r now'command. The computer came back up just fine. Just to make extra sure that everything was configured properly, I did a'depmod -a'command to make sure that the'/etc/conf.modules'was re-parsed.Once these steps had been completed, I basically just picked up on section #3 of the CD-Writing HOWTO which describes the actual burning on CD-ROMs. If you're too lazy to go through that doc, here is what I did.
To start, I downloaded and installed the latest (at the time) RPMs of each of the following applications. I actually found the RPMs and did the downloading by running
'gnorpm'as root, which came with RedHat 6.0:
- mkisofs v1.12b5: Used to turn files and folders into a ISO-9660 compliant CD-ROM disk image.
- cdrecord 1.8a29: Used to burn the ISO-9660 CD-ROM disk image onto a CD-RW disk.
Once I got those installed, I could do as root the
'cdrecord -scanbus'to get the following output:Cdrecord release 1.8a29 Copyright (C) 1995-1999 Jörg Schilling
Using libscg version 'schily-0.1'
scsibus0:
cdrecord: Warning: controller returns wrong size for CD capabilities page.
0,0,0 0) 'SONY ' 'CD-ROM CDU4011 ' 'UY04' Removable CD-ROM
0,1,0 1) 'MITSUMI ' 'CR-4804TE ' '2.2C' Removable CD-ROM
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *According to this output, my Mitsumi CDRW drive is located at
'SCSI Controller 0, SCSI ID 1, LUN #0'. This is important when you run'cdrecord'later in the process. Next, I used the following command to make an ISO-9660 disk image out of my home directory (running as root):cd /tmp
mkisofs -r -o cd_image /home/jasonThe above command created a file named
'cd_image'inside my /tmp directory. Now that I have created my ISO-9660 disk image, I just need to write it out to CD-ROM. I then inserted a blank CD-RW disk that I got from Fry's Electronics real cheap, and issued the following command (as user 'root', again):cd /tmp
cdrecord -v speed=4 dev=0,1,0 -data /tmp/cd_imageOnce the CD-ROM image has been written out, you can mount it to make sure that everything works by running the following command as user 'root':
mount /mnt/cdrw
cd /mnt/cdrw/
ls -laNow that's it...you're done! Woo-hoo!