linux-kernel相关内容

CONFIG_RT_GROUP_SCHED和PREMPT_RT之间的区别?

我刚刚开始使用实时Linux系统,似乎有两种不同的方法可用: 在正常的Linux内核中配置CONFIG_RT_GROUP_SCHED参数 将PREMPT_RT修补程序应用到正常的Linux内核 我似乎无法理解这两者之间的区别。他们是否为同样的问题提供了替代解决方案?它们是否处于相同的逻辑级别? 提前谢谢您。 推荐答案 CONFIG_RT_GROUP_SCHED为每个 ..
发布时间:2022-08-11 11:50:11 其他开发

如果使用阶数大于1的__GET_FREE_PAGES(),如何创建VM_Area映射?

我正在DMA的设备驱动程序中重新实现mmap。 我看到这个问题:Linux Driver: mmap() kernel buffer to userspace without using nopage有一个答案,使用vm_insert_page()一次映射一个页面;因此,对于多个页面,需要在循环中执行。是否有其他API处理此问题? 之前,我使用dma_alloc_coherent为DM ..
发布时间:2022-08-10 09:35:56 服务器开发

在Linux内核中生成和优化文件中的FP/SIMD代码,其中包含KERNEL_FPU_BEGIN()?

我知道禁止在内核中使用任何形式的浮点代码,我们永远不应该使用任何可能生成FP/SIMD指令的GCC标志,但一些使用kernel_fpu_begin()和kernel_fpu_end()的源代码(特别是arch/x86/crypto/*)怎么办? Example 1,example 2。 我有一个老式英特尔酷睿2双核CPU,用于我的64位Linux内核,并且在主要Makefile中我使用 ..

如何将结构显式加载到L1d缓存中?在带/不带超线程的隔离内核上使用CR0.CD=1的INVD出现奇怪的结果

我的目标是将静态结构加载到L1D缓存中。之后,使用这些结构成员执行一些操作,并在操作完成后运行invd以丢弃所有修改后的高速缓存线。因此,基本上我希望在缓存中创建一个安全的环境,以便在缓存中执行操作时,数据不会泄漏到RAM中。 为此,我有一个内核模块。在那里我给结构的成员设置了一些固定值。然后禁用抢占,禁用所有其他CPU的缓存(当前CPU除外),禁用中断,然后使用__builtin_pref ..
发布时间:2022-07-21 13:03:27 其他开发

USB-OTG可以用于U-Boot和Linux控制台吗?

我有一个基于i.MX6Q的定制主板,支持U-Boot和Linux(Ubuntu)设置。微处理器和主板支持USB-OTG和一个串口;目前串口为U-Boot和Linux的控制台提供服务。然而,我们可能需要将串口用于其他目的,但我们不想失去U-Boot和Linux的控制台。是否可以将USB-OTG端口用于U-Boot和Linux的系统控制台? 我做了一些研究,发现了几篇很有前途的文章here和he ..
发布时间:2022-07-14 20:29:00 其他开发

ARM上的initramf的大小限制?

我正在PicoZed板(ARM Cortex A9核)上创建一个可引导的Linux系统,我遇到了一个“限制”,我不认为这是一个真正的限制(我感觉这是另一个伪装成限制的问题)。 我通过在JTAG引导模式下启动系统来引导;在主板通电后,我使用xmd调试器将u-BOOT放入系统的RAM中,然后运行它。 接下来,我将内核(UImage)、gzip的initramfs映像和设备树放入内存。最后,我告 ..
发布时间:2022-07-14 20:21:26 其他开发

Linux中fork()调用的源在哪里?

我花了相当长的时间试图找到fork()函数的源代码。我知道fork()完成的大部分工作都是由do_fork()完成的,这可以在kernel/fork.c中找到。但是,我希望看到的是fork()函数的源代码。 你知道在哪里可以找到它吗?我翻了GCC和LINUX的源码,还是没找到。 编辑:我正在尝试找到我的系统正在使用的确切实现。正如在注释和Link中提到的,它显然位于glibc的某个包装 ..
发布时间:2022-06-30 22:20:41 服务器开发

如何将/dev/sda与/dev/sdb互换?

男孩,这就是这样。A.琐碎。这个问题,但似乎没有人能回答正确。 如何将/dev/sda与/dev/sdb互换? 有人可以建议使用永久性标签(例如,/dev/disk/by-*),但是尽管用意是好的,但不能回答问题。是的,永久标签可以在你可以使用它们的地方工作,但如果一个程序被硬编码来使用,例如。/dev/sda,此问题仍然存在。 为了进一步说明我在互联网上找到的问题: http: ..
发布时间:2022-05-26 17:43:58 服务器开发

使用bitbake为BBB构建.dtbo覆盖

我使用带有定制设备树的内核linux-ti-staging-4.14为我的BBB构建了一个Yocto发行版(Rocko)。因为我需要将一个旧项目从Debian移植到Yocto,所以我还需要在内核中启用UIO功能,这也很好用。 现在,我还需要为UIO Pruss创建一个附加的设备树覆盖。我使用了here中的DTS文件,并通过bbappend: 扩展了内核配方 inherit kernel-de ..
发布时间:2022-05-13 18:24:29 其他开发

Linux内核中绝对路径的相对路径

我在收集挂钩sys_open和sys_execve的参数时遇到了一些困难。 两个系统调用都使用文件名作为第一个参数,参数可以是绝对路径或相对路径。我想要获取绝对路径,无论它是绝对路径还是相对路径。 示例: 如果文件名为"/root/Desktop/../Downloads",我需要将其更改为"/root/Downloads"。 我想操作系统源代码是有解析的,但我最后读的是"__ ..

哪个系统调用号头文件是正确的?

我最近在做一些内核编码,我发现了2个unistd.h文件。 第一个位置为/usr/include/asm/unistd.h。第二个来自内核的源代码:linux/include/uapi/asm-generic/unistd.h。 源代码的版本与我的内核的版本相同,但两个头文件 彼此不同。 /usr/include/asm/unistd.h(从我的电脑): #define __NR ..
发布时间:2022-04-18 10:58:37 服务器开发

LDFLAGS的含义是什么

我正在尝试为ARM Linux编译AODV。我使用SabreLite作为内核版本为3.0.35_4.1.0的电路板。值得一提的是,我正在使用OpenEmbedded为我的主板创建我的Linux发行版。 AODV源代码(http://sourceforge.net/projects/aodvuu/)有一个自述文件,其中提供了一些关于如何在ARM上安装它的说明,如这里所述。 (http://w3.an ..
发布时间:2022-04-10 13:30:39 其他开发

Linux引导过程

我正在尝试使用内核Linux,在引导过程中我遇到了一些错误: 我想从总体上了解Linux内核的引导过程是如何工作的,尤其是在startcore()函数和rootf加载期间和之后。 谢谢你们。 推荐答案 让我们举一个通过MMC在Beaglebone上移植Linux的例子。 您了解引导过程的概念。它是这样工作的- 首先,当我们打开电路板时,Boottrom代码执行(硬编码在电路 ..
发布时间:2022-04-10 13:17:47 其他开发

在一个CPU中拥有多个内核是为了同时运行多个线程/进程,还是为了实现指令级并行?

我只是想更清楚地了解多核到底是做什么用的,以及多核和多CPU之间有什么区别。 我想了解的是,拥有多个核心是为了在给定的CPU内实现指令级并行,还是一个CPU内的多个核心都有自己的结构RQ,允许它们独立调用__Schedule()并随意调度进程/线程,然后由每个核心内的其他模块处理指令级并行。 如有任何意见,欢迎光临。 推荐答案 ILP单独位于每个物理核心中。 跨站复制:H ..
发布时间:2022-04-08 14:19:54 其他开发