自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(577)
  • 资源 (40)
  • 收藏
  • 关注

原创 基于UDP的简易的VPN中继系统实现:端点客户端与中继服务器

本文实现的VPN中继系统基于UDP和TUN设备,以轻量级、易部署为核心设计理念,满足小型私有网络互通、跨网段通信等场景需求。系统核心优势在于无需复杂的内核模块开发,纯用户态实现IP层数据转发,同时通过心跳保活、自动重连、端点列表同步等机制保证通信稳定性。通过本文的解析,开发者可快速理解VPN中继系统的核心原理,并基于现有代码扩展更多高级功能。

2026-03-30 11:45:57 7

原创 Qt 纯数字虚拟键盘设计与实现

本文介绍了在Qt中实现纯数字虚拟键盘的解决方案。针对小屏幕设备上传统键盘按钮过小、易误触的问题,作者开发了一个单独的数字键盘组件。该方案具有以下特点:1) 按键尺寸大,减少误触;2) 采用单例模式实现全局唯一实例;3) 通过事件过滤器自动检测输入框点击;4) 支持样式定制。实现过程中解决了布局间距控制、键盘位置计算等技术难点,并提供了CMake和QMake两种构建方式。该键盘组件具有易移植、高性能的特点,适合嵌入式触屏设备使用。

2026-03-20 11:52:34 23

原创 解决rcS脚本启动程序环境变量缺失:bash -lc 实用技巧

嵌入式Linux开发中,程序在rcS里开机自启时经常出现环境变量缺失,手动运行却正常。本文从原理讲清楚为什么rcS环境变量少,并给出最简洁稳定的方案:bash -lc 启动程序,一行命令解决问题。

2026-03-03 15:33:18 32

原创 带触摸屏的usb屏幕调试记录

摘要:开发者在RK3568和全志T113_i开发板上使用带HDMI和USB接口的触摸屏时遇到触摸不准问题。通过检查/dev/input下的event节点和I2C总线确认硬件连接正常,最终发现是触摸偏移导致。使用ts_calibrate工具校准后问题解决,证实是常见的触摸屏校准需求而非驱动问题。(149字)

2026-02-09 09:43:36 47

原创 Qt 实战:多 SQLite 数据库操作与 QSqlTableModel 绑定

本文详细介绍了在Qt项目中如何通过唯一连接名实现多SQLite数据库的隔离操作。关键点包括:1)为每个数据库创建唯一连接名;2)使用QSqlTableModel绑定对应连接;3)通过select()加载数据。文章提供了完整示例代码,演示了两个数据库的独立操作,并强调了连接名唯一性、错误处理和资源释放等注意事项。该方法可扩展至任意数量的数据库,满足复杂项目的分库需求,是Qt数据库开发的实用技巧。

2026-02-04 16:21:27 827

原创 QT中使用QSqlTableModel快速展示SQLite3数据表(TableView实现)

本文介绍了一种基于QT模型/视图架构的数据库可视化方法,通过QSqlTableModel和QTableView实现SQLite3数据表的零SQL展示。核心步骤包括:配置工程文件添加sql模块,建立数据库连接,初始化模型并绑定数据表,最后将模型与视图控件关联。该方法无需手动编写SQL查询语句,开发效率提升50%以上,支持自动数据同步、排序、筛选等功能。文章还提供了错误处理机制和扩展功能实现,如自定义表头、数据筛选、列排序等。

2026-01-27 15:53:20 656

原创 一个程序模拟 直流绝缘监测仪,一个程序模拟 直流绝缘监测仪上位机

按照文档写了两个代码,模拟下面这个 直流绝缘检测仪

2026-01-26 10:43:51 30

原创 Linux 虚拟串口实战:socat 打造全双工串口通信环境

本文介绍如何使用socat命令在Linux系统中创建虚拟串口对,实现全双工数据透传。通过核心命令"sudosocat-d-d pty,raw,echo=0,link=/dev/ttyUSB0 pty,raw,echo=0,link=/dev/ttyUSB1",可快速创建映射到/dev/ttyUSB0和/dev/ttyUSB1的虚拟串口。文章详细解析了调试参数、串口模式参数和设备映射参数的功能,并提供了完整的操作步骤和通信验证方法。该方法适用于嵌入式开发、工控系统测试等场景,解决了物理串口

2026-01-26 10:39:02 137

原创 全志T113嵌入式Linux解决Qt5 QSQLITE驱动加载失败问题

摘要:在全志T113 ARM架构嵌入式Linux开发板上部署Qt5程序时,SQLite数据库连接失败,提示驱动未加载。经分析,主要原因为:1) Qt插件路径未正确配置;2) 驱动文件架构不匹配(需ARM版);3) 依赖库缺失。解决方案包括:检查驱动兼容性(file和ldd命令)、配置QT_PLUGIN_PATH环境变量、代码中指定插件路径(addLibraryPath),并确保权限和挂载正常。验证成功后程序可输出可用驱动列表并正常操作数据库。

2026-01-22 15:44:27 39

原创 Windows强制弹出移动硬盘:从常规到硬核的完整解决方案

移动硬盘无法安全弹出?这篇指南提供了从基础到进阶的完整解决方案。首先关闭所有关联程序并重启资源管理器,解决80%的占用问题。若无效,可用资源监视器精准定位并结束占用进程。终极方案是使用磁盘管理工具强制脱机:图形界面操作或通过diskpart命令行(注意替换X为硬盘编号)。重要提醒:切勿直接硬拔,避免损坏文件系统;操作时务必确认选择的是移动硬盘而非系统盘。按照"关闭程序→重启资源管理器→结束进程→强制脱机"的流程,可100%解决弹出问题。

2026-01-14 17:01:47 1209

原创 Linux内核实战精髓实录29 - bonding驱动程序多物理网卡绑定,实现激活备份模式

摘要:Linux bonding驱动通过将多块物理网卡绑定为虚拟网卡,提升网络可靠性。激活备份模式(Active-Backup)仅使用一块活跃网卡,其余作为备份,故障时自动切换。该模式无需交换机支持,部署简单,适合高可靠性场景。配置步骤包括加载内核模块、设置bond0虚拟网卡和绑定从属网卡,并通过MIimon或ARP监测链路状态。故障切换在毫秒级完成,确保业务连续性。优化建议包括调整监测间隔、结合ARP监测及选择合适内核版本,以实现最佳性能和可靠性。

2026-01-13 13:46:28 709

原创 Linux内核实战精髓实录28-VLAN设置指南:命令行与配置文件实现虚拟局域网划分

本文详细介绍了Linux系统中VLAN的配置方法。VLAN通过逻辑划分网络提升安全性、隔离广播域并优化带宽利用。配置需依赖8021q内核模块和iproute2工具,提供两种实现方式:临时命令行配置(重启失效)和永久配置文件(CentOS使用nmcli/network-scripts,Ubuntu使用netplan)。文章还涵盖高级特性(VLAN优先级和QinQ)及常见故障排查方法,强调生产环境应使用永久化配置,并注意不同发行版的网络管理工具差异。

2026-01-04 17:20:55 732

原创 Linux内核实战精髓实录27-Linux网桥设备配置:将多网段整合,模拟交换式集线器

Linux网桥作为内核原生的二层转发机制,能够将多个物理/虚拟网卡桥接成逻辑设备,模拟交换机的核心功能。本文详细解析了Linux网桥的工作原理,包括MAC地址学习、数据帧转发和地址老化三大机制,并提供了Ubuntu系统的实战配置指南,涵盖临时测试和永久生效两种配置方式。此外还介绍了高级应用场景,如多VLAN网段桥接和容器网络集成。Linux网桥凭借其灵活性和可定制性,在虚拟化、容器网络等场景中发挥重要作用,是深入理解Linux网络子系统的关键切入点。掌握网桥配置与原理,对系统运维和网络管理具有重要意义。

2025-12-30 17:36:01 822

原创 Vim粘贴代码批量注释问题:原因与完整解决方案

Vim粘贴C代码时出现批量注释问题的根源在于自动缩进功能与C语言单行注释特性的叠加效应。本文提供三种解决方案:1) 使用:set paste开启粘贴模式(推荐);2) 临时关闭自动缩进(:set noautoindent);3) 批量修复已注释代码(:s/^//\s*//g)。最佳实践是粘贴前启用粘贴模式,既能保持原始格式,又能避免注释问题。

2025-12-30 15:44:25 695

原创 Linux内核实战精髓实录26-TUN/TAP设备详解:实现三层IP隧道与二层以太网隧道

TUN/TAP是Linux内核从2.4版本开始提供的虚拟网络设备框架,其核心价值在于打通用户空间与内核网络协议栈的数据通路。不同于物理网卡依赖硬件芯片处理数据帧,TUN/TAP完全通过软件逻辑实现网络设备的核心功能,成为构建虚拟网络、VPN、容器网络等场景的基础组件。

2025-12-24 16:32:58 782 1

原创 Linux内核实战精髓实录25-Linux网络带宽控制:基于CBQ的配置与带宽限制实现

本文介绍了Linux系统中基于CBQ(Class-Based Queueing)的带宽控制方法。首先分析了多服务共享带宽时可能出现的资源争抢问题,指出CBQ通过分层队列管理能够实现精细化带宽分配。文章详细解析了CBQ的树形分层结构(根类、父类、子类)和三个关键参数(rate、ceil、priority),并比较了SFQ、RR、PRIO等调度算法的适用场景。通过tc工具配置实例,演示了如何为Web服务和文件传输分配不同带宽,包括创建类结构、设置过滤规则和调度算法。

2025-12-18 13:46:36 1004

原创 Linux内核实战精髓实录24-FUSE框架应用:sshfs、encfs等用户空间文件系统搭建

FUSE(用户空间文件系统)框架简化了Linux文件系统开发,允许在用户空间实现文件系统逻辑。文章详细介绍了FUSE的工作原理,包括环境准备和两个典型应用:SSHFS通过SSH协议挂载远程目录,实现安全远程访问;EncFS则提供实时文件加密功能,保护敏感数据。两者均通过FUSE内核模块实现用户空间与内核的通信,虽性能略低于内核态文件系统,但极大提升了开发便捷性和功能灵活性。文中包含具体安装配置步骤,并强调SSHFS的网络优化和EncFS的加密配置要点,为开发者提供了实用参考。

2025-12-18 13:46:06 1244

原创 Linux内核实战精髓实录23-fio工具实战:模拟多场景I/O基准测试,评估存储性能

在Linux系统运维与内核优化场景中,存储I/O性能直接决定了业务系统的响应速度与稳定性。无论是数据库服务(MySQL、PostgreSQL)、分布式存储(Ceph、GlusterFS)还是虚拟化环境(KVM、Docker),其底层存储的I/O能力都是核心瓶颈点之一。

2025-12-18 13:45:38 633

原创 Linux内核实战精髓实录22-ext4参数调优:利用sysfs优化inode预读与块分配

摘要: ext4作为Linux主流文件系统,默认配置在高并发IO、大文件或小文件密集场景下可能产生性能瓶颈。通过sysfs动态调整inode预读与块分配参数可优化性能: inode预读:调整inode_readahead_blks(默认32块/128KB)和inode_readahead_ratio(默认50%),匹配访问模式。小文件密集场景建议增大预读量,大文件场景减少预读。 块分配:关键参数如max_contig_blocks(默认8块/32KB)控制连续块分配,平衡寻道效率与碎片问题。

2025-12-18 13:45:26 896

原创 Linux内核实战精髓实录21-从ext2/ext3转换到ext4:功能标志启用与注意事项

摘要: 本文详细介绍了从ext2/ext3迁移到ext4文件系统的必要性及操作步骤。ext4在存储容量(单文件16TB)、性能(延迟分配、扩展区机制)和可靠性(日志校验)方面显著优于前代。迁移前需检查文件系统状态、备份数据并验证完整性。通过tune2fs工具启用ext4核心功能标志(如extents、dir_index),并调整挂载参数(如noatime、discard)以优化性能。转换后需更新/etc/fstab并可选启用在线碎片整理等高级功能。整个过程强调数据安全与兼容性,确保平滑升级。

2025-12-18 13:45:13 985

原创 Linux下SQLite查询结果导出为CSV格式

本文介绍了在Linux环境下使用SQLite命令行工具导出查询结果为CSV格式的方法。主要内容包括:1)SQLite基础环境配置检查;2)交互式和非交互式两种导出方式的具体操作步骤;3)高级技巧如自定义分隔符和条件查询;4)导出结果验证方法;5)针对非标准SVC格式的处理建议。文章强调使用非交互式命令进行自动化处理、确保UTF-8编码避免乱码等最佳实践,并提供了从CSV转换到其他格式的Python示例代码。

