Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1757212
  • 博文数量: 293
  • 博客积分: 10574
  • 博客等级: 上将
  • 技术积分: 5085
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-22 17:00
文章分类

全部博文(293)

文章存档

2011年(27)

2010年(84)

2009年(62)

2008年(120)

我的朋友

分类:

2008-04-22 14:40:31

USB的使用似乎成了老大难问题,其实solaris 10中对USB设备的支持已经very good了,默认状况下即插即用。以下是本人的一些心得,请参考使用。


USB设备使用简介


版权声明:原创cu-yuhuohu,任何网站未经授权拒绝转载




内容简介:

  • USB设备状态检测
  • vold在运行时使用U盘
  • vold未运行时使用U盘
  • vmware如何使用U盘
  • 疑难杂症(important)


哥们,看帖要推荐啊,点这里




1、check the usb-device

QUOTE:
查看USB存储设备是否已插入,在启动消息中应该有类似条目

# grep -i usb /var/adm/messages               
Oct  8 12:02:26 s10u2 usba: [ID 912658 kern.info] USB 1.10 device (usbe0f,2) operating at full speed (USB 1.x) on USB 1.10 root hub: hub@2, hubd0 at bus address 2

查看usb接口的状态
# cfgadm usb
Ap_Id                          Type         Receptacle   Occupant     Condition
usb0/1                         usb-storage  connected    configured   ok
usb0/2                         usb-hub      connected    configured   ok
usb0/2.1                       unknown      empty        unconfigured ok
usb0/2.2                       unknown      empty        unconfigured ok
<......>

Ap_Id
USB设备的标识是一种层次结构,可以很清晰的表示USB的级联结构,比如:
  • usb0/1
0表示第一个usb总线,1表示第一个端口

  • usb0/2.1
usb0/2.1和usb0/2.2表示连接在第一个USB总线的第二个端口上的usb-hub上的第一个和第二个端口

  • usb0/1.4.3.4
usb0/1.4.3.4表示有多个usb-hub级联,级联示意为:
system-->usb-bus 0-->first port-->hub-->port 4-->hub-->port 3-->hub-->port 4
图例:

        system,usb-bus 0----------port 1---------hub---port 4
                                                                               |
                                                                             hub-------port 3
                                                                                                 |
                                                                                               hub---------port 4


Type
  • usb-storage
USB存储设备,上面的输出示例表示有存储设备已插入到第一个usb端口
  • usb-hub
USB-HUB,上面的输出示例表示连接这个端口(usb0/2,第二个USB端口)上的设备是一个usb-hub
  • usb-mouse
USB鼠标


Receptacle
  • connected
USB端口已加电并启用。有一个USB设备已插入此端口,该设备已经与USB总线建立起逻辑连接
  • disconnected
USB端口已加电并启用。有一个USB设备已插入此端口,但和USB总线间的逻辑连接被中断 (用cfgadm -c disconnect命令,比如cfgadm -c disconnect usb0/1,通常在准备拔出USB设备时使用此命令)
  • empty
USB端口已加电,但没有USB设备插入


Occupant
  • configured
插入到USB端口的设备已经配置完毕,solaris系统可以使用该设备

  • unconfigured
插入到USB端口的设备处于离线状态(使用cfgadm  -c  unconfigure命令,或无法成功配置该设备,比如没有驱动或设备本身有问题)


Condition
  • ok
状态正常,可以使用

  • unusable
当应用正在使用这个设备时,用户强行拔出USB设备会导致出现不可用状态。用户必须把该设备再次插入此端口,然后关闭应用,再拔出USB设备。否则,处于这种状态的端口将无法配置被插入此端口的其他设备。如果不把先前的USB设备重新插入这个端口,要清除不可用状态,请参见《系统管理指南:基本管理》

这点很重要哦,用完U盘后请务必要记得要 umount,然后最好再 eject 一下!!!

版权声明:原创cu-yuhuohu,拒绝任何人以任何名义转载.

2、vold daemon is running

QUOTE:
如果VOLD在运行,插入USB设备后,Solaris 10系统会自动将其进行挂接。
# df -h | grep rmdisk
/vol/dev/dsk/c2t0d0/unnamed_rmdisk:c   249M    10M   239M     5%    /rmdisk/unnamed_rmdisk

如果要拔除usb设备,建议先采用umount卸载对应的文件系统,如:
# umount /rmdisk/unnamed_rmdisk

当重新插入usb存储设备时,如果系统无法自动识别,可重启volfs服务:
solaris10# svcadm restart volfs
solaris 9 # /etc/init.d/volmgt stop | start


版权声明:原创cu-yuhuohu,拒绝任何人以任何名义转载.

