2.3.3. Copy the bootloader files to diskette
Normally, after compiling source code, one would use the command make install to copy the finished files to
their proper destinations in the filesystem. However, using make install does not work well with small media
like the floppy disks we are using. The problem is that there are many files in a package besides the actual
binaries that get the job done. For example, there are often man or info pages that provide documentation.
These extra files can take up more space than we can spare on the diskette. We can work around this
limitation by copying essential files manually rather than using make install.
For GRUB to boot we will need to copy the stage1 and stage2 bootloader files to the
/boot/grub
directory
on the boot floppy.
bash# mkdir −p /mnt/boot/grub
bash# cp /usr/src/grub−0.95/stage1/stage1 /mnt/boot/grub
bash# cp /usr/src/grub−0.95/stage2/stage2 /mnt/boot/grub
2.3.4. Finish bootloader installation
Once the bootloader's files are copied to the boot disk we can enter the grub shell to finish the installation.
bash# /usr/src/grub−0.95/grub/grub
grub> root (fd0)
grub> setup (fd0)
grub> quit
2.3.5. Build the Linux kernel
The steps for building the kernel were tested using Linux kernel version 2.4.26 and should work any 2.4.x or
2.6.x kernel. The latest version of the kernel source code may be downloaded from http://www.kernel.org/ or
one of its mirrors.
The instructions below are very brief and are intended for someone who has previous experience
building custom kernels. A more detailed explanation of the kernel building process can be found in the
Kernel Rebuild Guide by Kwan Lowe.
bash# cd /usr/src/linux
bash# make menuconfig
Be sure to configure support for the following:
386 processor
•
Console on virtual terminal (2.4.x kernels only)
•
ELF binaries
•
Floppy disk
•
proc filesystem
•
RAM disk with a default size of 4096K
•
Second extended (ext2) filesystem
•
VGA console
•
bash# make dep
bash# make clean
bash# make bzImage
Pocket Linux Guide
Chapter 2. A Simple Prototype
8