linux-kernel相关内容
我想包括UART3和UART5覆盖以启用它们,使用Yocto。它们已经随我添加到我的主要图像菜谱行的整个包(https://github.com/raspberrypi/linux/blob/rpi-5.10.y/arch/arm/boot/dts/overlays/uart3-overlay.dts)一起交付: RPI_KERNEL_DEVICETREE_OVERLAYS:append =
..
KBUILD_DEFCONFIG_KMACHINE ?= defconfig_file工作不像我预期的那样。 我学到的第一课:defconfig != .config Bare-Kernel-Build(不带Yocto):由make savedefconfig创建的arch/arm/config/xy_defconfig下面的新Defconfig文件不等于.config文件。我假设Linu
..
我刚刚开始使用实时Linux系统,似乎有两种不同的方法可用: 在正常的Linux内核中配置CONFIG_RT_GROUP_SCHED参数 将PREMPT_RT修补程序应用到正常的Linux内核 我似乎无法理解这两者之间的区别。他们是否为同样的问题提供了替代解决方案?它们是否处于相同的逻辑级别? 提前谢谢您。 推荐答案 CONFIG_RT_GROUP_SCHED为每个
..
我正在DMA的设备驱动程序中重新实现mmap。 我看到这个问题:Linux Driver: mmap() kernel buffer to userspace without using nopage有一个答案,使用vm_insert_page()一次映射一个页面;因此,对于多个页面,需要在循环中执行。是否有其他API处理此问题? 之前,我使用dma_alloc_coherent为DM
..
目前我运行的是Ubuntu 16.04,Linux内核版本是4.16。我编写了一个伪程序,将其调度程序更改为SCHED_Deadline。但当我试图编译它时,它找不到sched_Deadline所需的结构和宏的定义。大部分代码片段摘自here(第24页)。测试程序如下: #define _GNU_SOURCE #include #include
..
我知道禁止在内核中使用任何形式的浮点代码,我们永远不应该使用任何可能生成FP/SIMD指令的GCC标志,但一些使用kernel_fpu_begin()和kernel_fpu_end()的源代码(特别是arch/x86/crypto/*)怎么办? Example 1,example 2。 我有一个老式英特尔酷睿2双核CPU,用于我的64位Linux内核,并且在主要Makefile中我使用
..
我的目标是将静态结构加载到L1D缓存中。之后,使用这些结构成员执行一些操作,并在操作完成后运行invd以丢弃所有修改后的高速缓存线。因此,基本上我希望在缓存中创建一个安全的环境,以便在缓存中执行操作时,数据不会泄漏到RAM中。 为此,我有一个内核模块。在那里我给结构的成员设置了一些固定值。然后禁用抢占,禁用所有其他CPU的缓存(当前CPU除外),禁用中断,然后使用__builtin_pref
..
我有一个基于i.MX6Q的定制主板,支持U-Boot和Linux(Ubuntu)设置。微处理器和主板支持USB-OTG和一个串口;目前串口为U-Boot和Linux的控制台提供服务。然而,我们可能需要将串口用于其他目的,但我们不想失去U-Boot和Linux的控制台。是否可以将USB-OTG端口用于U-Boot和Linux的系统控制台? 我做了一些研究,发现了几篇很有前途的文章here和he
..
我正在PicoZed板(ARM Cortex A9核)上创建一个可引导的Linux系统,我遇到了一个“限制”,我不认为这是一个真正的限制(我感觉这是另一个伪装成限制的问题)。 我通过在JTAG引导模式下启动系统来引导;在主板通电后,我使用xmd调试器将u-BOOT放入系统的RAM中,然后运行它。 接下来,我将内核(UImage)、gzip的initramfs映像和设备树放入内存。最后,我告
..
我花了相当长的时间试图找到fork()函数的源代码。我知道fork()完成的大部分工作都是由do_fork()完成的,这可以在kernel/fork.c中找到。但是,我希望看到的是fork()函数的源代码。 你知道在哪里可以找到它吗?我翻了GCC和LINUX的源码,还是没找到。 编辑:我正在尝试找到我的系统正在使用的确切实现。正如在注释和Link中提到的,它显然位于glibc的某个包装
..
男孩,这就是这样。A.琐碎。这个问题,但似乎没有人能回答正确。 如何将/dev/sda与/dev/sdb互换? 有人可以建议使用永久性标签(例如,/dev/disk/by-*),但是尽管用意是好的,但不能回答问题。是的,永久标签可以在你可以使用它们的地方工作,但如果一个程序被硬编码来使用,例如。/dev/sda,此问题仍然存在。 为了进一步说明我在互联网上找到的问题: http:
..
我使用带有定制设备树的内核linux-ti-staging-4.14为我的BBB构建了一个Yocto发行版(Rocko)。因为我需要将一个旧项目从Debian移植到Yocto,所以我还需要在内核中启用UIO功能,这也很好用。 现在,我还需要为UIO Pruss创建一个附加的设备树覆盖。我使用了here中的DTS文件,并通过bbappend: 扩展了内核配方 inherit kernel-de
..
我在收集挂钩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
..
我正在尝试构建Linux内核模块: KBUILD_EXTRA_SYMBOLS := ../../Module.symvers KBUILD_EXTRA_SYMBOLS := ../../dir0/Module.symvers KDIR = ../../../../kernel/linux-4.9 INCLUDES = -I../dir1/dir2/dir3 -I.
..
我已经编译了Android的Linux内核源程序。生成源代码后,我收到错误, 即 之后 $ARCH=arm CROSS_COMPILE=/path/to/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- make 我收到: CALL scripts/checksyscalls.sh
..
我正在尝试为ARM Linux编译AODV。我使用SabreLite作为内核版本为3.0.35_4.1.0的电路板。值得一提的是,我正在使用OpenEmbedded为我的主板创建我的Linux发行版。 AODV源代码(http://sourceforge.net/projects/aodvuu/)有一个自述文件,其中提供了一些关于如何在ARM上安装它的说明,如这里所述。 (http://w3.an
..
我正在尝试使用内核Linux,在引导过程中我遇到了一些错误: 我想从总体上了解Linux内核的引导过程是如何工作的,尤其是在startcore()函数和rootf加载期间和之后。 谢谢你们。 推荐答案 让我们举一个通过MMC在Beaglebone上移植Linux的例子。 您了解引导过程的概念。它是这样工作的- 首先,当我们打开电路板时,Boottrom代码执行(硬编码在电路
..
我正在将Linux kernel移植到TI(AM335xSK)板。但在引导主板时,它没有完全加载。它会停止,如下所示。 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3126496 Bytes = 3 MiB Load Address: 80008000 Entry Point: 800
..
我只是想更清楚地了解多核到底是做什么用的,以及多核和多CPU之间有什么区别。 我想了解的是,拥有多个核心是为了在给定的CPU内实现指令级并行,还是一个CPU内的多个核心都有自己的结构RQ,允许它们独立调用__Schedule()并随意调度进程/线程,然后由每个核心内的其他模块处理指令级并行。 如有任何意见,欢迎光临。 推荐答案 ILP单独位于每个物理核心中。 跨站复制:H
..