目的:实现开机引导文件系统后,不执行runlevel 直接执行/init.d/rcS
使用am335x EZSDK所带的最小的文件系统,自己参照三星的文件系统做了如下更改:
首先是etc下的脚本处理。
然后init.d 下的rcS 目的是执行完inittab 后直接执行init.d/rcS
对于inittab的脚本处理为:
#etc/inittab
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a –r
然后执行结果是:
INIT: version 2.88 booting
INIT: /etc/inittab[2]: missing id field
INIT: /etc/inittab[3]: missing id field
INIT: /etc/inittab[4]: missing id field
INIT: /etc/inittab[5]: missing id field
PS:我查看init 链接结果是:
init -> init.sysvinit
但是我所参考的三星的链接结果是:
init->../bin/busybox
更改链接方向后。出现的问题是
init: applet not found
[ 2.089385] Kernel panic – not syncing: Attempted to kill init!
[ 2.095581] Backtrace:[ 2.098175] [<c0017dbc>] (dump_backtrace+0x0/0x10c) from [<c041b5e8>] (dump_stack+0x18/0x1c)
[ 2.106994] r6:cf01bc00 r5:c04fa5fc r4:c062ef88 r3:c05e4e10
[ 2.112915] [<c041b5d0>] (dump_stack+0x0/0x1c) from [<c041b7e4>] (panic+0x64/0x194)
[ 2.120941] [<c041b780>] (panic+0x0/0x194) from [<c0041b8c>] (do_exit+0x5b0/0x65c)
[ 2.128845] r3:cf01bc00 r2:cf01df60 r1:cf01df60 r0:c04fa5fc
Jian Zhou:
因为启动进程是不一样的,所以只修改脚本会报错,不建议修改
weihui zhang:
回复 Jian Zhou:
那如果我想达到类似效果,该如何实现?
Jian Zhou:
回复 weihui zhang:
请问你是只想执行rcS.d下的启动脚本,而不执行rc5.d下的脚本么?