kernel-module 相关问题

内核模块是一个运行时可加载的目标文件,它被加载到操作系统内核中以向正在运行的内核添加功能。示例包括设备驱动程序和其他内核项。

Linux 内核模块编程 - 挂钩 sys_wait4 系统调用

我尝试挂钩系统调用 sys_wait4 ,每次我尝试执行 rmmod 来模块内核时都会崩溃。 这是我的代码。 void **sys_call_table;//系统调用表的指针 typedef asml...

回答 1 投票 0

eBPF 与非 eBPF 跟踪点/kprobes

根据本文档(除其他外):https://blogs.oracle.com/linux/post/taming-tracepoints-in-the-linux-kernel 可以使用 eBPF 和其他内核提供的机制来注册 cal...

回答 2 投票 0

在 docker 容器内制作/构建内核模块

我目前的主机系统运行带有 docker 的 Mac OS。我的 Mac OS 主机系统生成了一个 docker 容器。 生成的 docker 容器当前正在运行 ubuntu:19.10 我正在努力...

回答 3 投票 0

字符设备、平台驱动和内核模块的区别

我是 Linux 内核设备驱动程序代码的新手。 一个问题又一个:以下之间的区别是什么: 字符设备 平台驱动程序 内核模块 我写这个问题是因为...

回答 1 投票 0

无线网卡的内核模块以.ko.xz而不是.ko结尾是什么意思

我使用的是 Fedora 38,无法安装 Broadcom BCM 43142 网络控制器的内核模块。 我最终明白这是因为模块没有正确签名并且我有...

回答 1 投票 0

Linux 内核模块使用 SOCK_RAW 处理 CAN 接口未接收数据

我正在尝试开发一个Linux内核模块,旨在使用原始套接字(SOCK_RAW)从CAN(控制器局域网)接口读取数据。 请注意,这是我第一次与 k 合作...

回答 1 投票 0

内核模块可以有配置文件而不是使用Proc或SysFS吗

