OpenWrt启动过程分析总结一下OpenWrt的启动流程:->->3./etc/preinit->4./sbin/init->5./etc/inittab->6./etc/->7./etc/*->8. OpenWrt是一个开放的linux平台,主要用于带wifi的无线路由上。类似于Ubuntu、RedHat、之类的linux发行版本,它也有一套自己的启动流程。下面,我就以我的Linksys的WRT54G为平台介绍一下OpenWrt的启动流程。首先,monfirmwareenvironment)--它就是一个bootloader,类似u-boot,redboot之类,公司御用之嫌--最先启动。它的任务只是创造一个简单的环境,让系统先运行起来。除了能够跳转到特定地址上启动操作系统(如Linux)外,它还能让你download东西到上面,比如download一个linux,然后启动它。另外,值得一提的是,CFE在启动之后会有1,2秒的时间等待由tftp上传的内核并烧写到flash上,这就给一些操作系统损坏但CFE还能工作的"砖头"板一个起死回生的机会。请注意一旦linux启动之后,将由linux全部接管系统,这时候就没CFE什么事情了。唯一的瓜葛是CFE传递给内核一个命令行的参数,这个可以在linux启动起来之后用下面的命令查看: ******@OpenWrt:/#cat/proc/cmdlineconsole=ttyS0,115200mtdparts=spi_flash:1m(u-boot)ro,3m(kernel),-(rootfs) 之后,linux系统启动起来了。它使用类似如下的脚本命令来解析cmdline:forxin$(cat/proc/cmdline);docase$xininit=*)init=${x#init=};;root=*)ROOT=${x#root=}case$ROOTinLABEL=*)ROOT="/dev/disk/by-label/${ROOT#LABEL=}";;UUID=*)ROOT="/dev/disk/by-uuid/${ROOT#UUID=}";;esac;;rootflags=*)ROOTFLAGS="-o${x#rootflags=}";;cryptopts=*)cryptopts="${x#cryptopts=}";;nfsroot=*)NFSROOT="${x#nfsroot=}";;nfsopts=*)NFSOPTS="-o${x#nfsopts=}";;boot=*)BOOT=${x#boot=};;resume=*)RESUME=${x#resume=};;noresume)NORESUME=y;;quiet)quiet=y;;ro)readonly=y;;rw)readonly=n;;debug)debug=yexec>/tmp/>&1set-x;;break=*)break=${x#break=};;break)break=premount;;esacdone对于OpenWrt这个cmdline的意思就是:root=/dev/mtdblock2文件系统在第三个flash分区上(mtdblock0,1,2);roo
openwrt启动过程 来自淘豆网m.daumloan.com转载请标明出处.