问题标签 [kernel-module]

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.

0 投票
2 回答
847 浏览

linux-kernel - printk 第二个输出

当我 printk(KERN_INFO, ...) 时,我得到如下信息:

<6>[116584.000183] ...

方括号之间的数字究竟是多少?

0 投票
2 回答
11997 浏览

linux-kernel - 从 linux 内核模块访问串行端口

你好 Linux 内核驱动大师!

我正在为使用串行接口进行配置的相机编写 v4l2 驱动程序。我希望驱动程序配置相机,因为它使客户端代码在相机型号之间保持一致。问题是:从驱动模块访问相机串行接口的最佳方式是什么?

据我所知,从内核驱动程序访问文件是一个很大的禁忌,但它可以做到。因此,我目前正在使用以下代码片段,但感觉就像是 hack。

我的问题是:这样做的正确方法是什么?

0 投票
1 回答
65 浏览

linux-kernel - 我的模块去哪儿了?

但是当我lsmod |grep try,什么都没有显示,为什么?

0 投票
1 回答
3417 浏览

android-emulator - 将新编译的 Linux 内核映像加载到 android 模拟器(1.5)时出错

我已经成功为 android 编译了 Linux 内核:

但是在模拟器中加载此图像时出现以下错误:

并且模拟器没有以新的内核映像启动(模拟器没有重新启动)。这里有什么问题..??以及如何用新编译的 Linux 永久替换我的模拟器的图像?

请帮忙。谢谢你!

0 投票
2 回答
1753 浏览

linux-kernel - netfilter 预路由钩子中的源 nat

我们正在开发我们自己的内核模块,该模块在 netfilter 预路由钩子中执行高级源 nat。从 Linux 内核 2.6.32 (Ubuntu 10.04) 升级到 2.6.35 (Ubuntu 10.04 lucid-back-ports) 后,似乎 SNAT 化的数据包被简单地丢弃在 Linux 内核中。

我知道从不建议在一般用途的预路由挂钩中完成 SNAT(Netfilter 邮件列表),但是仍然有一些原因我们更愿意在做出实际路由决定之前进行源 natting。

有没有人开发过在 2.6.35+ linux 内核的 netfilter 预路由钩子中执行 SNAT 的内核模块的经验?究竟应该在 linux-kernel/netfilter-kernel-module 代码中进行哪些更改,以便不会丢弃经过 SNAT 处理的数据包?也许预路由中的 SNAT 对于 2.6.35+ Linux 内核来说只是一个坏主意,我们应该更好地使用 nf_marks 进行路由决策并在后路由中进行 SNAT?

我在 X86_64 上使用带有反向移植 Linux 内核 (2.6.35) 的 Ubunut 10.04。

0 投票
3 回答
318 浏览

linux-kernel - 我应该修改 linux 2.6 内核中的哪个模块来计算发送/接收的 ip 数据包的数量?

我需要修改一个内核模块来计算机器通过我的无线适配器为 linux 2.6 内核发送/接收的数据包数量。请让我知道我应该修改哪些模块。任何参考资料也会有所帮助。

0 投票
2 回答
6963 浏览

linux - 分析 Linux 内核模块

我有兴趣为 Linux 内核分析一个模块。我试过这样:

  1. 构建内核CONFIG_PROFILING=y
  2. 启动内核profile=2
  3. 重置探查器echo 123 > /proc/profile
  4. 该模块已由专用守护程序成功加载
  5. ioctl通过特定调用运行正在使用该模块的用户空间应用程序。测试应用程序按预期工作,因此模块工作正常。
  6. 使用System.app与内核一起生成的readprofile -p /proc/profile -m System.map位置读取分析信息。

到现在为止还挺好。几乎一切都按预期工作。然而,不起作用的是我没有得到任何关于我的模块的信息,即没有提到模块中的任何功能。

但是,再想一想,我记得我忘记使用CONFIG_PROFILING=y.

所以,我的问题是:该模块没有出现在分析日志中是因为它没有被编译,CONFIG_PROFILING=y还是有其他一些我不知道的更明显的原因?

如果有人想知道,为什么我要问而不是立即尝试,那是因为,我不能在家里做,我想在我再次访问代码之前听听知识渊博的人会说什么。

0 投票
2 回答
16169 浏览

ubuntu-10.04 - 在内核模式和用户模式之间使用ioctl通信

我想使用 ioctl 与我的内核模块进行通信。我已经编写了两个 c 程序,一个用于内核模块,另一个用于用户模式。编译内核模块时出现此错误:

错误:初始化程序中指定的未知字段“ioctl”

在这一行:

知道为什么会这样。

谢谢

0 投票
2 回答
16247 浏览

linux-kernel - 如何确定 Linux 内核模块是否正在泄漏内存

为了测试内核泄漏内存时的行为,我正在编写一个不断分配内存的内核模块,例如代码看起来像

此代码在 init_module 中。我有以下问题

  1. 如何判断代码是否有内存泄露?lsmod 没有透露太多。
  2. 网上的教程只展示了init_module和exit_module中的代码。如果我希望在插入模块之后但退出之前的一段时间内进行内存分配怎么办?
  3. 我是否可以编写仅在用户发出指令时才泄漏内存的代码,例如,用户空间程序可以进行系统调用,从而导致模块泄漏内存?
0 投票
3 回答
4707 浏览

c - 用于 USB 的简单内核模块

我正在尝试熟悉 Linux 内核模块。所以我写了这个在usb上工作的最简单的模块。我不确定我错过了什么。正在加载模块。同样在 dmesg 我可以看到:

但是当我插入 USB 棒时,我的 testusb_probe 函数没有被调用。知道我哪里出错了。这是模块的代码: