A.2.3.1. CD−ROM hardware support
Most modern CD−ROM drives will use IDE devices like
/dev/hdc
or
/dev/hdd
. To support these
CD−ROM drives we will have to configure IDE support in the kernel and create the appropriate device files
on the root disk.
A.2.3.2. CD−ROM filesystem support
CD−ROMs have different filesystems than hard disks and floppies. Most CD burning applications use a
filesystem called ISO−9660 and have the capability to support Joliet or Rockridge extensions. We will have to
include support for these filesystems in the kernel in order to mount CD−ROMs.
A.2.4. Other required files
We will want to have all of mp3blaster's required libraries and other supporting files available as part of the
compressed
/usr
image so that mp3blaster can run correctly. The familiar ldd command can be used to
determine which libraries mp3blaster requires. Any additional libraries can be placed in
/usr/lib
. Even
though some of the libraries may appear in
/lib
on the development system, they can still go in
/usr/lib
on the Pocket Linux system. The dynamic linker,
ld−linux.so
, is smart enough to look in both places
when loading libraries.
Because mp3blaster uses the curses (or ncurses) screen control library there is one additional file we need.
The curses library needs to know the characteristics of the terminal it is controlling and it gets that information
from the terminfo database. The terminfo database consists of all the files under the
/usr/share/terminfo
directory and is very large compared to our available disk space. But, since
Pocket Linux only supports the PC console, we only have one terminal type to worry about and therefore need
only one file. The piece of the terminfo database we need is the file
/usr/share/terminfo/l/linux
,
because we are using a "Linux" terminal. For more information about the subject of curses, see John Strang's
book entitled "Programming with Curses" available from O'Reilly publishing.
A.2.5. Summary of tasks
Between sound cards, ramdisks, CD−ROMs and terminfo there is quite a bit to keep track of. So let's take a
moment to organize and summarize the tasks necessary to make the pocket jukebox a reality.
Create a new kernel disk that includes built−in support for audio hardware, IDE devices and
CD−ROM filesystems.
•
Create the appropriate
/dev
files on the root disk to support audio hardware, additional ramdisks and
IDE CD−ROMs.
•
Install the gunzip utility to enable decompression of the usr image.
•
Create a startup script to load a compressed image from floppy into a ramdisk and mount the ramdisk
on
/usr
.
•
Create a compressed floppy that holds the mp3blaster program, its required libraries and terminfo
files.
•
A.3. Construction
Pocket Linux Guide
Appendix A. Hosting Applications
50