![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
openwrt
希哈科技
希哈科技 (XIHA) 致力于成为全球领先的AIoT产品与技术服务解决方案提供商。把 “赋能万物,机器智能” 作为核心价值观。相信所秉承的 “星球万物,智慧物联” 的使命,会持续为客户创造长期价值。
展开
-
openwrt之禁止服务开机时启动
1. 找到相应的服务先停止 /etc/init.d/XXX/XXX服务 stop2. 禁止服务开机时启动/etc/init.d/xxxx/xxx disable转载 2021-04-28 19:11:50 · 1416 阅读 · 0 评论 -
./scripts/feeds install -a 报警告
具体情况如下:WARNING: No feed for package ‘libc’ found, maybe it’s already part of the standard packages?WARNING: No feed for package ‘libssp’ found, maybe it’s already part of the standard packages?WARNING: No feed for package ‘librt’ found, maybe it’s alr转载 2021-02-02 11:38:41 · 2994 阅读 · 3 评论 -
Linux下的tar压缩解压缩命令详解
tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面的参数-f是必须的-f: 使用档案名字,切记...转载 2018-05-30 09:20:59 · 304 阅读 · 0 评论 -
OpenWrt Luci更换登陆用户
开通OpenWrt的远程管理以后,安全性问题随之而来。由于SSH以及Luci默认采用root账户登录,因此路由器很容易被暴力破解密码。可以通过修改root账号为其他名称,来提高路由器的安全性。1.修改/etc/passwd将root:x:0:0:root:/root:/bin/ash修改为username:x:0:0:root:/root:/bin/ash。2.修改/etc/shadow将root...转载 2018-05-21 18:08:49 · 2276 阅读 · 1 评论 -
Luci多级用户管理
目录目录 Luci的多级用户管理 实现方法 indexlua dispatcherlua servicectllua controllermultiUserlua modelcbimultiUserlua 防止用户删除本用户操作cbilua 思路 想法Luci的多级用户管理Openwrt的web管理是用luci来实现的,但是luci本身不支持多级用户管理,并实现不同用户显示不同的界面。因为工作需要...转载 2018-05-15 11:40:49 · 1153 阅读 · 1 评论 -
openwrt luci界面修改
1. 多语言1)检查:opkg list | grep luci-i18n-2)安装语言包:opkg install luci-i18n-hungarian 2.uhttpd这个是LuCI所在的Web Server。docroot在/www下边,index-html指向了/cgi-bin/luci,注意这是相对于docroot而言的路径。openwrt中利用它作为web服务器,实现客户端web页面...转载 2018-05-15 11:35:25 · 1243 阅读 · 0 评论 -
Luci的工作流程
1、浏览器敲入192.168.1.1后就,路由器作为uhttp server会把/www/index.html这个页面返回给浏览器,而且这个页面又会刷新, 去请求页面/luci/cgi,代码如红色标记:<metahttp-equiv="refresh" content="0; URL=/cgi-bin/luci" /></head><bodystyle="backgr...转载 2018-05-15 10:53:15 · 1237 阅读 · 0 评论 -
LUA string库使用小结
这篇文章主要介绍了LUA string库使用小结,本文总结了简单的模式串、格式化的模式串、模式串中的特殊字符、用'[]'创建字符集、在'[]'中使用连字符'-'等内容,需要的朋友可以参考下1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...2. string库中所有的function都不会直接操作字符串,而是返回一个结果代码如下:s = "[abc]"stri...转载 2018-05-15 10:11:20 · 650 阅读 · 0 评论 -
如何调试和分析Luci
最近把luci代码深入地剖析了一遍.说实话刚开始看的时候也是云里雾里,特别是dispatch函数, 这其间也是参考了几篇文章, 特此感谢.刚开始看luci代码确实就和逆向没啥区别, 需要揣摩作者对于各个变量的用途. 于是我就想了一个办法, 就是把每个变量都打印出来.为此我在/usr/lib/lua/luci目录下引入了log.lua模块:local M = {}local tconcat = ...转载 2018-05-15 08:20:47 · 942 阅读 · 0 评论 -
使用cJSON库更新json文件
测试程序的目的是更新已有的json文件。下面是测试程序的代码[cpp] view plain copy#include "smartlight.h" #include "cJSON.h" cJSON *dofile(char *filename) { FILE *f; long len; char *data; cJSON *json,*ret; ...转载 2018-04-28 15:07:42 · 2017 阅读 · 1 评论 -
Openwrt中luci配置页面cbi小记
先看看network的配置文件:[html] view plaincopyconfig interface 'loopback' option ifname 'lo' option proto 'static' option ipaddr '127.0.0.1' option netmask '255.0.0.0' co...转载 2018-05-18 14:45:41 · 936 阅读 · 1 评论 -
luci页面“save&apply”的实现分析
页面上配置的“保存&应用”功能的实现:最终调用到/etc/config/ucitrack的配置文件。例如配置无线时,对应ucitrack配置文件中的config network option init network list affects dhcp list affects radvdconfig wireless list affects network ...转载 2018-05-18 14:44:42 · 1974 阅读 · 0 评论 -
Luci修改代码后如何生效
因为luci有缓存机制,所以修改完lua代码后不会立即生效删除/tmp目录里面的luci相关缓存即可。123rm -rf /tmp/luci-modulecache/* rm -rf /tmp/luci-indexcache或者直接重启系统也可以,效率比较低。开发过程中可以打开/www/cgi-bin/luci删除以下内容禁用缓存1luci.dispatcher.indexcache = "/tm...转载 2018-05-18 14:41:18 · 3606 阅读 · 0 评论 -
luci cbi 模块函数详解
Control代码库路径: feeds/lluci/applications/luci-myapp/luasrc/controller/myapp.lua设备上路径: /usr/lib/lua/luci/controller/myapp.lua格式:module("luci.controller.myapp", package.seeall)function index()end注册UR...转载 2018-05-18 14:36:36 · 3450 阅读 · 1 评论 -
Openwrt Luci界面开发
Openwrt已经提供了一个很强大的web管理界面Luci,可以方便的管理路由器。我们在开发智能路由器时,一般就需要在OpenWrt的WEB界面增加内容。1.Luci简介LuCI是OpenWrt上的Web管理界面,LuCI采用了MVC三层架构,使用Lua脚本开发,所以开发LuCI的配置界面不需要编辑任何的Html代码,除非想自己单独去创建网页(View层),否则我们基本上只需要修改Model层就可...转载 2018-05-18 14:33:48 · 3386 阅读 · 0 评论 -
Linux kill指定进程名的四种方式
1、#pkill 进程名 2、#killall 进程名3、#kill -9 $(ps -ef|grep 进程名关键字|grep -v grep|awk '{print $2}')这个是利用管道和替换将 进程名对应的进程号提出来作为kill的参数。很显然上面的方法能完成但是过于复杂,下面这种就显得简单的多了4、#kill -9 $(pidof 进程名关键字)...转载 2018-05-16 17:28:16 · 25241 阅读 · 0 评论 -
Luci UCI API函数
1.参考:http://wiki.openwrt.org/doc/techref/uci#api2.增删查改函数.定义local x = luci.model.uci.cursor()个人理解这个函数是提供uci的API的句柄以下是对配置文件的增删查改2.1增.x:set("config","name","type") --增加一个sectionx:set("config","sectionnam...转载 2018-05-16 17:44:51 · 490 阅读 · 0 评论 -
Linux 下的dd命令使用详解
一、dd命令的解释dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file ...转载 2018-05-30 09:17:53 · 351 阅读 · 0 评论 -
openwrt luci开发方便调试的方法
LUCI调试方法将宿主机的/home/nfs/lua挂载到/usr/lib/lua上,以便于在线调试。mount -t nfs -o nolock 192.168.200.65:/home/nfs/lua /usr/lib/lua或 mount -t nfs -o nolock 192.168.200.65:/home/nfs/luci /usr/lib/lua/luci删除LUCI缓...原创 2019-01-30 09:55:05 · 934 阅读 · 0 评论 -
openwrt luci安装jquery
SSH到路由器并执行以下命令下载jquery-2.1.1.min。安装jquery在您的设备的web目录中的适当位置。在HTML文件中包含下载的JQuery源代码如下:<script type="text/javascript" src="/luci-static/resources/jquery-2.1.1.min.js"></script>$ cd /w...原创 2019-01-30 09:26:33 · 702 阅读 · 0 评论 -
OpenWrt超时检测
参考http://www.right.com.cn/forum/thread-261702-1-1.htmlvim /home/ihid/chaos_calmer/feeds/luci/modules/luci-base/root/etc/config/luci修改sessiontime为自定义数值:config internal sauth option sessionp...转载 2019-01-28 09:31:30 · 914 阅读 · 0 评论 -
openwrt luci中文汉化
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011007991/article/details/70230916前言OpenWRT 的多语言支持此处只介绍中英文支持,首先OpenWRT的多语言支持其实就是由一个中文/英文相对应的文本列表实现其格式如下所示msgid "(%d minute window, %d second i...转载 2018-12-17 14:53:00 · 5410 阅读 · 0 评论 -
luci实现框架
1.总述 上一篇总结了uhttpd的工作方式,openwrt中利用它作为web服务器,实现客户端web页面配置功能。对于request处理方式,采用的是cgi,而所用的cgi程序就是luci,工作框架如下图所示: Client端和serv端采用cgi方式交互,uhttpd服务器的cgi方式中,fork出一个子进程,子进程利用execl替换为luci进程空间,并通过se...转载 2018-12-08 14:43:08 · 896 阅读 · 0 评论 -
Linux中用C语言执行shell命令并获取返回结果
最近在项目中用到了C语言执行shell命令的问题,调查了一下,一般有system函数、exec族函数,但是还不太清楚怎么获取shell命令执行的返回信息。例如执行一个ifconfig命令,肯定需要获取ifconfig命令的返回值的。接着调查的话,发现有一个popen函数,也可以执行shell命令,并且可以获取shell命令执行的返回信息。man popen可以看到:#include <std...转载 2018-05-31 15:12:49 · 3514 阅读 · 0 评论 -
OpenWrt init/Procd启动流程(四)---uloop
源文件uloop.culoop_init 创建epoll句柄,监听最大数目为32;并设置句柄FD_CLOEXEC属性;对描述符设置了FD_CLOEXEC,使用execl执行的程序里,此描述符被关闭,不能再使用它,但是在使用fork调用的子进程中,此描述符并不关闭,仍可使用。uloop_process_addstruct uloop_process{ struct li...转载 2018-06-21 10:33:02 · 1203 阅读 · 0 评论 -
OpenWrt init/Procd启动流程(三)---procd
1. ulog_open调整日志级别;2. getopt,参数解析, “h”对应的函数已经在init中执行过;3. uloop_init4. procd_signal信号处理函数;5. trigger_init()???6. procd_state_next该函数procd状态转到下一阶段;进程初始状态...转载 2018-06-21 10:32:06 · 3207 阅读 · 0 评论 -
OpenWrt init/Procd启动流程(二)---/etc/preinit
脚本内容如下:root@OpenWrt:/# cat /etc/preinit#!/bin/sh# Copyright (C) 2006 OpenWrt.org# Copyright (C) 2010 Vertical Communications [ -z "$PREINIT" ] && exec /sbin/init export PATH=/usr/sbin:/usr/b...转载 2018-06-21 10:31:03 · 2450 阅读 · 0 评论 -
OpenWrt 启动Service流程及struct blob_buf 源码分析
OpenWrt 启动Service流程及struct blob_buf相关代码以/sbin/ubusd的启动为例来说明服务启动流程:./procd/state.cprocd在STATE_UBUS状态时启动ubusd;char ubus_cmd[] = "/sbin/ubusd"; service_init(); service_start_early("ubus", ubus_cm...转载 2018-06-21 10:29:54 · 4953 阅读 · 0 评论 -
struct和typedef struct的区别
分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是struct Student的别...转载 2018-05-30 09:22:29 · 268 阅读 · 0 评论 -
openwrt UCI API lua wiki
转载自https://wiki.openwrt.org/doc/techref/uci#usage_outside_of_openwrtUCI (Unified Configuration Interface) – Technical ReferenceProject's git: UCI (Unified Configuration Interface) library and utilityU...转载 2018-05-18 14:30:18 · 902 阅读 · 0 评论 -
vm安装openwrt虚拟机
这篇文章主要为大家详细介绍了Vmware安装OpenWrt15.05虚拟机教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下本教程为大家分享了Vmware安装OpenWrt15.05的具体过程,供大家参考,具体内容如下1.虚拟机文件制作下载对应版本的img文件,本文选择15.05:http://xiazai.jb51.net/201612/yuanma/VmwareOpenWrt(jb51.n...转载 2018-04-16 11:07:10 · 2227 阅读 · 0 评论 -
编译OpenWRT时 #error GNU libiconv not in use but included iconv.h is from libiconv
编译的时候碰到一个常见的错误,但是却在一个陌生的地方爆出来: gconvert.c:66:2: error: #error GNU libiconv not in use but includediconv.h is from libiconvgoogle 了一下资料还挺多,总之就是没搜到 OpenWRT相关的,于是各种想法都有。后来才发现确实是自己不注意被绕进去了。其实依旧是用很常规的手段...转载 2018-04-16 10:54:38 · 497 阅读 · 0 评论 -
openwrt非root权限编译出错
export FORCE_UNSAFE_CONFIGURE=1 && make$ sudo make FORCE_UNSAFE_CONFIGURE=1# or # $ sudo FORCE_UNSAFE_CONFIGURE=1 -j1 V=s # 可以使用-j1 -j2 -j4 -j8原创 2018-04-16 10:49:22 · 1324 阅读 · 0 评论 -
openwrt编译从源码到固件
版权声明:本文为博主原创文章,转载请注明出处。若博文中有引用侵权,请告知博主。 https://blog.csdn.net/moringrain/article/details/54976048接触OpenWRT一年时间,大部分都在编译固件、刷机,遇到过不少问题。这里记录下以前摸索的步骤。op编译过程的wiki:https://wiki.openwrt.org/zh-cn/doc/howto/bu...转载 2018-04-16 10:46:12 · 3144 阅读 · 0 评论 -
x86 openwrt固件编译
2017年十月四日我在珠海,中秋之际写下这篇文章,祝各位看官花好月圆,有情人终成眷属。最近一直在玩Openwrt,以前上学的时候接触一丁丁,但是只限于烧写别人编译好的固件,这次要真刀实干了,学习了一周各种百度,终于在虚拟机中把openwrt跑起来了,写下此篇留念,后续将会陆续更新。开发环境的安装Openwrt的准备openwrt配置编译编译openwrt开发环境的安装openwrt的内核是Linu...转载 2018-04-16 10:45:20 · 2875 阅读 · 0 评论 -
在Vmware中编译Openwrt
这里不仅仅介绍了如何在VMware下的Ubuntu上如何安装openwrt,更进一步的,讲解了,如何在编译后,直接把编译文件跑在VMware上,把电脑做成一个嵌入式路由器,方便开发调试。步骤一:拉取源码1在电脑上安装VMware,在VMware上安装Ubuntu14.04。2在Ubuntu上安装svn,用于从官网上拉去openwrt源码,拉取源码时,会用到git工具,所以同时要安装git。用以下命...转载 2018-04-16 10:44:26 · 1134 阅读 · 0 评论 -
openwrt使用uci C API获取和修改wifi密码
openwrt版本:DESIGNATED DRIVER (Bleeding Edge, r49395)【读wifi参数中的ssid】[cpp] view plain copyint getWirelessCfgValue(char *name,char *value, int valueBufLen) { if (NULL == name || NULL == value) ...转载 2018-03-21 15:53:03 · 2949 阅读 · 0 评论 -
openwrt uci 设置network
OPENWRT使用命令行设置无线和有线网络 在我们将路由器固件刷成开源的基于Linux内核的openwrt系统后,由于openwrt默认未安装WEB管理界面,所以我们需要先通过SSH或者telnet对路由器进行网络设置,设置完成后可通过openwrt的软件包管理opkg安装web设置界面Luci。 设置lan ip(即访问路由的ip) Shell代码 uci set network.lan.ip...转载 2018-03-20 15:22:02 · 1627 阅读 · 0 评论 -
openwrt编译helloworld
这次讲讲openwrt的结构.1. 代码上来看有几个重要目录package, target, build_root, bin, dl....---build_dir/host目录是建立工具链时的临时目录---build_dir/toolchain-<arch>*是对应硬件的工具链的目录---staging_dir/toolchain-<arch>* 则是工具链的安装位置--...转载 2018-03-20 14:50:45 · 2001 阅读 · 0 评论 -
openwrt软件包安装教程
方法一、web安装系统--》软件包先点更新软件包清单 填入软件包网址,然后点ok方法二、ssh连接路由命令安装或者用ssh软件PuTTY连接路由器PuTTY下载地址:http://openwrt.8800.org:82/PuTTY_SSH_Telnet程序.raropkg updateopkg install 软件包网址或者用winscp连接路由 然后上传包到/tmp/下opkg updateop...转载 2018-03-20 14:48:40 · 3598 阅读 · 0 评论