阅读:1428回复:3
SCO 设备驱动求救!我编制好设备驱动按下述文章安装驱动(具体步骤摘抄如下,原文如链接),但总是无法编译内核(下述第6步),编译时总说什么系统错,是不是我的安装步骤有错,十万火急!前面若干几步都符合下述,只有编译核心的时候不行,是不是还要什么Master,System,space.c,之类的文件,急! > > http://www.powerba.com/develop/c&c++/article/20001108005.htm > > 4设备驱动程序的安装: > ---- 设备驱动程序的安装,通常遵循如下步骤: > > ---- 1) 获取可用主设备号,命令为: > > /etc/conf/cf.d/configure - j NEXTMAJOR > 返回 - 主设备号,如120 。 > > ---- 2) 建立设备文件节点,命令为: > mknod /dev/mytt c 120 0 > \\\"/dev/mytt\\\" 指我所做的设备文件,\\\"c\\\" > 指字符设备,\\\"120\\\" 指主设备号,\\\"0\\\" 指次设备号。 > > ---- 3) 配置系统 ,命令为: > > cd/etc/conf/cf.d > ./configure -m 120 -c -14 -T2 -v > 4 -a myttinit myttopen myttclose\\\\ > myttread myttwrite myttioct1 > > option: > l4 中断优先级 > T2 设备使用的中断模式(0-3) > V4 需要中断相量 > > > ---- 4) 检查设备mytt是否已加入系统,命令为: > > ./configure -j mytt > > ---- 如返回120 则表示mytt 已加入系统,且主设备为120 > 。 如返回信息为\\\"no sueh device \\\" > 则系统中没有名为mytt > 的设备,上述命令也可以在配置系统之前检查一下系统中是否同名设备存在。如有的话,可以先将该设备删除,然后再加入新设备。 > 要删除一指定设备,则必须知道其主设备号。 > 取主设备号命令如上面所示,步骤如下: > > ./configure -j mytt > ./configure -m 120 -c -d > 则从核心中删除设备 mytt > > > ---- 5) 编译驱动程序源代码,将生成的.o > 文件拷入/etc/conf/pack.d 目录 > > ---- 编译驱动程序源代码命令行: > > cc -c -D_INKERNEL mytt.c > > mkdir /etc/conf/pack.d/mytt > > cp mytt.o /etc/conf/pack.d/mytt/Driver.o > > > ---- 6) 重键核心 > > cd/etc/conf/cf.d > > ./link_unix > > > ---- > 回答两个Y,则在根目录下生成一个新的核心unix,旧的核心文件被保存为unix.o1d > 驱动程序已安装完毕,需重新启动unix系统,设备驱动程序才能有效这时系统自动执行myttinit(),在主控台显示信息,表示设备驱动程序已安装。 > > > http://www.powerba.com/develop/c&c++/article/20001108005.htm > > |
|
沙发#
发布于:2002-12-27 11:32
应该是你的程序里面有错误,所以不能链接成功。
在link_unix时具体显示什么提示内容? |
|
板凳#
发布于:2003-02-24 14:59
all: $(OBJ64)
CFLAGS += -D$(INST) $(ENVCPPFLAGS1) $(ENVCPPFLAGS2) -DDEBUG # Just copies. Does NOT actually load the driver into the OS debug: cc $(CFLAGS) -o sc debug.c cp: cp sparc/obj64/s7card /kernel/drv #This actually loads the driver into the OS ad: /usr/sbin/add_drv -m\"* 0666 root root\" -i\'$(PCI_IDENT)\' $(MOD) install: @echo This driver COULD crash your system at some point @echo use \'\"make reallyinstall\"\' if this is okay with you. @echo Or you might use \'\"make pkg\"\' and use pkgadd instead clean: rm -rf $(ARCH) my: rm cp ml ad myall: clean all rm cp ml ad rm: -rem_drv $(MOD) -rm -f /kernel/drv/$(DRVNAME) ml: modload -p drv/$(MOD) 自己写的makefile,不知对你有帮助没有 |
|
地板#
发布于:2003-02-26 00:58
写
Master, System, Node 文件挺好的啊。 |
|