自定义 linux 内核的 ioctl 突然停止响应并在几分钟后重新启动

     2023-02-22     144

关键词:

【中文标题】自定义 linux 内核的 ioctl 突然停止响应并在几分钟后重新启动【英文标题】:custom linux kernel's ioctl stops responding abruptly and starts again in few minutes 【发布时间】:2012-03-14 16:29:53 【问题描述】:

设置: 我有一个调用 IOCTL 的 CP 进程。然后内核 IOCTL 处理程序将某些内容写入硬件并返回结果。这种看门狗打孔以周期性间隔发生。

问题: 使用调试打印我验证了 CP 进程和内核模块同时停止打印调试。内核模块总是完成它的任务。几分钟后,调试再次开始打印。虽然存在问题,但我通过运行 ls、top 等验证了内核本身没有挂起。

我了解内核模块可能没有问题。那么我从哪里开始寻找呢?

【问题讨论】:

【参考方案1】:

您的 IOCTL 处理程序是否使用阻塞 IO 访问硬件?如果 IOCTL 处理程序必须等待硬件响应,则时间可能会超过看门狗时间限制并导致看门狗重新启动。也许检查如何访问硬件是一个开始的方向。

【讨论】:

【参考方案2】:

那么我从哪里开始寻找呢?

我将首先使用strace -eioctl ... 检查是否在问题存在时调用。

【讨论】:

ioctl 与 Linux 中的内核模块

】ioctl与Linux中的内核模块【英文标题】:ioctlvskernelmodulesinLinux【发布时间】:2020-10-3013:54:44【问题描述】:我知道内核模块是用来写devicedrivers的。您可以在Linux内核中添加新的systemcalls,并使用它与其他设备进行通信。我还读到... 查看详情

linux之ioctl20160705

..._VOL进行case,因为这个cmd中的魔数和基数都是系统函数IOWR定义的,内核驱动就会知道。#defineACODEC_GET_ADCL_VOL //ACODEC_GET_ADCL_VOL这个CMD等同于_IO 查看详情

linux用户与内核空间交互—ioctl(代码片段)

...法笔记与总结二、ioctl三、实战1、头文件2、应用程序3、内核程序4、程序输出简介用户空间与内核的交互方式,使用copy_from_user(),copy_to_user().除了这两种交互方式,内核还提供了其他高级的方式,对于写驱动来说很重... 查看详情

Linux 内核 4.8.0-53-generic Linux Mint 64 位中 IOCTL 函数的不兼容指针初始化错误

】Linux内核4.8.0-53-genericLinuxMint64位中IOCTL函数的不兼容指针初始化错误【英文标题】:ErrorinitializationfromincompatiblepointerofIOCTLfunctioninLinuxkernel4.8.0-53-genericLinuxMint64bit【发布时间】:2017-10-2810:24:39【问题描述】:我在使用Ioctl命令编... 查看详情

将新的 IOCTL 添加到内核中(数字范围)

...上使用内核2.6.21。【问题讨论】:【参考方案1】:IOCTL被定义为依赖于设备——如果有“标准”ioctl供 查看详情

IOCTL 可以用于向驱动程序发送自定义输入吗

】IOCTL可以用于向驱动程序发送自定义输入吗【英文标题】:CanIOCTLbeusedinsendingcustominputtoaDriver【发布时间】:2018-07-1402:12:52【问题描述】:对不起,如果这是一个菜鸟问题,但我正在为游戏开发软件“插件”。我通过驱动程序这... 查看详情

Linux 驱动程序:ioctl 还是 sysfs?

...:57【问题描述】:我正在编写一个驱动程序来控制一些自定义硬件。在过去(即15年前)我使用ioctls进行此操作,但现在我正在研究sysfs作为可能的替代方案。据我了解,ioctl并未完全弃用,但首选sysfs(?)我需要同时读取/写入一组... 查看详情

linux用户与内核空间交互—ioctl(代码片段)

...法笔记与总结二、ioctl三、实战1、头文件2、应用程序3、内核程序4、程序输出简介用户空间与内核的交互方式,使用copy_from_user(),copy_to_user().除了这两种交互方式,内核还提供了其他高级的方式,对于写驱动来说很重... 查看详情

