Skip Masthead Links gceclub.sun.com.cn   » Search:    
 Java
开发者的资源中心

Sun Microsystem
 Skip to Content
 
注册成为Sun技术社区会员
注册说明 | 我的社区

Previous上一页编写设备配置文件

构建和安装驱动程序

本节介绍对不同架构需使用的编译选项,以及安装驱动程序的位置。

编译和连接驱动程序

使用 -D_KERNEL 选项指示该代码用于定义内核模块。

  • 若在编译 64 位的 SPARC 架构,则使用 -xarch=v9 选项:


    % cc -D_KERNEL  -xarch=v9 -c dummy.c
    % ld -r -o dummy dummy.o
    
  • 若在编译 64 位的 x86 架构,则使用 -xarch=amd64 选项和 -xmodel=kernel 选项:


    % cc -D_KERNEL  -xarch=amd64 -xmodel=kernel -c dummy.c
    % ld -r -o dummy dummy.o
    
  • 若在编译 32 位架构,则使用下列构建命令:


    % cc -D_KERNEL  -c dummy.c
    % ld -r -o dummy dummy.o
    

在临时位置安装驱动程序

在安装驱动程序时要确保您是用户 root

在完成对 _info()_init() 和attach() 例程的修改和测试以前,要将驱动程序安装在 /tmp 目录里。将驱动程序的二进制文件复制到 /tmp 目录。从内核驱动程序目录连接到本驱动程序。

如果某一驱动程序的 _info()_init() attach() 函数出现了错误,机器可能会陷入一种没完没了的忙乱之中。忙乱之后,Solaris 操作系统会自动重启。在启动过程中,Solaris 操作系统会加载它可以加载的任何驱动程序。如果在加载驱动程序时导致系统忙乱的 attach() 函数中存在错误,则在该忙乱之后再行重启时系统将会再度陷入忙乱。系统将不停地重复忙乱、重启、忙乱循环,因为在忙乱之后每次重启时,它都力图重新加载这个有毛病的驱动程序。

为了避免没完没了的忙乱,请把驱动程序保存在 /tmp 区,直到完全测试好之后为止。从内核驱动程序区连接到 /tmp 区的驱动程序。每当系统重启时,Solaris 操作系统都会删除 /tmp 区的所有文件。若驱动程序导致了忙乱,Solaris 操作系统可以成功重启,因为驱动程序已从 /tmp 区自动删除。内核驱动程序区中的连接无处可指。错误的驱动程序加载不上,故系统不会再次陷入忙乱。您可以修改驱动程序、将其重新复制到 /tmp 区,并继续进行测试和开发。当驱动程序测试好后,将其复制到 /usr/kernel/drv 区,这样在重启后它就会仍然可用。


# cp dummy /tmp
  • 在 64 位的 SPARC 架构上,连接到 sparcv9 目录:


    # ln -s /tmp/dummy /usr/kernel/drv/sparcv9/dummy
    
  • 在 64 位的 x86 架构上,连接到 amd64 目录:


    # ln -s /tmp/dummy /usr/kernel/drv/amd64/dummy
    
  • 在 32 位架构上,创建连接:


    # ln -s /tmp/dummy /usr/kernel/drv/dummy
    

将配置文件复制到系统的内核驱动程序区。


# cp dummy.conf /usr/kernel/drv

Next下一页:测试模板驱动程序

 





SUN 全 球 资 源
www.sun.com
Sun全球网站
cn.sun.com
Sun中国网站
docs.sun.com
Sun产品文档
developers.sun.com
Sun开发者资源
wwws.sun.com
Sun软件产品
www.sun.com/bigadmin/
系统管理员