码迷,mamicode.com
首页 > 其他好文 > 详细

Openwrt启动后的脚本运行

时间:2015-05-21 22:35:20      阅读:1459      评论:0      收藏:0      [点我收藏+]

标签:openwrt

Openwrt系统启动后,首先运行/etc/preinit脚本
以newifi y1s为例,刷入Pandorabox固件

#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2010 Vertical Communications

[ -z "$PREINIT" ] && exec /sbin/init

export PATH=/bin:/sbin:/usr/bin:/usr/sbin

pi_ifname=
pi_ip=192.168.1.1
pi_broadcast=192.168.1.255
pi_netmask=255.255.255.0

fs_failsafe_ifname=
fs_failsafe_ip=192.168.1.1
fs_failsafe_broadcast=192.168.1.255
fs_failsafe_netmask=255.255.255.0

fs_failsafe_wait_timeout=2

pi_suppress_stderr="y"
pi_init_suppress_stderr="y"
pi_init_path="/bin:/sbin:/usr/bin:/usr/sbin"
pi_init_cmd="/sbin/init"

. /lib/functions.sh
. /lib/functions/preinit.sh
. /lib/functions/system.sh

boot_hook_init preinit_essential
boot_hook_init preinit_main
boot_hook_init failsafe
boot_hook_init initramfs
boot_hook_init preinit_mount_root

for pi_source_file in /lib/preinit/*; do
        . $pi_source_file
done

boot_run_hook preinit_essential

pi_mount_skip_next=false
pi_jffs2_mount_success=false
pi_failsafe_net_message=false

boot_run_hook preinit_main

从该脚本中可以看到,
/lib/functions.sh
/lib/functions/preinit.sh
/lib/functions/system.sh
这三个脚本为preinit叫执行提供了功能函数。
preinit脚本将执行初始化的一系列shell脚本的
目录下/lib/preinit/目录下

[root@PandoraBox:/lib/preinit]#ls
01_reset_esw_port.sh         40_run_failsafe_hook
02_default_set_state         50_indicate_regular_preinit
03_preinit_do_ralink.sh      70_initramfs_test
10_indicate_failsafe         80_mount_root
10_indicate_preinit          99_10_failsafe_login
10_sysinfo                   99_10_run_init
30_failsafe_wait
[root@PandoraBox:/lib/preinit]#

这些脚本可以根据需求进行修改
Openwrt将这些脚本五种hook分类:

preinit_essential
preinit_main
failsafe
initramfs
preinit_mount_root

根据名称执行这些脚本

Openwrt启动后的脚本运行

标签:openwrt

原文地址:http://blog.csdn.net/viewsky11/article/details/45898053

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!