Bering-uClibc 4.x - User Guide - Appendices - Overview of the Startup Sequence
From bering-uClibc
Revision as of 19:50, 24 February 2011 by Davidmbrooke (Talk | contribs) (Populated the /init Section)
Appendices - Overview of the Startup Sequence | ||
---|---|---|
Prev | Bering-uClibc 4.x - User Guide | Next |
TODO Expand this skeleton. Mention:
- [SYS|ISO|PXE]LINUX and the relevant configuration file
- Linux kernel, kernel arguments and initrd
- Bering-uClibc LINUXRC (/init), LEAFCFG, PKGPATH
- inittab (especially for serial consoles)
- /etc/rc?.d/*
/init
Shell script /init
(actually a symbolic link to /var/lib/lrpkg/root.linuxrc
) is a critical file with a huge influence on the startup of a Bering-uClibc 4.x machine.
In summary, this script:
- Creates the
/proc/
directory and mounts the "proc" filesystem at that location. - Creates the
/sys/
directory and mounts the "sysfs" filesystem at that location. - Creates the symbolic links for all of the commands provided by the "busybox" executable.
- Loads all of the kernel Modules listed in file
/boot/etc/modules/
- Currently just isofs and vfat.
- The modules are loaded using "modprobe" so any pre-requisite modules are loaded too, provided they are present in directory
/boot/lib/modules/
.
- Loads any modules specified in a comma-separated list against kernel command-line argument "MODULES".
- For example, if the kernel command line includes "MODULES=e100,natsemi" then modules mii and e100 will be loaded, provided they are present in directory
/boot/lib/modules/
. - Again, the kernel Modules are loaded using "modprobe" so any pre-requisite modules are loaded too.
- For example, if the kernel command line includes "MODULES=e100,natsemi" then modules mii and e100 will be loaded, provided they are present in directory
- Loads any kernel Modules which are available in directory
/boot/lib/modules/
and which implement device drivers for installed hardware.- This is done by looking for files called
modalias
within the directory structure under/sys/devices/
, examining the contents of those files and checking for a match in file/lib/modules/`uname -r`/modules.alias
. Any kernel Modules which match are loaded. - File
/lib/modules/`uname -r`/modules.alias
is generated by the "depmod" command.
- This is done by looking for files called
- Mounts the disk device specified by kernel command-line argument "LEAFCFG".
- "Sources" file
leaf.cfg
in the current shell, to set variables required by later processing. - Creates a standard set of empty directories
- For example
/mnt/
,/var/run/
.
- For example
- Mounts the disk device specified by variable "PKGPATH".
- This variable is specified in
leaf.cfg
.
- This variable is specified in
- Loads all of the Packages listed against variable "LRP", provided the corresponding
.lrp
file can be located in "PKGPATH".- This variable is specified in
leaf.cfg
.
- This variable is specified in
- Unmounts the devices for "LEAFCFG" and "PKGPATH".
- Mounts the "future" root filesystem (type "tmpfs") in a dummy directory.
- Mounts separate "tmpfs" file systems under directories
/tmp/
and/var/log/
. - Recursively copies the files and directories created earlier (e.g. by loading the Packages) across to the "future" root directory.
- Uses the "switch_root" utility to start using the "future" root directory in place of the original (initrd) one.
Prev | Up | Next |