LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

随笔分类 -  OpenWRT

OpenWRT(23): 使用sar进行系统级状态监控
摘要:1 OpenWRT下sar配置 如果要在OpenWRT下使用sar,需要配置打开: Utilities ->sysstat 2 sar介绍 sar相关工具包括: 工具功能描述使用场景示例 sar 系统活动报告器,收集/显示系统性能数据 sar -r 1 3 查看内存使用率 sadc 系统活动数据收集 阅读全文

posted @ 2025-06-22 23:59 ArnoldLu 阅读(284) 评论(0) 推荐(0)

OpenWRT(22):hotplug处理流程
摘要:procd同时负责hotplug处理,根据hotplug.json或hotplug-preinit.json中的规格进行处理。 1 procd中处理热插拔流程 procd对hotplug的出流程如下: 代码流程如下: main ->procd_state_next ->state_enter ->h 阅读全文

posted @ 2025-06-17 23:59 ArnoldLu 阅读(403) 评论(0) 推荐(0)

OpenWRT(21):sysupgrade中签名和验签流程
摘要:sysupgrade支持在编译的时候生成签名和metadata,在设备进行upgrade进行验签和metadata检查。 1 签名和metadata生成流程 签名和metadata流程如下: 文件类型核心作用 key-build 私钥 签名固件和软件包。 key-build.pub 公钥 验证签名合 阅读全文

posted @ 2025-04-12 23:59 ArnoldLu 阅读(775) 评论(0) 推荐(0)

OpenWRT(20):NAND上squashfs+ubifs的overlay实现rootfs
摘要:OpenWrt 使用 squashfs + ubifs 组合作为根文件系统(rootfs)的设计,是针对嵌入式设备(尤其是基于 NAND Flash 的硬件)的一种优化方案。这种设计结合了两种文件系统的优势,解决了嵌入式场景下的关键需求。 1 背景说明 嵌入式设备的硬件限制 NAND Flash 特 阅读全文

posted @ 2025-02-01 23:59 ArnoldLu 阅读(1366) 评论(0) 推荐(1)

OpenWRT(19):根文件系统挂载mount_root
摘要:参考《[OpenWrt Wiki] The OpenWrt Flash Layout》、《[OpenWrt Wiki] Extroot configuration》。 1 mount_root概要 mount_root函数在系统启动的早期阶段被调用,以确保系统能够访问一个可写的根文件系统。 moun 阅读全文

posted @ 2024-10-18 23:59 ArnoldLu 阅读(1403) 评论(0) 推荐(0)

OpenWRT(18):固件升级sysupgrade
摘要:sysupgrade的主要作用是升级OpenWrt固件,同时尽可能保留用户配置。它通过备份指定的配置文件,擦除整个文件系统,安装新版本的OpenWrt,然后恢复保存的配置文件来实现升级。 参考《[OpenWrt Wiki] Sysupgrade – Technical Reference》。 1 s 阅读全文

posted @ 2024-10-06 23:59 ArnoldLu 阅读(4343) 评论(0) 推荐(0)

OpenWRT(17):网络接口管理守护进程netifd
摘要:netifd是一个网络接口守护程序(daemon),它负责初始化网络设备、配置网络参数、处理网络事件以及维护网络连接。netifd通常在系统启动时启动,并在后台运行以监视和调整网络设置。 以下是netifd的一些关键特性和功能: 1.热插拔支持:netifd能够检测网络设备的变化,如USB网络适配器 阅读全文

posted @ 2024-09-28 23:59 ArnoldLu 阅读(1866) 评论(0) 推荐(0)

