Linux下复位USB设备

有时候USB设备出错,这时我们希望通过软件复位一下USB设备,可以参考下面这段代码:

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>

#include <linux/usbdevice_fs.h>

int main(int argc, char **argv)
{
    const char *filename;
    int fd;
    int rc;

    if (argc != 2) {
        fprintf(stderr, "Usage: usbreset device-filename\n");
        return 1;
    }
    filename = argv[1];

    fd = open(filename, O_WRONLY);
    if (fd < 0) {
        perror("Error opening output file");
        return 1;
    }

    printf("Resetting USB device %s\n", filename);
    rc = ioctl(fd, USBDEVFS_RESET, 0);
    if (rc < 0) {
        perror("Error in ioctl");
        return 1;
    }
    printf("Reset successful\n");

    close(fd);
    return 0;
}

  

原文地址:https://www.cnblogs.com/iot-yun/p/10798465.html

时间: 2024-10-12 08:40:42

Linux下复位USB设备的相关文章

linux下插入USB设备使用脚本实现自动挂载

某天客户要求说要想在linux OS上插入U盘,然后像和在windows上一样实现自动挂载,在网上没有搜索到有用的信息,有一个软件usbmount,但是试验用不了,有兴趣可以瞧瞧,地址如下 http://usbmount.alioth.debian.org/#what 客户就是客户 于是使用脚本实现这个过程 1. vi mount.sh #!/bin/bash mount_dir=/mnt/usb    #挂载USB设备之后挂载的路径 mount_txt=/etc/mount.txt umoun

Linux下查看USB设备的VID、PID命令

Linux下查看PID命令 cat /proc/bus/usb/devices 或 lsusb 方法一:在/etc/init.d/rcS中添加mount -t usbfs none /proc/bus/usb. 方法二:在shell中输入mount -t usbfs /proc/bus/usb /proc/bus/usb. 前提是在编译内核时选中usb device filesystem. # cat   /proc/bus/usb /device T:  Bus=01 Lev=00 Prnt=

在Linux下使用usb wifi

今天购买了D-Link DWL-G122 usb wifi dongle.之前已经在网上查好了,该款设备可以被Linux支持,同时也找到了几种安装驱动的方法: 使用ndiswrapper直接安装Windows XP版(目前ndiswrapper只支持XP版的)的驱动程序文件(*.inf). 直接从Realtek上下载相应的驱动程序.事先可以在驱动光盘中找到Windows版驱动程序文件的名字,如net8192su.inf.然后在Realtek的官方网站上搜索8192su相应的Linux驱动. 从g

windows平台下获取USB设备&ldquo;身份证&rdquo;

当我们将U盘插入windows主机时,会提示安装驱动,那么windows是如何判断应该安装哪个版本的驱动的呢?在这里将用到设备的身份信息,包括厂商.型号.序列号等.大概半年前做了一个关于设备检测的小工程,看了很多资料和帖子,将获取设备身份信息的方法在此记录,方便以后使用. 0x01 USB设备有哪些身份信息 根据USB规范中的说明USB规范官方文档,供应商ID(VID)/产品识别码(PID)唯一标识一个设备,VID和PID都是两个字节长,其中,供应商ID(VID)由供应商向USB执行论坛申请,每

虚拟机下Linux读取USB设备的问题虚拟机下Linux无法读取USB设备的解决方案

我们在虚拟机中识别USB设备有三种情况导致Linux系统不能读取到USB设备: 1. .当虚拟机的USB服务没有开启的时候 2. 若虚拟机的USB连接的设置选项没有设置好 3. Widows抢先一步,被Windows读取到虚拟机下Linux读取USB设备的问题 还有一种是虚拟机USB读取服务文件出现了问题,这个见链接 http://blog.csdn.net/limb99/article/details/7723600 1.当虚拟机的USB服务没有开启的时候,是无法读取到的,必须将其打开 2.若

在linux(Ubuntu)下检测USB设备的插入和移除

此代码用于检测USB设备的插入,拔出,在Ubuntu下测试通过 #!/usr/bin/env python import glib #apt-get install python-gudev import gudev import pynotify import sys def callback(client, action, device, user_data):     device_vendor = device.get_property("ID_VENDOR_ENC")    

LInux下使用USB模拟ACM串口设备

这个想法之前就在脑袋里有过,最近公司产品要用到,所以多做了些了解. 1. USB 简介 USB 是 Universal Serial Bus 的缩写,从字面上看,就是通用串行总线的意思.从物理上看,其实就是一对差分线,连接两台设备后,相互间进行数据传输.加上另外两路供电( 5V 和 GND)线,一共是 4 根线. 那么,既然是只有一对差分线,那么该如何决定由谁传给谁呢(如果两边同时在线上建立电平,线路上的电平会是不确定态的,以致无法通信)?这就要说到 USB 传输的一个重要基础:“询问-应答”

Linux自动共享USB设备:udev+Samba

一.概述 公司最近要我实现USB设备插入Ubuntu后,自动共享到网络上,能像Windows共享一样(如\\192.168.1.10)访问里面的内容,不需要写入权限.当时听完这需求,我这新人表示惊呆了,立刻上网搜相关文档,并跑去问主管,这功能有人实现了不?主管很肯定地说,必须的.网上搜到的技术文档只有插入USB设备自动挂载,自动共享没搜到,这下只好靠自己了. 经过一番折腾总算在Ubuntu14.04桌面版实现了该功能.本文档默认共享5个USB设备,USB1~5:USB设备插入自动共享到「\\主机

linux下的usb转串口的使用(修改)【转】

环境:Ubuntu 10.10 Server minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解minicom的安装和配置. 转自:http://blog.chinaunix.net/uid-25562715-id-1990181.html 一.安装minicom: 使用以下命令:# sudo apt-get install minicom 以下为安装的详细信息:# sudo apt-ge