kernel相关内容

Android:通过 AOSP 源代码创建新的系统权限.

我想知道如何编辑 Android 操作系统源代码以施加新的权限.例如,就像我们拥有 BLUETOOTH 权限一样,如果设备提供新的传感器,那么如何在应用程序级别创建适当的权限以便应用程序使用新传感器,在应用程序级别使用清单条目获取 android rom 中可用的新权限. 有人知道如何在 AOSP 源代码中在操作系统级别创建新的权限吗? 而且我认为如果我们修改了 android 源以添加新 ..
发布时间:2021-11-27 21:37:27 移动开发

是否有 64 位 UEFI ELF 引导程序?

我有 ELF 内核.所以我需要一个引导加载程序来加载我的 64 位 ELF 文件.我不需要过时的 Legacy BIOS 引导加载程序,我需要带/不带 GUI 的 UEFI 引导加载程序. 解决方案 我有 ELF 内核.所以我需要一个引导加载程序来加载我的 64 位 ELF 文件. 你有一个 ELF 内核;所以你可能需要一个引导加载程序: 加载内核的 ELF 文件 告 ..
发布时间:2021-11-25 07:37:52 C#

QEMU 托管启用 MTE 的内核不会引发故障

我正在尝试在 QEMU 环境(运行支持 MTE 的内核)上编译和测试 ARMv8.5 MTE 扩展. 我尝试在承载启用 MTE 的内核的 QEMU 上引发错误.我有一个简单的 C 代码,我运行它应该会因为 MTE 而引发错误,但它运行得很好(附加日志和信息).我在 x86 机器上将代码交叉编译为 arm64,并带有相关的 clang MTE 相关标志. 在 5.4.0-1040-gcp ..
发布时间:2021-11-17 22:45:26 其他开发

QEMU - “启动内核"后没有内核输出;

我尝试在 QEMU 自创机器上启动预编译内核. 串口外设已配置,我可以成功启动本机预编译的U-boot镜像. 在 U-Boot 中,所有串行 IO 都运行良好(内存寻址和 UART 地址也在机器设置中准备好).使用选项 -nographic 我可以在 UBoot 命令提示符下读写. 我可以在 Uboot 中发出 bootm 命令来将内核加载到 RAM 并启动它.我看到的最后一个字 ..
发布时间:2021-11-17 22:42:22 其他开发

sabre sd 如何在没有 SPL 的情况下直接从 uboot 启动

sabre sd 基于 imx-6,它具有大约 150Kb 的最大内部 RAM.但是 uboot 足够大以适应这个空间.在这个场景中事情如何运作?https://community.freescale.com/docs/DOC-95015 在此飞思卡尔文档中,仅使用 uboot 为 sabre sd 启动创建 SD 卡. 解决方案 简短回答:SRAM 多小并不重要,因为 U-Boot ..
发布时间:2021-11-17 22:30:16 其他开发

ARM的交叉编译内核模块

我想在 x86 Ubuntu 13.04 上交叉编译 rtl8192cu 驱动程序,目标是 ARM Angstrom (BeagleBoard). 交叉编译先决条件: rtl8192cu 驱动程序 跨工具链(CodeSourcery/arm-angstrom-linux-gnueabi) 内核源 出于这个原因,我复制了 BeagleBoard 的内核源代码 usr/src 目 ..
发布时间:2021-11-17 22:24:26 其他开发

ARM 系统模式在嵌套中断中如何有用?

谁能解释一下,当我们嵌套中断时,系统模式究竟是如何工作的? 根据 ARM 网站 ARMv4 和更高版本的体系结构包含一个称为系统模式的特权模式,以克服这个问题.系统模式与用户模式共享相同的寄存器,可以运行需要特权访问的任务,并且异常不再覆盖链接寄存器. 那么系统模式如何使用用户模式的寄存器? 最多可以处理什么层次的嵌套中断? 解决方案 尝试在 IRQ 模式下处理嵌套 ..
发布时间:2021-11-17 22:23:15 其他开发

用于 arm 内核 defconfig 的 buildroot

我正在尝试使用内核映像构建 buildroot,在执行 make menuconfig 和 make 后,我得到: 未指定内核 defconfig 名称,请检查您的 BR2_LINUX_KERNEL_DEFCONFIG 设置 我可以为 defconfig 设置一个字符串,但我不知道该放什么. 我的目标系统是 AT91SAM9RL 板. 编辑:我发现有些设备有一些预制的配置文件,实际 ..
发布时间:2021-11-17 22:18:20 其他开发

在 Linux ARM 上运行适用于 Android 的 ARM 二进制文件