2025-12-09 16:03:45 1150

原创 VMware虚拟机Ubuntu磁盘空间扩充详细教程

摘要 本文介绍了在Ubuntu系统中扩展磁盘空间的方法。首先需要使用命令sudo apt-get install gparted安装分区管理工具GParted,安装完成后运行该软件即可对磁盘进行分区操作。通过鼠标拖动的简单方式就能完成分区调整,从而扩充Ubuntu的可用磁盘空间。

2025-12-05 15:10:28 176

原创 Linux内核实战精髓实录20 - ext4文件系统创建与挂载:mount选项与开发版获取方法

本文详细介绍了Linux ext4文件系统的实战应用,包括文件系统创建、挂载配置、性能优化和开发版获取。主要内容涵盖:1)使用mke2fs工具创建ext4文件系统的具体步骤;2)关键mount选项解析及不同场景下的优化建议;3)开发版ext4内核补丁和e2fsprogs工具的获取编译方法;4)常见问题排查技巧。文章从运维和开发双重视角出发,提供了完整的操作示例和原理解析,帮助用户根据存储设备类型和业务需求合理配置ext4文件系统,实现性能与稳定性的最佳平衡。

2025-12-03 10:38:46 775

原创 Linux内核实战精髓实录19-OOM Killer运行机制:进程选择逻辑与proc文件配置技巧

本文深入解析Linux OOMKiller机制,详细介绍其触发条件、进程评分算法及配置优化方法。OOMKiller通过多维评分体系(内存占用、运行时长、进程优先级等)选择终止进程,保障系统核心功能。文章提供了proc文件系统调优指南,包括全局策略设置、进程级豁免配置,并给出不同发行版的特性差异。通过实战案例展示如何保护关键服务进程,同时给出内存过载预防措施。最后总结OOMKiller配置最佳实践,强调核心服务豁免、临时任务优先终止等原则,帮助系统管理员有效平衡稳定性与业务连续性。

2025-12-03 10:38:36 833

原创 Linux内核实战精髓实录18-上游内核ramzswap配置:压缩内存页面,提升内存利用率

本文介绍了Linux内核中的ramzswap组件,这是一种基于内存的块设备驱动,通过压缩内存页面来替代传统磁盘交换区,提升内存利用率并减少I/O性能损耗。文章详细说明了ramzswap的启用条件、配置流程和典型应用场景,包括嵌入式设备内存扩展、无磁盘系统优化等。同时提供了常见问题排查方法和注意事项,强调需要平衡CPU资源与内存容量。ramzswap特别适用于内存有限但CPU性能充足的设备,能有效提升系统稳定性与响应速度。

2025-12-03 10:38:23 854

原创 Linux内核实战精髓实录17 - ramzswap论坛版使用教程:将内存作为交换设备的实现

