Giter Club home page Giter Club logo

uhubctl's Introduction

uhubctl

uhubctl is utility to control USB power per-port on smart USB hubs. Smart hub is defined as one that implements per-port power switching.

Original idea for this code was inspired by hub-ctrl.c by Niibe Yutaka: http://www.gniibe.org/development/ac-power-control-by-USB-hub

Compatible USB hubs

Note that very few hubs actually support per-port power switching. Some of them are no longer manufactured and can be hard to find.

This is list of known compatible USB hubs:

Manufacturer Product VID PID
Anker Ultra Slim 4-Port USB 3.0 Data Hub with 12W Power Adapter
Apple Thunderbolt Display 27" (internal USB hub)
Apple USB Keyboard With Numeric Pad (internal USB hub)
D-Link DUB-H7 (Silver edition only!)
Elecom U2H-G4S
Hawking Technology UH214
Lenovo ThinkPad EU Ultra Dockingstation (40A20090EU) 17EF 100F
Linksys USB2HUB4
Sanwa Supply USB-HUB14GPH
Targus PAUH212

Some modern motherboards have built-in root hubs that do support this feature, but you need to use option -i to enable it.

Compiling

This utility was tested to compile and work on Linux (Ubuntu, Redhat/Fedora/CentOS) and on Mac OS X. It should be possible to compile it for Windows as well - please report if you succeed in doing that.

First, you need to install library libusb-1.0 (version 1.0.12 or later):

  • Ubuntu: sudo apt-get install libusb-1.0-0-dev
  • Redhat: sudo yum install libusb1-devel
  • MacOSX: brew install libusb
  • Windows: TBD?

To compile, simply run make - this will generate uhubctl binary.

Usage

You can control the power on a USB port(s) like this:

uhubctl -a off -p 235

This means operate on default smart hub and turn power off (-a off, or -a 0) on ports 2,3,5 (-p 235). Supported actions are off/on/cycle (or 0/1/2). cycle means turn power off, wait some delay (configurable with -d) and turn it back on.

On Linux, you may need to run it with sudo, or to configure udev USB permissions.

If you have more than one smart USB hub connected, you should choose specific hub to control using -l (location) parameter.

Copyright

Copyright (C) 2009-2016 Vadim Mikhailov

This file can be distributed under the terms and conditions of the GNU General Public License version 2.

uhubctl's People

Contributors

g0hl1n avatar mvp avatar runderwo avatar skitt avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.