是否可以在其他配备 Linux 的 ARM 设备(例如 Raspberry Pi)上运行为 Android 构建的 ARM 二进制文件(而不是 .apk)?我正在尝试将我的一个项目移植到 ARM 上,但我需要使用仅适用于 x86(Windows 和 Linux)和(最近的)Android 设备的闭源二进制文件 (SopCast). 运行 file sopclient 显示 ELF 32 位 ..
发布时间:2021-11-17 22:10:10 其他开发

设备树和代码大小

根据我对设备树的理解,主要用途之一是从驱动程序中删除特定于平台的代码以支持多个平台.设备树如何处理单个外围设备的多个配置? 例如,如果我想在平台 A 中使用 LCD 面板 A,在平台 B 中使用 LCD 面板 B,我是否需要在最终的二进制文件中同时保留 LCD 面板 A 和面板 B 的相关代码?如果是这种情况,并且有多个外围设备有多个选项,那么二进制文件中似乎会有大量额外代码. 解决方 ..
发布时间:2021-11-17 22:09:30 其他开发

内核如何知道当前线程是什么?

有人可以在这里向我解释这段代码吗 取自 linux 内核? /** 如何从C中获取线程信息结构体*/静态内联结构 thread_info *current_thread_info(void) __attribute_const__;静态内联结构 thread_info *current_thread_info(void){注册 unsigned long sp asm ("sp");return ..
发布时间:2021-11-17 22:07:06 其他开发

抢占和上下文切换的区别

一点介绍, 我目前正在编写一个小的(读取微小的)RTOS 内核,它应该是内核中的大部分内容的整体.但是,我找不到关于下面列出的一些事情的太多信息,这会很有帮助,除此之外,它实际上不是某种大学项目,而是我自愿做的事情. 回答所有问题的一个更好的选择是,如果你能向我推荐一个免费提供的 RTOS(甚至是一本免费的书),最好是用于 arm 的,它实现了用户空间并且是可抢占的(但并不复杂)像Li ..
发布时间:2021-11-17 22:05:31 其他开发

如何解读 ARM 的 SMC 调用?

我一直在阅读 Android 的内核,以了解 CPU 内核(也称为 DVFS、DCVS)的动态电源管理是如何完成的.我在这里找到的代码 调用以下函数(定义 here) 依次调用 SMC 汇编指令. ARM 有一份文档解释了 SMC 调用约定,但我一直无法使用它来理解以下功能.如何根据输入操作数进一步追踪 SMC 指令以查看它实际执行的操作? s32 scm_call_atomic4_3(u ..
发布时间:2021-11-17 22:00:38 其他开发

ARM Linux 内核驱动程序中的关键时序

我在 MX28 (ARMv5) 上运行 linux,并使用 GPIO 线与设备通信.不幸的是,该设备有一些特殊的时序要求.GPIO 线上的低电平不能持续超过 7us,高电平没有特殊的时序要求.该代码作为内核设备驱动程序实现,并通过直接寄存器写入来切换 GPIO,而不是通过内核 GPIO api.为了测试,我只是生成 3 个脉冲.该过程如下,全部在一个函数中,因此它应该适合指令缓存: 设置gp ..
发布时间:2021-11-17 21:51:50 其他开发

Linux 内核:在 paging_init 时零页分配的作用

我正在尝试了解 arch/arm 启动时的内核内存预留. 在setup_arch() 中有一个调用 paging_init() 用于设置页表、区域内存映射的初始化等.在分配实际的mem_map之前,它还分配了一个零页. void __init paging_init(const struct machine_desc *mdesc){void *zero_page;---zero_page ..
发布时间:2021-11-17 21:48:47 其他开发

创建新任务时,linux内核如何唤醒空闲处理器?

我是 Linux 内核的新手.目前,我查看了空闲代码并有一个问题.当处理器在它们自己的运行队列中没有任何任务时,它可能进入空闲模式,特定的 WFI(等待中断).(我提到的都是关于 ARM 架构而不是 X86.所以 X86 有问题.)停留在 WFI 状态后,可能其他处理器(非空闲)想要传播他们的任务是空闲处理器(通过负载平衡).当时一个繁忙的处理器使任务迁移.在我看来,当任务迁移时,空闲处理器应该立 ..
发布时间:2021-11-17 21:47:31 其他开发

谁在刷新 Linux 中的硬件看门狗?

我有一个运行 2.6 内核的处理器 AT91SAM9G20.看门狗在引导级别启用并配置为 16 秒.看门狗模式寄存器只能配置一次.当代码在引导程序、引导加载程序或内核中挂起时,电路板会重新启动.但是一旦内核启动,即使在任何应用程序中没有刷新看门狗,16 秒后板也不会被重置,而是 15 分钟. 谁在刷新看门狗? 在我们的例子中,看门狗应该受到应用程序的影响,以便在我们的应用程序挂起时电路 ..
发布时间:2021-11-17 21:46:05 其他开发