一直在使用Ndisgen尝试为我的Freebsd 9上网本生成一个rtl8192se驱动程序的.ko内核模块,并按照几个不同的开发者博客网站上的说明进行操作。
不知何故,我还没能生成扩展名为.ko的文件。相反,我一直在获取.kmod文件。 问题是,这些之间有什么区别?
我也尝试过这个.kmod文件的kldload。当我通过kldstat检查它时,好吧,我在那里看到它但是,当我用dmesg和pciconf -lv检查时,我的realtek卡仍未连接。
所以我认为我真的需要首先生成.ko文件,但是我做错了什么或丢失了,这样只生成一个kmod? 任何指针将不胜感激!谢谢! :)
更新::
我忽略了一条消息。
我的坏!
转换后的消息是:
" ...清理... rm:machine:目录清理失败。退出"
这一切都是因为我粘贴了" / usr / include / machine"我认为在我转换驱动程序的路径中需要所有标题的文件夹。
但是我忽略了它的想法,因为ndisgen已经创建了一个.kmod文件(我假设它也是一个内核模块,只是不是.ko形式)然后就没事了。
最后,因为它抱怨它是一个目录并且无法清理,所以我创建了一个指向该文件夹的符号链接。
瞧瞧!干净是成功的,现在我有.ko文件! :d
答案 0 :(得分:0)
看起来你正在获得一个NetBSD内核模块,而不是FreeBSD模块。见这些帖子:
hubertf's NetBSD Blog Modern net bsd kernel module
您公开使用的源代码是否可以让我们按照您的步骤进行操作?
答案 1 :(得分:0)
ndisgen
脚本暂时将.ko
文件重命名为.kmod
以进行清理。
如果清理工作正常,则应将其重命名为.ko
文件。请参阅drvgen
函数/usr/src/usr.sbin/ndiscvt/ndisgen.sh
。
我假设两个重命名之间出了问题。你收到任何错误信息吗?
请注意,如果您加载了驱动程序,它应该显示为ndis0
设备!