linux-kernel相关内容

Git 全局标签——显然很糟糕,但为什么呢?

在他的 2005 年发送给 Linux 内核邮件列表的电子邮件中,Linus Torvalds 非常强调 git 中的标签应该是私有的,并且在从其他人那里获取时不会自动包含在内: 拉一个常规的头部不能和必须不更新标签.标签不是与树相关联,它们不能和必须 不如此,完全正确因为这会使它们成为全局而不是私有的,而且它会从根本上使它们不被分发 和: 认为获取别人的树是错误的,错误的,错误 ..
发布时间:2022-01-18 21:29:36 其他开发

返回输出之前在后台运行的 Python 子进程

我有一些 Python 代码想用 perf 进行调试.为此,我想使用子流程.以下命令返回进程的指令相关信息,直到通过 Ctrl^C 退出命令. perf stat -p 现在,我想在后台的 Python 代码中运行它,直到我希望能够终止它的操作并打印命令输出.表达我的意思: x = subprocess.call(["perf","stat","-p",str(GetMyProcessID ..
发布时间:2022-01-18 16:17:42 服务器开发

uboot如何在不使用DTS的情况下将硬件信息传递给内核

我是嵌入式 Linux 开发的新手.我必须将 uboot 和自定义 Linux 发行版移植到新的基于 ARM 的板上. 我们使用的uboot(2009.08)没有Arch和DTS文件夹.我想这是一个旧版本,它不使用 DTS 将硬件信息传递给内核(v 3.0).我已经阅读了很多关于 DTS 的信息,但是关于将硬件信息从 uboot 传递到我们正在使用的内核的这种(过时的?)方法,互联网上没有足 ..
发布时间:2022-01-17 14:16:24 其他开发

为了处理 arm cortex A9 上的中断,Linux 内核需要多少条指令?

我想估计一个 ARM cortex A9 单核处理一个 IRQ 所需的操作码数量. 假设我使用 Linux 内核 3.4,调用 irq 并执行 irq_handler 需要多少操作码? 解决方案 你的问题是关于如何计算Linux 的中断延迟.至少您可能对中断开始之前需要多长时间感兴趣.我们将在这里忽略 irqs 的这一方面. 一种简单的方法是切换 GPIO 并使用范围来测量中断 ..
发布时间:2022-01-17 14:13:17 服务器开发

如何使用 C 程序将 ARM 处理器置于不同的模式?

我正在经历不同模式的 ARM 处理器.我想在不同模式下检查处理器状态(例如:寄存器值). 那么有人可以帮我找出将处理器置于不同模式的示例代码吗? 例如,我找到了未定义模式的代码:asm volatile (".short 0xffff\n"); 解决方案 如果您想从用户空间测试模式,这是一个难题.如果系统中没有 FIQ 外围设备,则可能无法进入 FIQ 模式.您的系统可能根本没 ..
发布时间:2022-01-17 14:05:59 其他开发

ARM Linux Atags 与设备树

设备树和 ATAG 有什么区别?此外,ATAG 是必须的吗?内核是否希望它们位于固定地址,还是希望它们位于 r0-r3 中? 解决方案 设备树描述了内核用于选择要加载哪些驱动程序、所有 MMIO 接口在哪里等硬件的所有信息.ATAG 只描述了诸如在哪里可以找到 initrd 和内核参数、内存等内容——关于机器的其他所有内容都被硬编码到内核中. 现在首选的方法是使用设备树而不是 ATA ..
发布时间:2022-01-17 14:00:17 服务器开发

U-Boot 在加载内核时挂起?

我正在研究飞思卡尔开发板 imx50evk.我已经使用 LTIB(Linux 目标映像生成器)构建了 uboot.bin 和 uImage.在 U-Boot 提示符下我输入 bootm addr 命令,然后它在显示消息“Loading Kernel..."后挂起 >MX50_RDP U-Boot >开机MMC 读取:dev #0,block #2048,count 6290 partition ..
发布时间:2022-01-17 13:48:39 其他开发

linux内核如何管理不到1GB的物理内存?

我正在学习 linux 内核内部结构,在阅读“理解 Linux 内核"时,我遇到了很多与内存相关的问题.其中之一是,如果我的系统上仅安装了 512 MB 的物理内存,Linux 内核如何处理内存映射. 据我所知,内核将 0(或 16)MB-896MB 物理 RAM 映射到 0xC0000000 线性地址并可以直接寻址.所以,在上述我只有 512 MB 的情况下: 内核如何从 512 M ..

如何在 ARM 上使用 kgdb?

我使用 ARMv7 作为目标机器.我已经为目标编译了 Linux 源代码 2.6.34.13. Target 使用 minicom 通过串口与主机(Linux 开发机)连接. Target 已加载新内核并在命令提示符下启用 KGDB. $ echo ttyAMA0 >/sys/模块/kgdboc/参数/kgdboc$回声g>/proc/sysrq-触发器 正在输入 KGDB... ..
发布时间:2022-01-17 13:40:15 其他开发

arm-eabi arm-gnueabi 和 gnueabi-hf 编译器之间的区别

arm-eabi、gnueabi 和 gnueabi-hf 交叉编译器有什么区别?我发现很难选择适合我的目标平台的可执行文件.arm 有本地编译器吗? 解决方案 我不太确定: eabi 代表将在裸机臂核心上运行的代码编译. gnueabi 代表 linux 的代码编译 对于 gnueabi/gnueabi-hf 部分,我在这里找到了答案.p> gcc-arm-linux-g ..
发布时间:2022-01-17 13:33:35 服务器开发

处理 ARM 信任区

ARM 有一个叫做 TrustZone 的东西.根据 ARM 文档,它使进程可以在安全/非安全世界中运行. 安全/非安全世界是什么意思.是与处理器执行模式有关还是与设置内存区域的权限或其他有关. ARM 的 7 种操作模式与安全/非安全世界之间是否有任何关系. 如何在 ARM 中启用 TrustZone. 这是从哪个版本的 ARM 引入的. 是否必须使用此 TrustZone.lin ..
发布时间:2022-01-17 13:30:58 其他开发

如何在 Linux 中刷新地址空间区域的 CPU 缓存?

我对仅针对地址空间区域刷新缓存(L1、L2 和 L3)感兴趣,例如从地址 A 到地址 B 的所有缓存条目.在 Linux 中是否有这样做的机制,无论是来自用户还是内核空间? 解决方案 查看此页面以获取 linux 内核中可用的刷新方法列表:https://www.kernel.org/doc/Documentation/cachetlb.txt Linux 下的缓存和 TLB 刷新. ..
发布时间:2022-01-17 13:28:52 服务器开发

ARM 系统调用的接口是什么,它在 Linux 内核中定义在哪里?

我已经阅读了 Linux 中的系统调用,并且到处都给出了有关 x86 架构的描述(0x80 中断和 SYSENTER).但我无法追踪 ARM 架构中系统调用的文件和进程.谁能帮忙. 我知道的几个相关文件是: arch/arm/kernel/calls.S arch/arm/kernel/entry-common.S(需要解释) 解决方案 在 ARM 世界中,您通过 sup ..
发布时间:2022-01-17 13:27:28 服务器开发

Linux 内核 ARM 异常堆栈初始化

我在 Freescale i.MX6 (ARM Cortex-A9) 上使用 Linux 内核 3.0.35.在遇到内核 OOPS 后,我试图了解异常堆栈初始化.这是我目前所发现的. 在 arch/arm/kernel/setup.c 的 cpu_init() 中,我看到异常堆栈正在初始化: 结构栈{u32 中断[3];u32 abt[3];u32 和 [3];} ____cachelin ..
发布时间:2022-01-17 13:26:15 其他开发