- 博客(202)
- 资源 (3)
- 收藏
- 关注
原创 11-openwrt-one支持双固件升级
上一个章节我们已经创建了fit2分区,用来做系统升级时的备份分区,这样就可以避免升级是主分区挂了导致起不来的问题。
2025-04-18 14:32:58
90
原创 10-openwrt-one调整rootfs_data卷,新增fit2、log、plugins等卷
固件镜像生成的时候没有设置rootfs_data卷,为啥内核启动后可以查到呢,这个卷的创建过程和挂载过程分析和调整,有便于我们重新创建我们自己想要的卷。
2025-04-18 14:32:12
165
原创 9-openwrt-one sysupgrade升级过程分析、如何支持fip升级
升级的过程只是输入了一条sysupgrade就升级了,但是其中经过了哪些动作我们需要分析下,这样我们就可以实现通过sysupgrade升级fip了,否则只能在uboot下接串口升级fip。
2025-04-15 11:20:56
94
原创 8-openwrt-one ubi系统结构、ubi命令使用、ubi镜像制作
官方提供的系统与以往最大的差异点在于使用ubi镜像卷,而非以往的mtd分区。使用ubi镜像卷有挺多好处,也有很多功能兼容性需要去解决,我们不做评判,先做分析,后期再去做选择。
2025-04-15 11:20:11
199
原创 7-openwrt-one通过web页面配置访客网络、无线中继等功能
前几个章节一直在介绍编译、分区之类的,都还没正常开始使用这个路由器的wifi。默认wifi是没有启动的,前面还是通过手动修改uci配置启动的,这个章节介绍下官方web页面的使用。
2025-04-10 13:47:06
417
原创 6-openwrt-one迁移fartory分区到nand flash
上章节介绍分析了mac地址的读取写入流程都是从factory分区获取的,但是factory分区是位于nor flash上面,正常的产品一般不会有双flash,所以我们还是得把nor flash去掉,迁移到nand flash上面来。
2025-04-10 13:46:15
59
原创 5-openwrt-one mac地址读取与写入
mac地址作为一个路由器的基础信息,需要确保工厂写入唯一的mac地址到路由器指定位置,网卡从指定位置读取mac进行使用。openwrt的做法是专门开辟了一个factory分区,将mac地址写在该分区,后面以太网eth或者无线wireless的驱动,都从factory分区读取mac地址,进行对应的转换操作。
2025-04-08 16:56:51
246
原创 4-openwrt-one分区介绍、固件生成流程
bl2:就是preloader,也就是一个单独的分区factory:存mac地址,wifi校准参数之类的volumes {bl2:就是preloader,也就是一个单独的分区ubi:其他数据都放在ubi分区,跟以前的做法很不一样,以前都是有很多mtd分区。为什么nand的分区看不到fip,firmware等分区?因为使用了新的ubi分区的做法。
2025-04-08 16:56:08
210
原创 3-openwrt-one系统启动流程分析
mt7981是arm内核,所以都是arm提供的ATF那一套启动流程:全流程:ROM Code → BL2 (Preloader) → FIP (BL31 + U-Boot) → Kernelbl2和bl31的代码都属于ATF,位于模块。有好几种启动模式可以选择,比如nor、nand、emmc等,openwrt-one使用的有两种:该部分的代码定义选择位于,如下:根据选择的配置编译运行,最终bl2的代码会调用到函数,这个函数里面根据不同的默认跑对应的平台代码:通过函数获取fip地址进行bl3,,里面定义了
2025-04-07 14:39:45
199
原创 6-实际项目应用wifidog的一些优化
wifidog为了能够让用户直接看到效果,做的比较多。在网关和服务器之间做了很多功能,比如登陆、授权、心跳之类的,还做了服务器数据库的存储之类的。但是实际我们可能用不到这些,因为我们肯定是在已有的项目上进行搭建。
2025-04-07 10:53:05
297
原创 2-openwrt-one开发板接口、升级流程介绍
前面我们将项目环境已经搭建并编译输出了升级文件,下面我们将对开发板的使用接口进行介绍,并介绍每个模块的升级命令。
2025-04-06 11:30:14
139
原创 1-openwrt-one(MT7981B+MT7976C)项目工程搭建
为了庆祝openwrt项目20周年,官方和香蕉派合作推出openwrt-one开发板,本专栏将从零开始解剖整个开发过程,定制自己的MT7981B路由器平台。
2025-04-06 11:26:50
384
原创 37-Openwrt 使用wpa_supplicant实现sta
openwrt上面如果想要使用无线中继上网的话,需要使用uci的配置+udhcpc进程进行配合使用,但是wpa_supplicant做为一个开源使用很普遍的工具,在很多终端设备上使用,有必要介绍使用。
2025-04-02 16:10:56
226
原创 36-Openwrt wifi命令工具iwconfig、iwinfo、iwpriv、iwlist
增对wifi的调试命令有很多,这边列出我们常用的命令提供参考,方便查看信息定位问题。
2025-03-04 16:50:40
485
原创 5-portal认证与qos冲突问题解决
mark的最大长度是32位0xffffffff,所以可以把不同的应用分配给不同的mark位,设置mark的时候通过掩码或设置(–or-mark value/mask),匹配mark的时候也通过掩码只匹配自己的位断(-m mark --mark value/mask)由于portal和qos用的方法都是使用mark原理,将数据流标记后,再通过标记匹配做出不同的动作,mark的动作都处于mangle表中。原本的mark设置,改成通过子网掩码或设置mark。原本的单位mark标记,改成第6位为mark标记。
2025-02-17 10:49:10
64
原创 4-电脑一连接上自动弹框到路由器web配置页面
很多路由器在还没有配置路由信息的时候,只要一连接wifi/有线,就会自动弹出路由器web配置页面,强制用户配置一次基本信息才可以进行上网这也其实也是portal认证的一种应用,原本的portal是跳转到后台认证服务器页面,目前是跳转到路由器本地管理页面。所以我们只需要根据应用策略进行区分,然后修改跳转的页面url即可。
2025-02-12 17:20:43
412
原创 2-使用wifidog实现portal
wifidog是openwrt上面实现portal认证的一个开源工具,从网关端到服务器都帮你搭建好,通过学习wifidog的原理,后面就可以改造成自己需要的逻辑。
2025-02-11 09:11:41
367
原创 1-portal认证功能
很多时候公共网络需要提供安全认证功能,比如我们去星巴克或者商场、酒店,我们连接wifi上网的时候, 需要认证后才可以上网。用户可以主动访问已知的Portal认证网站,输入用户名和密码进行认证,这种开始Portal认证的方式称作主动认证。反之,如果用户试图通过HTTP访问其他外网,将被强制访问Portal认证网站,从而开始Portal认证过程,这种方式称作强制认证。一般都是这种方式。路由器实现portal认证的方式有两种,黑名单或者白名单机制。
2025-02-10 09:25:55
564
原创 35-Openwrt rpcd
rpcd package里面包含了多个模块,session,ubus插件等,是opewnrt的基础组件,只是很少关注到。
2024-06-25 09:09:33
769
原创 34-Openwrt uhttpd与rpcd
uhttpd作为一个简单的web服务器,其代码量并不多,而且组织结构比较清楚。和其它网络服务器差不多,其main函数进行一些初始化(首先parse config-file,然后parse argv),然后进入一个循环,不断地监听,每当有一个客户请求到达时,则对它进行处理。
2024-06-24 16:45:00
2189
原创 3-EMMC命令使用
在调试emmc的过程,我们需要用到命令读写emmc,烧录,查看emmc寄存器,设置寄存器等功能,所以uboot和linux下都有各自的命令可以使用。
2024-05-29 14:47:16
2044
原创 2-EMMC启动及各分区文件生成过程
跟普通nand或spi flash不同,uboot前面还有好几级在vendor某些厂商的设计中,ATF并不是BOOTROM加载后的第一个启动镜像,可能是这样的:BOOTROM—>PL—>ATF—>optee—>uboot…, 在PL阶段就已经将ATF/optee/uboot镜像的load到内存了.ATF(ARM Trusted firmware)完成启动流程:https://blog.csdn.net/u014426028/article/details/117949006?
2024-05-28 10:08:55
2077
原创 1-EMMC介绍
eMMC Device会进行内部初始化,Host需要持续发送CMD1命令,查询eMMC Device是否已经完成初始化,同时进行工作电压和寻址模式协商:eMMC Device 在接收到这些信息后,会将OCR的内容(MMC出厂就烧录在里面的卡的操作电压值)通过 Response 返回给 Host,其中包含了 eMMC Device 是否完成初始化的标志位、设备工作电压范围 Voltage Range 和存储访问模式 Memory Access Mode 信息。MMC完成初始化后,就会进入该阶段。
2024-05-27 17:21:46
4565
原创 33-Openwrt nand flash生产烧录
openwrt编译生产的sysupgrade.bin文件是一个升级文件,无法直接提供给工厂进行nand flash烧录使用。因为flash的每一个page是由data+ecc组成的,烧录的时候需要一起烧录,但是sysupgade.bin是原始data内容,没有ecc。
2024-05-22 16:56:05
546
1
原创 32-Openwrt nand flash坏块管理nmbm功能支持
nand flash很容易有坏块出现,一旦出现坏块数据就会丢失,如果是烧录、写入的时候检测到坏块,驱动可以帮忙跳过不写入之类的,但这不是一个完整的坏块管理,因为我们还是需要写入成功。
2024-05-15 14:46:53
1438
1
原创 31-Openwrt 内核版本替换
有些时候因为一些解不了的bug,在新的内核版本里面已经解决了,这时候我们会想着升级下内核版本,而不是把整个openwrt升级。
2023-05-30 09:44:05
7317
原创 30-Openwrt config save and restore
在使用sysupgrade升级的时候,默认需要把配置文件进行备份,升级完成后进行恢复。如果是-n则把配置文件删除,恢复默认配置。
2023-05-24 10:36:18
1540
原创 29-Openwrt 防攻击
DOS攻击很常见,路由器可以通过iptables做一些简单的攻击防护,这边主要介绍模拟攻击的工具和防护攻击的手段。
2023-05-18 11:29:25
2448
原创 28-Openwrt 固件签名与验签
openwrt使用sysupgrade升级的时候,只会对固件的头部image进行校验是否合法,不会校验固件的完整性,所以当固件只有头部正常其他地方被破坏修改后,这个固件就是危险的,一旦升级就会出现变砖的情况。为了验证固件的完整性和合法性,可以有两种方式进行保护。
2023-05-09 11:43:40
1443
原创 5-Linux 内存溢出oom
Linux内核为了提高内存的使用效率采用过度分配内存(over-commit memory)的办法,造成物理内存过度紧张进而触发OOM机制来杀死一些进程回收内存。该机制会监控那些占用内存过大,尤其是瞬间很快消耗大量内存的进程,为了防止内存耗尽会把该进程杀掉。
2023-04-02 16:44:52
3875
原创 2023新的征程
距离上一篇的五年睿进已经过了四年,不知出于什么理由,中间的这三年没有写年终总结,今年也是比较特殊的一年,重新开始自己的年终总结,回顾四年里发生的事情,计划2023新的征程。
2023-01-11 21:04:59
676
原创 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
5993
原创 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
4337
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人