摘要:ramzswap是一款基于内存压缩的Linux交换设备解决方案,通过LZO算法将换出页面压缩存储在内存中,显著提升交换性能。文章详细介绍了ramzswap论坛版的安装配置过程,包括环境准备、源码编译、模块加载等步骤,并重点讲解两种核心使用模式:纯内存交换(ramzswapdisk)和内存+磁盘混合交换(backingswap)。同时提供了性能监控方法和常见问题解决方案,适用于嵌入式系统、轻量服务器等内存受限场景。通过合理配置,ramzswap能在不增加物理内存的情况下有效缓解内存压力。

2025-12-03 10:38:10 783

原创 Linux内核实战精髓实录16-Linux虚拟存储子系统调整:通过proc文件配置虚拟空间超额使用

Linux虚拟存储子系统通过页面机制管理内存,提供三种超额使用策略:智能预测模式(默认0)、无限制模式(1)和严格限制模式(2)。其中严格模式通过overcommit_ratio参数控制虚拟空间总量(CommitLimit=物理内存+交换区+物理内存×比例)。不同策略适用于不同场景:默认模式适合通用服务器,无限制模式适合特殊应用但风险高,严格模式保障关键业务稳定性。配置可通过/proc/sys/vm参数调整,需注意策略选择对系统性能和内存管理的影响,避免OOM问题。

2025-12-03 10:37:54 726

原创 Linux内核实战精髓实录15 - Block I/O控制器:设置I/O优先级,优化磁盘读写性能

本文深入探讨了Linux系统中Block I/O控制器的工作原理及实战应用。作为Cgroup子系统之一,Block I/O控制器通过与CFQ调度器集成,实现进程组级别的磁盘I/O优先级控制。文章详细介绍了配置方法:包括内核支持检查、CFQ调度器设置、Cgroup挂载、权重分配(100-1000范围)以及进程绑定等步骤。通过fio工具测试验证,高权重(1000)分组获得56.4MB/s的I/O速率,显著优于低权重(100)分组的32.1MB/s,有效解决了前台业务与后台任务的I/O资源竞争问题。同时指出当前版

2025-12-02 10:00:38 1232

原创 Linux内核实战精髓实录14 - Memory Cgroup:限制进程内存使用量,避免内存资源耗尽

摘要:本文详细介绍了Linux MemoryCgroup的使用方法,该系统可实现对进程内存资源的精细管控。主要内容包括:1)MemoryCgroup的核心概念与架构;2)内核配置与文件系统挂载方法;3)关键配置文件的详细说明;4)两个实战案例演示,展示如何限制单个进程内存及创建层级化控制组;5)内存监控方法及常见问题解决方案。通过MemoryCgroup可有效防止内存泄漏、保障系统稳定性,并实现多服务间的资源公平分配。文章提供了从基础配置到高级应用的完整指导,适合系统管理员参考使用。

2025-12-02 09:59:25 719 1

原创 Linux内核实战精髓实录13 - cpuset使用指南:指定进程绑定物理CPU,提升系统性能

摘要: cpuset是Linux内核Cgroup的子系统,用于将进程绑定到指定CPU核心,提升缓存命中率并隔离系统负载。操作流程包括挂载cgroup文件系统、创建CPU分组、配置核心及绑定进程。测试表明,合理绑定多CPU核心可显著提升性能(如编译时间缩短37%)。在虚拟化环境中,cpuset能优化KVM虚拟机性能,减少资源竞争。注意事项包括正确配置内存节点(NUMA架构)、预留宿主CPU核心及动态监控调整。通过精准的CPU资源分配,cpuset有效解决了资源竞争和缓存失效问题,适用于高性能业务场景。

2025-12-02 09:57:16 938

原创 Linux内核实战精髓实录12-Fair Group Scheduling:按进程组分配CPU资源的实操方法

Linux内核的FairGroupScheduling机制基于CFS调度器实现进程组级别的CPU资源管理。通过Cgroup子系统创建进程组并配置cpu.shares权重值(如高优先级组2048,低优先级组512),可将进程绑定到不同组实现资源隔离与动态分配。该方案支持嵌套分组和运行时权重调整,适用于多业务场景下的CPU资源调控。需注意实时进程不受其控制,且进程组数量不宜过多。合理配置权重可确保核心业务获得更多CPU资源,是服务器资源管理的重要技术手段。

2025-12-02 09:56:02 430

原创 Linux内核实战精髓实录11 - RT Group Scheduling与RT Throttling:限制实时进程CPU时间

Linux系统中的实时进程优先级虽高,但存在因无限循环导致系统无响应的风险。为此,内核引入了RTGroupScheduling和RTThrottling功能:前者通过Cgroup实现分组资源管控,后者设置全局CPU时间配额(默认0.95秒/秒)。二者协同工作,既保障实时性需求,又避免异常进程耗尽资源。文章详细解析了其原理、配置方法及典型应用场景,强调需合理设置配额以平衡实时性与系统稳定性。这些机制为构建高可靠Linux系统提供了关键保障。

2025-12-02 09:54:50 675

原创 Linux内核实战精髓实录10 - Linux调度策略全解析:TSS与实时调度的应用场景与配置

