Openwrt
文章平均质量分 68
Creator_Ly
微信号:Creator_Ly
从事智能家居路由器、网关相关产品
尝试记录生活工作的点点滴滴
展开
-
35-Openwrt rpcd
rpcd package里面包含了多个模块,session,ubus插件等,是opewnrt的基础组件,只是很少关注到。原创 2024-06-25 09:09:33 · 436 阅读 · 0 评论 -
34-Openwrt uhttpd与rpcd
uhttpd作为一个简单的web服务器,其代码量并不多,而且组织结构比较清楚。和其它网络服务器差不多,其main函数进行一些初始化(首先parse config-file,然后parse argv),然后进入一个循环,不断地监听,每当有一个客户请求到达时,则对它进行处理。原创 2024-06-24 16:45:00 · 986 阅读 · 0 评论 -
33-Openwrt nand flash生产烧录
openwrt编译生产的sysupgrade.bin文件是一个升级文件,无法直接提供给工厂进行nand flash烧录使用。因为flash的每一个page是由data+ecc组成的,烧录的时候需要一起烧录,但是sysupgade.bin是原始data内容,没有ecc。原创 2024-05-22 16:56:05 · 292 阅读 · 0 评论 -
32-Openwrt nand flash坏块管理nmbm功能支持
nand flash很容易有坏块出现,一旦出现坏块数据就会丢失,如果是烧录、写入的时候检测到坏块,驱动可以帮忙跳过不写入之类的,但这不是一个完整的坏块管理,因为我们还是需要写入成功。原创 2024-05-15 14:46:53 · 713 阅读 · 0 评论 -
31-Openwrt 内核版本替换
有些时候因为一些解不了的bug,在新的内核版本里面已经解决了,这时候我们会想着升级下内核版本,而不是把整个openwrt升级。原创 2023-05-30 09:44:05 · 6031 阅读 · 0 评论 -
30-Openwrt config save and restore
在使用sysupgrade升级的时候,默认需要把配置文件进行备份,升级完成后进行恢复。如果是-n则把配置文件删除,恢复默认配置。原创 2023-05-24 10:36:18 · 1155 阅读 · 0 评论 -
29-Openwrt 防攻击
DOS攻击很常见,路由器可以通过iptables做一些简单的攻击防护,这边主要介绍模拟攻击的工具和防护攻击的手段。原创 2023-05-18 11:29:25 · 1907 阅读 · 0 评论 -
28-Openwrt 固件签名与验签
openwrt使用sysupgrade升级的时候,只会对固件的头部image进行校验是否合法,不会校验固件的完整性,所以当固件只有头部正常其他地方被破坏修改后,这个固件就是危险的,一旦升级就会出现变砖的情况。为了验证固件的完整性和合法性,可以有两种方式进行保护。原创 2023-05-09 11:43:40 · 1123 阅读 · 0 评论 -
27-Openwrt rtc htpdate system
rtc htpdate原创 2022-11-05 16:32:30 · 1340 阅读 · 0 评论 -
26-Openwrt 端口转发 dmz upnp
端口转发 dmz upnp原创 2022-06-14 17:42:55 · 5000 阅读 · 0 评论 -
25-Openwrt 访客网络添加
主人网络和访客网络相互隔离原创 2022-06-14 17:41:15 · 1641 阅读 · 0 评论 -
24-Openwrt dnsmasq
dnsmasq是openwrt一个重要的进程,里面提供了两个重要的功能。一个是dhcp server,给lan口使用的,另一个是dns功能,维护路由器的dns信息,而且支持ipv4和ipv6。1、 dnsmasq启动过程从/etc/init.d/dnsmasq start脚本启动root@Openwrt:/# cat /etc/config/dhcpconfig dnsmasq option domainneeded '1' option boguspriv '.原创 2022-05-28 16:33:20 · 5066 阅读 · 0 评论 -
23-Openwrt switch vlan配置
原创 2022-05-28 10:13:25 · 7977 阅读 · 4 评论 -
22-Openwrt 使用外部kernel和kernel_config
由于内核的修改要通过打patch的方式会比较麻烦,有时候我们会把内核直接解压出来用修改源码的方式,这时候就需要使用外部kernel的这个选项。openwrt的内核config是根据版本保存的,如config-4.19,当我们在一个版本下如果有很多和硬件平台的时候,平台config的分类保存就很重要了,这时候我们会选择使用外部kernel_config的方式。1、使用外部kernel使用外部内核源码的方式,我们一遍会编译一遍openwrt,然后将build_dir/target-aarch64_cor.原创 2022-05-18 18:07:01 · 3615 阅读 · 0 评论 -
21-Openwrt 内核模块改成.ko自动加载
openwrt下有很多开源的内核模块位于package/kernel/下,如gpio-button-hotplug、mwlwifi等。这些模块都是文件系统启动后,通过autoload的方式进行insmod载入的。1、正常思路在《Openwrt add function module to package》章节里面有介绍,如何添加一个内核模块。上面介绍的是自己添加一个内核应用模块,然后编译成.ko自动载入。如果是内核里面已经有的模块代码,如何将其改成.ko的方式自动载入。调试过程遇到过一个问题,内.原创 2022-05-18 18:04:19 · 1658 阅读 · 0 评论 -
20-Openwrt crond crontab
crond和corntab都是busybox下的一个工具,crond是一个后台进程,每隔一分钟读取配置文件中的参数,执行对应的动作。crontab是提供的一个命令行,可以对配置文件进行增删改查。这个定时功能对于平常一些功能使用很方便,比如每天晚上12点重启路由器等。1、openwrt上启动crond进程crond的启动参数如下:一般就设置-c指定文件目录,-l日志等级# crond -hcrond: invalid option -- hBusyBox v1.22.1 (2022-03-.原创 2022-05-14 17:45:10 · 1187 阅读 · 0 评论 -
19-Openwrt双固件升级
在上一章节《Openwrt sysupgrade系统升级》中,我们描述了sysupgrade升级系统的过程,这种升级过程会直接firmware分区进行写入,无法保证系统的安全性,只要在写入过程突然断电就会出现系统写入失败,升级失败无法启动系统的问题。为了解决该问题一般会使用双固件升级的方式,有一个主分区firmware和一个备份分区firmware_backup,常见的有双固件升级方式有很多种,这边只介绍一种通用方式1.升级流程1.根据sysupgrade的过程,将固件进行校验写入,不过写入的时.原创 2022-05-04 15:04:16 · 4066 阅读 · 0 评论 -
18-Openwrt sysupgrade系统升级
openwrt的升级是使用sysupgrade工具来升级的,该工具为sbin下面的一个脚本,可以附带很多参数,但是我们一般就直接sysupgrade openwrt-ramips-mt7621-device-squashfs-sysupgrade.bin升级参数说明-i开启交互模式-d重启前延迟,延迟秒数是传进来的-v会打印sysupgrade脚本中的一些信息,脚本中默认打印-q与-v相反-n升级后不保存配置,默认保存配置-c保存所有的改.原创 2022-05-04 15:03:24 · 6749 阅读 · 2 评论 -
17-Openwrt banner文件生成
在每次串口或ssh登录后台的时候,一按回车键就会出现openwrt的字段,如果想换成自己自定义的内容如何实现。banner:语牌和横幅这个文件存放在如下位置:./package/base-files/files/etc/banner,所以我们只需要修改这个文字的内容就可以。那我们如何生成上面好看的内容,可以使用如下工具生成:sudo apt-get install sysvbanner toilet figletubuntu:~/$ banner openwrt #### #####.原创 2022-01-21 11:05:22 · 1644 阅读 · 0 评论 -
16-Openwrt patch生成
在开源模块的基础上修改代码,更多的时候是通过打补丁的方式进行修改。1.内核patch生成1.1 编译内核模块命令vim 19.07/target/linux/Makefileprereq clean download prepare compile install menuconfig nconfig oldconfig update refresh: FORCE @+$(NO_TRACE_MAKE) -C $(BOARD) $@清空内核:make target/linux/cle.原创 2022-01-21 10:50:35 · 1233 阅读 · 0 评论 -
3-Openwrt ipv6之-odhcpd服务器
openwrt上面的dhcpv6服务器package一般使用odhcpd,里面即包含了有状态的dhcpv6服务器,也包含了无状态的ra服务器。1.odhcpd服务器启动过程开启config配置CONFIG_PACKAGE_odhcpd=yCONFIG_PACKAGE_odhcpd_ext_prefix_class=0CONFIG_PACKAGE_odhcpd_ext_cer_id=0etc/init.d/odhcpd会启动服务器进程#!/bin/sh /etc/rc.commonS.原创 2020-07-08 09:04:36 · 6921 阅读 · 0 评论 -
2-Openwrt ipv6之-pppoev6客户端
pppoe拨号方式上网,ubunut服务器需要有pppoe-server也要有dhcpv6-server,路由器端需要ppp-client,也要odhcp6c指向pppoe-wan端口。1. PPPOEv6客户端启动过程pppoe拨号为wan上面的另一种方式,所以需要将uci里面的上网模式proto 改成pppoeconfig interface 'wan' option ipv6 '1' option def_ifname 'eth1' opti.原创 2020-07-01 14:13:22 · 3513 阅读 · 0 评论 -
1-Openwrt ipv6之-odhcp6c客户端
wan口的拨号有好几种方式,SLAAC, stateless DHCPv6, stateful DHCPv6, DHCPv6-PD,这些请求方式在odhcpv6里面都可以配置。1. odhcp6c客户端启动过程开启openwrt .config配置CONFIG_PACKAGE_odhcp6c=yCONFIG_PACKAGE_odhcp6c_ext_prefix_class=0CONFIG_PACKAGE_odhcp6c_ext_cer_id=0odhcp6c的启动需要在/etc/conf.原创 2020-06-28 09:18:07 · 9292 阅读 · 1 评论 -
15-Openwrt libubox shell上面的应用(JSON解析)
很多情况下我们需要在shell下解析或者组合JSON数据,在libubox里面提供了一个操作json脚本在/usr/share/libubox/jshn.sh文件中。在libubox编译后的内容中,查找jshn文件,如下:@ubuntu:~/14.07/build_dir/target-mipsel_1004kc_uClibc-0.9.33.2/libubox-2017-09-29$ fi...原创 2020-04-28 15:36:58 · 980 阅读 · 0 评论 -
13-Openwrt libubox ustream
流缓冲管理,ustream_fd跟uloop_fd有什么不一样呢?ustream_fd内部其实就是uloop_fd,与fopen和open类似,fopen的内部也是open加上流缓冲管理。struct ustream_fd { struct ustream stream; struct uloop_fd fd;};ustream相关的函数void ustream_fd...原创 2020-02-02 16:04:04 · 1182 阅读 · 0 评论 -
8-Openwrt config wifi
1.Wifi 驱动检测https://oldwiki.archive.openwrt.org/doc/howto/wireless.overview/package/base-files/files/etc/init.d/boot /sbin/wifi detect > /tmp/wireless.tmp [ -s /tmp/wireless.tmp ] &&a...原创 2019-01-08 16:58:03 · 1159 阅读 · 0 评论 -
MT7688/MT7628-GPIO使用
7688/7628的GPIO一共有47个,GPIO0-GPIO46,这些GPIO有复用的功能,按功能模块进行配置,比如I2C有两根线,将其设置为GPIO模式,则两根就都是GPIO模式了,不可为别的功能。一般有两种方法配置1.通过寄存器进行配置下面的使用前提不要被DTS或者驱动什么占用,如switch芯片的network配置功能的定义由两个地址寄存器。GPIO1_MODE = 0x10...原创 2019-01-03 15:07:28 · 5172 阅读 · 3 评论 -
7-Openwrt uci system
openwrt的很多配置文件都是通过uci接口来进行查看修改的,虽然我们可以通过直接打开config/下面的配置文件进行修改,但是有个统一的接口为何不用呢,又方便又不会错。https://wiki.openwrt.org/doc/uciconfig_load system通过. /lib/functions.sh进行包含内容config_load() { [ -n "$IPKG...原创 2019-01-07 16:36:20 · 663 阅读 · 0 评论 -
6-Openwrt SDK
Openwrt SDKSDK)Software Development Kit)软件开发工具包,这个名词相信大家都不会陌生,那Openwrt的SDK有什么用呢?为什么要使用SDK?一般我们使用SDK来开发应用层的程序,SDK为我们搭建了一个完整的编译环境,只要使用平台对应的SDK,我们不需要去了解他的硬件什么,只需要添加自己的应用程序,通过该SDK编译后生成.ipk文件,安装到Openwrt上...原创 2019-01-03 15:18:34 · 714 阅读 · 0 评论 -
5-Openwrt package Makefile
Openwrt package Makefile原创 2017-01-19 15:44:47 · 1051 阅读 · 2 评论 -
4-Openwrt main Makefile
Openwrt main Makefile原创 2017-01-16 20:26:22 · 922 阅读 · 0 评论 -
1-Openwrt clone and bulid
Openwrt clone and bulid原创 2017-01-11 10:01:58 · 804 阅读 · 0 评论 -
3-Openwrt start process
Openwrt start process原创 2016-12-14 12:24:41 · 1056 阅读 · 0 评论 -
9-Openwrt config network
1、Network配置https://wiki.openwrt.org/doc/uci/network在openwrt中network的默认值一般在/package/base-files/files/bin/config_generate里面设置,如下: case "$protocol" in static) local ipad ...原创 2019-01-09 16:23:14 · 1053 阅读 · 0 评论 -
在线视频监控mjpg-streamer
Mjpg-Streamer是一个开源项目,其基本功能是从一个uvc内核摄像头读取内容,然后将它推送到本地的8080端口上面。就是一个本地的视频服务器。它的项目网站在这里。OpenWRT的软件源中也已经对它有了移植,所以我们只需要从OpenWRT的官方网站上找到对应15.05版本OpenWRT系统的Mjpg-Streamer,然后下载安装即可。除此之外还需要一些其他的软件包去支持它的运行:km...原创 2019-01-15 14:43:35 · 955 阅读 · 0 评论 -
5-Openwrt add function module to package
在Openwrt package Makefile章节里面提到了,要添加一个添加自定义模块的章节,这边就举两个简单的例子看下,其实我们自己看下已有的例子也大概可以模仿出来。1.添加openwrt应用程序模块如下,我们在package下面添加一个hello模块,有以下几个文件linye@ubuntu:~/14.07/package/hello$ tree.├── Makefile└─...原创 2019-09-04 15:11:11 · 389 阅读 · 0 评论 -
14-Openwrt ubus
ubus是OpenWrt中的进程间通信机制,ubusd实现server,其他进程实现client,例如ubus(cli)、netifd、procd,两个client通信需要通过server转发。ubus提供了创建socket client端的接口,并且提供了三种现成的客户端供用户直接使用:为shell脚本提供的client端。为lua脚本提供的client接口。为C语言提供的clie...原创 2019-07-13 21:57:58 · 1271 阅读 · 0 评论 -
13-Openwrt libubox uloop
上一章节将libubox的一些简单组件介绍了一下,其实里面还有很多东西,只能等用到的时候再去学习,这边再介绍一个libubox里面比较经常用到的组件,就是uloop,uloop下面有太多东西了。uloop是libubox下的一个模块,有三个功能:文件描述符触发事件的监控,timeout定时器处理, 当前进程的子进程的维护。主框架接口初始化事件循环 int uloop_init(voi...原创 2019-07-13 21:56:53 · 1805 阅读 · 0 评论 -
12-Openwrt libubox ulog md5 list
openwrt下面的libubox库可谓是非常的强大,很多库都会调用到其中的接口,如ubus,uhttpdlibubox主要提供一下两种功能:提供一套基于事件驱动的机制。提供多种开发支持接口。(如:链表、kv链表、平衡查找二叉树、md5、json)使用libubox开发的好处有如下几点:可以使程序基于事件驱动,从而可实现在单线程中处理多个任务。基于libubox提供的开发AP...原创 2019-07-13 21:55:19 · 731 阅读 · 0 评论 -
11-Openwrt hotplug system
hotplug为linux的一个热拔插系统,在很多应用都有用到,如网口的拔插,USB的拔插,按键的触发…非常广泛的应用,下面举几个例子来进行理解这个过程1.gpio-button-hotplug(内核层发送hotplug到procd)gpio-button-hotplug为kernel的一个package,位于package/kernel/gpio-button-hotplug/要把...原创 2019-07-13 17:05:06 · 1490 阅读 · 0 评论