OpenWRT(16):基于ubus的远程调用守护进程rpcd(Remote Procedure Call Daemon)
摘要:OpenWrt的rpcd(RemoteProcedureCallDaemon)是一个守护进程,它提供了一个基于UBUS(OpenWrt'sUnifiedBinaryService)的RPC框架,允许通过插件来扩展其功能。rpcd的主要作用包括: 提供远程过程调用接口:允许远程客户端(如LuCIWeb 阅读全文

posted @ 2024-09-22 23:59 ArnoldLu 阅读(1664) 评论(0) 推荐(0)

OpenWRT(15):ubox下的日志管理logd/logread
摘要:logd搜集日志,保存在缓存中。通过ubus提供给logrread读取。logd/logread和ubus/ubusd大致架构如下: 1 logd 1.1 logd主要作用 logd是 OpenWrt 系统中的日志守护进程,它负责处理系统产生的日志消息。logd的主要作用包括日志的收集、过滤、存储和 阅读全文

posted @ 2024-09-09 23:59 ArnoldLu 阅读(3183) 评论(0) 推荐(1)

OpenWRT(14):本地时钟校准服务ntpd(Network Time Protocol Daemon)
摘要:ntpd是一个用于实现网络时间协议(NTP)的守护进程,它允许路由器与互联网上的时间服务器同步时间。这样可以确保路由器的系统时间是准确的,这对于很多依赖于时间的服务和功能来说非常重要,比如VPN、动态DNS、定时任务等。 1 配置ntpd ntpd由Busybox提供: Base system Ne 阅读全文

posted @ 2024-09-01 23:59 ArnoldLu 阅读(2044) 评论(0) 推荐(0)

OpenWRT(13):DNS和DHCP服务守护进程dnsmasq和odhcpd
摘要:dnsmasq 是一个轻量级的DNS和DHCP,它通常用于小型网络。 odhcpd 是OpenWrt中用于IPv6的DHCP和RA(Router Advertisement)服务的守护进程。 1 dnsmasq dnsmasq是DNS masquerade的意思, dnsmasq是一个为小型网络提供 阅读全文

posted @ 2024-08-30 23:59 ArnoldLu 阅读(4184) 评论(0) 推荐(0)

OpenWRT(12):uhttpd主要功能以及客户端连接、CGI/Lua/UBUS/UCODE等处理
摘要:uhttpd是一个功能全面、轻量级的Web服务器,是Web管理界面LuCI的默认服务器,支持SSL、CGI、Lua。 uhttpd是单线程,但支持多个实例。 1 配置uhttpd 1.1 配置uhttpd uhttpd配置如下: Network Web Servers/Proxies uhttpd 阅读全文

posted @ 2024-08-25 23:59 ArnoldLu 阅读(3825) 评论(0) 推荐(0)

OpenWRT(11):failsafe mode触发和流程说明
摘要:failsafe是一种安全模式,允许用户在遇到配置错误或者其他问题导致设备无法访问时,通过一个简化配置来重新获得对设备的控制。 为什么需要failsafe(配置错误或者无法访问)?怎么触发(通过按键、命令行、环境变量、网络)?触发后干什么(仅启动ssh服务、shell等有限服务。仅提供最小服务,用于 阅读全文

posted @ 2024-08-24 23:59 ArnoldLu 阅读(1222) 评论(0) 推荐(0)

OpenWRT(10):OpenWRT下rootfs的cpio/squashfs/ubifs/ext4生成流程
摘要:在include/image.mk中定义了initramfs、ubifs、squashfs、ext4等镜像的生成。 OpenWRT提供配置选项入口,借助mkfs.ubifs、mksquashfs4、make_ext4fs创建镜像。 1 ubifs 下面是include/image.mk中生成ubif 阅读全文

posted @ 2024-08-23 23:59 ArnoldLu 阅读(1634) 评论(0) 推荐(0)

OpenWRT(9):随机数发生器urngd,以及/dev/random
摘要:urngd是一个基于时间jitter的非物理随机数发生器。urngd为Linux的/dev/random设备提供熵源,当/dev/random熵不足时,它会向其注入熵。 它会向其中注入熵。这确保了/dev/urandom也能从注入的熵中受益,尤其是在系统启动时,Linux的熵较低的情况下,urngd 阅读全文

posted @ 2024-08-17 23:59 ArnoldLu 阅读(606) 评论(0) 推荐(0)

OpenWRT(8):使用quilt对OpenWRT的patch进行管理
摘要:quilt是一个用于管理源代码补丁的工具,广泛用于 Linux 内核和许多其他开源项目中。它提供了一种方便的方式来创建、修改、应用和撤销补丁。 1 quilt使用 关键特性: 补丁系列管理:quilt允许你将多个补丁组织成一系列,这样可以轻松地对它们进行排序和应用。 自动补丁应用:可以自动应用补丁系 阅读全文

posted @ 2024-08-16 23:59 ArnoldLu 阅读(1034) 评论(0) 推荐(0)

OpenWRT(7):OpenWRT进程间通信-ubus、ubusd、libubus等
摘要:ubus提供了各种守护进程和应用程序之间的进程间通信。它包括如下几部分: 守护进程ubusd:在系统启动时运行,负责进程间的消息路由和传递。其他进程可以通过注册到ubusd进程来发送和接收消息。这些消息通过Unix套接字和TLV(类型-长度-值)格式进行传输 。 库文件libubus:为了简化开发, 阅读全文

posted @ 2024-08-11 23:59 ArnoldLu 阅读(3294) 评论(0) 推荐(1)

OpenWRT(6):添加自己的Target/Subtarget/Target Profile
摘要:OpenWRT前三个配置Target/Subtarget/Target Profile基本决定了一款产品的软硬件基本配置。 Target可以是一系列处理器型号、或者一个公司、或者一种架构。 Subtarget是对Target细分。 Target Profile是Target和Subtarget的不同 阅读全文

posted @ 2024-08-10 23:59 ArnoldLu 阅读(1357) 评论(0) 推荐(0)

OpenWRT(5):QEMU运行SiFive FU540(RISC-V)
摘要:对应的OpenWRT版本为23.05: git clone https://git.openwrt.org/openwrt/openwrt.git -b openwrt-23.05 1 OpenWRT配置 选择Target、Subtarget、Target Profile,以及生成ramdisk文件 阅读全文

posted @ 2024-08-03 23:59 ArnoldLu 阅读(500) 评论(0) 推荐(0)

OpenWRT(4):启动流程以及添加自己的服务
摘要:OpenWRT的启动流程主要如下: 启动/init脚本,挂载tmpfs,并切换到/sbin/init运行。 启动/sbin/init,然后依次启动/etc/preinit和/sbin/procd。 如需要在/sbin/procd之前处理工作,需要在/lib/preinit按序号添加脚本。 /sbin 阅读全文

posted @ 2024-07-24 23:59 ArnoldLu 阅读(5894) 评论(2) 推荐(2)

导航