openwrt procd分析】的更多相关文章

procd源码中有很多个main入口,有点懵,不知道procd之外的其他程序是干嘛的.先找资料大概了解了一下procd是什么,然后是守护进程,再然后是openwrt启动流程等等. openwrt启动流程分析:https://blog.csdn.net/wwx0715/article/details/41725917…
Linux内核执行start_kernel函数时会调用kernel_init来启动init进程,流程如下图: graph LR A[start_kernel] -->B(rest_init) B --> C(kernel_init) C --> D[try_to_run_init_process] kernel_init部分代码如下: 994 if (execute_command) { 995 ret = run_init_process(execute_command); 996 i…
这里将载有Openwrt的WR841N的路由表dump出来分析一下. 这个是dump出iptables的命令 root@OpenWrt:/etc/config# iptables-save 这里分为4部分: 1.NAT表 *nat :PREROUTING ACCEPT [:] :INPUT ACCEPT [:] :OUTPUT ACCEPT [:] :POSTROUTING ACCEPT [:] :MINIUPNPD - [:] :delegate_postrouting - [:] :dele…
本文是本人对OpenWrt的Makefile的理解,并非转载.OpenWrt是一个典型的嵌入式Linux工程,了解OpenWrt的Makefile的工作过程对提高嵌入式Linux工程的开发能力有极其重要意义.OpenWrt的主Makefile文件只有100行,可以简单分为三部分,1~17行为前导部分,19~31为首次执行部分,33~101为再次执行部分.        前导部分CURDIR为make默认变量,默认值为当前目录.前导部分主要把变量TOPDIR赋值为当前目录,把变量LC_ALL.LA…
接着前面写过的一篇关于 procd 的笔记. procd 在 STATE_INIT 时会运行 /etc/inittab 中描述的几个级别指定程序. procd_inittab_run("respawn"); procd_inittab_run("askconsole"); procd_inittab_run("askfirst"); procd_inittab_run("sysinit"); 看看 /etc/inittab 中…
void procd_inittab(void) { #define LINE_LEN 128 FILE *fp = fopen(tab, "r"); struct init_action *a; regex_t pat_inittab; regmatch_t matches[5]; char *line; if (!fp) { ERROR("Failed to open %s\n", tab); return; } regcomp(&pat_inittab…
这次讲讲openwrt的结构. 1. 代码上来看有几个重要目录package, target, build_root, bin, dl.... ---build_dir/host目录是建立工具链时的临时目录 ---build_dir/toolchain-<arch>*是对应硬件的工具链的目录 ---staging_dir/toolchain-<arch>* 则是工具链的安装位置 ---target/Linux/<platform>目录里面是各个平台(arch)的相关代码…
文章出处:http://blog.csdn.net/kingvenll/article/details/27545221 这次讲讲openwrt的结构. 1. 代码上来看有几个重要目录package, target, build_root, bin, dl.... ---build_dir/host目录是建立工具链时的临时目录 ---build_dir/toolchain-<arch>*是对应硬件的工具链的目录 ---staging_dir/toolchain-<arch>* 则是…
root@Taiyear:/# U-Boot 1.1.3 (Dec 27 2013 - 09:14:28) SoC:MediaTek MT7620 DRAM:  Memory Testing..65536K OK. is 64 MB relocate_code Pointer at: 83fac000 enable ephy clock...done. rf reg 29 = 5 SSC disabled. spi_wait_nsec: 14 spi device id: ef 40 18 0…
答:笔者通过重新编译内核和根文件系统解决了此问题 (笔者使用的是openwrt系统) 分析: 1. ’Failed to find the folder holding the modules‘这句log从哪里来? 要知道从哪里来,那么扒一扒insmod这个工具的源码吧 1.1 注意:在openwrt下使用的是kmodloader作为insmod工具 ls -lh /sbin/insmod lrwxrwxrwx 1 root root 10 Jul 17 09:17 /sbin/insmod -…
u-boot_mod 是具有web 浏览器的uboot,也就是传说中的不死uboot,这里的不死指的是不管怎么刷firmware 都可以方便更换firmware,而不是uboot本身就是不死的. 这里将其的代码分析一下. 代码的网址是:https://github.com/pepe2k/u-boot_mod uboot的代码在openwrt上是最底层的,就像PC的BIOS. 整个uboot最开始的入口,是一段汇编语言(MIPS)代码 要证明这段代码是一开始执行的,首先要看链接器脚本(u-boot…
openwrt: Makefile 框架分析 原文链接:blog.chinaunix.net/uid-26675482-id-4704952.html 本篇的主要目的是想通过分析Makefile,了解openwrt编译过程.着重关注以下几点: openwrt目录结构 主Makefile的解析过程,各子目录的目标生成. kernel编译过程 firmware的生成过程 软件包的编译过程 openwrt目录结构 官方源下载速度太度,我从github上clone了openwrt的代码仓库. git c…
https://wiki.openwrt.org/doc/techref/procd Procd:Openwrt的进程管理守护进程(process management daemon),它与初始化脚本(/etc/init.d/*)保持联系,当进程相关联的配置文件更改时,会触发procd去重启或启动脚本.Procd代替了原本的Hotplug2. 备注: Hotplug2执行位于/etc/hotplug.d目录下的脚本.每次接口up或down,都会调用/etc/hotplug.d/iface/目录下…
上次和大家分享了如何烧录和安装Openwrt到BananaPi R2,运行Openwrt的R2目前就具备路由器的功能了,这次我们来看看R2运行Openwrt的性能如何,同时也会讲解一些常用的网络知识. 首先看一下硬件上的设计: 可以看出硬件上,R2设计了一个wan口和4个lan口: 这里可能有人会有疑问,什么是wan口,什么是lan口? wan(Wide Area Network)表示广域网,lan(Local Area Network)表示局域网:简单的讲就是wan口是连接Internet上网…
1.    libubox概述 libubox是openwrt新版本中的一个基础库,有很多应用是基于libubox开发的,如uhttpd,netifd,ubusd等. libubox主要提供以下两种功能: 提供一套基于事件驱动的机制: 提供多种开发支持接口,如链表.kv链表.平衡查找二叉树.md5.json等. 使用libubox开发的好处有如下几点: 可以使程序基于事件驱动,从而可实现在单线程中处理多个任务: 基于libubox提供的API可以加快开发进度,提高程序的稳定性: 能更好的将程序融…
参考文档: http://wiki.openwrt.org/doc/techref/process.boot http://blog.csdn.net/jk110333/article/details/7616765 http://blog.chinaunix.net/uid-26598889-id-3060545.html 下面是我的理解: 总的流程是:1.CFE->2.linux->3./etc/preinit->4./sbin/init ->5./etc/inittab -&…
特别说明:要编译backfire版本,一定要通过svn下载:svn co svn://svn.openwrt.org/openwrt/branches/backfire,而不能使用http://downloads.openwrt.org/backfire/10.03/中的源码包:backfire_10.03_source.tar.bz2 结合文档<OpenWrt_Dev_Tutorial.pdf>以及自己实际编译backfire的分析,得出如下结论: 基于backfire-10.03版本,在m…
openwrt目录结构 上图是openwrt目录结构,其中第一行是原始目录,第二行是编译过程中生成的目录.各目录的作用是: tools - 编译时需要一些工具, tools里包含了获取和编译这些工具的命令.里面是一些Makefile,有的可能还有patch.每个Makefile里都有一句 $(eval $(call HostBuild)),表示编译这个工具是为了在主机上使用的. toolchain - 包含一些命令去获取kernel headers, C library, bin-utils,…
openwrt luci web分析 来源 https://www.jianshu.com/p/596485f95cf2 www/cbi-bin/luci #!/usr/bin/lua --cgi的执行命令的路径 require"luci.cacheloader" --导入cacheloader包 require"luci.sgi.cgi" --导入sgi.cgi包 luci.dispatcher.indexcache = "/tmp/luci-index…
1. 页面请求: 1.1. 代码结构 在openwrt文件系统中,lua语言的代码不要编译,类似一种脚本语言被执行,还有一些uhttpd服务器的主目录,它们是: /www/index.html cgi-bin/luci luci-static/xxx/xx.css.js.gif /usr/lib/lua/nixio.so.uci.so luci/http.lua.dispatcher.lua.core… controller/xxx.lua model/xxx.lua view/xxx.lua…
# # # include $(TOPDIR)/rules.mk //一般在 Makefile 的开头 include $(INCLUDE_DIR)/kernel.mk // 文件对于 软件包为内核时是不可缺少 PKG_NAME:=mydrv // 表示软件包名称,将在 menuconfig 和 ipkg 可以看到 PKG_RELEASE:= //表示软件包版本号 include $(INCLUDE_DIR)/package.mk //一般在软件包的基本信息完 成后再引入 define Kern…
准备阶段:从SVN下载backfire的编译环境(位置是:svn co svn://svn.openwrt.org/openwrt/branches/backfire),然后按照openWRT的要求,下载一堆编译用到的工具(通过make defconfig可以发现自己的OS缺啥,然后就补啥).这样得到的是一个编译环境,在openWRT中,这个环境就是BuildRoot.   我们进入这个编译环境(简称:TOPDIR),接下来就是一步步的编译过程了: 1.构建“Package种子”,即./scri…
最近想研究一下Openwrt,于是开始搭建openwrt环境,虽然现在没有现成的板子,但是 可以先编译起来. openwrt的特点是基于下载 -> patch -> 编译 的一个工作模式,openwrt整个包一开始下载下来也不是很大,因为里面 基本上没有源码,要在编译的时候下载. 看了别人的帖子,都推荐使用svn从官网下载源码, svn co svn://svn.openwrt.org/openwrt/trunk/ 但是实际测试发现它的速度太慢了,为了得到官方的源码,从github上找到了它:…
一.背景 LS1021ATWR开发板运行官方的openwrt系统 二.日志分析 2.1 linux相关日志 root@OpenWrt:/# reboot  重启 root@OpenWrt:/# [ 2324.325719] device eth0 left promiscuous mode 网卡eth0离开混杂模式 [ 2324.330172] br-lan: port 1(eth0) entered disabled state 网卡eth0进入禁用状态 [ 2324.346789] IPv6…
racoon.init 脚本分析,基于openwrt 官方的脚本分析 #!/bin/sh /etc/rc.common # 包含了文件, 这个会继续分析 # # Copyright (C) Vitaly Protsko <villy@sft.ru> #set -vx USE_PROCD= # #在openwrt系统内init进程被procd取代,procd作为父进程可以监控子进程的状态 #一旦子进程退出后即可在某一个时刻尝试进行重启进程. #在op系统内使用procd监控的有uhttpd,ne…
写在前面 觉得本页面排版单调的话,可以尝试到这里看. 问题背景 在 openwrt 上碰到了一个偶现的 reboot 失效问题.执行 reboot 之后系统并没有重启,此时控制台还能工作. 初步排查 首先复现问题,发现复现后控制台仍可正常运行,但此时重复执行 reboot 也无效,执行 reboot -f 则可正常触发重启. 此处 reboot 是一个指向 busybox 的软链接,从 help 信息 -f Force (don't go through init) 中可以看出 reboot 和…
在从官网安装的WNDR3800 15.05.1版本OpenWrt中, 不带usb存储支持以及samba, 需要另外安装 1. 启用usb支持 USB Basic Support https://wiki.openwrt.org/doc/howto/usb.essentials # 每次重启后, 软件包都要重新update opkg update 安装 kmod-usb-uhci 或者 kmod-usb-ohci, 如果前者不能安装, 系统会有提示 opkg install kmod-usb-uh…
一:内核的编译. 1,linux 编译环境的搭建与源码的准备工作 2,常用软件的安装 (make menuconfig) 3,  针对TP-Link WR740N 一些软件的openwrt 的移植 4,内核的编译 二:OpenWrt  Eclipse 编译环境的搭建 1,OpenWrt 平台依赖包的安装 2,Eclipse 环境的配置 3, 远程调试设置 三:OpenWrt 上 dr.com移动的编写与移植 1,源码的分析 2,源码的移植 3,功能的实现 4,程序的运行与安装 四,参考 一:1,…
很久以前买了一台二手wndr3800 放假了刷成op可以一耍.ar71xx,芯片还比较热门. 首先是刷机,准备使用OP CC 15.05 r46767,官方稳定版.把原装系统降级到1.0.0.16,就可以直接在原系统的flash界面刷入第三方系统. 然后是上网问题,校园网是H3C的方式,版本比较老,应该挺好弄.选择了njit-client方案,比较懒没有自己编译就用了x3c8021x的程序,ipk是从hiwifi公开的源里获取的,luci没有找到现成的包,借鉴的前人的成果(@Summer,@Er…
1.  安装环境Linux系统,如果在CentOS上操作,需安装如下依赖包:yum install binutils bzip2 gawk gcc gcc-c++ gettext makencurses-devel patch unzip wget zlib-develyum install subversion screen2.  下载OpenWRT源码mkdir /usr/src/testcd /usr/src/testsvn co svn://svn.openwrt.org/openwrt…