3、vold daemon has not runned

QUOTE:
如果VOLD没运行,插入USB设备后,可按以下步骤对其进行手动挂接:
# rmformat
正在查找设备...
     1. Logical Node: /dev/rdsk/c2t0d0p0
        Physical Node: /pci@0,0/pci15ad,1976@7,2/storage@1/disk@0,0
        Connected Device: Generic  USB Flash Drive  %z!Y
        Device Type: Removable

USB设备的分区管理
# fdisk c2t0d0p0

             Total disk size is 250 cylinders
             Cylinder size is 2048 (512 byte) blocks

                                               Cylinders
      Partition   Status    Type          Start   End   Length    %
      =========   ======    ============  =====   ===   ======   ===
          1       Active    Win95 FAT32       0   250     251    100


SELECT ONE OF THE FOLLOWING:
   1. Create a partition
   2. Specify the active partition
   3. Delete a partition
   4. Change between Solaris and Solaris2 Partition IDs
   5. Exit (update disk configuration and exit)
   6. Cancel (exit without updating disk configuration)
Enter Selection: 5  


# ls /dev/rdsk/c2t0d0p*
/dev/rdsk/c2t0d0p0  /dev/rdsk/c2t0d0p1  /dev/rdsk/c2t0d0p2  /dev/rdsk/c2t0d0p3  /dev/rdsk/c2t0d0p4

在/dev/rdsk/目录中的c2t0d0p0代表整个USB存储设备,c2t0d0p1则对应fdisk c2t0d0p0所显示的Partition 1,依次类推。
此例中,USB存储设备仅分了一个区,因此要使用该设备只需挂接分区1即可,文件系统类型通常是指定“pcfs”:
# mkdir /mnt/usb
# mount -F pcps /dev/rdsk/c2t0d0p1 /mnt/usb
or
# mount -F pcps /dev/rdsk/c2t0d0p0:c /mnt/usb
# df -F pcfs -h
文件系统               大小   用了   可用 容量      挂接在
/dev/dsk/c2t0d0p1      249M    10M   239M     5%    /mnt/usb

版权声明:原创cu-yuhuohu,拒绝任何人以任何名义转载.

4、vmware

QUOTE:
据我所知,vmware 6.0支持USB接口模拟,然后即插即用


插入USB设备后,注意看vmware的右下角,会多一个图标(图中红圈部分,未插入usb设备时是没有这个图标的):

如果插入u盘,windows出现u盘连接提示,请换个口再插,如果还不行,耐心等待些时间,然后1234多来几次。关键是看windows响应快还是vmware响应快。

开个玩笑,呵呵,其实要让虚拟机认到USB设备很简单:当虚拟机窗口是当前活跃窗口时,插入USB设备即可


版权声明:原创cu-yuhuohu,拒绝任何人以任何名义转载.

5、troubleshooting

QUOTE:
关于cxtxdxpx的说明


  • c控制器,对于pc而言一般有2根连硬盘的数据总线,第一根连硬盘的数据总线就是c0,第二根数据总线就是c1....
  • t目标,使用scsi硬盘才有t,使用ide硬盘没有t
  • d设备,对于pc而言,同一根数据总线上的主盘就是d0,从盘就是d1
  • p分区,就是windows中常说的"四个主分区"或"3主1扩展分区",主分区可直接挂接,扩展分区不能挂接,只能挂接扩展分区中创建的逻辑分区
    • c2t0d0p0 代表整个USB设备,不能直接挂载(与此相反的是光盘使用时是直接挂载cxtxdxp0
    • c2t0d0p1 or c2t0d0p0:c 代表第一个分区                     -----------c2t0d0p0:1似乎也可以,本人不保证正确不推荐
    • c2t0d0p2 or c2t0d0p0:d 代表第二个分区
    • c2t0d0p3 or c2t0d0p0:e 代表第三个分区
    • c2t0d0p4 or c2t0d0p0:f  代表第四个分区
    • 对于扩展分区中的逻辑分区,假设一个创建了2主1扩的硬盘,则扩展分区为c2t0d0p3
      • c2t0d0p3:c  or c2t0d0p3:1 代表第一个逻辑分区                     -----------c2t0d0p0:2似乎也可以,本人不保证正确不推荐
      • c2t0d0p3:d  or c2t0d0p3:2 代表第二个逻辑分区                     -----------c2t0d0p0:3似乎也可以,本人不保证正确不推荐
      • ......
兼容性问题
  • 查看硬件兼容性列表:
USB-FAQ

note:the full guide please view the doc.sun.com's documents,system management guide:device and file system

阅读(1354) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~