/bin/mount, /etc/sysconfig/network, /bin/echo, /bin/hostname
rootfs/dev Description: The /dev directory that holds all device special files required by your floppy
Called by:
Calls:
Supports:
rootfs/sbin Description: Directory for various binaries
Called by:
Calls:
Supports:
rootfs/sbin/init Description: init is the main program in any unix/linux system. It runs all other programs, keeps track of runlevels (which are irrelevant for a floppy), maintains the process tree, adopts orphan processes, etc. It shows up as process zero (0) when doing a ps.
Called by: The kernel
Calls: Generally, init runs /etc/rc.d/rc.sysinit, then the rc scripts (normally passing a runlevel parameter...but since runlevels are irrelevant for a floppy we skip that part), and finally some getty processes (or for RedHat, some mingetty processes).

/etc/inittab is the configuration file for init.
Supports: All other processes.
rootfs/sbin/syslogd Description: The syslog daemon. It is used for logging all user messages. If you are doing remote logging, the remote syslog will listen on udp port 514.
Called by: /etc/rc.d/init.d/syslog
Calls: /etc/syslog.conf is the config file for syslogd. Also depends on /etc/services if you plan to do remote logging.
Supports:
rootfs/sbin/pump Description: This is the DHCP client that ships by default with RedHat. As of version 0.8.3-2 pump has some bugs that allow it to work correctly only on eth0. dhcpcd would be an option, but is in the range of 300k, so would consume a *lot* of space on our floppy.
Called by: /etc/sysconfig/network-scripts/ifup-eth0
Calls: /etc/pump.conf is the config file for pump.
Additionally, if the "script" directive is used in the config file, pump will call the script and pass it three parameters. These are the action (up, down, or renewal), the interface name (i.e. eth0), and the IP address (it doesn't pass the IP address if the action="down").
Supports: Ethernet interface(s).
rootfs/sbin/route Description: A program to inspect / manipulate the routing table. I'm not sure if route is really needed once you have your floppy up and running, since ifconfig seems to set up the basic routing information for each interface. It sure is handy, though, when troubleshooting network problems.
Note: verify whether route is needed or not...could save approx 32k of disk space.
Called by:
Calls:
Supports: ifconfig?
rootfs/sbin/ifconfig Description: A program to configure network interfaces.
Called by: Any of your network initialization scripts that don't use DHCP. In my case these are:
/etc/sysconfig/network-scripts/ifup-eth1
/etc/sysconfig/network-scripts/ifup-eth2
/etc/sysconfig/network-scripts/ifup-eth3
Calls:
Supports: Network interfaces.
rootfs/sbin/klogd Description: The kernel logging daemon. klogd intercepts all kernel messages and logs them through syslogd.
Called by: /etc/rc.d/init.d/syslog
Calls:
Supports:
rootfs/sbin/iptables Description: iptables is the user-space tool for setting up ip packet filter rules.
Called by: /etc/rc.d/rc.firewall
Calls:
Supports:
rootfs/sbin/insmod Description: insmod is a utility for inserting kernel modules into the running kernel. Most linux systems use modprobe to do this, but since modprobe is huge we do it using insmod. The problem is that modprobe figures out the module dependencies for us. Since we no longer have that luxury on a floppy, you have to make sure that the modules are loaded in the correct order yourself. One way to do this is to check out the /lib/modules/$(uname -r)/modules.dep file on a system running a full copy of RedHat. This file will list each module followed by the module(s) it is dependent on.
Called by: /etc/rc.d/rc.modules, /etc/rc.d/init.d/network, /etc/rc.d/init.d/pcmcia
Calls: Note that neither /etc/conf.modules nor /etc/modules.conf is called by insmod. Those config files are used by depmod and modprobe which are both rather large and don't fit well on a floppy.
Supports: Any programs that require kernel modules to be loaded for proper operation. In my case, this includes all of the networking programs (route, ifconfig, pump, portsentry, netstat, syslogd, and ipchains) and the pcmcia package (cardctl, cardmgr).
rootfs/sbin/cardmgr Description: cardmgr is a program to manage the pcmcia sockets. It monitors these sockets for insertions / removals of pcmcia cards. Once a card is inserted and recognized, it loads the appropriate kernel modules for that card. It then runs the appropriate script configuration program. cardmgr expects the modules to be located in /lib/modules/$(uname -r), but has a command line option (-m) to set the module path to something else. Since I have simply dumped all necessary modules in /lib/modules, I wanted to use this option to direct cardmgr to look there for the pcmcia modules. Unfortunately, I was unable to get this to work. This is why if you look in /lib/modules, you will find a link from 2.2.16-3 to ./ and another link from pcmcia to ./ Thus, when cardmgr tries to look in /lib/modules/2.2.16-3/pcmcia, it will actually be looking in /lib/modules. Very sneaky if I do say so myself. :-)
Called by:
Calls: The config file for cardmgr is /etc/pcmcia/config. When it is called, it calls /etc/pcmcia/config.opts which holds the module options for all the possible pcmcia cards.
Supports: All pcmcia devices.
rootfs/bin Description: This directory contains many of the basic programs required by the system.
Called by:
Calls:
Supports:
rootfs/bin/ash Description: This is the shell we're using for our floppy. I was using the bash shell, but when I ported this bootdisk from the 2.2 series kernel to the 2.4 series kernel, I just didn't have enough space to keep bash.
Called by: /etc/rc.d/rc.sysinit, /etc/rc.d/rc.firewall, /etc/rc.d/rc.local, /etc/rc.d/rc.modules, /etc/rc.d/init.d/network, /etc/rc.d/init.d/pcmcia, /etc/rc.d/init.d/syslog, /etc/pcmcia/config, /etc/pcmcia/config.opts, /etc/pcmcia/network, /etc/sysconfig/network-scripts/ifup-lo, /etc/sysconfig/network-scripts/ifup-eth0, /etc/sysconfig/network-scripts/ifup-eth1, /etc/sysconfig/network-scripts/ifup-eth2, /etc/sysconfig/network-scripts/ifup-eth3, /etc/sysconfig/network-scripts/ifcfg-lo, /etc/sysconfig/network-scripts/ifcfg-eth0, /etc/sysconfig/network-scripts/ifcfg-eth1, /etc/sysconfig/network-scripts/ifcfg-eth2, /etc/sysconfig/network-scripts/ifcfg-eth3, /etc/sysconfig/network, /etc/sysconfig/init, /etc/sysconfig/pcmcia, and any other scripts that need run.
Calls:
Supports:
rootfs/bin/sh Description: A link to /bin/ash. See the the entry for ash for more information.
Called by:
Calls:
Supports:
rootfs/bin/ls Description: A program to list the contents of a filesystem
Called by:
Calls:
Supports:
rootfs/bin/netstat Description: This program shows the status of network connections. It is not needed for the function of my bootdisk, but is mighty handy for debugging.
Called by:
Calls:
Supports:
rootfs/bin/ping Description: This program is commonly used to test network connectivity. Note that you can ping by either hostname or ip address. If you cannot ping a computer by its hostname, but can ping it by the ip address, this indicates a name resolution problem.
Called by:
Calls:
Supports:
rootfs/bin/hostname Description: This program sets the hostname for the system. It's not really necessary, but it doesn't take up much space so I left it in.
Called by:
Calls:
Supports:
rootfs/bin/cat Description: This program is used to display the contents of a file on the console. It is not required for the operation of our bootdisk, but is quite handy for examining the contents of various files for troubleshooting purposes.
Called by:
Calls:
Supports:
rootfs/bin/grep Description: This program is a pattern matching program. It is used by the /etc/rc.d/rc.firewall script to parse the nameserver ip address from the /etc/resolv.conf file and set up DNS forwarding rules.
Called by: /etc/rc.d/rc.firewall
Calls:
Supports:
rootfs/bin/sed Description: This program is a stream editor. It is used by the /etc/rc.d/rc.firewall script to parse the nameserver ip address from the /etc/resolv.conf file and set up DNS forwarding rules.
Called by: /etc/rc.d/rc.firewall
Calls:
Supports:
rootfs/bin/echo Description: This program will display any argument you pass it on the console. It is used with the redirection operator (>) to set a couple networking options.
Called by: /etc/rc.d/rc.sysinit, /etc/rc.d/init.d/network, /etc/rc.d/init.d/pcmcia
Calls:
Supports:
rootfs/bin/mount Description: This program is used to mount any filesystems. In this case, the only filesystem that needs mounted is the RAM filesystem.
Called by: /etc/rc.d/rc.sysinit
Calls: /etc/fstab, /etc/mtab
Supports:
rootfs/etc Description: This directory holds the configuration files and startup scripts.
Called by:
Calls:
Supports:
rootfs/etc/rc.d Description: This directory contains system startup scripts.
Called by:
Calls:
Supports:
rootfs/etc/rc.d/init.d Description: This directory contains scripts that are normally run when init issues a runlevel change. Since runlevels are irrelevant for this bootdisk, these files could just as well belong in /etc/rc.d, but they've been left here to comply with the RedHat system layout.
Called by:
Calls:
Supports:
rootfs/etc/rc.d/init.d/syslog Description: This script starts the kernel and system logging daemons.
Called by: /etc/rc.d/rc
Calls: /etc/syslog.conf, /etc/services
Supports:
rootfs/etc/rc.d/init.d/network Description: This script starts up networking with the exception of wireless networking which is handled by the pcmcia script. First it enables packet forwarding by poking a "1" into the /proc/sys/net/ipv4/ip_forward file. After that it loads the af_packet.o module which is needed in order for /sbin/pump to work. Then, it loads the kernel module for the type of network card I have. Finally, it runs the network start scripts.
Called by: /etc/rc.d/rc
Calls:
Supports:
rootfs/etc/rc.d/init.d/pcmcia Description: This script starts our pcmcia devices. In our case, it simply applies to the Raylink (Webgear) wireless ethernet 802.11 card.
Called by: /etc/rc.d/rc
Calls: /sbin/insmod (several times), /sbin/cardmgr
Supports:
rootfs/etc/rc.d/rc.sysinit Description: This is the first of the system scripts to be run. In our bootdisk, it doesn't do much other than mount the filesystems (/ and /proc) and set the hostname.
Called by: /sbin/init
Calls:
Supports:
rootfs/etc/rc.d/rc.local Description: This script is the last of the startup scripts to run. Currently it doesn't do anything.
Called by: /etc/rc.d/rc
Calls:
Supports:
rootfs/etc/rc.d/rc.firewall Description: This script sets up the packet filtering and nat/masquerading rules for our system.
Called by: /sbin/pump
Calls: /sbin/iptables, /bin/cat, /bin/grep, /bin/sed
Supports:
rootfs/etc/rc.d/rc Description: This script is called by /sbin/init after /etc/rc.d/rc.sysinit completes. It calls all the initialization scripts in /etc/rc.d/init.d and then /etc/rc.d/rc.modules, and lastly calls /etc/rc.d/rc.local. Generally init passes this script a parameter that corresponds to the runlevel that we want to go to, but since runlevels are irrelevant for this bootdisk, we disregard the runlevel argument.
Called by: /sbin/init
Calls: /etc/rc.d/init.d/network, /etc/rc.d/init.d/pcmcia, /etc/rc.d/init.d/portsentry, /etc/rc.d/init.d/syslog, /etc/rc.d/rc.modules, /etc/rc.d/rc.local
Supports:
rootfs/etc/rc.d/rc.modules Description: This script loads any additional modules that haven't already been loaded. Currently this file does nothing.
Called by: /etc/rc.d/rc
Calls:
Supports:
rootfs/etc/sysconfig Description: This directory contains various system configuration files.
Called by:
Calls:
Supports:
rootfs/etc/sysconfig/network-scripts Description: This directory contains the scripts for starting up the network interfaces.
Called by:
Calls:
Supports:
rootfs/etc/sysconfig/network-scripts/ifcfg-lo Description: This file contains configuration information for the loopback device.
Called by: /etc/sysconfig/network-scripts/ifup-lo
Calls:
Supports: /etc/sysconfig/network-scripts/ifup-lo
rootfs/etc/sysconfig/network-scripts/ifcfg-eth0 Description: This file contains configuration information for the eth0 device.
Called by: /etc/sysconfig/network-scripts/ifup-eth0
Calls:
Supports: /etc/sysconfig/network-scripts/ifup-eth0
rootfs/etc/sysconfig/network-scripts/ifcfg-eth1 Description: This file contains configuration information for the eth1 device.
Called by: /etc/sysconfig/network-scripts/ifup-eth1
Calls:
Supports: /etc/sysconfig/network-scripts/ifup-eth1
rootfs/etc/sysconfig/network-scripts/ifcfg-eth2 Description: This file contains configuration information for the eth2 device.
Called by: /etc/sysconfig/network-scripts/ifup-eth2
Calls:
Supports: /etc/sysconfig/network-scripts/ifup-eth2
rootfs/etc/sysconfig/network-scripts/ifcfg-eth3 Description: This file contains configuration information for the eth3 device.
Called by: /etc/sysconfig/network-scripts/ifup-eth3
Calls:
Supports: /etc/sysconfig/network-scripts/ifup-eth3
rootfs/etc/sysconfig/network-scripts/ifup-lo Description: This script starts and configures the loopback network interface.
Called by: /etc/rc.d/init.d/network
Calls: /etc/sysconfig/network-scripts/ifcfg-lo, /sbin/ifconfig, /sbin/route
Supports:
rootfs/etc/sysconfig/network-scripts/ifup-eth0 Description: This script starts and configures the eth0 interface.
Called by: /etc/rc.d/init.d/network
Calls: /etc/sysconfig/network-scripts/ifcfg-eth0, /sbin/ifconfig
Supports:
rootfs/etc/sysconfig/network-scripts/ifup-eth1 Description: This script starts and configures the eth1 network interface.
Called by: /etc/rc.d/init.d/network
Calls: /etc/sysconfig/network-scripts/ifcfg-eth1, /sbin/ifconfig
Supports:
rootfs/etc/sysconfig/network-scripts/ifup-eth2 Description: This script starts and configures the eth2 network interface.
Called by: /etc/rc.d/init.d/network
Calls: /etc/sysconfig/network-scripts/ifcfg-eth2, /sbin/ifconfig
Supports:
rootfs/etc/sysconfig/network-scripts/ifup-eth3 Description: This script starts and configures the eth3 network interface.
Called by: /etc/rc.d/init.d/network
Calls: /etc/sysconfig/network-scripts/ifcfg-eth3, /sbin/ifconfig
Supports:
rootfs/etc/sysconfig/network Description: This file contains some basic networking information. The only pertinent piece of info is the hostname. The rest of it is not used for this bootdisk.
Called by:
Calls:
Supports:
rootfs/etc/sysconfig/pcmcia Description: This script is used by stock RedHat installations to set some pcmcia options. This script is not used on our boot floppy.
Called by:
Calls:
Supports:
rootfs/etc/pcmcia Description: This directory holds all the configuration files and scripts for pcmcia devices.
Called by:
Calls:
Supports:
rootfs/etc/pcmcia/config Description: This is the config file for the cardmgr program. It identifies various pcmcia cards using a "card" entry. When a pcmcia card that matches the manfid (manufacturer id) is inserted, it uses the "device" entry that is identified by the "bind" directive of the "card" entry. The "device" entries have a "class" specification and a "module" specification. The module is loaded first, then the script that is specified by the "class" directive is run.

