.kmod 和 .ko - 区别?

问题描述 投票:0回答:2

一直在使用 Ndisgen 尝试为我的 Freebsd 9 上网本的 rtl8192se 驱动程序生成 .ko 内核模块,并遵循在几个不同的开发博客网站上找到的说明。

不知何故,我无法生成扩展名为 .ko 的文件。相反,我不断收到 .kmod 文件。 问题是,这些有什么区别?

我还尝试了 kldload 这个 .kmod 文件。当我通过 kldstat 检查它时,好吧,我在那里看到它,但是,当我用 dmesg 和 pciconf -lv 检查时,我的 Realtek 卡仍然没有连接。

所以我认为我确实需要首先生成 .ko 文件,但是我做错了什么或遗漏了什么,以至于只生成了 kmod ? 任何指示将不胜感激!谢谢! :)

更新::

有一条消息我忽略了。

我的错!

转换后的消息是:

“...正在清理... rm:机器:目录清理失败。正在退出”

这都是因为我粘贴了“/usr/include/machine”文件夹的副本,其中包含我认为转换驱动程序的路径中所需的所有标头。

但我忽略了它,因为 ndisgen 已经创建了一个 .kmod 文件(我认为这也是一个内核模块,只是不是 .ko 形式),那么就可以了。

最后,因为它抱怨它是一个目录并且无法清理,所以我创建了一个指向该文件夹的符号链接。

瞧瞧!清理成功,现在我有了 .ko 文件! :D

driver wifi kernel-module freebsd
2个回答
1
投票

ndisgen
脚本将
.ko
文件暂时重命名为
.kmod
以进行一些清理。

如果清理工作有效,它应该将其重命名回

.ko
文件。请参阅
drvgen
函数
/usr/src/usr.sbin/ndiscvt/ndisgen.sh
。 我假设两次重命名之间出了问题。您收到任何错误消息吗?

请记住,如果您加载驱动程序,它应该显示为

ndis0
设备!


1
投票

看起来您正在获取 NetBSD 内核模块,而不是 FreeBSD 内核模块。请参阅这些帖子:

hubertf 的 NetBSD 博客 现代网络bsd内核模块

您使用的源代码是否公开可供我们尝试按照您的步骤操作?

© www.soinside.com 2019 - 2024. All rights reserved.