archim
驱动牛犊
驱动牛犊
  • 注册日期2001-08-18
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1857回复:9

将一个驱动程序编入内核之后,应该怎么样启动它呢?

楼主#
更多 发布于:2003-06-18 14:35
希望各位指教!
archim
holymoon
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2006-01-11
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-18 17:28
不需要你手动,在核心启动的时候就自动启动了!
Pharos
驱动牛犊
驱动牛犊
  • 注册日期2001-08-13
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-20 16:33
前提条件是你的Driver是可以正常工作的,如果你的系统中有这个设备,你的Driver就可以probe到,然后注册到系统中,如果没有这个设备,你的Driver就不会工作。

没有我,你怎么办,你的泪水谁为你擦干; 谁为你打伞,安慰你心寒,失眠的夜你最怕孤单。
archim
驱动牛犊
驱动牛犊
  • 注册日期2001-08-18
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-20 16:40
如果这个驱动是象linux device driver一书中的snull那样的虚拟的设备驱动程序,不与任何硬件设备相关,那怎么probe呢?

驱动程序我测试过了,如果编译成module的形式,用insmod启动是没有问题的。
archim
unix1998
驱动老牛
驱动老牛
  • 注册日期2002-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-21 11:21
驱动程序在不使用的时候,不一定启动,只有使用的时候会启动。
hbzx
驱动牛犊
驱动牛犊
  • 注册日期2001-11-28
  • 最后登录2003-06-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-24 22:11
可以在某个C文件(我记不清了)中加入你的初始化函数(**_init( ))即可。可以看一下linux源码下drivers/char下的例子,看它们的(**_init() )放在那里调用的。仿造调用即可。
Levis75
驱动小牛
驱动小牛
  • 注册日期2001-08-06
  • 最后登录2006-06-28
  • 粉丝0
  • 关注0
  • 积分68分
  • 威望7点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-26 09:43
You just need add the following codes in you driver:
#include <linux/module.h>

module_init (your_modinit);
module_exit (your_modexit);

And your driver module will be initialized in start_kernel:
#ifdef CONFIG_MODULES
init_modules();
#endif
archim
驱动牛犊
驱动牛犊
  • 注册日期2001-08-18
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-26 11:48

And your driver module will be initialized in start_kernel:
#ifdef CONFIG_MODULES
init_modules();
#endif

这段话加到什么地方,是我自己的驱动程序里面吗?
archim
Levis75
驱动小牛
驱动小牛
  • 注册日期2001-08-06
  • 最后登录2006-06-28
  • 粉丝0
  • 关注0
  • 积分68分
  • 威望7点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-26 13:56
Add the following codes in your driver codes.
\"#include <linux/module.h>

static int __init your_modinit(void)
static void __exit your_modexit(void)
module_init (your_modinit);
module_exit (your_modexit);\"

And check the following codes in Start_kernel( ) in init/main.c file:
\"#ifdef CONFIG_MODULES
init_modules();
#endif\"
stonepine
驱动牛犊
驱动牛犊
  • 注册日期2002-12-09
  • 最后登录2009-03-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-23 03:24
Levis75说得很对,呵呵
游客

返回顶部