问题标签 [insmod]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kernel - 如何配置 modprobe 来查找我的模块?
我正在尝试让内核模块在启动时加载。
如果我运行insmod /path/to/module.ko
,它工作正常。但是每次重新启动时都必须重复此操作。
如果我运行modprobe /path/to/module.ko
,它找不到模块。我知道 modprobe 使用了一个配置文件,但是即使将 /path/to/module.ko 添加到 /etc/modules 后,我也无法让它加载模块。
什么是正确的配置?
linux-kernel - 添加 insmod 内核 HID 模块
我在隐藏模块中做了一些修改。
我可以成功地将它加载(insmod)到内核 v 2.6.27.14
现在我愿意在内核 v 2.6.27.11 上加载相同的内核模块
由于两个内核版本的 kerbel 源文件没有区别
我可以成功,但我不能在这个 .11 内核版本中添加 /insmod
**
**
问候,
linux - 有没有办法让 Splint 或类似的静态检查器与 Linux 内核模块一起工作?
我从“ The Linux Kernel Module Programming Guide ”编译(没有警告)hello-5.c
示例,当我尝试对其进行安装时,我收到以下错误:
我想我会尝试夹板看看它是否出现任何明显的错误,但是当我运行它时,我从内核头文件中收到了一系列警告,直到它试图解析asm/types.h
所以真的有两个问题:
- 如何修复 insmod 错误?
- 如何让夹板与内核头文件配合得很好?
android - 如何在 Nexus S 上的 Android 姜饼中手动加载 wlan 模块
我正在尝试使用命令行连接到 ad-hoc 网络而没有激活设置中的 Wifi。当使用“insmod /system/modules/bcm4329.ko”加载时,我的 nexus S 只是挂起。'dmesg' 显示未找到固件;fw_bcm4329.bin 实际上在 /system/vendor/firmware/fw_bcm4329.bin 中:
将固件链接到所需位置无济于事。问题:谁能帮我理解 Nexus S 是如何加载这个模块的?
文件 /hardware/libhardware_legacy/wifi/wifi.c 有以下几行:
问题:wifi 模块的路径是否在某处重新定义?
谢谢
init - 在引导期间从外部媒体 insmod
我正在尝试在启动过程中通过 initramfs 脚本在外部媒体上安装内核模块。
我想知道在insmod之后媒体是否应该保持对系统可用或系统临时复制它以使用它?
毕竟可以通过外部媒体插入内核模块吗?
谢谢
unix - 如何确定特定模块是否加载到 linux 内核中
我只是好奇是否有任何方法可以确定是否加载/安装了特定模块。
$lsmod 列出所有模块(加载的设备驱动程序)。
如果轮询模块名称,是否有任何方法可以检查或返回真/假布尔输出的命令。例如。如果keyboard.o 存在,则返回true,否则返回false。我需要这个提示来完成我的驱动程序自动刷新程序。
PS:试过modinfo。我在我的测试 DUT 中使用了 busybox 客户端,所以你能提供一些除 modinfo 之外的替代方案吗?
linux - 想要将内核驱动程序永久挂载到系统中
我为 USB 设备编写了自己的内核驱动程序。在我用 make 编译它之后,我有 kernelobejct 文件 usbdriver.ko 和 sudo insmod usbdriver.ko 我可以安装然后使用它。但是如果我重新启动我的 Debian,我需要再次执行 insmod 才能使用它......我怎样才能将该驱动程序永久安装/安装到系统中,以便在操作系统启动时加载它?我如何才能授予除 root 以外的其他用户访问 /dev/usbdriver0 下的关联设备文件的权限?
c - 将模块移植到较新的 Linux 内核:无法分配内存
我有一个相当大的驱动程序模块,我正在尝试为最近的 Linux 内核(3.4.4)编译。我可以insmod
使用 2.6.27.25 内核成功编译和相同的模块。GCC 版本也不同,4.7.0 和 4.3.0。请注意,这个模块非常复杂,我不能简单地浏览所有代码和所有 makefile。
当“插入”模块时,我得到一个Cannot allocate memory
带有以下痕迹的:
显而易见的答案似乎是该模块分配了太多内存,但是:
- 我对旧内核版本没有问题,这个模块的大小是多少
- 如果我修剪该模块的某些部分以获得更低的内存消耗,我将始终收到与新内核相同的错误消息
- 我可以卸载许多其他模块,但它没有影响(它是否仍然相关?Linux 是否存在关于模块总内存使用量的全局限制)
因此,我怀疑新内核的问题与有限的内存没有直接关系。
新内核抱怨 avmalloc()
为 30,000 KB,但对于旧内核,lsmod 给我的大小为 4,800 KB。这些数字应该直接相关吗?是否有可能在构建过程中出现问题并且请求的 RAM 过多?当我编译两者的部分大小时.ko
,我看不出有很大的差异。
所以我试图了解问题出在哪里。当我检查转储堆栈时,我找不到匹配的代码。似乎故障vmalloc()
是由 完成的sys_init_module()
,它init_module()
来自kernel/module.c
。但是代码不匹配。当我检查我的目标代码时.ko
,init_module()
代码也不匹配。
我或多或少被阻塞了,因为我对内核不够了解,而且所有的构建系统和模块加载都很难理解。该错误发生在模块加载之前,因为我怀疑某些功能丢失并且insmod
此时不报告这些错误。
windows - linux/windows内核模块中的无限循环
如果我在 ubuntu10.04 linux 内核中安装一个运行的模块
部分地init_module
,整个系统停止。
while(1);
但是,如果我在部分运行的 Windows 7 中加载一个 sys 文件DriverEntry
,系统会变慢但仍然可以工作。
有人可以解释一下为什么两个系统不同以及内核内部发生了什么吗?...
我认为在第一种情况下(无限循环init_module
),系统没有理由停止。因为即使我while(1);
进入init_module
,它也在insmod
用户应用程序的上下文中运行。因此必须通过硬件中断信号来调度流程无限循环。
这只是我的看法,如果我错了,我想知道细节......
linux-device-driver - add_disk() 挂在 insmod 上
我正在编写一个 Linux 块设备驱动程序,并且我有很多初始化工作。但是,当我最终调用时add_disk()
,模块在insmod
.
有问题的片段在这里: