1、环境:Linux version 3.4.2 (book@book-desktop) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) Machine: SMDK2440
reating 4 MTD partitions on "NAND":
0x000000000000-0x000000040000 : "bootloader"
0x000000040000-0x000000060000 : "params"
0x000000060000-0x000000260000 : "kernel"
0x000000260000-0x000010000000 : "rootfs"
2、遇见的问题
启动问题:bootargs=console=ttySAC0,115200 root=/dev/mtdblock3,期初缺少 console ,没有指定控制台输出,造成系统无法启动,无打印信息
挂在PC中的目录/zxl/8th:修改根文件系统中的/etc/init.d/rcs内容,增加mount -t nfs -o nolock,vers=2 192.168.2.102:/zxl/8th /mnt
执行可执行程序报错:-/bin/sh:xx(命令) not found ,原因:可执行文件编译使用的交叉编译器和根文件系统中支持的交叉编译器4.3.2不匹配,版本低于4.3.2,更换编译器变异后正常执行。
3、新知识
exec /etc/init.d/rc S.执行/init.d中的rc脚本文件,参数为S。rc脚本文件会根据传递的参数启动/etc/rcS.d中的shell脚本。rcS.d中全是以S和数字为开头的符号链接,脚本文件会根据符号链接执行相应的脚本。执行完后,执行rc-sysinit.conf中的最后一句,即调度运行telinit程序。切换到默认运行水平。根据/etc/init/rc.conf脚本来执行相应运行水平的系统调用etc/init.d/rc $runlevel。rc脚本文件会根据传递的参数启动/etc/rc"runlevel".d中的shell脚本.启动各种服务与进程,直到出现一个登录界面