Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1609279
  • 博文数量: 245
  • 博客积分: 10378
  • 博客等级: 上将
  • 技术积分: 2571
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 08:19
文章分类

全部博文(245)

文章存档

2013年(4)

2012年(8)

2011年(13)

2010年(68)

2009年(152)

分类: LINUX

2010-03-14 22:52:22

insmod 加载驱动模块
也可以使用modprobe  加载驱动模块
例如:驱动模块为leds.ko,
insmod leds.ko
modprobe leds就可以了
这里两条命令的区别,还有区别就是modprobe会检测与该驱动相关的模块,并自动加载相应需要的模块。
 
加载后,就需要创建设备了,
可以使用的命令是mknod,
命令的格式是:
mknod  设备名   设备类型(字符:c,块:b)  主设备号 从设备号
例如;
mknod  /dev/leds c 210 0
 前提是要获取正确的 主设备号 从设备号,
如果主设备号 从设备号不正确,虽然在/dev下可以看到建立的设备,但如果open()会返回no device等错误.
 
如果在insmod or modprobe知道模块正确的主设备号 从设备号呢?
可以查看 /proc/device 文件的内容,例如:
Character devices:
  1 mem
  4 /dev/vc/0
  4 tty
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  7 vcs
Block devices:
259 blkext
  7 loop
  8 sd
 31 mtdblock
 65 sd
 66 sd
 67 sd
 
分别显示字符设备与块设备,
左边是主设备号,右边的是设备名。
这个设备名就是你在驱动程序中
regiser_chrdev_region()或alloc_chrdev_region()
中指定的设备名。
 
 
 
 
阅读(11677) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~