我正在编写一个内核模块,需要大量没有默认值的配置选项。内核模块访问配置文件是否可以接受(我猜存储在...

回答 1 投票 0

内核参数更改信号

我想在内核(3.x)模块内使用参数: 静态字符参数= 0xff; module_param(param, ushort, S_IRUGO | S_IWUGO); MODULE_PARM_DESC(param, "一个参数"); 有没有可能...

回答 2 投票 0

使用 RtlHashUnicodeString 的 BaseDllName 哈希与现有 BaseNameHashValue 不匹配

BaseNameHashValue 是 LDR_DATA_TABLE_ENTRY 中的加载器数据表条目, 使用 RtlHashUnicodeString 存储 BaseDllName 的哈希值。 (参考:Windows 内部第七版第 1 部分系统架构...

回答 1 投票 0

KERNEL32.DLL 总是加载到 Windows 进程中的第三个模块吗?

我试图通过直接假设kernel32.dll始终是加载的第三个模块来查找kernel32基地址。 ModLoad:00400000 024077eb 图像00400000 ModLoad: 77ad0000 77c7f000 ntdll.dll

回答 1 投票 0

恢复意外删除的ko文件

我不小心删除了这些文件: 删除了“/usr/src/linux-headers-5.19.0-41-generic/include/config/HID_REDRAGON” 删除了“/usr/src/linux-headers-6.2.0-26-generic/include/config/HID_REDRAGON” 雷莫...

回答 1 投票 0

内核模块是访问设备寄存器的理想方式吗?

我在I.MX6ULL嵌入式linux平台上有一个电源管理设备(PF1550),其寄存器在uboot中配置一次。 我想要一些东西来提取固件中的寄存器...

回答 1 投票 0

如何正确探测平台设备?

我正在尝试创建一个平台驱动程序我有以下代码 模块 // SPDX 许可证标识符:GPL-2.0 #包括 #包括 #包括 我正在尝试创建一个平台驱动程序,我有以下代码 模块 // SPDX-License-Identifier: GPL-2.0 #include <linux/module.h> #include <linux/init.h> #include <linux/pm.h> #include <linux/of_device.h> #include <linux/fb.h> static int simple_probe(struct platform_device *pdev) { printk(KERN_ERR "SIMPLE: %s\n", "Probing"); return 0; } const struct of_device_id simple_of_match[] = { { .compatible = "example,simple", }, { /*End of List*/ }, }; struct platform_driver simple_driver = { .probe = simple_probe, .driver = { .name = "simple", .owner = THIS_MODULE, .of_match_table = simple_of_match } }; static int __init init(void) { if (platform_driver_register(&simple_driver)) { printk(KERN_ERR "SIMPLE: %s\n", "Registerered"); } else { printk(KERN_ERR "SIMPLE: %s\n", "Failed"); } return 0; } static void __exit deinit(void) { platform_driver_unregister(&simple_driver); } module_init(init); module_exit(deinit); MODULE_DESCRIPTION("Simple Platform driver"); MODULE_AUTHOR("Bret Joseph Antonio <[email protected]>"); MODULE_LICENSE("GPL"); 我的设备树似乎没有运行覆盖,因此设备状态正常。它仍然没有运行探测回调。 设备树 /dts-v1/; / { simple@0 { compatible = "example,simple"; pinctrl-names = "lcm_rst_out1_gpio", "lcm_rst_out0_gpio"; pinctrl-0 = <&PHANDLE1>; pinctrl-1 = <&PHANDLE2>; status = "okay"; }; }; 我希望内核注册我的驱动程序,然后运行探测函数,但是代码 if (platform_driver_register(&simple_driver) == 0) { printk(KERN_ERR "SIMPLE: %s\n", "Registered"); } else { printk(KERN_ERR "SIMPLE: %s\n", "Failed"); } 返回[ 0.178889] SIMPLE: Registered,但探测功能保持沉默。探针功能取决于什么? 难道它不应该在设备树中找到节点后立即运行探测吗? 您需要使用 struct of_device_id simple_of_match[] 语句将您的 MODULE_DEVICE_TABLE(of, simple_of_match); 公开/导出到 of(开放固件)子系统。 内核代码的约定是尽可能将所有符号声明为static。您的代码在这方面不一致,即 struct of_device_id simple_of_match[] 和 struct platform_driver simple_driver 是全局的。

回答 1 投票 0

如何将字符串中包含的地址分配给 C 中的指针

我目前正在尝试开发一个 Linux Ubuntu 内核模块(作为我任务的一部分),它基本上是在地址上安装一个观察点,指定为模块的字符串参数 *(char )。 电流...

回答 1 投票 0

简单的内核多线程

我是内核模块编程的新手,为了我的工作,我需要编写一个多线程内核模块。所以我尝试了内核线程的一些主要用途。我写了以下内容。它应该打印...

回答 3 投票 0

printk 和 pr_info 的区别

printk 和 pr_info 函数之间的确切区别是什么?在什么条件下,我应该选择其中一个而不是另一个?

回答 2 投票 0

DnsQuery_A:使用Windows内核例程获取系统中的所有DNS条目

我正在尝试使用某些 Windows 内核例程获取系统上的所有 DNS 条目,但没有找到内核模式下的任何例程。 我知道有用户模式 API DnsQuery_A/W 我可以去 itera...

回答 0 投票 0

Kali linux comman headers Makefile.lib 错误

我正在学习 Linux 内核开发,对于初始设置,我编写了一个简单的 make 文件。最初,我的 make 文件中出现“缺少分隔符”错误...

回答 0 投票 0

让内核模块链接到的标准内核库在哪里?

内核模块不能调用libc,因为libc运行在用户空间。 还有一些其他内核指定的 API,就像 printk() 一样,可以使模块正常工作。 据我了解,libc 是一个集合...

回答 3 投票 0

如何将我的配置文件添加到内核源代码树(arch/arm/configs)?

我有 SoM imx6ull 的 yocto 项目分发。我想从 yocto 项目源代码编译一个 linux 内核。从约克托出来。 $ cp -rpa build/tmp/work-shared/phyboard-segin-imx6ul-2/kernel-sour...

回答 0 投票 0

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.