[嵌入式linux] 加载驱动

[复制链接]
 楼主| xhjlr 发表于 2007-12-22 10:05 | 显示全部楼层 |阅读模式
我编译了hello.c程序后,生成了hello.o文件,接着insmod hello.o,没有任何提示。但是我查看/proc/devices,却看不到hello,因此我得不到主,次设号,无法建立设备文件。请问:为什么/proc/devices下看不到hello。
icecut 发表于 2007-12-22 12:21 | 显示全部楼层

lsmod

lsmod 
如果看见HELLO就对了
你先用静态的全部测试完再用动态设备号
 楼主| xhjlr 发表于 2007-12-23 16:23 | 显示全部楼层

看见HELLO

用lsmod 看见HELLO了,但我得不到主,次设号,无法建立设备文件,怎么办呢?
谢楼上
icecut 发表于 2007-12-23 17:46 | 显示全部楼层

sysfs

在2.6内核中,sysfs常被挂载在/sys上,设备信息通常能够从sysfs中更好的获得。——linux divice drivers
 楼主| xhjlr 发表于 2007-12-23 19:02 | 显示全部楼层

谢楼上

我用的是redhat2.4.20-8,没有/sys呀。在2.4里面该怎么做呢
netboy_feng 发表于 2007-12-27 15:52 | 显示全部楼层

主次设备号

可以自己在程序中定义啊,然后register的时候加入

如果是字符或者块文件,要自己创建节点

如果看/proc/devices,cat devices就应该可以看见
dengbindb 发表于 2007-12-30 12:37 | 显示全部楼层

参考LDD3

LDD3第三章讲到了scull_load脚本,主要步骤:
1.装载模块 
/sbin/insmod ./$module.ko $* || exit 1

2.获得主设备号:
# retrieve major number
major=$(awk "$2=="$module" {print $1}" /proc/devices)

3.创建设备文件
mknod /dev/${device}0 c $major 0

还是仔细看那个文件吧,一切都会清楚的 :)
lelee007 发表于 2008-1-4 15:23 | 显示全部楼层

牛人一堆一堆的

lxg_fly 发表于 2008-1-24 09:45 | 显示全部楼层
lxg_fly 发表于 2008-1-24 09:47 | 显示全部楼层

re

lsmod里有,device里没有设备可能是你设备没申请上,如果不是动态分配的请先看下主设备号是否已经被用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部