Advertisement

分析openwrt系统初始化过程

阅读量:

openwrt固件完成启动后,系统将进入uboot环境,随后加载内核并启动init进程。值得注意的是,该init进程被集成于procd进程中,其对应的启动代码如下:

复制代码
    int
    main(int argc, char **argv)
    {
    pid_t pid;
    
    sigaction(SIGTERM, &sa_shutdown, NULL);
    sigaction(SIGUSR1, &sa_shutdown, NULL);
    sigaction(SIGUSR2, &sa_shutdown, NULL);
    
    early();//初始化根文件系统中的需要的文件和设置,early.c
    cmdline(); //从proc/cmdline获取命令行启动参数
    watchdog_init(1); //初始化watchdog, watchdog.c 
    
    pid = fork();
    if (!pid) {
        char *kmod[] = { "/sbin/kmodloader", "/etc/modules-boot.d/", NULL };
    
        if (debug < 3) {
            int fd = open("/dev/n

全部评论 (0)

还没有任何评论哟~