How can I power cycle a USB device on Raspberry Pi?Windows 7 Professional 32 bit USB hub/port power...
How to implement a feedback to keep the DC gain at zero for this conceptual passive filter?
Multiplicative persistence
Creature in Shazam mid-credits scene?
The Staircase of Paint
What are the purposes of autoencoders?
What prevents the use of a multi-segment ILS for non-straight approaches?
Does an advisor owe his/her student anything? Will an advisor keep a PhD student only out of pity?
Does a 'pending' US visa application constitute a denial?
How should I respond when I lied about my education and the company finds out through background check?
250 Floor Tower
Loading commands from file
Request info on 12/48v PSU
Why does the Sun have different day lengths, but not the gas giants?
The screen of my macbook suddenly broken down how can I do to recover
Start making guitar arrangements
Drawing ramified coverings with tikz
Creepy dinosaur pc game identification
When were female captains banned from Starfleet?
Store Credit Card Information in Password Manager?
Why is it that I can sometimes guess the next note?
When a Cleric spontaneously casts a Cure Light Wounds spell, will a Pearl of Power recover the original spell or Cure Light Wounds?
Is the U.S. Code copyrighted by the Government?
Electoral considerations aside, what are potential benefits, for the US, of policy changes proposed by the tweet recognizing Golan annexation?
Where did Heinlein say "Once you get to Earth orbit, you're halfway to anywhere in the Solar System"?
How can I power cycle a USB device on Raspberry Pi?
Windows 7 Professional 32 bit USB hub/port power settingsIncrease power going to USB deviceSetting up WiFi in Ubuntu Server 12.04Cannot make mobile broadband Vodafone USB connection Ubuntu 13.04USB Suspend: USB Device not Entering Selective SuspendUSB hubs that actually implements Hub Port Power Control?Plugging a Kinect 2 in results in cycling error “USB device not recognized”Shouldn't my Belkin USB hub be able to power on a USB MIDI keyboard?Why do USB devices need enumeration if they can be uniquely identified by bus and hub port?What is the performance penalty of chaining USB hubs?
My Netgear WiFi stick (using the ath9k_htc driver) on my Raspberry Pi periodically gets into a bad state that results in USB read errors in dmesg. This state cannot be corrected by a system reset, but requires a full power cycle of the USB device, either by unplugging it and plugging the USB stick back in, or power cycling the whole computer.
I have read that it is possible to programmatically cycle power to a USB device using a USB hub. So I have tried this with my inland 4 Port USB 2.0 Hub based on the information in this posting:
https://stackoverflow.com/questions/1163824/linux-usb-turning-the-power-on-and-off
But the lights on the USB WiFi stick stay glowing even after issuing the command below, although it does make the wlan0 device disappear. I tried it on a Belkin 4-Port Hub with the same results. Anybody have any ideas?
echo '1-1.2.3' | tee /sys/bus/usb/drivers/usb/unbind
Details of my usb connections:
pi@fpi-16 ~ $ sudo lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
|__ Port 2: Dev 4, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 1: Dev 5, If 0, Class=vend., Driver=rt2800usb, 480M
|__ Port 3: Dev 6, If 0, Class=vend., Driver=ath9k_htc, 480M
linux usb
add a comment |
My Netgear WiFi stick (using the ath9k_htc driver) on my Raspberry Pi periodically gets into a bad state that results in USB read errors in dmesg. This state cannot be corrected by a system reset, but requires a full power cycle of the USB device, either by unplugging it and plugging the USB stick back in, or power cycling the whole computer.
I have read that it is possible to programmatically cycle power to a USB device using a USB hub. So I have tried this with my inland 4 Port USB 2.0 Hub based on the information in this posting:
https://stackoverflow.com/questions/1163824/linux-usb-turning-the-power-on-and-off
But the lights on the USB WiFi stick stay glowing even after issuing the command below, although it does make the wlan0 device disappear. I tried it on a Belkin 4-Port Hub with the same results. Anybody have any ideas?
echo '1-1.2.3' | tee /sys/bus/usb/drivers/usb/unbind
Details of my usb connections:
pi@fpi-16 ~ $ sudo lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
|__ Port 2: Dev 4, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 1: Dev 5, If 0, Class=vend., Driver=rt2800usb, 480M
|__ Port 3: Dev 6, If 0, Class=vend., Driver=ath9k_htc, 480M
linux usb
add a comment |
My Netgear WiFi stick (using the ath9k_htc driver) on my Raspberry Pi periodically gets into a bad state that results in USB read errors in dmesg. This state cannot be corrected by a system reset, but requires a full power cycle of the USB device, either by unplugging it and plugging the USB stick back in, or power cycling the whole computer.
I have read that it is possible to programmatically cycle power to a USB device using a USB hub. So I have tried this with my inland 4 Port USB 2.0 Hub based on the information in this posting:
https://stackoverflow.com/questions/1163824/linux-usb-turning-the-power-on-and-off
But the lights on the USB WiFi stick stay glowing even after issuing the command below, although it does make the wlan0 device disappear. I tried it on a Belkin 4-Port Hub with the same results. Anybody have any ideas?
echo '1-1.2.3' | tee /sys/bus/usb/drivers/usb/unbind
Details of my usb connections:
pi@fpi-16 ~ $ sudo lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
|__ Port 2: Dev 4, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 1: Dev 5, If 0, Class=vend., Driver=rt2800usb, 480M
|__ Port 3: Dev 6, If 0, Class=vend., Driver=ath9k_htc, 480M
linux usb
My Netgear WiFi stick (using the ath9k_htc driver) on my Raspberry Pi periodically gets into a bad state that results in USB read errors in dmesg. This state cannot be corrected by a system reset, but requires a full power cycle of the USB device, either by unplugging it and plugging the USB stick back in, or power cycling the whole computer.
I have read that it is possible to programmatically cycle power to a USB device using a USB hub. So I have tried this with my inland 4 Port USB 2.0 Hub based on the information in this posting:
https://stackoverflow.com/questions/1163824/linux-usb-turning-the-power-on-and-off
But the lights on the USB WiFi stick stay glowing even after issuing the command below, although it does make the wlan0 device disappear. I tried it on a Belkin 4-Port Hub with the same results. Anybody have any ideas?
echo '1-1.2.3' | tee /sys/bus/usb/drivers/usb/unbind
Details of my usb connections:
pi@fpi-16 ~ $ sudo lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
|__ Port 2: Dev 4, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 1: Dev 5, If 0, Class=vend., Driver=rt2800usb, 480M
|__ Port 3: Dev 6, If 0, Class=vend., Driver=ath9k_htc, 480M
linux usb
linux usb
edited May 23 '17 at 12:41
Community♦
1
1
asked Dec 26 '12 at 15:11
David YoungDavid Young
7424
7424
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
If your USB host driver is compiled as a kernel module you can try to unload it and reload it. This should usually also power off totally the USB (I did it on other devices with faulty USB hardware that need to be electrically reset, not specifically on the Rasperry Pi which I don't have sorry).
So check if you see it as a module (lsmod) or compile it as a module and later on rmmod it (and all the dependencies eventually) and reload it again, it should do the trick.
add a comment |
Here is an app that can do just what you need: https://github.com/codazoda/hub-ctrl.c
For installation and usage instructions see README.md.
It may take some trial and error to figure out which hub and port does correspond to each USB port, which seems to vary depending on the Raspberry Pi model.
Power cycling can be achieved in a single command by sending a p 0 command (power off) followed by a p 1 (power on).
add a comment |
Prerequisite:
Download and compile usbreset from https://gist.github.com/x2q/5124616
Compile with gcc -o usbreset usbreset.c
. GCC should be already on your raspberry pi.
Then chmod +x usbreset
If you have only one usb device, you can reset that device and will work.
If you have many usb devices, you should reset the usb hub instead.
To find the ids of usb devices run lsusb.
You should see something like:
Bus 001 Device 009: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp.
Bus 001 Device 008: ID 1f75:0621 Innostor Technology Corporation
Bus 001 Device 007: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
The hub I am writing about is SMC9514 Hub.
Create a sh file:
#!/bin/bash
USBNAME=0424:9514 #Put here the usb ID
LSUSB=$(lsusb | grep --ignore-case $USBNAME)
FOLD="/dev/bus/usb/"$(echo $LSUSB | cut --delimiter=' ' --fields='2')"/"$(echo $LSUSB | cut --delimiter=' ' --fields='4' | tr --delete ":")
echo $LSUSB
echo $FOLD
sudo ./usbreset $FOLD; #The path where you have the usbreset executable
And run it ar boot: bash usbreset.sh
You must bash usbreset.sh before mounting any usb device that already works.
My Pi, for eaxample, has one permanent attached SSD and two HDD powered by a relay board. I must run the reset command before mounting the SSD, otherwise it will not work.
It should work for your device too.
Hope it helps.
New contributor
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f524391%2fhow-can-i-power-cycle-a-usb-device-on-raspberry-pi%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
If your USB host driver is compiled as a kernel module you can try to unload it and reload it. This should usually also power off totally the USB (I did it on other devices with faulty USB hardware that need to be electrically reset, not specifically on the Rasperry Pi which I don't have sorry).
So check if you see it as a module (lsmod) or compile it as a module and later on rmmod it (and all the dependencies eventually) and reload it again, it should do the trick.
add a comment |
If your USB host driver is compiled as a kernel module you can try to unload it and reload it. This should usually also power off totally the USB (I did it on other devices with faulty USB hardware that need to be electrically reset, not specifically on the Rasperry Pi which I don't have sorry).
So check if you see it as a module (lsmod) or compile it as a module and later on rmmod it (and all the dependencies eventually) and reload it again, it should do the trick.
add a comment |
If your USB host driver is compiled as a kernel module you can try to unload it and reload it. This should usually also power off totally the USB (I did it on other devices with faulty USB hardware that need to be electrically reset, not specifically on the Rasperry Pi which I don't have sorry).
So check if you see it as a module (lsmod) or compile it as a module and later on rmmod it (and all the dependencies eventually) and reload it again, it should do the trick.
If your USB host driver is compiled as a kernel module you can try to unload it and reload it. This should usually also power off totally the USB (I did it on other devices with faulty USB hardware that need to be electrically reset, not specifically on the Rasperry Pi which I don't have sorry).
So check if you see it as a module (lsmod) or compile it as a module and later on rmmod it (and all the dependencies eventually) and reload it again, it should do the trick.
answered Dec 4 '13 at 15:38
fede.evolfede.evol
1,662175
1,662175
add a comment |
add a comment |
Here is an app that can do just what you need: https://github.com/codazoda/hub-ctrl.c
For installation and usage instructions see README.md.
It may take some trial and error to figure out which hub and port does correspond to each USB port, which seems to vary depending on the Raspberry Pi model.
Power cycling can be achieved in a single command by sending a p 0 command (power off) followed by a p 1 (power on).
add a comment |
Here is an app that can do just what you need: https://github.com/codazoda/hub-ctrl.c
For installation and usage instructions see README.md.
It may take some trial and error to figure out which hub and port does correspond to each USB port, which seems to vary depending on the Raspberry Pi model.
Power cycling can be achieved in a single command by sending a p 0 command (power off) followed by a p 1 (power on).
add a comment |
Here is an app that can do just what you need: https://github.com/codazoda/hub-ctrl.c
For installation and usage instructions see README.md.
It may take some trial and error to figure out which hub and port does correspond to each USB port, which seems to vary depending on the Raspberry Pi model.
Power cycling can be achieved in a single command by sending a p 0 command (power off) followed by a p 1 (power on).
Here is an app that can do just what you need: https://github.com/codazoda/hub-ctrl.c
For installation and usage instructions see README.md.
It may take some trial and error to figure out which hub and port does correspond to each USB port, which seems to vary depending on the Raspberry Pi model.
Power cycling can be achieved in a single command by sending a p 0 command (power off) followed by a p 1 (power on).
edited Jun 21 '18 at 22:09
answered Jun 21 '18 at 22:03
molgarmolgar
1,521912
1,521912
add a comment |
add a comment |
Prerequisite:
Download and compile usbreset from https://gist.github.com/x2q/5124616
Compile with gcc -o usbreset usbreset.c
. GCC should be already on your raspberry pi.
Then chmod +x usbreset
If you have only one usb device, you can reset that device and will work.
If you have many usb devices, you should reset the usb hub instead.
To find the ids of usb devices run lsusb.
You should see something like:
Bus 001 Device 009: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp.
Bus 001 Device 008: ID 1f75:0621 Innostor Technology Corporation
Bus 001 Device 007: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
The hub I am writing about is SMC9514 Hub.
Create a sh file:
#!/bin/bash
USBNAME=0424:9514 #Put here the usb ID
LSUSB=$(lsusb | grep --ignore-case $USBNAME)
FOLD="/dev/bus/usb/"$(echo $LSUSB | cut --delimiter=' ' --fields='2')"/"$(echo $LSUSB | cut --delimiter=' ' --fields='4' | tr --delete ":")
echo $LSUSB
echo $FOLD
sudo ./usbreset $FOLD; #The path where you have the usbreset executable
And run it ar boot: bash usbreset.sh
You must bash usbreset.sh before mounting any usb device that already works.
My Pi, for eaxample, has one permanent attached SSD and two HDD powered by a relay board. I must run the reset command before mounting the SSD, otherwise it will not work.
It should work for your device too.
Hope it helps.
New contributor
add a comment |
Prerequisite:
Download and compile usbreset from https://gist.github.com/x2q/5124616
Compile with gcc -o usbreset usbreset.c
. GCC should be already on your raspberry pi.
Then chmod +x usbreset
If you have only one usb device, you can reset that device and will work.
If you have many usb devices, you should reset the usb hub instead.
To find the ids of usb devices run lsusb.
You should see something like:
Bus 001 Device 009: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp.
Bus 001 Device 008: ID 1f75:0621 Innostor Technology Corporation
Bus 001 Device 007: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
The hub I am writing about is SMC9514 Hub.
Create a sh file:
#!/bin/bash
USBNAME=0424:9514 #Put here the usb ID
LSUSB=$(lsusb | grep --ignore-case $USBNAME)
FOLD="/dev/bus/usb/"$(echo $LSUSB | cut --delimiter=' ' --fields='2')"/"$(echo $LSUSB | cut --delimiter=' ' --fields='4' | tr --delete ":")
echo $LSUSB
echo $FOLD
sudo ./usbreset $FOLD; #The path where you have the usbreset executable
And run it ar boot: bash usbreset.sh
You must bash usbreset.sh before mounting any usb device that already works.
My Pi, for eaxample, has one permanent attached SSD and two HDD powered by a relay board. I must run the reset command before mounting the SSD, otherwise it will not work.
It should work for your device too.
Hope it helps.
New contributor
add a comment |
Prerequisite:
Download and compile usbreset from https://gist.github.com/x2q/5124616
Compile with gcc -o usbreset usbreset.c
. GCC should be already on your raspberry pi.
Then chmod +x usbreset
If you have only one usb device, you can reset that device and will work.
If you have many usb devices, you should reset the usb hub instead.
To find the ids of usb devices run lsusb.
You should see something like:
Bus 001 Device 009: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp.
Bus 001 Device 008: ID 1f75:0621 Innostor Technology Corporation
Bus 001 Device 007: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
The hub I am writing about is SMC9514 Hub.
Create a sh file:
#!/bin/bash
USBNAME=0424:9514 #Put here the usb ID
LSUSB=$(lsusb | grep --ignore-case $USBNAME)
FOLD="/dev/bus/usb/"$(echo $LSUSB | cut --delimiter=' ' --fields='2')"/"$(echo $LSUSB | cut --delimiter=' ' --fields='4' | tr --delete ":")
echo $LSUSB
echo $FOLD
sudo ./usbreset $FOLD; #The path where you have the usbreset executable
And run it ar boot: bash usbreset.sh
You must bash usbreset.sh before mounting any usb device that already works.
My Pi, for eaxample, has one permanent attached SSD and two HDD powered by a relay board. I must run the reset command before mounting the SSD, otherwise it will not work.
It should work for your device too.
Hope it helps.
New contributor
Prerequisite:
Download and compile usbreset from https://gist.github.com/x2q/5124616
Compile with gcc -o usbreset usbreset.c
. GCC should be already on your raspberry pi.
Then chmod +x usbreset
If you have only one usb device, you can reset that device and will work.
If you have many usb devices, you should reset the usb hub instead.
To find the ids of usb devices run lsusb.
You should see something like:
Bus 001 Device 009: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp.
Bus 001 Device 008: ID 1f75:0621 Innostor Technology Corporation
Bus 001 Device 007: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
The hub I am writing about is SMC9514 Hub.
Create a sh file:
#!/bin/bash
USBNAME=0424:9514 #Put here the usb ID
LSUSB=$(lsusb | grep --ignore-case $USBNAME)
FOLD="/dev/bus/usb/"$(echo $LSUSB | cut --delimiter=' ' --fields='2')"/"$(echo $LSUSB | cut --delimiter=' ' --fields='4' | tr --delete ":")
echo $LSUSB
echo $FOLD
sudo ./usbreset $FOLD; #The path where you have the usbreset executable
And run it ar boot: bash usbreset.sh
You must bash usbreset.sh before mounting any usb device that already works.
My Pi, for eaxample, has one permanent attached SSD and two HDD powered by a relay board. I must run the reset command before mounting the SSD, otherwise it will not work.
It should work for your device too.
Hope it helps.
New contributor
New contributor
answered 7 mins ago
IonutGIonutG
11
11
New contributor
New contributor
add a comment |
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f524391%2fhow-can-i-power-cycle-a-usb-device-on-raspberry-pi%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown