Chinaunix首页 | 论坛 | 博客
  • 博客访问: 305473
  • 博文数量: 54
  • 博客积分: 3050
  • 博客等级: 中校
  • 技术积分: 601
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-25 16:53
文章分类
文章存档

2012年(1)

2011年(7)

2010年(46)

我的朋友

分类: LINUX

2011-01-06 13:03:48


    当初在8.10中安装Virtualbox后自动就能支持USB,但是前阵子想使用QQ摄像头时发现Virtualbox虚拟机不能识别一切usb设备,具体表现为在Virtualbox左上角的 “device-> usb device"中所有的usb设备均为灰色,不能勾选,鼠标停在在右下角的usb符号处时显示“no usb devices attached"。
 
    搜索了一下,看了许多相关帖,在修改 /etc/fstab 文件时遇到这么一个问题:

在许多帖子中的一种说法,涉及到 /proc/bus/usb 文件夹,但是发现在Ubuntu-9.10中,根本没有这个文件夹,按照帖子的操作添加涉及到该文件夹的操作以及手动生成该文件夹最终会被提示文件夹不存在。根据查阅的资料,在Ubuntu-9.10及以后版本中,当内核大于一定版本后(一说2.31.17),会没有 /proc/bus/usb文件夹。

在链接http://www.cnblogs.com/shengansong/archive/2010/04/04/1704176.html 中提出使用 /etc/bus/usb 代替,在链接 http://blog.csdn.net/dadoneo/archive/2010/11/11/6003480.aspx 中说Fedora 中使用 /sys/bus/usb/drivers 文件夹代替,以上两个文件夹在 Ubuntu-9.10 中均存在。而且也许可以使用,但是,这里要说的是,本人使用 

none /proc/bus/usb usbfs devgid=userid,devmode=664 0 0  

修改了 /etc/fstab 文件,虽然 /proc/bus/usb 文件夹不存在,但是最终却可以使用,这一点参照官方链接  (E文)可以看到。

在莫名切秒地解决了上面一个问题之后,根据以下操作顺序就可以在Ubuntu-9.10中的Virtualbox中启动Usb支持,这主要涉及:

    1. 向Virtualbox 的用户组中添加当前用户;
    2. 修改 /etc/fstab 文件,添加 usb 设备的 userid 和使用权限
    3. 修改 Virtualbox 的软件界面,做必要的设定,比如在 setting -> System -> Motherboard -> Extended Features 开启 "Enable IO APIC" 选项; 在 setting -> USB 中开启 Enable USB Controller 选项等,并在 USB Device Filters 中添加相应的USB 设备。具体情况下列两图所示:
                                                   图 1: 开启 IO APIC

 图 2: 开启 USB Contoller 和 USB Device Filters

除此之外,还涉及到的另外一个文件,在Ubuntu-9.10 下是 /etc/udev/rules.d/10-vboxdrv.rules 文件,主要是添加相关选项,我的系统中已自动添加,内容如下:

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
SUBSYSTEM=="usb_device", GROUP="vboxusers", MODE="0664"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GROUP="vboxusers", MODE="0664"
需要注意的是,这里SUBSYSTEM 中的 GROUP 必须和你添加的 USB 使用组的 Group 名相同。

具体操作内容以下转载:
—————————————— 转载 一,start ————————————————
原帖链接:

virtualbox默认是不支持u的另外一个文件的另外一个文件的另外一个文件的另外一个文件的另外一个文件sb设备的,需要手工修改一些设置才能使用。

1.修改为usb设备增加普通用户权限
1.1 增加一个名为usbfs的用户组
代码:
xmoney@xmoney-laptop:~$ sudo groupadd usbfs
[sudo] password for xmoney:


1.2 增加当前用户到工作组
代码:
xmoney@xmoney-laptop:~$ sudo adduser xmoney usbfs  //其中xmoney是本人系统的登录名字
[sudo] password for xmoney:


1.3 得到usbfs组的id
执行如下命令
代码:
xmoney@xmoney-laptop:~$ cat /etc/group | grep usbfs
usbfs:x:1002:xmoney,root

其中1002就是usbfs组的id了。

1.4 修改 /etc/fstab 文件
代码:
xmoney@xmoney-laptop:~$ sudo gedit /etc/fstab

在文件的末尾增加一行
代码:
none /proc/bus/usb usbfs devgid=1002,devmode=664 0 0

其中 devgid=1002,其中的1002就是刚才的usbfs的组id

1.5 为 /proc/bus/usb 增加权限
首先为/proc/bus/usb放开所有权限,也就是所有人都能访问。
代码:
xmoney@xmoney-laptop:~$ sudo chmod 777 /proc/bus/usb
xmoney@xmoney-laptop:~$

然后为/proc/bus/usb设置所有者为当前用户,我的当前用户是xmoney。
代码:
xmoney@xmoney-laptop:~$ sudo chown xmoney /proc/bus/usb
xmoney@xmoney-laptop:~$


1.6 重启电脑的另外一个文件的另外一个文件
代码:
xmoney@xmoney-laptop:~$ sudo reboot


修改完必须重启,否则无法生效
—————————— 转载一,end ——————————

注1:我并没有执行成功 1.5 中的修改 /proc/bus/usb 文件夹权限的这一步,因为该从始至终在我的系统中都不存在,但是在执行了上面提到的所有操作并且重启后,却神奇地可以识别并且使用USB 摄像头了。也因之没有接着去深究。

注2:在本文给出的第一个链接中,有提到 usbblaster 的说法,貌似可以解决遇到的 在Ubuntu-9.10 中不能识别 usbfs 的问题,但是这是另外一个问题了,本人没有去尝试这一点。

注3:在有的帖子里面有另外中说法,即添加 hald --daemon=no 的命令到 /etc/rc.local 文件夹中,但是本人系统中没有这个文件夹,也不知道应该放到哪个 rc 目录下的哪个文件中,最终没有采用。

果冻
Thu,Jan/6/2010.



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

chinaunix网友2011-01-07 16:57:27

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com