草庐IT

linux - linux 内核的最大中断频率是 Hz、kHz、MHz 还是 GHz?

开始之前:是的,我知道答案是architecturedependent-我只对大致数字感兴趣,就数量级而言。linux内核对中断频率有上限吗?背景:我想在Linux中连接相机模块。该模块有一个时钟并行数据输出(8位,~650kHz),我想从中读取数据并将其存储在缓冲区中,以便通过例如/dev/camera进行访问。我编写了一个基本的驱动程序,它正在监视相应的中断线。如果我让一根电线悬在中断引脚上,我就会从白噪声中得到中断。但是,如果我连接一个更高频率的信号(来自555计时器的atm~250kHz),则不会触发任何中断。(我已经用/proc/interrupts确认了这一点)我的想法是,

linux - linux 内核的最大中断频率是 Hz、kHz、MHz 还是 GHz?

开始之前:是的,我知道答案是architecturedependent-我只对大致数字感兴趣,就数量级而言。linux内核对中断频率有上限吗?背景:我想在Linux中连接相机模块。该模块有一个时钟并行数据输出(8位,~650kHz),我想从中读取数据并将其存储在缓冲区中,以便通过例如/dev/camera进行访问。我编写了一个基本的驱动程序,它正在监视相应的中断线。如果我让一根电线悬在中断引脚上,我就会从白噪声中得到中断。但是,如果我连接一个更高频率的信号(来自555计时器的atm~250kHz),则不会触发任何中断。(我已经用/proc/interrupts确认了这一点)我的想法是,

linux - 从文件系统中查找路由器固件的 linux 内核版本

我已经下载了文件DAP2690-firmware-v101-rc019.bin(link),这是一些D-Link路由器的固件更新。我已经使用binwalk-eDAP2690-firmware-v101-rc019.bin(Binwalkv1.2b)提取了它,现在我在文件夹squashfs-root中有了根文件系统。我只想从提取的文件中了解此固件的linux内核版本(最好仅从文件夹squashfs-root)。我该怎么做? 最佳答案 我会去检查在文件系统上编译的模块。每个模块都有一个vermagic编号,它必须等于内核vermagic

linux - 从文件系统中查找路由器固件的 linux 内核版本

我已经下载了文件DAP2690-firmware-v101-rc019.bin(link),这是一些D-Link路由器的固件更新。我已经使用binwalk-eDAP2690-firmware-v101-rc019.bin(Binwalkv1.2b)提取了它,现在我在文件夹squashfs-root中有了根文件系统。我只想从提取的文件中了解此固件的linux内核版本(最好仅从文件夹squashfs-root)。我该怎么做? 最佳答案 我会去检查在文件系统上编译的模块。每个模块都有一个vermagic编号,它必须等于内核vermagic

linux - 为什么 flush_dcache_page() 在 linux 内核中什么都不做?

我发现flush_dcache_page()在x86arch上的linux内核中没有执行任何操作,如下所示include/asm-generic/cacheflush.hLine17#defineflush_dcache_page(page)do{}while(0)我认为x86arch上有缓存刷新指令“CLFLUSH”,它可以用于此页面刷新。但是flush_dcache_page()并不像上面的源代码那样运行任何CPU指令。为什么flush_dcache_page()在x86架构上不运行任何指令?是否保证将dcache中的一个page写入主存? 最佳答案

linux - 为什么 flush_dcache_page() 在 linux 内核中什么都不做?

我发现flush_dcache_page()在x86arch上的linux内核中没有执行任何操作,如下所示include/asm-generic/cacheflush.hLine17#defineflush_dcache_page(page)do{}while(0)我认为x86arch上有缓存刷新指令“CLFLUSH”,它可以用于此页面刷新。但是flush_dcache_page()并不像上面的源代码那样运行任何CPU指令。为什么flush_dcache_page()在x86架构上不运行任何指令?是否保证将dcache中的一个page写入主存? 最佳答案

c - 从 Linux 内核模块的文件描述符获取文件名/路径?

在linux内核模块中有没有办法从unsignedintfd获取文件名/路径?我知道这个答案:HowcanIgetafilenamefromafiledescriptorinsideakernelmodule?但如果我正确理解代码,我还需要一个structfiles_struct。编辑:请停止投票,因为它不是重复的。我正在寻求一种方法来从内核模块获取纯C中的文件名/路径,而不是使用系统工具。换句话说:在/procself/fd/上运行readlink不是一个好的答案。编辑2:内核的系统调用readssize_tread(intfd,void*buf,size_tcount);有3个参数

c - 从 Linux 内核模块的文件描述符获取文件名/路径?

在linux内核模块中有没有办法从unsignedintfd获取文件名/路径?我知道这个答案:HowcanIgetafilenamefromafiledescriptorinsideakernelmodule?但如果我正确理解代码,我还需要一个structfiles_struct。编辑:请停止投票,因为它不是重复的。我正在寻求一种方法来从内核模块获取纯C中的文件名/路径,而不是使用系统工具。换句话说:在/procself/fd/上运行readlink不是一个好的答案。编辑2:内核的系统调用readssize_tread(intfd,void*buf,size_tcount);有3个参数

linux - Linux 内核中 wait_event 和 wake_up 之间的竞争条件

我是内核新手。我在阅读源代码时遇到了这个问题。在wait_event()的实现中,内核做了这样的事情:...prepare_to_wait();/*enqueuecurrentthreadtothewaitqueue*/...schedule();/*invokedeactivate_task()inside,whichwilldequeuecurrentthreadfromtherunqueue*/...在“wake_up()”的实现中,内核做了如下工作:...try_to_wake_up();/*invokeactivate_task()inside,whichwillenqueu

linux - Linux 内核中 wait_event 和 wake_up 之间的竞争条件

我是内核新手。我在阅读源代码时遇到了这个问题。在wait_event()的实现中,内核做了这样的事情:...prepare_to_wait();/*enqueuecurrentthreadtothewaitqueue*/...schedule();/*invokedeactivate_task()inside,whichwilldequeuecurrentthreadfromtherunqueue*/...在“wake_up()”的实现中,内核做了如下工作:...try_to_wake_up();/*invokeactivate_task()inside,whichwillenqueu