In my case, when cardmgr identifies my wireless card in the pcmcia socket, it matches the manufacturer identification info that it probed from the card to the "manfid" information in one of the "card" specifications. It then recognizes this as a "RayLink PC Card WLAN Adapter" and binds the "ray_cs" device. This binding is a two step process. First it loads the "ray_cs" module (which is actually /lib/modules/2.2.16-3/pcmcia/ray_cs.o). If this is successful, cardmgr makes the computer issue a high-pitched beep. As the second step in the binding process ,it runs the script that is specified by the "class" directive. Since my "class" directive is called "network", it runs the /etc/pcmcia/network script. If this configuration script runs successfully, cardmgr makes the computer issue a second high-pitched beep.
Called by: /sbin/cardmgr
Calls: /etc/pcmcia/config.opts
Supports:
rootfs/etc/pcmcia/config.opts Description: This file lists options for the various pcmcia modules.
Called by: /etc/pcmcia/config
Calls:
Supports:
rootfs/etc/pcmcia/network Description: This script is called by the cardmgr program after a pcmcia network card has been identified and its module has been loaded. Really, the only thing this script does is run the /etc/sysconfig/network-scripts/ifup-eth3 script.
Called by: /sbin/cardmgr
Calls:
Supports:
rootfs/etc/inittab Description: This is the configuration file for the init program. A few of the important settings to mention in this file are: id (the default runlever), si (the script to run for system initialization), l0-6 (what script to run when entering a new runlevel), 1-6 (what six things to run in standard runlevels). Note that the runlevel script (/etc/rc.d/rc) is passed a parameter when entering a runlevel. This is ignored for the case of our boot floppy.
Called by:
Calls:
Supports: /sbin/init
rootfs/etc/fstab Description: This is the filesystems table and lists the filesystems that are available to be mounted.
Called by: /bin/mount
Calls:
Supports:
rootfs/etc/nsswitch.conf Description: This file describes the methods that various services use for name resolution.
Called by:
Calls:
Supports: Many programs as shown in the file.
rootfs/etc/ld.so.cache Description: This file holds the library dependency information that is generated by /sbin/ldconfig.
Called by:
Calls:
Supports: ????????
rootfs/etc/resolv.conf Description: This file specifies the default domain search order as well as the ip addresses of the domain name server(s). Note that pump replaces this file by default. If you don't want this file overwritten by pump, you should use the -d (--no-dns) option or specify "nodns" in the /etc/pump.conf file.
Called by:
Calls:
Supports:
rootfs/etc/mtab Description: This file holder is where the mount table will be placed. /sbin/mount updates this file whenever a filesystem is mounted
Called by:
Calls:
Supports: /sbin/mount
rootfs/etc/pump.conf Description: This is the pump configuration file. Currently all it does is run /etc/rc.d/rc.firewall whenever something happens (up, down, or renew).
Called by:
Calls:
Supports: /sbin/pump
rootfs/etc/syslog.conf Description: This file is the syslog configuration file. It is used by /sbin/syslogd to indicate what facilities and priorities are logged, and where they are logged. Note that if you want to log all messages to a syslog server elsewhere on your network that you need to start syslogd on that machine with the -r option. You also need to have a line similar to "syslog 514/udp" in the /etc/services file of your boot floppy.
Called by:
Calls:
Supports: /sbin/syslogd
rootfs/etc/services Description: This file lists the various services used by your system and the tcp or udp ports they run on. For our case, the only port we are interested in is udp/514 which is the port that syslogd sends log messages to on a remote logging server.
Called by:
Calls:
Supports: /sbin/syslogd
rootfs/etc/hosts Description: This file provides local name resolution.
Called by:
Calls:
Supports:
rootfs/var Description: This directory holds various log and information files about the current and past state of the system.
Called by:
Calls:
Supports:
rootfs/var/run Description: This directory contains various files that indicate the status of running programs on your system. This directory is required for syslogd, klogd, and pump to work correctly.
Called by:
Calls:
Supports:
rootfs/usr Description: This directory contains user programs (supposedly).
Called by:
Calls:
Supports:
rootfs/usr/lib Description: This directory contains libs for user programs (supposedly).
Called by:
Calls:
Supports:
rootfs/usr/lib/iptables Description: This directory contains userspace programs for packet filtering and nat/masquerading.
Called by: /sbin/iptables
Calls:
Supports:
rootfs/lib Description: This directory holds the libraries that are needed by various programs on your system. The mkbootdisk script should populate this directory appropriately.
Called by:
Calls:
Supports:
rootfs/lib/modules Description: This directory contains the kernel modules that will be loaded for your system. Some of the modules that are here are network modules (8139too.o), pcmcia modules (pcmcia_core.o, ds.o, i82365.o, ray_cs.o), and the packet driver interface module (af_packet.o) which is needed for pump to work correctly. Note that the cardmgr program in the pcmcia package does not look in the right place, so there are two links (2.4.0 which should be the same as the output from "uname -r", and pcmcia) back to the current directory. This way, when cardmgr looks for pcmcia modules in /lib/modules/$(uname -r)/pcmcia, it will actually be looking in /lib/modules.
Called by:
Calls:
Supports:
rootfs/proc Description: This directory provides a mount point for the kernel proc filesystem.
Called by: /etc/rc.d/rc.sysinit
Calls:
Supports:
rootfs/tmp Description: A temporary directory. This is needed for the /sbin/cardmgr program from the pcmcia package to work correctly.
Called by:
Calls:
Supports: