openwrt procd】的更多相关文章

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…
接着前面写过的一篇关于 procd 的笔记. procd 在 STATE_INIT 时会运行 /etc/inittab 中描述的几个级别指定程序. procd_inittab_run("respawn"); procd_inittab_run("askconsole"); procd_inittab_run("askfirst"); procd_inittab_run("sysinit"); 看看 /etc/inittab 中…
procd源码中有很多个main入口,有点懵,不知道procd之外的其他程序是干嘛的.先找资料大概了解了一下procd是什么,然后是守护进程,再然后是openwrt启动流程等等. openwrt启动流程分析:https://blog.csdn.net/wwx0715/article/details/41725917…
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…
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…
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/目录下…
在从官网安装的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…
最近想研究一下Openwrt,于是开始搭建openwrt环境,虽然现在没有现成的板子,但是 可以先编译起来. openwrt的特点是基于下载 -> patch -> 编译 的一个工作模式,openwrt整个包一开始下载下来也不是很大,因为里面 基本上没有源码,要在编译的时候下载. 看了别人的帖子,都推荐使用svn从官网下载源码, svn co svn://svn.openwrt.org/openwrt/trunk/ 但是实际测试发现它的速度太慢了,为了得到官方的源码,从github上找到了它:…
标题:使用 OpenWrt Image Generator 为 WR703N 路由器定制固件 之前试着自己编译固件,编译是成功了,但是在后期安装官方仓库的ipk时出现问题,因为自己编译的固件和官方固件的内核版本号不一样,导致官方仓库的ipk不能安装,即使使用--force-depends参数强制安装也不能成功. openwrt的内核版本号后边带的一串checksum是根据配置计算出来的,即使使用同官方固件相同版本的源代码编译,只要配置不一样,编译出来的内核版本也是不一样的. 后来发现了 Imag…
本文转自:OpenWRT中的按键和灯的GPIO控制实现 基于BarrierBreaker版本,基于AR9331 AP121 Demo单板 来进行描述 1.灯 A.在mach-ap121.c中,定义了灯所对应的GPIO定义: #define AP121_GPIO_LED_WLAN 0 #define AP121_GPIO_LED_USB 1 并定义了灯的GPIO结构对象: static struct gpio_led ap121_leds_gpio[] __initdata = { { .name…
基于BarrierBreaker版本,基于AR9331 AP121 Demo单板 来进行描述 1.灯 A.在mach-ap121.c中,定义了灯所对应的GPIO定义: #define AP121_GPIO_LED_WLAN 0 #define AP121_GPIO_LED_USB 1 并定义了灯的GPIO结构对象: static struct gpio_led ap121_leds_gpio[] __initdata = { { .name = "ap121:green:usb", .…
http://en.wikipedia.org/wiki/Linaro Linaro From Wikipedia, the free encyclopedia     This article appears to be written like an advertisement. Please help improve it by rewriting promotional content from a neutral point of view and removing any inapp…
OpenWrt 启动时会执行 rc.d/ 下的脚本. 这篇文章 介绍了启动脚本里的规则. K50dropbear -> ../init.d/dropbear K85odhcpd -> ../init.d/odhcpd K89log -> ../init.d/log K90network -> ../init.d/network K98boot -> ../init.d/boot K99umount -> ../init.d/umount S00sysfixtime -&…
由内核发出 event 事件. kobject_uevent() 产生 uevent 事件(lib/kobject_uevent.c 中), 产生的 uevent 先由 netlink_broadcast_filtered() 发出, 最后调用 uevent_helper[] 所指定的程序来处理. uevent_helper[] 里默认指定 "/sbin/hotplug", 但可以通过 /sys/kernel/uevent_helper (kernel/ksysfs.c) 或 /pro…
openwrt 烧写完成之后, 第一次启动会设置 network 的相关参数, 如 ip地址, mac地址, 等. 这里跟踪一下启动之后直到网络参数设置的过程. /sbin/init -> procd -> "sysinit" -> /etc/rc.d/xxx /etc/rc.d/S10boot -> /etc/init.d/boot /etc/init.d/boot -> /bin/board_detect /bin/board_detect ->…
淘宝看到一款FIR300M路由器,当时只要19.9元.图便宜就买了. Hardware Architecture: MIPS Vendor: MediaTek (Ralink) Bootloader: U-Boot 1.1.3 System-On-Chip: Ralink MT7620N ver:2 eco:3 CPU MIPS 24KEc V5.0 CPU Speed 580 MHz Flash: 4 MB MXIC 25L320 RAM: 32 MB EM63A165TS SDRAM Wir…
Openwrt配置: Target System (Ralink RT288x/RT3xxx) ---> Subtarget (MT7688 based boards) ---> Target Profile (LinkIt7688) ---> ---------------------------------------------------------------------------------------------------------------------------…
写在前面 觉得本页面排版单调的话,可以尝试到这里看. 问题背景 在 openwrt 上碰到了一个偶现的 reboot 失效问题.执行 reboot 之后系统并没有重启,此时控制台还能工作. 初步排查 首先复现问题,发现复现后控制台仍可正常运行,但此时重复执行 reboot 也无效,执行 reboot -f 则可正常触发重启. 此处 reboot 是一个指向 busybox 的软链接,从 help 信息 -f Force (don't go through init) 中可以看出 reboot 和…
1. libcurl 的参考文档如下 CURLOPT_HEADERFUNCTION Pass a pointer to a function that matches the following prototype: size_t function( void *ptr, size_t size, size_t nmemb, void *userdata);. This function gets called by libcurl as soon as it has received head…
1.  利用 CURLOPT_WRITEFUNCTION 设置回调函数, 利用 CURLOPT_WRITEDATA 获取数据指针 官网文档如下 CALLBACK OPTIONS CURLOPT_WRITEFUNCTION Pass a pointer to a function that matches the following prototype: size_t function( char *ptr, size_t size, size_t nmemb, void *userdata); …
前言: 上节用纯linux的函数实现了和云端通讯, 本节开始利用传说中的神器libcurl 话说一个网络程序员对书法十分感兴趣,退休后决定在这方面有所建树. 于是花重金购买了上等的文房四宝.    一日,饭后突生雅兴,一番磨墨拟纸,  并点上了上好的檀香,颇有王羲之风范,  又具颜真卿气势,定神片刻,泼墨挥毫,    郑重地写下一行字:libcurl. 由此可知libcurl的刻骨铭心! 官方文档请参考这里 http://curl.haxx.se/libcurl/c/curl_easy_seto…
一.  HTTP请求的数据流总结#上传数据, yeelink的数据流如下POST /v1.0/device/4420/sensor/9089/datapoints HTTP/1.1Host: api.yeelink.netU-ApiKey: 729d1ba15b26b6a48f4807ef3f2f4df4Content-Length: 49Content-Type: application/x-www-form-urlencodedConnection: Close {"timestamp&qu…
网上的爬虫不能用,还是先表达谢意,不过我比较懒不喜欢重复写别人写的教程,只贴出修改,怎么用自己看教程吧. 我自己改了一版可以正常爬: #!/usr/bin/env python #coding=utf-8 # # Openwrt Package Grabber # # Copyright (C) 2016 sohobloo.me # import urllib2 import re import os import time # the url of package list page, end…
安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制 socket 连接采用流的方式进行发送接收数据,采用thread线程的方式. 什么是线程?  详细代码介绍: 博文来源:http://blog.csdn.net/zhaocundang 如果你对代码有些疑问,请在下面留言来探讨,或者加我的QQ463431476一起学习进步! //线程mRunnable启动 private Runnable mRunnable = new Runnable() { pu…
默认刷入的OpenWrt带的ss, 只有ss-redir服务, 但是在实际使用中, 很多时候还是希望访问直接通过正常网关, 只有少部分访问需要通过ss, 所以希望能配置成为ss-local服务. 在保留原有服务的基础上, 添加一个新的Shadowsocks Client配置界面. /usr/lib/lua/luci/controller/ 下新增 shadowrock.lua module("luci.controller.shadowrock", package.seeall) fu…
绕过官方的ROOT 查了一下root教程, 如果还需要保留保修, 则需要自己想办法回退版本, 下载搜狐插件到sd卡, 找个linux系统修改sd卡上程序的执行权限, 然后才能开启ssh, 具体的方法可以参考这几篇http://ju.outofmemory.cn/entry/112262http://koolshare.cn/thread-1857-1-1.htmlhttp://blog.csdn.net/a649518776/article/details/41701163root所需要用到的工…
Docker 是一种新的被称之为容器的虚拟机.本文将使用此工具,进行 OpenWRT 的编译. 在 Docker 中下载 Ubuntu 14.04 的镜像 使用以下命令可以十分方便的从远程服务器上将 Ubuntu 14.04.5 版本的基本系统下载到本地: docker pull ubuntu:14.04.5 安装基本的编译工具 # 首先启动 Docker 中的 Ubuntu 14.04.5,这里以交互方式进行 # 选项 t:分配一个 tty # 选项 i:以交互方式运行 docker run…
小米路由器的“MiWiFi”又让路由器成了关键词,每台智能路由器的系统是该款产品的亮点之一,其系统肯定有不少“好玩”的地方.为自己的智能路由器量身打造系统,并且纷纷开发了适合智能手机.平板电脑等使用的app,方便用户使用.那么我们来看看他们用的都是什么系统: 1.小米路由器    小米路由器的“MiWiFi”系统正是基于OpenWrt打造,MiWiFi系统界面很友好,图形化的显示方式让用户在选择功能方面能够做到一目了然.miwifi智能操作系统提供开放平台,支持插件扩展.具有相当不错的潜力. 2…
[题外话] 学校里最近改造了校园网,要求必须用iNode验证,万幸的是路由器能刷OpenWrt,并且OpenWrt上有好多iNode认证的开源项目,比如njit8021xclient(以下简称njit-client)就非常好用.虽然程序写的好用,但是配置起来还是稍微麻烦一些的,大家通常的方法是在/etc/init.d下写启动脚本,把用户名.密码什么的都直接填进去,但毕竟配置起来不方便,同时日后修改起来也不便.好在用Lua为LuCI写配置模块很简单,索性就自己做了一个,现在把开发的流程写一下,方便…
//--- openwrt中的ipk应用 opkg install /tmp/ser2net_2.7-2_brcm63xx.ipk 看到安装成功的信息后启动ser2net Ser2net –c /etc/ser2net.conf 试下把这行改一下2001:raw:600:/dev/ttyS0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS  2001:raw:600:/dev/ttyATH0:9600 NONE 1STOPBIT 8DATAB…