rocklake
驱动牛犊
驱动牛犊
  • 注册日期2002-07-30
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1428回复:3

SCO 设备驱动求救!

楼主#
更多 发布于:2002-12-26 10:17

  我编制好设备驱动按下述文章安装驱动(具体步骤摘抄如下,原文如链接),但总是无法编译内核(下述第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
>
>  
skyrvr
驱动牛犊
驱动牛犊
  • 注册日期2002-07-04
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-27 11:32
应该是你的程序里面有错误,所以不能链接成功。

在link_unix时具体显示什么提示内容?
george
驱动牛犊
驱动牛犊
  • 注册日期2001-09-28
  • 最后登录2005-04-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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,不知对你有帮助没有
Nemesis2k
驱动牛犊
驱动牛犊
  • 注册日期2002-03-29
  • 最后登录2004-10-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-26 00:58

Master, System, Node 文件挺好的啊。
游客

返回顶部