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

1 2 3 4 5 ··· 11 下一页

2024年10月18日

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 阅读(8) 评论(0) 推荐(0) 编辑

2024年10月6日

OpenWRT(18):固件升级sysupgrade

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

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

2024年9月28日

OpenWRT(17):网络接口管理守护进程netifd

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

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

2024年9月27日

QEMU上RISC-V架构[U-Boot-OpenSBI-OPTEE-Linux]:环境搭建、启动流程概述、运行流程概述

摘要: 1. 编译运行Kernel和OPTEE 参考文档《 OPTEE_00_01 - OP-TEE support - Home - RISE Project Confluence Wiki (atlassian.net)》。 下载和编译代码: git clone https://gitlab.com/r 阅读全文

posted @ 2024-09-27 23:59 ArnoldLu 阅读(109) 评论(0) 推荐(0) 编辑

2024年9月22日

OpenWRT(16):基于ubus的远程调用守护进程rpcd(Remote Procedure Call Daemon)

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

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

2024年9月21日

第400篇,献给园子

摘要: 感谢园子提供干净的交流分享平台。 1 捐助 捐助 - 博客园 (cnblogs.vip) 2 购买周边 周边 - 博客园 (cnblogs.vip) 3 成为会员 博客园 VIP (cnblogs.vip) 阅读全文

posted @ 2024-09-21 23:59 ArnoldLu 阅读(55) 评论(0) 推荐(0) 编辑

2024年9月20日

GmSSL进行SM2(签名验签/加密解密/证书生成和验证)/SM3(哈希)/SM4(加密解密)测试