本文深入解析Linux内核的进程调度策略,重点对比分时调度(TSS)和实时调度的核心差异及应用场景。Linux提供五大调度策略:默认的SCHED_OTHER(标准分时)、SCHED_FIFO(实时先进先出)、SCHED_RR(实时轮询)、SCHED_BATCH(批处理)和SCHED_IDLE(空闲调度)。文章详细阐述各策略的工作原理、适用场景及配置方法,包括系统调用接口和chrt命令实践。最后结合实际案例(如工业控制系统和Web服务器)说明策略选型要点,并强调实时调度需谨慎使用以避免系统稳定性问题。掌握这些

2025-12-01 15:22:05 880

原创 Linux内核实战精髓实录9-Namespace详解:为Linux进程划分独立PID、网络、挂载空间

Linux Namespace 是内核提供的资源隔离技术,通过修改进程的"资源视图"实现进程级隔离。目前支持8种类型,包括PID、Network、Mount等核心Namespace。PID Namespace隔离进程ID空间,Network Namespace提供独立网络栈,Mount Namespace隔离文件系统。这些技术是容器(Docker/Kubernetes)的基础,通过unshare和ipnetns等命令可手动创建Namespace,实现资源隔离环境。

2025-12-01 15:17:56 1035

原创 Linux内核实战精髓实录8 - Linux Cgroup入门

Linux Cgroup是内核提供的资源管理机制,可对进程分组并分配CPU、内存、I/O等系统资源,实现精细化控制。通过挂载cgroupfs文件系统,创建控制组并配置参数(如cpu.cfs_quota_us限制CPU使用率、memory.limit_in_bytes限制内存),可将进程加入特定组进行资源隔离。典型应用包括容器技术、服务器资源共享和关键服务保障。需注意配置不会持久化,建议结合systemd管理,按业务类型划分控制组并定期监控调整。

2025-12-01 15:13:17 798

原创 Linux内核实战精髓实录7 - localmodconfig实用技巧

本文介绍利用Linux内核的localmodconfig工具精简内核配置的方法。通过分析当前系统运行模块,该工具自动生成仅包含必要模块的.config文件,显著提升编译效率。实测显示,精简后内核编译时间缩短68%,模块数量减少93%,系统启动时间缩短33%。文章详细演示了从配置生成到编译安装的完整流程,并对比了默认配置与精简配置的性能差异。针对可能出现的配置失败或驱动缺失问题,提供了具体的解决方案。对于特殊场景,还介绍了将模块静态编译到内核的localyesconfig方法。

2025-12-01 15:03:52 1049

原创 Linux内核实战精髓实录6 - 用checkpatch.pl检查Linux内核补丁格式,避免提交踩坑

本文详细介绍了Linux内核补丁格式检查工具checkpatch.pl的使用方法和重要性。作为内核开发必备工具,checkpatch.pl能自动检查补丁格式是否符合内核编码规范,避免因格式问题导致补丁被拒。文章通过错误案例演示常见格式问题(如行长度超限、括号空格错误、缺少签名等)及修复方法,并提供进阶技巧,如集成到Git工作流和特殊场景豁免。掌握该工具能显著提高补丁质量,体现开发者专业性,加速补丁审核流程。建议开发者将checkpatch.pl检查纳入日常开发流程,养成规范编码习惯。

2025-12-01 15:02:49 606

原创 Linux内核实战精髓实录5 - Git玩转Linux内核源码管理:分支创建、合并与补丁生成

本文详细介绍了Git在Linux内核开发中的核心应用。主要内容包括:1)Linux内核Git源码树的多层次结构(主线、stable树等);2)分支管理的完整流程,从克隆仓库到创建、切换、提交分支;3)分支合并与冲突解决实战技巧;4)符合内核规范的补丁生成与提交方法;5)标签管理和仓库维护等高级操作。文章强调开发中应基于最新主线创建分支、规范提交信息、定期同步更新,并提供了可视化示意图和完整命令示例,帮助开发者掌握Git在内核开发中的关键技能。

2025-12-01 14:56:42 759

原创 Linux内核实战精髓实录4 - 编写Linux内核模块:初始化/退出函数与参数定义详解

本文介绍了Linux内核模块的开发技术。内核模块是动态加载到内核空间的二进制文件,支持设备驱动等功能扩展,具有无需重新编译内核、按需加载等优势。文章详细讲解了模块的核心结构(初始化/退出函数)、参数定义与使用方法,并提供了基础模块和带定时器的高级模块示例。同时介绍了模块编译所需的特殊Makefile编写方法,以及常见问题排查技巧。内核模块开发需要谨慎处理权限问题,错误的代码可能导致系统崩溃,调试时可借助dmesg查看日志。通过模块机制,开发者能够灵活扩展内核功能,实现设备驱动等核心功能。

2025-12-01 14:55:16 949

原创 Linux内核实战精髓实录3 - 内核编译全流程

本文详细介绍了Linux内核编译的全流程,包括编译前的准备工作(源码完整性检查、依赖工具安装、环境清理)、内核配置(使用makemenuconfig进行功能选择和模块配置)、编译优化(多线程编译和选择性编译)以及内核安装(模块安装、映像部署和GRUB引导配置)。文章重点讲解了关键配置项的选择、编译效率优化技巧,并提供了常见问题的解决方案(如依赖缺失、内存不足、驱动识别失败等)。通过完整的操作指引和实用技巧,帮助开发者掌握专业的内核编译能力,实现内核定制、性能优化和故障修复。

2025-12-01 14:45:21 970

在Linux环境中使用libxlsxwriter库生成Excel文件

libxl-lin-4.5.1.tar.gz

2025-06-16

在Linux环境中使用libxlsxwriter库生成Excel文件

libxl-lin-4.5.1.tar.gz

2025-06-16

基于C语言的Linux系统信息采集代码

基于C语言的Linux系统信息采集代码

2025-06-05

RK3568下QT实现按钮切换tabWidget

tabWidget 工程

2025-05-19

RK3568下QT实现输入框支持虚拟键盘,QVirtualKeyboard-master.zip

QVirtualKeyboard-master.zip

2025-05-15

RK3568下电容触屏幕调试技巧 GT911驱动及文档

GT911驱动及文档

2025-05-13

嵌入式tslib触摸库的移植tslib-1.21

tslib-1.21

2025-05-06

制作一个简单的操作系统11的源代码

制作一个简单的操作系统11的源代码

2025-04-27

制作一个简单的操作系统7的源代码

制作一个简单的操作系统7的源代码

2025-04-22

制作一个简单的操作系统6

制作一个简单的操作系统6 的源代码

2025-04-21

基于 QZXing 库的 Qt 二维码解码应用

基于 QZXing 库的 Qt 二维码解码应用

2025-04-11

屏幕动图gif截图软件,免安装直接运行版本,特别好用

屏幕动图gif截图软件,免安装直接运行版本,特别好用

2025-04-08

工业互联防火墙V3R8C02版用户使用指南:配置与安全管理

内容概要:本文档是关于威努特工业互联防火墙(TEG系列)的产品使用手册,涵盖了设备的启动与登录、系统面板、基础防火墙配置、工业白名单管理、NAT配置、攻击防范、路由配置、智能学习、流量监测、入侵检测、防病毒、对象配置、网络配置、VPN、双机热备、扫描防护、诊断中心、流量控制、系统配置等多个方面的详细操作指导。手册不仅介绍了设备的功能和技术规格,还提供了详细的配置步骤和注意事项,旨在帮助用户更好地理解和使用这款防火墙产品,确保工业网络的安全性和稳定性。 适合人群:具备一定网络基础知识和防火墙使用经验的网络管理员、安全工程师及工业网络维护人员。 使用场景及目标:①帮助用户掌握工业互联防火墙的基础配置和高级功能配置;②指导用户进行日常管理和维护,确保设备的稳定运行;③提供安全防护措施,防范各类网络攻击和病毒威胁;④通过智能学习和流量监测等功能,优化网络性能和安全管理。 阅读建议:由于手册内容详尽,建议用户根据实际需求逐步阅读相关内容,重点掌握与自身工作密切相关的配置和管理技巧。同时,建议在实践中不断尝试和验证配置效果,以确保最佳的使用体验。此外,手册中涉及大量图形界面操作,建议结合实际设备进行对照学习。

2025-04-03

【Linux内核技术】Linux内核编译与升级及关键子系统解析:涵盖编译流程、进程调度、内存管理、虚拟文件系统与网络子系统的设计与实现

内容概要:本文详细介绍了Linux内核编译与升级的步骤,包括准备编译工具、下载内核代码、解压、配置内核参数、编译及安装新内核。文中还阐述了Linux内核的整体架构及其五大子系统:进程调度、内存管理、虚拟文件系统、设备驱动和网络子系统。每个子系统包含多个子模块,分别负责不同功能。此外,文章还深入解析了Linux内核中常用的两种数据结构——链表和红黑树,以及它们的具体实现和应用场景。特别提到CFS调度器的工作原理,通过虚拟运行时间和红黑树确保进程调度的公平性。最后,简要介绍了无锁环形缓冲区KFIFO的使用方法和相关接口函数。 适合人群:具备一定Linux基础知识,对操作系统底层原理感兴趣的开发者或系统管理员,尤其是工作1-3年的Linux工程师。 使用场景及目标:①掌握Linux内核编译和升级的完整流程;②理解Linux内核架构及各子系统的工作机制;③熟悉Linux内核中链表和红黑树的数据结构及其应用;④了解CFS调度器如何实现进程调度的公平性;⑤学会使用KFIFO进行高效的生产者-消费者模型编程。 阅读建议:此资源不仅涉及代码编写,更侧重于理论知识的理解和实际操作的结合。建议读者在学习过程中多动手实践,尝试编译和修改内核代码,同时结合调试工具加深对内核工作的理解。对于复杂的算法和数据结构,可以通过查阅官方文档或其他参考资料来增强理解。

2025-04-03

【Linux C应用编程】基于正点原子Linux C应用编程参考手册V1.0:文件I/O、进程与线程编程详解

内容概要:本文档为正点原子团队编写的《Linux C应用编程参考手册》,旨在为Linux C语言应用编程提供基础入门指导。文档内容涵盖了Linux C应用编程的基础知识,包括但不限于文件IO操作、文件高级IO、标准IO、文件属性、系统信息、进程、线程、信号以及线程同步等内容。文档不仅详细介绍了各个主题的基本概念,还提供了大量的代码示例和实际操作指导,帮助读者更好地理解和掌握Linux C应用编程的核心技能。此外,文档还强调了实践的重要性,鼓励读者通过动手实验来巩固所学知识。 适合人群:具备一定C语言编程基础、熟练使用Linux操作系统的初学者,特别是对Linux应用编程感兴趣或希望未来从事相关工作的读者。 使用场景及目标:①帮助读者理解Linux系统调用、库函数、标准C语言函数库以及main函数的作用;②教授文件IO操作、文件属性管理、进程管理和线程同步等关键技术;③通过实际案例和代码示例,提升读者的实际编程能力;④引导读者逐步掌握Linux C应用编程的核心原理和实践技巧。 其他说明:本文档定义为基础入门文档,适合Linux应用编程初学者。对于已有多年Linux应用编程经验的工程师,可能更适合阅读如《UNIX环境高级编程》、《Linux/UNIX系统编程手册》等更深入的专业书籍。文档提供了丰富的学习资源和技术交流平台,如正点原子的

2025-04-03

【嵌入式系统】基于SPI的W25Q128闪存驱动调试:嵌入式Linux开发板SPI接口配置与MTD子系统集成指南

内容概要:本文档详细介绍了正点原子出品的SPI驱动调试参考手册,涵盖了SPI(串行外设接口)的基础知识、子系统简介、组成部分、MTD子系统、设备驱动编写流程、内核SPI子系统和MTD设备驱动使能、设备树添加及MTD块设备的使用。文档不仅解释了SPI的工作原理、信号线、通信模式和优缺点,还深入探讨了嵌入式Linux中SPI和MTD子系统的实现,包括核心层、主机控制器驱动、设备驱动、设备树支持和用户空间接口。此外,文档还提供了详细的硬件配置和软件调试步骤,包括原理图分析、硬件实物展示、内核配置、设备树节点添加以及文件读写测试。 适合人群:具备一定嵌入式系统开发基础,尤其是对SPI和MTD子系统有一定了解的研发人员和技术爱好者。 使用场景及目标:①帮助开发者理解和掌握SPI和MTD子系统的原理及其实现;②指导开发者在嵌入式Linux环境下配置和调试SPI设备,特别是W25Q128 SPI FLASH模块;③提供详细的步骤和实例,确保开发者能够顺利完成硬件连接、内核配置、设备树添加和文件读写测试。 其他说明:文档由广州市星翼电子科技有限公司(正点原子)发布,提供丰富的在线资源和支持,包括官方网站、在线教学平台、论坛、B站视频和淘宝店铺。用户可以通过这些渠道获取更多信息和技术支持。文档还包含了免责声明,强调内容仅供参考,具体操作需谨慎。

2025-04-03

【嵌入式开发】基于Linux系统的iTOP-3568开发板USB设备模拟:U盘与USB网卡功能实现及应用指南

内容概要:本文档是关于北京迅为电子有限公司的iTOP-3568开发板在Linux系统下的使用手册,主要介绍了如何将Linux板卡虚拟成U盘(Mass Storage Gadget)和USB网卡设备(Ethernet Gadget)。文档详细描述了操作步骤,包括命令行指令、内核配置和驱动程序的启用。此外,还提供了注意事项与售后维修政策、技术支持方式及定制开发服务等信息。; 适合人群:嵌入式系统开发者、Linux系统爱好者以及使用iTOP-3568开发板的研究人员和技术人员。; 使用场景及目标:①通过配置命令将Linux板卡虚拟成U盘,实现ARM板与PC之间的数据传输;②通过内核配置和驱动程序启用,将Linux板卡虚拟为USB网卡设备,实现网络共享功能;③了解开发板的售后维修政策和技术支持渠道,确保在开发过程中遇到问题时能够得到及时的帮助和支持。; 其他说明:文档不仅提供了详细的配置步骤,还强调了使用过程中的注意事项,如正确的操作环境和安全措施,以确保设备的安全性和稳定性。此外,用户可以通过多种渠道获得技术支持,包括论坛、电话、邮箱等。文档还提及了定制开发服务,帮助用户加速产品开发周期。

2025-04-03

### 文章总结:北京迅为 iTOP-3568 开发板 Linux 系统开发和应用开发手册. **文档概述

内容概要:本文档是北京迅为电子有限公司针对iTOP-3568开发板的Linux系统开发和应用开发手册,详细介绍了开发板在Linux系统下的配置与开发方法。手册涵盖Buildroot、Debian、Ubuntu等多个Linux发行版的系统开发笔记,涉及屏幕设置、待机和锁屏、显示颜色格式、分辨率和缩放、静态IP设置、Qt程序操作、开机自启、音频视频和摄像头开发、VNC和ToDesk远程控制软件安装等内容。同时,手册还提供了关于Buildroot编译常见问题的解决方案、U-Boot和内核开发细节,以及IO电源域的配置方法。手册不仅适用于初次接触嵌入式Linux系统的开发者,也适合有一定经验的研发人员深入学习。 适合人群:具备一定编程基础,尤其是对Linux系统和嵌入式开发有一定了解的研发人员,工作1-3年的工程师,以及希望深入了解嵌入式Linux系统开发的爱好者。 使用场景及目标:①帮助用户掌握iTOP-3568开发板在Linux系统下的基本配置与高级开发技巧;②指导用户解决Linux系统开发中遇到的常见问题;③为用户提供详细的编译和调试指南,确保开发板能

2025-04-03

【嵌入式系统】ITOP-3568开发板PCIE2.0接口快速测试手册:硬件复用关系与Linux及安卓系统网卡测试指导

内容概要:本文档是北京迅为电子有限公司针对iTOP-3568开发板提供的PCIE2.0接口快速测试手册,详细介绍了PCIE千兆网卡的测试流程。手册涵盖了网卡参数、硬件复用关系及Linux和安卓系统的具体测试步骤。其中,Linux系统测试包括内核设备树修改、网卡驱动配置及网络性能测试;安卓系统测试则主要涉及设备树调整和网络性能验证。此外,手册还提供了注意事项、售后维修政策、技术支持方式及资料获取渠道等信息。 适合人群:适用于使用iTOP-3568开发板进行PCIE2.0接口开发和测试的技术人员,尤其是有一定Linux和安卓系统开发经验的研发人员。 使用场景及目标:①帮助用户了解PCIE2.0接口网卡的硬件配置和参数;②指导用户完成Linux和安卓系统下的网卡驱动配置与性能测试;③确保用户能够正确操作开发板,避免因误操作导致硬件损坏。 其他说明:手册强调了开发板的安全使用规范,包括正确的插拔顺序、环境要求和维修政策。同时,提供了多种技术支持途径,如论坛、电话、邮箱等,方便用户在遇到问题时及时获得帮助。此外,手册还提醒用户定期关注官方渠道以获取最新的资料更新和技术支持。

2025-04-03

【C语言编程】基于Minixml的XML文件解析与操作:跨平台简易XML处理库入门教程

内容概要:本文档主要介绍了mini_xml的源码下载、编译安装以及简单的使用示例。首先提供了从svn上获取minixml源码的方法,接着简述了编译安装步骤(./configure make make install),强调其跨平台特性,只需更换不同平台的工具链重新编译即可。最后给出了一段C语言代码示例,演示了如何读取并解析一个简单的XML文件,包括打开文件、加载XML树、查找特定元素及属性、打印结果和释放内存等操作。 适合人群:对XML解析有一定需求且具有C语言基础的新手开发者。 使用场景及目标:①需要在项目中集成简单高效的XML解析功能;②希望通过实例快速上手mini_xml库的使用。 其他说明:文档还提供了一个minixml的中文说明手册链接,方便开发者进一步深入了解mini_xml的相关知识。

2025-04-03

简易的中继转发代码,实现组建局域网

简易的中继转发代码,实现组建局域网

2026-03-30

Qt 纯数字虚拟键盘设计与实现

Qt 纯数字虚拟键盘设计与实现 源代码 和 参考示例

2026-03-20

一个程序模拟 直流绝缘监测仪,一个程序模拟 直流绝缘监测仪上位机

直流绝缘监测仪(双路)说明书,一个程序模拟 直流绝缘监测仪,一个程序模拟 直流绝缘监测仪上位机

2026-01-26

T113-i显示屏和触摸屏驱动参考

T113_i显示屏和触摸屏驱动参考

2025-11-13

全志T113-i平台点亮MIPI屏后续

全志T113_i平台点亮MIPI屏后续

2025-11-12

全志T113-i平台点亮MIPI屏

MIPI屏 资料

2025-11-11

Linux C 高精度多定时器实现:基于 timerfd 与函数指针的灵活封装

Linux C 高精度多定时器实现:基于 timerfd 与函数指针的灵活封装

2025-10-16

Qt5 实现灵活可控的滚动字幕效果

Qt5 实现灵活可控的滚动字幕效果 源代码

2025-10-14

QT5绘图和数据可视化的CustomPlot C++组件 例子

QT5绘图和数据可视化的CustomPlot C++组件安装 例子 源码

2025-09-26

QT5绘图和数据可视化的CustomPlot C++组件安装及使用

QCustomPlot

2025-09-26

RK3568下QT实现视频播放器

RK3568下QT实现视频播放器

2025-09-16

RK3568下QT实现文件浏览器

RK3568下QT实现文件浏览器

2025-09-16

用 Enigma Virtual Box 将 Qt 程序打包成单 exe

Enigma Virtual Box

2025-08-15

RK3568下用 Qt Charts 实现曲线数据展示

RK3568下用 Qt Charts 实现曲线数据展示 源代码

2025-08-07

RK3568下使用Qt 绘制实现实时坐标曲线

RK3568下使用Qt 绘制实现实时坐标曲线源码

2025-08-05

RK3568下的进程间通信:UDP实现MASH网络

RK3568下的进程间通信:UDP实现MASH网络 源代码

2025-07-30

RK3568下的进程间广播通信:用C语言构建简单的中心服务器

源代码,server.c client.c

2025-07-29

Quectel-EM05-LTE-Standard-模块资料

Quectel_EM05_LTE_Standard_模块资料

2025-07-23

CAN 信号矩阵与 16 进制转换.html

CAN 信号矩阵与 16 进制转换.html

2025-07-04

在Linux环境中使用libxlsxwriter库生成Excel文件

libxlsxwriter-1.2.2.tar.gz + libxl-lin-4.5.1.tar.gz

2025-06-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除