PayPal IPN 突然停止流入

...时间】:2021-06-2116:40:22【问题描述】:我有以下问题:自定义网店,用C#编写,托管在带有WindowsServer2019Datacenter的Azure服务器上,定期更新。与PayPal集成,工作了几年。几天前突然,IPN消息停止进入。PayPalIPN历史记录显示“错误50... 查看详情

x86_64 Linux 上定义的 ioctl 系统调用的用户空间包装器在哪里?

】x86_64Linux上定义的ioctl系统调用的用户空间包装器在哪里?【英文标题】:Whereisuserspacewrapperforioctlsystemcalldefinedonx86_64Linux?【发布时间】:2017-05-0521:42:48【问题描述】:我(出于好奇)一直想知道在x86_64Linux上,ioctl系统调用的... 查看详情

linux中ioctl函数集的目的是啥?

...发布时间】:2015-03-2709:43:01【问题描述】:在Linux/freeBSD内核中,每当我们必须为设备制作驱动程序模块时,我们都会在/dev/文件夹中制作一个文件并使用它与其他进程通信。如果是这样,ioctl函数集的目的是什么?无论我们 查看详情

在 xeon-phi 上引导自定义内核

】在xeon-phi上引导自定义内核【英文标题】:Bootingcustomkernelonxeon-phi【发布时间】:2015-04-0820:36:23【问题描述】:我正在尝试在Xeon-phi上启动自定义内核,而不是默认的Linux内核。在thislink,我找到了一种交叉编译内核的方法,该... 查看详情

17.在内核源码上增加自定义驱动(代码片段)

...ttps://www.cnblogs.com/standardzero/p/12551189.html前言编写简单的自定义驱动创建相关目录和文件关联上一级目录的Kconfig和Makefile配置&编译 前言在了解了Kconfig和Makefile的相关原理后,是不是有种在源码上自定义驱动的冲动。放心,... 查看详情

IOCTL Linux 设备驱动程序 [关闭]

...么是IOCTL?它是做什么用的?如何使用它?为什么我不能定义与IOCTL工作相同的新函数?【问题讨论】:【参考方案1】:ioctl函数可用于实现设备驱动程序以设置设备上的配置。例如具有检查和设置字体系列、字体大小等配置选... 查看详情

将 ioctl 代码从内核模块传递到用户空间程序

...2013-01-3113:34:42【问题描述】:内核模块中的ioctl代码通常定义为.c或.h文件中的宏,即:#defineDRV_CTL_RESET_IO(DRV_MAGIC,0x01)#defineDRV_CTL_DSP_TO_IO(DRV_MAGIC,0x 查看详情

opencv 无法停止流:设备的 ioctl 不合适

】opencv无法停止流:设备的ioctl不合适【英文标题】:opencvUnabletostopthestream:Inappropriateioctlfordevice【发布时间】:2017-05-0304:23:53【问题描述】:我只想将视频转换为帧图像。使用这个简单的代码importcv2vidcap=cv2.VideoCapture(\'gog.mp4\')suc... 查看详情

如何将从webapi返回的自定义对象数组的HttpResponse响应分配给打字稿角度中相同数组类型的对象?

】如何将从webapi返回的自定义对象数组的HttpResponse响应分配给打字稿角度中相同数组类型的对象?【英文标题】:HowtoassignanHttpResponseresponseofcustomarrayofobjectsreturnedfromwebapitoanobjectofsamearraytypeintypescriptangular?【发布时间】:2022-01-210... 查看详情

Ubuntu:内核 5.6.0-rc3:file_operations 中不支持 IOCTL?

】Ubuntu:内核5.6.0-rc3:file_operations中不支持IOCTL?【英文标题】:Ubuntu:Kernel5.6.0-rc3:NoIOCTLsupportinfile_operations?【发布时间】:2020-03-0116:57:30【问题描述】:我使用的是ubuntu和内核版本5.6.3-rc3。我在标头的file_operations结构中看不到任... 查看详情