摘要: GmSSL 是一个开源的密码学工具包和库,它实现了包括 SM2、SM3、SM4 在内的中国商用密码算法,以及国际通用的密码算法,如 RSA、AES、DES、SHA 等。GmSSL 旨在提供一个符合中国国家标准的密码学解决方案,适用于需要使用国产密码算法的场景。 快速上手:《快速上手 (gmssl.o 阅读全文

posted @ 2024-09-20 23:59 ArnoldLu 阅读(299) 评论(0) 推荐(0) 编辑

2024年9月9日

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 阅读(221) 评论(0) 推荐(1) 编辑

2024年9月8日

根证书、中间证书、目标证书,以及签名和验签(基于openssl)

摘要: 1 相关名词解释 在讨论证书和加密的上下文中,以下是一些基本概念的解释: CA (Certificate Authority):证书颁发机构,是一个负责颁发和管理数字证书的实体。CA 验证实体(如个人、公司或服务器)的身份,并发行数字证书,这些证书包含公钥和身份信息,并由 CA 的私钥签名。 Roo 阅读全文

posted @ 2024-09-08 23:59 ArnoldLu 阅读(222) 评论(0) 推荐(0) 编辑

2024年9月7日

RISC-V spl/OpenSBI/u-boot/Linux启动流程交互节点

摘要: OpenSBI给出的fw_dynamic镜像启动建议流程: 实际详细流程如下: 1 SPL到OpenSBI spl启动流程如下: 从外设加载镜像到DDR中。 解析镜像格式,比如FIT。 解析FIT中OpenSBI镜像地址和入口地址;uboot镜像地址,并附着到fdt中;解析获取fdt地址。 准备好H 阅读全文

posted @ 2024-09-07 23:59 ArnoldLu 阅读(206) 评论(0) 推荐(0) 编辑

2024年9月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 阅读(244) 评论(0) 推荐(0) 编辑

2024年8月30日

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 阅读(423) 评论(0) 推荐(0) 编辑

2024年8月25日

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 阅读(402) 评论(0) 推荐(0) 编辑

2024年8月24日

OpenWRT(11):failsafe mode触发和流程说明

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

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

2024年8月23日

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 阅读(170) 评论(0) 推荐(0) 编辑

2024年8月18日

init启动库文件找不到问题定位和解决

摘要: 内核启动流程start_kernel->arch_call_rest_init->rest_init->kernel_init启动第一个用户空间进程。 init启动时提示库文件无法找到。 说明是ld.so正常执行,但是未能在目录列表中找到依赖的库文件。问题根源在于ld.so中默认库文件搜索路径和ro 阅读全文

posted @ 2024-08-18 23:59 ArnoldLu 阅读(45) 评论(0) 推荐(0) 编辑

2024年8月17日

OpenWRT(9):随机数发生器urngd,以及/dev/random

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

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

2024年8月16日

OpenWRT(8):使用quilt对OpenWRT的patch进行管理

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

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

2024年8月11日

OpenWRT(7):OpenWRT进程间通信-ubus、ubusd、libubus等

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

posted @ 2024-08-11 23:59 ArnoldLu 阅读(466) 评论(0) 推荐(0) 编辑

2024年8月10日

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 阅读(215) 评论(0) 推荐(0) 编辑

2024年8月3日

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 阅读(83) 评论(0) 推荐(0) 编辑

2024年7月24日

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 阅读(1255) 评论(2) 推荐(1) 编辑

2024年7月19日

OpenWRT(3):目录结构、创建维护feeds、创建package及其编译安装

摘要: 总结OpenWRT目录结构,然后创建feeds,并创建package。 编译package,并安装到target进行测试。 1 OpenWRT目录结构 OpenWRT的目录结构解释如下,高亮部分是编译后创建的: ├── bin--编译完成后ipk和image文件存放在此。 │ ├── package 阅读全文

posted @ 2024-07-19 23:59 ArnoldLu 阅读(833) 评论(0) 推荐(0) 编辑

2024年7月16日

问题定位:mount: mounting /dev/mtdblock23 on /rootfs failed: Invalid argument

摘要: 原有使用ubifs文件系统的分区,计划切换到squashfs。在镜像制作好之后,mount出现如下错误: mount: mounting /dev/mtdblock23 on /rootfs failed: Invalid argument 1 定位前思考 操作流程如下: Buildroot生成ro 阅读全文

posted @ 2024-07-16 23:59 ArnoldLu 阅读(167) 评论(0) 推荐(0) 编辑

2024年7月15日

Linux hwspinlock子系统(STM32MP157 HSEM)

摘要: hwspinlock(硬件自旋锁)是 Linux 内核中的一个同步机制,它提供了一种在多核处理器系统中保护共享资源的方法。 hwspinlock分为三部分: hwspinlock core提供注册注销以及对hwspinlock获取和释放接口。 hwspinlock Controller驱动。 hws 阅读全文

posted @ 2024-07-15 23:59 ArnoldLu 阅读(92) 评论(0) 推荐(0) 编辑

2024年7月14日

AMP相关:5 OpenAMP以及RPMsg-Lite

摘要: OpenAMP是一个开源框架,专为非对称多处理系统设计,提供生命周期管理和处理器间通信能力,支持与Linux兼容的组件以及独立库,适用于RTOS和裸机环境。 1 OpenAMP说明 OpenAMP框架包含提供了三个重要组件:Virtio、RPMsg和Remoteproc。Remoteproc实现了主 阅读全文

posted @ 2024-07-14 23:59 ArnoldLu 阅读(345) 评论(0) 推荐(0) 编辑

2024年7月13日

AMP相关:4 Linux virtio子系统概览

摘要: Virtio是一个开源的虚拟化I/O设备标准,它在虚拟化环境中扮演着至关重要的角色。 Virtio提供了一种标准化的设备接口,使得虚拟机(guest)可以在不同的虚拟化平台上使用相同的驱动程序,而不受底层硬件或虚拟化技术的限制。 Virtio设计了高效的数据交换机制,如使用虚拟队列(virtqueu 阅读全文

posted @ 2024-07-13 23:59 ArnoldLu 阅读(91) 评论(0) 推荐(0) 编辑

2024年7月12日

AMP相关:3 Linux rpmsg子系统(STM32MP157方案)

摘要: rpmsg框架位于virtio上层,rpmsg总线是一种基于virtio的消息总线。 rpmsg子系统包含如下部分: rpmsg核心提供rpmsg_bus总线,以及rpmsg驱动和设备注册注销接口。 rpmsg通道提供主处理器和远程处理器之间的通信通道。这些通道通过文本名称和本地(源)及远程(目的) 阅读全文

posted @ 2024-07-12 23:59 ArnoldLu 阅读(215) 评论(0) 推荐(1) 编辑

2024年7月7日

AMP相关:2 Linux Mailbox子系统(基于TM32MP1的IPCC)概览

摘要: Mailbox子系统是一种用于处理期间的通信机制,通过消息队列和中断驱动信号来处理多个处理器之间的通信。主要包括Controller和Client两部分。 Mailbox子系统包括如下几部分: Mailbox子系统核心。 Mailbox控制器驱动,比如STM32MP157的IPCC驱动。 使用Mai 阅读全文

posted @ 2024-07-07 23:59 ArnoldLu 阅读(158) 评论(0) 推荐(0) 编辑

2024年7月5日

AMP相关:1 Linux remoteproc子系统(基于STM32MP157)概览

摘要: remoteproc(Remote Processor Framework)用于管理异构远程处理器设备。这些设备通常在非对称多处理(Asymmetric MultiProcessing,AMP)配置中,可能运行不同的操作系统实例,包括Linux或其他实时操作系统的变体。 remoteproc框架允许 阅读全文

posted @ 2024-07-05 23:59 ArnoldLu 阅读(394) 评论(0) 推荐(0) 编辑

2024年7月2日

Linux RT Patch配置和测试

摘要: Linux实时补丁是针对Linux内核进行的一系列修改,以提高其性能,使其更适合实时应用。 1. 内核RT补丁 稳定版本内核地址: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git 针对linux不同版本的patch列表 阅读全文

posted @ 2024-07-02 23:59 ArnoldLu 阅读(405) 评论(0) 推荐(0) 编辑

2024年6月29日

Ubuntu下OpenGL开发环境搭建、编译、测试

摘要: 基于Ubuntu20.04进行OpenGL编程,使用Mesa3D开源实现方案,环境搭建、编译、测试如下。 1 环境搭建 安装依赖库文件: sudo apt install wayland-protocolssudo apt install libgtk-3-devsudo apt-get insta 阅读全文

posted @ 2024-06-29 23:59 ArnoldLu 阅读(360) 评论(0) 推荐(0) 编辑

2024年6月24日

LVGL(2):Ubuntu下基于VSCoce搭建LVGL开发环境和启动流程

摘要: 在PC上可以调试LVGL(参考Simulator on PC — LVGL documentation),借助VSCode在Ubuntu下调试可以参考:GitHub - lvgl/lv_port_pc_vscode。 1 下载VSCode项目代码 git clone --recursive http 阅读全文

posted @ 2024-06-24 23:59 ArnoldLu 阅读(428) 评论(0) 推荐(0) 编辑

2024年6月23日

LVGL(1):资源、特性、Linux下移植(RK3588)、测试

摘要: LVGL(Light and Versatile Graphics Library)是一个开源的嵌入式图形库,专为嵌入式系统和微控制器设计。它提供了一整套丰富的图形元素和功能,使得开发者能够在资源受限的设备上创建现代化的图形用户界面(GUI)。 LVGL介绍文档《Welcome to the doc 阅读全文

posted @ 2024-06-23 23:59 ArnoldLu 阅读(631) 评论(0) 推荐(0) 编辑

2024年6月21日

Linux下基于USB的Bluetooth(RTL8723DU):RFKILL子系统、HCI/BlueZ、Bluetooth驱动、bluetoothd、bluetoothctl等

摘要: 简单梳理RFKILL子系统、基于USB的Bluetooth驱动、Bluetooth守护进程bluetoothd、Bluetooth配置工具bluetoothctl/hcitool/hciconfig等。 1 RFKILL子系统 rfkill 是 Linux 系统中的一个工具和内核接口,用于启用或禁用 阅读全文

posted @ 2024-06-21 23:59 ArnoldLu 阅读(552) 评论(0) 推荐(0) 编辑

2024年6月16日

Linux下基于USB的WiFi(RTL8723DU):驱动、wpa_supplicant配置、hostapd配置等

摘要: 1 WiFi基本概念 WLAN(Wireless LAN)是无线局域网的意思。 IEEE 802.11是现今无线局域网通用的标准。 关于802.11协议介绍参考《802 11协议介绍》。 信道也就是频段,是以无线信号作为传输载体的数据信号传送通道。802.11 工作组划分了4个独立的频段:2.4 G 阅读全文

posted @ 2024-06-16 23:59 ArnoldLu 阅读(340) 评论(0) 推荐(0) 编辑

2024年6月15日

Linux PM:wakeup count、wakelock、autosleep

摘要: 在进行wakeup count、wakelock、autosleep之前,先参考《Linux电源管理(7)_Wakeup events framework (wowotech.net)》。 下面简单跟一下,wakeup count、wakelock、autosleep,及其使用方法。 1 PM初始化 阅读全文

posted @ 2024-06-15 23:59 ArnoldLu 阅读(131) 评论(0) 推荐(0) 编辑

2024年6月14日

Mastering the FreeRTOS™ Real Time Kernel V1.0 - 11 Low Power Support

摘要: 文档来自:Mastering-the-FreeRTOS-Real-Time-Kernel.v1.0.pdf。 关注FreeRTOS下低功耗实现,主要包括Idle Hook和Tickless Idle两种实现方式。 1 Low Power Support 11.1 Power Saving Intro 阅读全文

posted @ 2024-06-14 23:59 ArnoldLu 阅读(104) 评论(0) 推荐(0) 编辑

2024年6月8日

ARM GPU(Mali G610)及其驱动、OpenGLES、性能测试相关

摘要: 关键词:MALI、Valhall、G610、OpenGL、OpenGL-ES、OpenCL、Vulkan、libmali等等。 以RK3588实例简单了解: ARM MALI G610硬件驱动,以及相关的libmali库文件。 通用的OpenGL-ES、EGL协议以及库文件。 OpenGL-ES测试 阅读全文

posted @ 2024-06-08 23:59 ArnoldLu 阅读(2019) 评论(0) 推荐(0) 编辑

2024年6月2日

Linux下GMAC网络设备:硬件接口、GMAC/PHY、驱动、测试程序

摘要: 1 嵌入式网络硬件接口 如下是常见的嵌入式网络硬件接口框图: SOC集成MAC。 MAC通过MII系列接口和PHY之间传输数据,通过MDIO接口初始化配置PHY芯片。 PHY芯片和RJ45之间通过4组差分模拟信号传输数据,并驱动RJ45的LED信号灯。 RJ45通过网线和外部连接。 1.1 嵌入式网 阅读全文

posted @ 2024-06-02 23:59 ArnoldLu 阅读(1328) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 11 下一页

导航