安装 TinyLogin 以及登录从属需求 TinyLogin(请参阅参考资料部分进行安装)将为您安装不足 35kb 的下列工具: /bin/addgroup、/bin/adduser、/bin/delgroup、/bin/deluser、/bin/login、/bin/su、/sbin/getty、/sbin/sulogin 和 /usr/bin/passwd。
请参阅主要的发布文档或者手册页以获得关于这些命令的详细说明。
第 12 步:配置 TinyLogin 摘自 TinyLogin README:TinyLogin 模块化后可以帮助您只配置必需的组件从而缩小二进制长度。要关闭不想要的 TinyLogin 组件,只需编辑 tinylogin.def.h 文件并用 C++ 风格的(//)注释将您不想要的部分注释掉。
第 13 步:安装 TinyLogin 在编译完成以后,生成了一个 tinylogin.links 文件,它随后被 make install 用来为所有的内编译函数创建指向 tinylogin 二进制文件的符号连接。缺省情况下,make install 会在 pwd /_install 中放入一个符号连接林,除非您已经定义了 PREFIX 环境变量。
第 14 步:安装 Sysvinit 和 start-stop daemon 在内核加载完成后,它会运行 init 程序来结束引导进程。现在:
解压缩 Sysvinit 归档文件 进入 src 目录 复制 $EMBPART/sbin 目录下的 init 可执行文件 Sysvinit 包在 contrib 目录下也有 C 语言版的 start-stop-daemon。
编译 复制 $EMBPART/usr/sbin 下的文件 第 15 步:配置 Sysvinit Sysvinit 需要一个名为 inittab 的配置文件,它应该在 $EMBPART/etc 目录下。下面是 LEM 分发版中使用的配置文件:
清单 1. Inittab 配置脚本
# /etc/inittab: init( configuration. # $Id: inittab,v 1.6 1997/01/30 15:03:55 miquels Exp $ # Modified for LEM 2/99 by Sebastien HUET # default rl. id:2:initdefault: # first except in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # 0:halt 1:single-user 2-5:multi-user (5 may be X with xdm or other) 6:reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # CTRL-ALT-DEL pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -r now # Action on special keypress (ALT-UpArrow). kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." # /sbin/mingetty invocations for runlevels. 1:2345:respawn:/sbin/getty 9600 tty1 2:23:respawn:/sbin/getty 9600 tty2 #3:23:respawn:/sbin/getty tty3 #you may add console there #4:23:respawn:/sbin/getty tty4
第 16 步:创建初始的引导脚本 就象在 inittab 文件里看到的一样,Sysvinit 需要在它自己的目录下的一些附加脚本。
第 17 步:创建必需的目录和基础文件 用下面的命令来创建目录:
清单 2. 创建目录和基础文件的脚本
cd $EMBPART/etc mkdir rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d init.d rcS.d rc.boot
进入解压缩后的 Sysvinit 源目录 把 debian/etc/init.d/rc 复制到:$EMBART/etc/init.d 进入 $EMBPART/etc/init.d/ 目录 创建一个与 LEM 中的文件类似的新文件 rcS:
清单 3. RCS 脚本
#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel /etc/default/rcS export VERBOSE # Trap CTRL-C only in this shell so we can interrupt subprocesses. trap ":" 2 3 20 # Call all parts in order. for i in /etc/rcS.d/S??* do [ ! -f "$i" ] && continue case "$i" in *.sh) ( trap - 2 3 20 . $i start ) ;; *) $i start ;; esac done # run the files in /etc/rc.boot [ -d /etc/rc.boot ] && run-parts /etc/rc.boot
把可执行文件从您的分发版复制到 $EMBPART/bin。 第 18 步:添加基础脚本 这里用的许多命令是 UNIX/Linux 命令,对嵌入在 UNIX shell 脚本内部的路径进行设置、导出等操作。 清单 4. 注释行
<!-reboot---------------------------------------------->
创建一个新文件 reboot,它包含以下内容:
清单 5. Reboot 脚本
#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin echo -n "Rebooting... " reboot -d -f -i <!-halt---------------------------------------------->
创建新文件 halt,它包含以下内容:
清单 6. Halt 脚本
#!/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin halt -d -f -i -p <!-mountfs---------------------------------------------->
总结 在嵌入式应用的领域里,从因特网设备到专用的控制系统,Linux 操作系统的前景都很光明。所有新造的微型计算机芯片中大约有 95% 都是用于嵌入式应用的。由于 Linux 功能强大、可靠、灵活而且具有伸缩性,再加上它支持大量的微处理器体系结构、硬件设备、图形支持和通信协议,这些都使它作为许多方案和产品的软件平台越来越流行。
由于可以公开免费得到 Linux 源代码,因此对 Linux 和它支持的软件组件的许多修改和配置也得到了不断改进,以满足采用 Linux 的市场和应用的多种需求。另外还有小型版本和实时增强版本。尽管 Linux 开始是作为 PC 体系结构的操作系统,但是现在已经有了非 X86 CPU 的版本(带或不带内存控制单元),包括 PowerPC、ARM、MIPS、68K 甚至是微控制器。但是,请注意,在不久的将来,在许多其它的信息技术(IT)领域会出现更多!
上一页 [1] [2] |