2011-03-21 70 views
0

我使用g_file_storage作为我的embedded linux上的驱动程序,以将其作为任何USB主机的大容量存储。我已经做得很好!修改linux内核中的现有模块

现在我需要做的更多....是捕获USB设备上弹出事件..这是一个功能不是由g_file_storage至今给出。

我已经function fsg_suspend()g_file_storage driver得到这个...它是常规的当Windows USB主机确实"Safely remove hardware"被调用.....

我在想添加一个简单的printk在发送简单的消息/var/log/messagefsg_suspend功能,我会从BeagleBoard用户空间看.....

,但即时通讯成为一个非常基本的内核编程疑问......如果你能帮助我....

IH大家写了简单的内核模块..这可以说module.c文件一个 我用简单的make命令编译它然后modprobe/insmod插入它,然后我用它...... 这是关于一个完全由我写的模块。

我也配置一个模块中的配置文件选项中号而重新编译内核.. 然后我就做,使模块,使modules_installmake_install 然后我们用modprobe使用特定功能..pl纠正我,如果我错了....

但这里有个模块是一个内核模块,如果我做出改变它,然后........

我能不能用它的makefile重新编译它...并做modprobe ...? 但这Makefile似乎并不支持这个想法..

它会干扰已运行的内核中该模块的现有副本? 或 我将不得不重新编译内核?

回答

0

我不明白大部分查询的前半部分。这个问题被标记为Linux和内核,那么为什么这么多关于Windows?

如果我理解正确,您必须禁用现有的设备驱动程序。最简单的方法就是在没有它的情况下重建内核。然后使用insmodrmmod命令加载和卸载新的驱动程序。

我不能从你提供的细节中知道,但也许有一种方法让新驱动程序与旧驱动程序并存。如果它不需要IRQ,或者它可以使用单独的IRQ,则可以创建新设备节点并独立于现有驱动程序使用它。

+0

关于windows只有一行不在吗? – num1 2011-03-21 07:25:52

+0

@ num1:看起来它被编辑得更清晰。 – wallyk 2011-03-21 16:32:20