⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000005.htm

📁 关于embedded的文章
💻 HTM
📖 第 1 页 / 共 5 页
字号:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;CONFIG_MODVERSIONS&nbsp;is&nbsp;not&nbsp;set&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CONFIG_KMOD=y&nbsp;<BR>  所以可以把这个文件保存起来,并且给文件名带上版本号,方便管理、使用。&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cp&nbsp;.config&nbsp;~/config-2.4.20-8-R2Lips&nbsp;<BR>  &nbsp;<BR>  &nbsp;<BR>&nbsp;<BR>&nbsp;<BR>5&nbsp;根文件系统&nbsp;<BR>&nbsp;<BR>  创建根文件系统比编译内核要复杂的多,也更难理解。这里的关键是掌握init&nbsp;<BR>rd(初始化RAM盘)的使用方法。&nbsp;<BR>5.1&nbsp;根文件系统&nbsp;<BR>  这里我们将要创建的根文件系统与通常Linux主机的根文件系统类似,只是它应&nbsp;<BR>该仅仅包括系统运行所必须的应用程序、库和相关文件的最小集合。根文件系统的&nbsp;<BR>尺寸大小是一个重要的指标。&nbsp;<BR>5.2&nbsp;文件系统的内容&nbsp;<BR>5.2.1&nbsp;应用程序(applications)&nbsp;<BR>  /bin,/sbin,/usr/bin,/usr/sbin&nbsp;<BR>  应用程序大致可以分为3部分,第一是操作系统正常运行所需的基本工具软件,&nbsp;<BR>比如bash,cp,rm等;第二是提供某项服务的服务器软件,比如httpd,telnetd,&nbsp;<BR>proftpd等;第三是我们所开发的应用程序。其实后面讲的配置文件等也可以粗略按&nbsp;<BR>照这个原则来分类。&nbsp;<BR>  到底需要复制哪些软件,弹性是比较大的,很多软件都是可要可不要,可以实&nbsp;<BR>际情况灵活选择。这个列表可能很长,并且变化也比较大,因此不在这里列出。&nbsp;<BR>  为了进一步减小所创建的根文件系统的尺寸,可以考虑使用下列工具包软件来&nbsp;<BR>替代某些标准的工具:&nbsp;<BR>O&nbsp;BusyBox(<A HREF="http://www.busybox.net)">http://www.busybox.net)</A>&nbsp;<BR>O&nbsp;TinyLogin(<A HREF="http://tinylogin.busybox.net)">http://tinylogin.busybox.net)</A>&nbsp;<BR>O&nbsp;Embutils(<A HREF="http://www.fefe.de/embutils/)">http://www.fefe.de/embutils/)</A>&nbsp;<BR>  其详细使用方法请参考相关资料,此处不再赘述。LIPS的实现目前没有使用这&nbsp;<BR>些软件包。&nbsp;<BR>5.2.2&nbsp;设备文件(device&nbsp;files)&nbsp;<BR>  /dev&nbsp;<BR>  设备文件也可以称作设备节点(device&nbsp;node)。设备文件非常重要,缺少某些&nbsp;<BR>有些设备文件可能导致系统不能正常运行甚至不能引导。有些设备文件是必须的,&nbsp;<BR>而更多的是根据具体目标系统的硬件配置来进行取舍。&nbsp;<BR>  比如硬盘的设备文件,在完整的系统中一般有hda,hdb,……,hdt,即最多支&nbsp;<BR>持20个IDE硬盘,每个硬盘有hdX1,hdX2,……,hdX32,(其中X表示a-t),即支&nbsp;<BR>持32个分区,另外还有表示SCSI硬盘的节点。根据实际情况,如果只需要支持少量&nbsp;<BR>的硬盘、少量的分区,这些节点可以被大大简化。如果目标系统中没有的设备,其&nbsp;<BR>对应的设备文件也可以省掉。&nbsp;<BR>设备文件&nbsp;<BR>描述&nbsp;<BR>/dev/console&nbsp;<BR>系统控制台设备,非常重要。&nbsp;<BR>/dev/fd0&nbsp;<BR>第一个软驱&nbsp;<BR>/dev/hda&nbsp;<BR>/dev/hda[1-8]&nbsp;<BR>IDE硬盘及分区&nbsp;<BR>/dev/initctl&nbsp;<BR>实际上是一个FIFO设备,跟init有关(切换运行级别时用于新init与原init通信)&nbsp;<BR>&nbsp;<BR>/dev/initrd&nbsp;<BR>Initial&nbsp;RAM&nbsp;disk&nbsp;<BR>/dev/input&nbsp;<BR>(目录)Input&nbsp;core(包括游戏杆、鼠标等)&nbsp;<BR>/dev/kmem&nbsp;<BR>内核虚拟内存&nbsp;<BR>/dev/loop[0-7]&nbsp;<BR>Loopback设备&nbsp;<BR>/dev/mem&nbsp;<BR>访问物理内存&nbsp;<BR>/dev/null&nbsp;<BR>NULL设备&nbsp;<BR>/dev/psaux&nbsp;<BR>PS/2鼠标&nbsp;<BR>/dev/ptmx&nbsp;<BR>UNIX98&nbsp;PTY&nbsp;master&nbsp;<BR>/dev/pts&nbsp;<BR>(目录)UNIX98&nbsp;PTY&nbsp;slaves&nbsp;<BR>/dev/ptyp[0-7]&nbsp;<BR>伪终端主设备(远程登录使用)&nbsp;<BR>/dev/ram[0-7]&nbsp;<BR>/dev/ramdisk&nbsp;<BR>/dev/ram&nbsp;<BR>RAM&nbsp;Disk设备。至少/dev/ram0是应用initrd机制所必须的。&nbsp;<BR>/dev/ramdisk链接到/dev/ram0,是为了兼容老版本内核而保留的。&nbsp;<BR>/dev/ram链接到/dev/ram1。&nbsp;<BR>/dev/random&nbsp;<BR>随机数发生器&nbsp;<BR>/dev/sda&nbsp;<BR>/dev/sda[1-8]&nbsp;<BR>SCSI磁盘及分区设备&nbsp;<BR>/dev/shm&nbsp;<BR>共享内存设备&nbsp;<BR>/dev/systty&nbsp;<BR>指向系统tty设备的符号链接,一般是tty0。&nbsp;<BR>/dev/tty&nbsp;<BR>当前TTY设备&nbsp;<BR>/dev/tty[0-7]&nbsp;<BR>虚控制台(Virtual&nbsp;console)&nbsp;<BR>/dev/ttyp[0-7]&nbsp;<BR>伪终端从设备&nbsp;<BR>/dev/ttyS0&nbsp;<BR>/dev/ttyS1&nbsp;<BR>串口(COM1和COM2)&nbsp;<BR>/dev/urandom&nbsp;<BR>速度更快、安全性较差的随机数发生器&nbsp;<BR>/dev/zero&nbsp;<BR>零设备,只能读0出来&nbsp;<BR>  设备节点的主设备号(Major)、次设备号(Minor)的文档是内核源代码中的&nbsp;<BR>/Documentation/device.txt,如果有疑问可以查看这个文件[8]。&nbsp;<BR>5.2.3&nbsp;脚本和配置文件(scripts&nbsp;and&nbsp;configuration&nbsp;files)&nbsp;<BR>  /etc&nbsp;<BR>  /etc/rc.d目录下的启动脚本是系统的重要部分。必须对启动脚本做相应的修改&nbsp;<BR>以简化系统的启动过程。&nbsp;<BR>  系统和各种应用程序用到的几乎所有的配置文件都位于/etc目录,是裁减Linu&nbsp;<BR>x最麻烦的部分,最容易出问题。配置文件的选择需要综合很多方面的信息,需要对&nbsp;<BR>系统有比较全面、深入的了解,并结合经验才能做出正确的判断。&nbsp;<BR>配置文件&nbsp;<BR>描述&nbsp;<BR>/etc/default&nbsp;<BR>(目录)某个命令(比如useradd)的缺省设置(man&nbsp;useradd(8))&nbsp;<BR>/etc/ld.so.cache&nbsp;<BR>由ldconfig命令根据/etc/ld.so.conf文件产生&nbsp;<BR>/etc/ld.so.conf&nbsp;<BR>库文件路径配置文件,ldconfig命令根据该配置文件生成/etc/ld.so.cache&nbsp;<BR>/etc/localtime&nbsp;<BR>本地时间、时区设置&nbsp;<BR>/etc/login.defs&nbsp;<BR>全局缺省设置&nbsp;<BR>/etc/fstab&nbsp;<BR>文件系统列表(man&nbsp;fstab(5))&nbsp;<BR>/etc/group&nbsp;<BR>组文件(man&nbsp;group(5))&nbsp;<BR>/etc/hosts&nbsp;<BR>列出主机名和IP地址(man&nbsp;hosts(5))&nbsp;<BR>/etc/init.d&nbsp;<BR>符号链接到/etc/rc.d/init.d&nbsp;<BR>/etc/initlog.conf&nbsp;<BR>Initlog日志配置文件(man&nbsp;initlog(8))&nbsp;<BR>/etc/inittab&nbsp;<BR>Init配置文件(man&nbsp;inittab(5))&nbsp;<BR>/etc/ioctl.save&nbsp;<BR>该文件包含了用于单用户模式的串口和终端参数,因为这些参数是由getty设置的,&nbsp;<BR>而在单用户模式时没有运行getty,所以用该文件保存参数。单用户模式对系统安全&nbsp;<BR>是个威胁,我们应该禁止使用单用户模式,因此这个文件实际上并没有必要复制过&nbsp;<BR>来。&nbsp;<BR>/etc/issue&nbsp;<BR>登录信息和标识文件(man&nbsp;issue(5))&nbsp;<BR>/etc/modules.conf&nbsp;<BR>模块的配置文件(man&nbsp;modules.conf(5))&nbsp;<BR>/etc/mtab&nbsp;<BR>已经挂载的文件系统列表(man&nbsp;mount(8))&nbsp;<BR>/etc/nsswitch.conf&nbsp;<BR>Name&nbsp;Service&nbsp;Switch的配置文件(配置名称服务数据源和查询的顺序)(man&nbsp;nss&nbsp;<BR>witch.conf(5))&nbsp;<BR>/etc/pam.d&nbsp;<BR>放置PAM配置文件的目录(有关PAM请参考5.5节)&nbsp;<BR>/etc/passwd&nbsp;<BR>用户口令文件(man&nbsp;passwd(5))&nbsp;<BR>/etc/profile&nbsp;<BR>系统环境变量和登录配置文件&nbsp;<BR>/etc/rc.d&nbsp;<BR>放置启动脚本的目录&nbsp;<BR>/etc/services&nbsp;<BR>列出可用的网络服务及其端口(man&nbsp;services(5))&nbsp;<BR>/etc/termcap&nbsp;<BR>终端(terminal)功能数据库(man&nbsp;termcap(5))&nbsp;<BR>  还有那些跟特定应用程序相关的配置文件,比如apache服务器需要的/etc/htt&nbsp;<BR>pd/conf/httpd.conf&nbsp;等,此处不再一一列出。&nbsp;<BR>5.2.4&nbsp;库文件(libraries)&nbsp;<BR>  /lib,/usr/lib,/usr/share&nbsp;<BR>  库文件也是系统运行所必需的。到底需要哪些库文件,是根据所复制的可执行&nbsp;<BR>程序用&nbsp;ldd&nbsp;工具来确定的。比如,要知道/bin/bash需要哪些库文件,使用如下命&nbsp;<BR>令:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[root@lips&nbsp;xmdong]#&nbsp;ldd&nbsp;/bin/bash&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libtermcap.so.2&nbsp;=&gt;&nbsp;/lib/libtermcap.so.2&nbsp;(0x40020000)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libdl.so.2&nbsp;=&gt;&nbsp;/lib/libdl.so.2&nbsp;(0x40024000)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -