
Linux驱动开发
文章平均质量分 71
Linux驱动开发入门与实践
优惠券已抵扣
余额抵扣
还需支付
¥69.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
夜星辰2025
全力以赴 顺势而为
展开
-
udhcpc和udhcpd的区别
udhcpc是DHCP 客户端,用于从 DHCP 服务器获取网络配置。udhcpd是DHCP 服务器,用于向网络中的客户端设备分配 IP 地址和其他配置。根据你的需求选择使用客户端或服务器功能。如果你的设备需要连接到已有的网络并获取 IP 地址,使用udhcpc;如果你需要在网络中为其他设备提供 IP 地址分配服务,使用udhcpd。原创 2025-04-16 15:15:03 · 450 阅读 · 0 评论 -
从零开始讲天线,只发图不说话(多图)
当馈线和天线匹配时,馈线上没有反射波,只有入射波,即馈线上传输的只是向天线方向行进的波。而当天线和馈线不匹配时,也就是天线阻抗不等于馈线特性阻抗时,负载就只能吸收馈线上传输的部分高频能量,而不能全部吸收,未被吸收的那部分能量将反射回去形成反射波。匹配时,馈线上只存在传向终端负载的入射波,而没有由终端负载产生的反射波,因此,当天线作为终端负载时,匹配能保证天线取得全部信号功率。如下图所示,当天线阻抗为 50 欧时,与50 欧的电缆是匹配的,而当天线阻抗为 80 欧时,与50 欧的电缆是不匹配的。原创 2025-04-11 15:59:14 · 461 阅读 · 0 评论 -
使用 SoX 进行单声道实时录音:详细指南
SoX,全称为 Sound eXchange,是一个跨平台的音频处理工具,支持录制、转换和处理多种音频格式。其强大的命令行功能使其成为音频工程师、开发者和爱好者的常用工具。支持多种音频格式(如 WAV、MP3、FLAC 等)实时录音和播放音频转换和效果处理(如剪切、合并、滤波等)脚本化操作,便于自动化任务SoX 是一个功能强大且灵活的音频处理工具,适用于各种录音和音频处理任务。本文详细介绍了如何使用 SoX 在 Linux 系统上进行左声道和右声道的单声道录音,并探讨了常见问题的解决方案。原创 2025-04-01 11:11:26 · 788 阅读 · 0 评论 -
RTL8211F 1000M以太网PHY指示灯(LED1是绿色常亮 LED2是黄色闪烁)
对应参数0xd04为Page,0x10和0x11为对应的寄存器,0xffff和0x000e为Mask,0xc160和0x000E为相应的寄存器值。原创 2025-03-03 11:46:45 · 191 阅读 · 0 评论 -
LT6911C EDID详解
LT6911C 是一款用于 HDMI 输入到 MIPI DSI 输出的桥接芯片。其 EDID(扩展显示识别数据)信息对于显示设备的正常工作至关重要。EDID 是一种数据结构,用于在显示器和图形适配器之间传递信息,如支持的分辨率、刷新率、颜色深度等。原创 2025-02-28 10:11:41 · 450 阅读 · 0 评论 -
rk3568 buildroot linux shell history 终端输入的历史命令不能保存的问题
要解决中Shell历史命令无法保存检查文件权限。检查HISTFILE环境变量。检查~/.bashrc和中的历史记录配置。确保正确保存历史。调整配置,确保不忽略某些命令。查看是否由于 Buildroot 的配置导致历史保存功能受限。通过上述方法排查和调整配置,应该能够解决 Shell 历史命令无法保存的问题。原创 2025-01-04 11:07:39 · 828 阅读 · 0 评论 -
关于 AWTK 和 Weston 在旋转屏幕时的资源消耗问题
是更加高效且资源消耗较低的选择。如果没有硬件支持,AWTK 的旋转可能会相对消耗更多的系统资源。在旋转屏幕时的资源消耗问题,首先需要理解这两者旋转的本质区别及其资源开销。(如 GPU 或显示控制器支持旋转),原创 2025-01-03 17:31:08 · 860 阅读 · 0 评论 -
Linux buildroot和ubuntu的异同点
Buildroot 是一个用于生成嵌入式 Linux 系统的工具集,专注于交叉编译和构建嵌入式设备的最小 Linux 环境。它的目标是为嵌入式系统提供定制化和优化的 Linux 发行版,支持各种架构(如 ARM、x86、MIPS 等)。Ubuntu 是一个完整的 Linux 操作系统发行版,目标是提供一个用户友好的桌面和服务器操作系统。它包括了从桌面应用到服务器工具的所有内容,注重易用性、广泛的硬件兼容性和丰富的软件包生态。都是 Linux 系统的操作环境,但它们的设计理念和使用场景有很大的不同。原创 2025-01-02 16:41:01 · 783 阅读 · 0 评论 -
深入解析 Linux 设备树中的引脚控制(pinctrl)二
而在 Linux 内核中,引脚控制(pinctrl)是一个关键的硬件资源管理部分,负责管理和配置设备的引脚(GPIO、I2C、SPI 等接口)功能和状态。引脚控制(pinctrl)是 Linux 内核中至关重要的硬件资源管理部分,它通过设备树描述引脚的功能、状态和电气特性。本文将详细介绍 Linux 设备树中引脚控制(pinctrl)的概念、如何在设备树中配置引脚,并深入探讨如何在内核中实现引脚控制。在设备树中,引脚的功能不仅仅是控制引脚的输入输出状态,还涉及到它的电气特性和功能模式。原创 2025-01-02 11:53:25 · 256 阅读 · 0 评论 -
Linux驱动开发:深入理解I2C时序(二)
I2C(Inter-Integrated Circuit)是一种由Philips(现NXP)提出的串行通信协议,广泛应用于低速外围设备的连接。原创 2025-01-02 11:33:30 · 322 阅读 · 0 评论 -
Linux 下载神器:wget 的详细使用教程
在 Linux 系统中,`wget` 是一个非常强大的命令行工具,用于从网络中下载文件。无论是单个文件的下载,还是批量文件的递归下载,`wget` 都能轻松应对。而且,它还支持断点续传、限速下载、代理等高级功能,是 Linux 用户的必备工具。原创 2024-12-26 11:41:25 · 1653 阅读 · 0 评论 -
DRM(Direct Rendering Manager)和Framebuffer(帧缓冲)详解
是一种历史悠久的技术,适合于简单的像素绘制,但由于没有硬件加速,已逐渐被性能更强的DRM所取代。DRM是现代图形系统的基础,支持硬件加速和多种高级图形功能,但实现和使用更为复杂。在实际选择中,应根据硬件资源和应用需求决定使用哪种方案。如果是现代设备(如带 GPU 的嵌入式平台),DRM 通常是更好的选择。原创 2024-12-26 11:16:16 · 1241 阅读 · 0 评论 -
选择 SquashFS 作为启动分区的文件系统格式:详细教程
是一个高压缩的只读文件系统,它将文件和目录打包成一个压缩的文件系统映像。这个映像文件可以挂载为根文件系统或其他文件系统,常用于嵌入式设备、LiveCD 等需要减小文件系统占用空间的场景。原创 2024-12-25 20:05:11 · 343 阅读 · 0 评论 -
在 RK3568 Linux 系统上使用 TUN 设备:详细教程
是 Linux 内核中提供的虚拟网络设备。它们用于实现用户空间程序与内核网络栈的交互。原创 2024-12-25 19:46:55 · 370 阅读 · 0 评论 -
使用 Buildroot 构建带有 Avahi 支持的 Linux 系统
Buildroot 是一个用于生成嵌入式 Linux 系统的工具,极大地方便了交叉编译和定制化。它使开发者能够轻松选择所需的包和功能,最终生成一个适合特定硬件平台的 Linux 文件系统和内核映像。Avahi 是一个开源的 mDNS 和 DNS-SD 实现,允许设备在本地网络中自动发现彼此,而不需要手动配置 DNS。它广泛应用于各种应用场景,如打印服务发现、文件共享和网络服务发现等。原创 2024-12-18 10:23:09 · 399 阅读 · 1 评论 -
gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf
上面存在两个 GCC 工具链:这两个工具链的主要区别在于它们针对的 目标架构 和 应用二进制接口(ABI)。以下是详细的区别说明:架构(Architecture): AArch64 (也称为 ARM64)ABI(应用二进制接口): 使用场景:目录结构特点:架构(Architecture): ARM (通常指 ARMv7-A 或类似的 32 位架构)ABI(应用二进制接口): 使用场景:目录结构特点:1. 根据目标系统的架构选择工具链:64 位系统(如 RK3568 通常支持 64 位架构):32 位系统或需原创 2024-12-17 16:02:20 · 1148 阅读 · 0 评论 -
网络相关问题
网络规模差异:255.255.255.0 能支持254个主机,而255.255.254.0 能支持510个主机。子网划分:255.255.254.0 可以合并两个原255.255.255.0范围的子网为一个大子网,允许更多设备在同一网络中通信。原创 2024-12-03 14:45:00 · 801 阅读 · 0 评论 -
如何在 RK3568 Android 11 系统上排查以太网问题
设备一般会通过 DHCP 自动获取 IP。注意识别与以太网相关的错误信息,比如驱动加载失败或硬件相关问题。SELinux 是一个安全子系统,可能会不正确地限制网络访问。通过此命令确认到达默认网关的路由是否存在并正确配置。确保以太网驱动正确加载,如有必要重装或更新驱动。有时候,简单的重启设备能够解决许多未知的小问题。中确认驱动加载成功,没有错误提示。配置信息需根据网络环境具体设置。原创 2024-11-21 19:01:39 · 321 阅读 · 0 评论 -
RK3568 Linux 系统加系统运行指示灯
【代码】RK3568 Linux 系统加系统运行指示灯。原创 2024-11-14 15:51:47 · 338 阅读 · 0 评论 -
I2S、PDM、PCM、TDM、DSM、DCODEC、VAD、SPDIF
I2S (Inter-IC Sound)用途: 一种用于芯片之间传输音频数据的串行总线标准。特点: 常用于高质量音频设备,如DAC、ADC和音频编解码器。I2S主要传输PCM格式的音频数据。PDM (Pulse Density Modulation)用途: 主要用于数字麦克风等设备,以简化硬件接口。特点: 使用脉冲密度来编码音频信号,通过简单硬件实现低成本、低功耗的设计,需要在接收端进行信号重建。PCM (Pulse Code Modulation)用途: 一种常见的音频数字化格式,原创 2024-11-01 15:34:57 · 909 阅读 · 0 评论 -
rockchip,format = “i2s“;和rockchip,format = “pdm“;的区别
在设备树中,对于音频接口的配置,属性用于指定音频数据传输的格式。不同的格式用于适配不同类型的音频信号传输方式。下面是i2s和pdm。原创 2024-11-01 14:56:50 · 210 阅读 · 0 评论 -
connmanctl和connmand的区别
connmand是 ConnMan 的守护进程,它在后台持续运行,负责网络连接的管理和调度工作。它提供了自动化的网络连接能力,可以在不同的网络接口之间进行切换,最大化设备的联网稳定性和可靠性。connmandconnmanctl是一个命令行工具,用于与connmand进行交互和管理网络连接。它为用户提供了一个接口,用来查询网络状态、连接和断开网络等。connmanctl。原创 2024-10-30 19:14:47 · 238 阅读 · 0 评论 -
瑞芯微rv1126 Linux 系统,修改系统时区,包有效方法
在 Linux 系统中,修改时区的步骤通常包括创建符号链接到正确的时区文件,并确保相关的配置文件已正确更新。然而,某些系统可能有额外的步骤或需要修改其他配置文件来使更改生效。以下是一些步骤。原创 2024-09-12 11:51:24 · 379 阅读 · 0 评论 -
Linux 内核中的并发与竞争
并发是指多个任务在同一时间段内进行的能力,允许它们在逻辑上同时执行,而不一定是在物理上并行处理。并发的关键在于任务的调度与管理,使得系统能够高效利用资源。竞争是指多个任务在访问共享资源时的争夺状态,当它们试图同时读取或修改同一资源时,会导致错误或不一致的结果。原创 2024-08-15 20:17:49 · 382 阅读 · 0 评论 -
Linux 内核中的定时器详解
定时器允许开发者在给定的时间间隔后执行特定的操作。它们可以用来实现延时执行、周期性任务、超时处理等功能。Linux 内核提供了多种类型的定时器,以满足不同的需求。在 SDN 环境中,定时器可能被用于数据包的处理和调度。未来的内核可能会引入更多针对网络调度的定时器特性,以应对高并发和低延迟的需求。Linux 内核中的定时器是实现时间管理和任务调度的核心组件。通过合理使用定时器,可以大幅提高系统的性能和响应能力。理解定时器的工作原理及其在不同上下文中的应用,对于开发高效可靠的内核模块至关重要。原创 2024-08-15 19:51:06 · 562 阅读 · 0 评论 -
怎样确定局域网里面是否有MAC地址冲突
MAC地址冲突会导致网络通信问题,因此检测和解决冲突非常重要。通过使用ARP命令、网络扫描工具、检查路由器日志或网卡故障排除工具,您可以确定是否存在MAC地址冲突。如果发现冲突,可以通过更改MAC地址、检查设备配置或替换有问题的设备来解决冲突。保持局域网中设备的MAC地址唯一,能够确保网络的正常运行和通信效率。原创 2024-08-09 10:45:16 · 4203 阅读 · 0 评论 -
瑞芯微Android设备指定应用开启性能模式
本文档主要针对特定应用(如 安兔兔)如何进行加速及性能的提升做相关说明。原创 2024-08-02 17:25:28 · 336 阅读 · 0 评论 -
RK3568和RK3576参数对比
RK3568: 高性能、低功耗的四核应用处理器,适用于个人移动互联网设备和AIoT设备。支持多种硬件引擎,优化高端应用性能。RK3576: 低功耗、高性能处理器,适用于基于ARM的PC、边缘计算设备、个人移动互联网设备和其他数字多媒体应用。集成了四核Cortex-A72和四核Cortex-A53,支持多种视频编解码功能。原创 2024-07-29 16:42:54 · 3987 阅读 · 0 评论 -
USB 通讯中的阻抗不匹配问题
USB 通讯过程中出现的阻抗不匹配问题主要源于设计、材料和连接方式等因素。通过合理的设计、优质的元件和适当的测试,可以有效地解决和预防阻抗不匹配导致的通讯问题。原创 2024-07-29 14:29:15 · 1141 阅读 · 0 评论 -
RK3399 Linux 系统,接i2c外设,时好时坏(三)其中一个解决问题方法
在嵌入式系统中,引脚的配置对外设的稳定性和可靠性至关重要。RK3399 的设备树(Device Tree)允许我们为每个 I2C 总线配置相应的引脚,并指定其上下拉电阻的类型。以下是我们需要调整的 I2C 引脚配置。在 RK3399 系统中,合理配置 I2C 引脚对于确保外设的稳定性至关重要。通过将 I2C1 的引脚配置从修改为,我们能够有效提升信号的稳定性和抗干扰能力,解决了时好时坏的问题。如需进一步的配置或调试建议,请继续关注相关的技术博客和文档。希望本文对你的开发工作有所帮助!原创 2024-07-25 18:30:27 · 320 阅读 · 0 评论 -
RV1126 Linux 系统,接外设,时好时坏(二)排查问题的常用命令
上述命令涵盖了设备识别、连接状态、GPIO 和 I2C 读写、网络测试等多个方面,可以帮助你更全面地排查 RV1126 Linux 系统与外设之间的连接问题。根据具体情况使用合适的命令,有助于快速定位和解决问题。如果问题复杂,可能需要结合多个工具和命令进行综合分析。原创 2024-07-25 18:25:36 · 491 阅读 · 0 评论 -
RV1126 Linux 系统,接外设,时好时坏(一)应该从哪些方面排查问题
在 Linux 系统中排查外设连接问题时,需要从硬件、软件、时序和协议等多个方面进行全面分析。逐步排查并记录每一步的测试结果,有助于快速定位问题的根源。解决 “时好时坏”的问题可能需要综合考虑多个因素,耐心细致的排查将会提高找到解决方案的效率。原创 2024-07-25 18:05:44 · 302 阅读 · 0 评论 -
RK3568 Linux 平台开发系列讲解(内核入门篇):从内核的角度看外设芯片的驱动
从内核的角度看外设芯片的驱动,需要理解驱动的基本结构、设备树的使用以及内核的 I/O 机制。通过掌握这些知识,您将能够有效地开发和管理外设驱动程序。希望本文为您在 RK3568 平台的驱动开发提供了有价值的参考,欢迎继续关注后续的内容!原创 2024-07-24 20:38:08 · 953 阅读 · 0 评论 -
RK3568 Linux 平台开发系列讲解(内核入门篇):如何高效地阅读 Linux 内核设备驱动
高效地阅读和理解 Linux 内核设备驱动需要一定的知识积累和实践。通过理解内核架构、掌握驱动结构、使用调试工具以及查阅相关文档,您将能够更有效地进行设备驱动开发。希望本文能为您在 RK3568 平台的设备驱动开发提供一些帮助与启发,欢迎继续关注后续内容!原创 2024-07-24 20:10:37 · 801 阅读 · 0 评论 -
connmand不管理eth1的方法
配置 connman 的配置文件,默认没有创建对应的配置文件,需要自己手动在 etc 目录下创建 connman 文件夹,并创建 main.conf 文件, connman 在启动的时候会自动的读取这个配置文件。保存之后,重启终端,重启终端之后,可以看到 eth1 网卡已经不启动了,因为没有被connmand 托管了!在 main.conf 里写入以下内容,比如笔者将 eth1 写进黑名单,这样 eth1 就不会被托管了。原创 2024-07-24 15:02:18 · 171 阅读 · 0 评论 -
Linux 驱动学习笔记
设备树(Device Tree)是一种数据结构,用于描述硬件设备及其相互关系的图形表示。在Linux系统中,设备树被用于描述硬件设备的配置和属性,以及设备与内核之间的接口。设备注册和管理:设备树提供了对硬件设备的注册和管理机制。驱动程序可以将自己的设备信息添加到设备树中,并实现与设备树的交互,从而方便系统对设备的识别和管理。设备配置和初始化:设备树可以帮助驱动程序了解设备的配置信息和属性,以便进行相应的初始化操作。驱动程序可以根据设备树的描述来配置设备的寄存器、分配内存资源等。原创 2024-07-22 11:00:51 · 466 阅读 · 0 评论 -
瑞芯微RGA kernel层报错集锦
该问题为分配器DRM本身的问题,DRM本身认为当用户态获取到物理地址后,正常来讲内核态是不需要虚拟地址的了,所以在分配buffer时就会将对应的kmap释放,仅释放kmap也不会影响到用户态中映射虚拟地址和使用,但是当这块buffer用户态的虚拟地址传入RGA驱动,驱动进行物理地址页表的转换查询时,由于该buffer的kmap已经被释放,或是无法查询到对应的页表项,或是直接访问到错误的地址导致内核crash。原创 2024-07-22 09:18:05 · 1007 阅读 · 0 评论 -
瑞芯微RGA HAL层报错集锦
该报错为明显的参数报错,“err ws” 即虚宽(width stride)参数异常,其后“[]”内的参数分别为[x_offeset, width, width_stride],这里由于X方向的偏移与实际操作区域的宽的和大于了虚宽,所以librga认为虚宽存在问题而返回的报错。的偏移的和、对齐是否符合要求。:该报错为ioctl报错,标识当前传入的设备节点的fd无效,请尝试更新librga或确认RGA。如问题中报错,则为YUV格式对齐的限制问题,这里图像的宽1281不是2对齐的,所以校验失败。原创 2024-07-19 18:15:04 · 453 阅读 · 0 评论 -
Linux系统中调试蓝牙的常用命令
在Linux系统中,蓝牙技术的应用越来越广泛,从无线耳机到智能家居设备,蓝牙连接已成为我们日常生活中不可或缺的一部分。这个命令会显示蓝牙适配器的信息,包括是否启用、地址、速度等。确保你的蓝牙适配器的固件和驱动是最新的。是一个强大的蓝牙监控工具,可以捕获和显示蓝牙通信的详细信息。查阅蓝牙适配器的相关文档,以及参考社区论坛和开发者邮件列表,获取更多的帮助和支持。是蓝牙适配器的默认名称,如果你的系统有多个蓝牙适配器,可能会有不同的名称。守护进程时,可以使用调试选项来获取更详细的日志信息。来扫描附近的蓝牙设备。原创 2024-07-17 19:46:38 · 1014 阅读 · 0 评论 -
RK3568 V1.4.0 SDK,USB OTG端子不能被电脑识别出adb设备,解决
修改后的/usr/bin/usbdevice:#!/bin/sh## Usage:# usbdevice [start|update|stop]## Hookable stages:# usb_<pre|post>_<init|prepare|start|stop|restart>_hook# <usb function>_<pre|post>_<prepare|start|stop>_hook## Example hook:原创 2024-07-16 13:59:16 · 1025 阅读 · 0 评论