首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

如何在LINUX下实现硬件的自动检测 - 存储设备的自动检测

如何在LINUX下实现硬件的自动检测 - 存储设备的自动检测

存储设备主要是指硬盘,光驱等能够进行告诉数据存取的设备。我们最常见的存储设备按照总线类型分类主要包括ide,scsi这两种。对于ide设备,Linux系统一般是使用hd*来表示,*是按照连接的总线位置顺序编号。一般而言,我们现在所使用的微机有两个ide接口,并且每个接口上只能连接两个设备,一个为主设备而另一个为从设备。对于连接在ide0上的主设备它的设备名为hda,而对于在ide0上的从设备它的设备名为hdb。以此类推,连接在ide1上的主、从设备的设备名分别为hdc和hdd。
一般而言,现有的linux发行版都将对ide设备的支持加入内核,所以在系统启动之后,相应的设备模块已经在内核中了,所以检测过程只需对/proc/ide下相应的文件进行访问就行了。对于scsi设备,对它们的支持一般都不打入内核,所以要想使scsi设备在Linux下生效必须先插入对应的设备驱动模块。这就要求用户在创建lilo时必须在/etc/lilo.conf中加入一行"initrd=",它连接的由命令mkinitrd生成系统启动映像。例如,在使用Adaptec,AIC-7850的scsi芯片组时,使用模块aic7xxx,此时需要进行如下步骤:        
mkinitrd --ifneeded /boot/initrd-2.4.3.img 2.4.3--with=aic7xxx
然后编辑/etc/lilo.conf,加入行:         initrd=/boot/initrd-2.4.3.img
重新运行lilo,启动后,这时就会在目录/proc/scsi下出现设备的对应描述文件。只要检索这些文件就可以完成对设备的检测。      
  • ide设备的检测过程
    • 查找/proc/ide/下名为的hd*(*为通配符,可为a,b,…)的目录(目录名为设备名)。
    • 打开文件/proc/ide/hd*/media,此文件的只由一行构成,其内容为cdrom、disk、tape或floppy,此文件的内容表示此IDE设备的类型。
    • 打开文件/proc/ide/hd*/model,由此文件得到详细的设备描述信息。例如:ST313021A,表示希捷硬盘,型号为ST313021A。
    • 打开文件/proc/ide/hd*/geometry,这个文件描述的是硬盘的几何信息。例如              physical 16383/16/63               
      logical 1583/255/63(cylinders/heads/sectors)               
      表示这块ide硬盘的柱面数,头数和扇区数              
    • 由命令mknod path, b, major,minor,创建设备结点。对于从/dev/hda到/dev/hdh的设备结点的主次设备号为:               
      1
      2
      3
      4
      5
      6
      7
      8
      /dev/hda        major = 3, minor = 0
      /dev/hdb        major = 3, minor = 64
      /dev/hdc        major = 22, minor = 0
      /dev/hdd        major = 22, minor = 64
      /dev/hde        major = 33, minor = 0
      /dev/hdf        major = 33, minor = 64
      /dev/hdg        major = 34, minor = 0
      /dev/hdh        major = 34, minor = 64




  • scsi设备的检测过程
    • 读入/proc/scsi/scsi文件,其文件结构:               
      1
      2
      3
      4
      5
      6
      7
      8
      9
      Attached devices:
      Host: scsi****  Channel: **** Id: **** Lun: ****
        Vendor:   XXXXXXX Model:xxxxxx Rev:
        Type:     Direct-Access(类型为hd,设备名为sd*)
                      Sequential-Access(类型为tape,设备名为st*)
                      CD-ROM  (类型为cdrom,设备名为scd*)
                      Scanner (类型为scanner,设备名为sg*)
                      Printer (类型为printer,设备名为sg*)
                      其他设备(设备名为sg*)




返回列表