Linux下USB小工具usbmanager 1.0测试版发布
最近因为需要调试一些USB设备驱动,需要频繁的在Linux下查看USB设备信息,发现Linux下USB设备管理起来非常不方便。lsusb 显示连接在系统上的USB设备信息,显示的信息比较乱,查看起来不是太方便。usbview(http://www.kroah.com/linux-usb/),需要挂载usbfs虚拟文件系统,这点有点不方便。并且软件接口都很老了,也没有更新,估计作者很忙吧。所以,有了自己写一个USB小工具的想法,一来方便自己,而来也可以练习一下Linux下程序的编写。因此抽出一段时间研究了一下Linux下有关USB的知识与GTK+2.0编程接口,最后写成了这个USB设备管理小工具,取个名字叫usbmanager,目前的版本能够实现USB设备管理的基本功能了,比如查看USB设备树,查看USB设备描述符,移除设备等。
目前软件在ubuntu10.10系统上测试通过,并且采用automake与autoconf进行工程管理。因为自己水平有限所以程序还不是很完善,我在google code上为这个软件开了一个小开源项目,主页是:http://code.google.com/p/usb-device-manager。软件源代码在google code 项目主页上可以获得,一些核心代码是移植lsusb的,所以汉化的不是很好。因为是基于libusb最新的版本1.0的,因此安装软件之前需要安装libusb-1.0,这个在ubuntu新立得软件包管理器中就可以找到,注意libusb-1.0-0与libusb-1.0-0-dev都需要安装。下面介绍安装usbmanager的方法,得到源代码后,解压后进入目录在命令行中输入以下命令:
软件会安装在/usr/local/bin下面,软件所需数据文件安装在/usr/local/share/usbmanager下。然后命令行中输入
就可以运行程序了。软件主界面如下:
图 1 主窗口
双击设备树就会显示设备的基本信息,包括设备名称,生产厂商,产品ID,速度等,还有接口的信息。选中设备后,如果设备可以移除,就可以点击”移除设备“按钮将设备移除,这个功能需要root权限,所以要用sudo运行程序才可以移除设备。点击工具栏的“详细信息”按钮会弹出设备详细信息的子窗口,如下图。子窗口显示了USB设备描述符,配置描述符,接口描述符等。这个窗口的功能是移植lsusb的。设备状态显示了设备的供电状况,如果是集线器,显示了集线器端口连接的情况。
图 2 子窗口
这个小工具参考了Greg Kroah-Hartm开发的lsusb与usbview-1.1,核心代码都是lsusb的,自己只不过是对其修改了一下,另外加了一个图形界面而已,其实图形界面也是参考usbview,只不过内部代码没用usbview的,用的lsusb的,并且将一些GTK+2.0废弃的接口换成了新的,并且添加了移除设备功能,也算是更新usbview了吧。这个小工具许可证为GPL。目前软件版本为1.0,今后还会对软件进行更新,增加些实用的功能,比如开机启动,添加到面板等。希望大家多提宝贵意见呀!