Unplug and plug in again a USB device in the terminal

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP








up vote
2
down vote

favorite












For years, I have been dealing with this Ubuntu bug where my mouse freezes soon after booting and then periodically freezes after that. To fix it, I have to physically unplug the usb transceiver for the mouse and plug it back in. From my research, this bug happens with USB wireless Windows mice when dual booting Linux and Windows.



Is there a way I can programmatically (from the terminal) unplug the USB transceiver instead of doing it physically? I want to achieve this in my startup bash script.



I'm using Ubuntu 16.04







share|improve this question


















  • 2




    does uhubctl or an alternative work on your machine?
    – sbergeron
    May 15 at 1:58










  • I don't know what that is.
    – deanresin
    May 15 at 5:10










  • If this driver is a kernel module, you should be able to unload it with rmmod and reload it with modprobe. You only have to find out which module loads when you plugin the mouse. Try lsmod after you rebooted without mouse plugged in. Then plug it in and see, which module loaded.
    – nobody
    May 15 at 6:57






  • 1




    @sbergeron Could you please post your idea about uhubctl as answer. It is very promising.
    – N0rbert
    May 15 at 7:19














up vote
2
down vote

favorite












For years, I have been dealing with this Ubuntu bug where my mouse freezes soon after booting and then periodically freezes after that. To fix it, I have to physically unplug the usb transceiver for the mouse and plug it back in. From my research, this bug happens with USB wireless Windows mice when dual booting Linux and Windows.



Is there a way I can programmatically (from the terminal) unplug the USB transceiver instead of doing it physically? I want to achieve this in my startup bash script.



I'm using Ubuntu 16.04







share|improve this question


















  • 2




    does uhubctl or an alternative work on your machine?
    – sbergeron
    May 15 at 1:58










  • I don't know what that is.
    – deanresin
    May 15 at 5:10










  • If this driver is a kernel module, you should be able to unload it with rmmod and reload it with modprobe. You only have to find out which module loads when you plugin the mouse. Try lsmod after you rebooted without mouse plugged in. Then plug it in and see, which module loaded.
    – nobody
    May 15 at 6:57






  • 1




    @sbergeron Could you please post your idea about uhubctl as answer. It is very promising.
    – N0rbert
    May 15 at 7:19












up vote
2
down vote

favorite









up vote
2
down vote

favorite











For years, I have been dealing with this Ubuntu bug where my mouse freezes soon after booting and then periodically freezes after that. To fix it, I have to physically unplug the usb transceiver for the mouse and plug it back in. From my research, this bug happens with USB wireless Windows mice when dual booting Linux and Windows.



Is there a way I can programmatically (from the terminal) unplug the USB transceiver instead of doing it physically? I want to achieve this in my startup bash script.



I'm using Ubuntu 16.04







share|improve this question














For years, I have been dealing with this Ubuntu bug where my mouse freezes soon after booting and then periodically freezes after that. To fix it, I have to physically unplug the usb transceiver for the mouse and plug it back in. From my research, this bug happens with USB wireless Windows mice when dual booting Linux and Windows.



Is there a way I can programmatically (from the terminal) unplug the USB transceiver instead of doing it physically? I want to achieve this in my startup bash script.



I'm using Ubuntu 16.04









share|improve this question













share|improve this question




share|improve this question








edited May 15 at 7:45









dessert

19.6k55594




19.6k55594










asked May 15 at 1:46









deanresin

219313




219313







  • 2




    does uhubctl or an alternative work on your machine?
    – sbergeron
    May 15 at 1:58










  • I don't know what that is.
    – deanresin
    May 15 at 5:10










  • If this driver is a kernel module, you should be able to unload it with rmmod and reload it with modprobe. You only have to find out which module loads when you plugin the mouse. Try lsmod after you rebooted without mouse plugged in. Then plug it in and see, which module loaded.
    – nobody
    May 15 at 6:57






  • 1




    @sbergeron Could you please post your idea about uhubctl as answer. It is very promising.
    – N0rbert
    May 15 at 7:19












  • 2




    does uhubctl or an alternative work on your machine?
    – sbergeron
    May 15 at 1:58










  • I don't know what that is.
    – deanresin
    May 15 at 5:10










  • If this driver is a kernel module, you should be able to unload it with rmmod and reload it with modprobe. You only have to find out which module loads when you plugin the mouse. Try lsmod after you rebooted without mouse plugged in. Then plug it in and see, which module loaded.
    – nobody
    May 15 at 6:57






  • 1




    @sbergeron Could you please post your idea about uhubctl as answer. It is very promising.
    – N0rbert
    May 15 at 7:19







2




2




does uhubctl or an alternative work on your machine?
– sbergeron
May 15 at 1:58




does uhubctl or an alternative work on your machine?
– sbergeron
May 15 at 1:58












I don't know what that is.
– deanresin
May 15 at 5:10




I don't know what that is.
– deanresin
May 15 at 5:10












If this driver is a kernel module, you should be able to unload it with rmmod and reload it with modprobe. You only have to find out which module loads when you plugin the mouse. Try lsmod after you rebooted without mouse plugged in. Then plug it in and see, which module loaded.
– nobody
May 15 at 6:57




If this driver is a kernel module, you should be able to unload it with rmmod and reload it with modprobe. You only have to find out which module loads when you plugin the mouse. Try lsmod after you rebooted without mouse plugged in. Then plug it in and see, which module loaded.
– nobody
May 15 at 6:57




1




1




@sbergeron Could you please post your idea about uhubctl as answer. It is very promising.
– N0rbert
May 15 at 7:19




@sbergeron Could you please post your idea about uhubctl as answer. It is very promising.
– N0rbert
May 15 at 7:19










1 Answer
1






active

oldest

votes

















up vote
1
down vote















I wrote a script to show how I’d do that:



#!/bin/bash

port="1-1.1" # as shown by lsusb -t: bus-port(-subport)

bind_usb()
echo "$1" >/sys/bus/usb/drivers/usb/bind


unbind_usb()
echo "$1" >/sys/bus/usb/drivers/usb/unbind


unbind_usb "$port"
# sleep 1 # enable delay here
bind_usb "$port"


First you need to get the bus and port number of the usb port in question. You can do that with lsusb and any device you recognize in lsusb’s output, I use a Sandisk pendrive here:



$ lsusb
Bus 001 Device 005: ID 04f2:b39a Chicony Electronics Co., Ltd
Bus 001 Device 112: ID 8087:07dc Intel Corp.
Bus 001 Device 019: ID 04d9:1603 Holtek Semiconductor, Inc. Keyboard
Bus 001 Device 018: ID 0424:2504 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 022: ID 0781:5567 SanDisk Corp. Cruzer Blade
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
|__ Port 1: Dev 22, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 2: Dev 18, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 19, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 19, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 7: Dev 112, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 7: Dev 112, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M


From the output of lsusb you get the bus and device number of the device, then search this device in the output of lsusb -t to get the bus and port number (sometimes with subports). The syntax is:



1-2.3 # for Bus 1 Port 2 Subport 3 – strip leading zeroes!


Use this as port in the script. Now you just need to make it executable with chmod +x /path/to/script and run it with root permissions:



sudo /path/to/script


I didn’t need one for my pendrive, but it may be necessary for you to add a delay between unbinding and binding again, that’s what the commented out sleep 1 line is for – you can experiment with the values, e.g. sleep 0.5 for half a second.



Note that this approach shows how to disable and enable again a certain USB port, if you want a specific device to be unbound and rebound again you’ll have to use the same USB port for this to work. One could think of a way to parse lsusb’s output to dynamically get the bus and port number of a specific device every time the script is called, this would allow you to use any USB port, but I feel that would be an overkill here.



Suggestions taken from this linux.com blog article.






share|improve this answer






















  • I got the script working on another mouse (I'm not at home). I'll have to test on the mouse in question. And if it solves the problem I'll have to figure out how to run the scripts with permissions on startup. In the mean time, thanks!
    – deanresin
    May 17 at 20:25






  • 1




    @deanresin You’re welcome! I’d use root’s cron as explained in this answer, just that for root’s cron you edit the crontab with sudo crontab -e. The line to add would be @reboot /path/to/script without sudo.
    – dessert
    May 17 at 20:36











  • Great solution... I think I have used root's cron before.
    – deanresin
    May 17 at 22:08










  • Unfortunately it doesn't work. I still have to physically remove the USB transceiver and plug it back in. Also, @reboot doesn't work on my machine (Ubuntu 16.04)
    – deanresin
    May 19 at 3:53










Your Answer







StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "89"
;
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',
convertImagesToLinks: true,
noModals: false,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);








 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1036341%2funplug-and-plug-in-again-a-usb-device-in-the-terminal%23new-answer', 'question_page');

);

Post as a guest






























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
1
down vote















I wrote a script to show how I’d do that:



#!/bin/bash

port="1-1.1" # as shown by lsusb -t: bus-port(-subport)

bind_usb()
echo "$1" >/sys/bus/usb/drivers/usb/bind


unbind_usb()
echo "$1" >/sys/bus/usb/drivers/usb/unbind


unbind_usb "$port"
# sleep 1 # enable delay here
bind_usb "$port"


First you need to get the bus and port number of the usb port in question. You can do that with lsusb and any device you recognize in lsusb’s output, I use a Sandisk pendrive here:



$ lsusb
Bus 001 Device 005: ID 04f2:b39a Chicony Electronics Co., Ltd
Bus 001 Device 112: ID 8087:07dc Intel Corp.
Bus 001 Device 019: ID 04d9:1603 Holtek Semiconductor, Inc. Keyboard
Bus 001 Device 018: ID 0424:2504 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 022: ID 0781:5567 SanDisk Corp. Cruzer Blade
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
|__ Port 1: Dev 22, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 2: Dev 18, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 19, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 19, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 7: Dev 112, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 7: Dev 112, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M


From the output of lsusb you get the bus and device number of the device, then search this device in the output of lsusb -t to get the bus and port number (sometimes with subports). The syntax is:



1-2.3 # for Bus 1 Port 2 Subport 3 – strip leading zeroes!


Use this as port in the script. Now you just need to make it executable with chmod +x /path/to/script and run it with root permissions:



sudo /path/to/script


I didn’t need one for my pendrive, but it may be necessary for you to add a delay between unbinding and binding again, that’s what the commented out sleep 1 line is for – you can experiment with the values, e.g. sleep 0.5 for half a second.



Note that this approach shows how to disable and enable again a certain USB port, if you want a specific device to be unbound and rebound again you’ll have to use the same USB port for this to work. One could think of a way to parse lsusb’s output to dynamically get the bus and port number of a specific device every time the script is called, this would allow you to use any USB port, but I feel that would be an overkill here.



Suggestions taken from this linux.com blog article.






share|improve this answer






















  • I got the script working on another mouse (I'm not at home). I'll have to test on the mouse in question. And if it solves the problem I'll have to figure out how to run the scripts with permissions on startup. In the mean time, thanks!
    – deanresin
    May 17 at 20:25






  • 1




    @deanresin You’re welcome! I’d use root’s cron as explained in this answer, just that for root’s cron you edit the crontab with sudo crontab -e. The line to add would be @reboot /path/to/script without sudo.
    – dessert
    May 17 at 20:36











  • Great solution... I think I have used root's cron before.
    – deanresin
    May 17 at 22:08










  • Unfortunately it doesn't work. I still have to physically remove the USB transceiver and plug it back in. Also, @reboot doesn't work on my machine (Ubuntu 16.04)
    – deanresin
    May 19 at 3:53














up vote
1
down vote















I wrote a script to show how I’d do that:



#!/bin/bash

port="1-1.1" # as shown by lsusb -t: bus-port(-subport)

bind_usb()
echo "$1" >/sys/bus/usb/drivers/usb/bind


unbind_usb()
echo "$1" >/sys/bus/usb/drivers/usb/unbind


unbind_usb "$port"
# sleep 1 # enable delay here
bind_usb "$port"


First you need to get the bus and port number of the usb port in question. You can do that with lsusb and any device you recognize in lsusb’s output, I use a Sandisk pendrive here:



$ lsusb
Bus 001 Device 005: ID 04f2:b39a Chicony Electronics Co., Ltd
Bus 001 Device 112: ID 8087:07dc Intel Corp.
Bus 001 Device 019: ID 04d9:1603 Holtek Semiconductor, Inc. Keyboard
Bus 001 Device 018: ID 0424:2504 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 022: ID 0781:5567 SanDisk Corp. Cruzer Blade
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
|__ Port 1: Dev 22, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 2: Dev 18, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 19, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 19, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 7: Dev 112, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 7: Dev 112, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M


From the output of lsusb you get the bus and device number of the device, then search this device in the output of lsusb -t to get the bus and port number (sometimes with subports). The syntax is:



1-2.3 # for Bus 1 Port 2 Subport 3 – strip leading zeroes!


Use this as port in the script. Now you just need to make it executable with chmod +x /path/to/script and run it with root permissions:



sudo /path/to/script


I didn’t need one for my pendrive, but it may be necessary for you to add a delay between unbinding and binding again, that’s what the commented out sleep 1 line is for – you can experiment with the values, e.g. sleep 0.5 for half a second.



Note that this approach shows how to disable and enable again a certain USB port, if you want a specific device to be unbound and rebound again you’ll have to use the same USB port for this to work. One could think of a way to parse lsusb’s output to dynamically get the bus and port number of a specific device every time the script is called, this would allow you to use any USB port, but I feel that would be an overkill here.



Suggestions taken from this linux.com blog article.






share|improve this answer






















  • I got the script working on another mouse (I'm not at home). I'll have to test on the mouse in question. And if it solves the problem I'll have to figure out how to run the scripts with permissions on startup. In the mean time, thanks!
    – deanresin
    May 17 at 20:25






  • 1




    @deanresin You’re welcome! I’d use root’s cron as explained in this answer, just that for root’s cron you edit the crontab with sudo crontab -e. The line to add would be @reboot /path/to/script without sudo.
    – dessert
    May 17 at 20:36











  • Great solution... I think I have used root's cron before.
    – deanresin
    May 17 at 22:08










  • Unfortunately it doesn't work. I still have to physically remove the USB transceiver and plug it back in. Also, @reboot doesn't work on my machine (Ubuntu 16.04)
    – deanresin
    May 19 at 3:53












up vote
1
down vote










up vote
1
down vote











I wrote a script to show how I’d do that:



#!/bin/bash

port="1-1.1" # as shown by lsusb -t: bus-port(-subport)

bind_usb()
echo "$1" >/sys/bus/usb/drivers/usb/bind


unbind_usb()
echo "$1" >/sys/bus/usb/drivers/usb/unbind


unbind_usb "$port"
# sleep 1 # enable delay here
bind_usb "$port"


First you need to get the bus and port number of the usb port in question. You can do that with lsusb and any device you recognize in lsusb’s output, I use a Sandisk pendrive here:



$ lsusb
Bus 001 Device 005: ID 04f2:b39a Chicony Electronics Co., Ltd
Bus 001 Device 112: ID 8087:07dc Intel Corp.
Bus 001 Device 019: ID 04d9:1603 Holtek Semiconductor, Inc. Keyboard
Bus 001 Device 018: ID 0424:2504 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 022: ID 0781:5567 SanDisk Corp. Cruzer Blade
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
|__ Port 1: Dev 22, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 2: Dev 18, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 19, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 19, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 7: Dev 112, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 7: Dev 112, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M


From the output of lsusb you get the bus and device number of the device, then search this device in the output of lsusb -t to get the bus and port number (sometimes with subports). The syntax is:



1-2.3 # for Bus 1 Port 2 Subport 3 – strip leading zeroes!


Use this as port in the script. Now you just need to make it executable with chmod +x /path/to/script and run it with root permissions:



sudo /path/to/script


I didn’t need one for my pendrive, but it may be necessary for you to add a delay between unbinding and binding again, that’s what the commented out sleep 1 line is for – you can experiment with the values, e.g. sleep 0.5 for half a second.



Note that this approach shows how to disable and enable again a certain USB port, if you want a specific device to be unbound and rebound again you’ll have to use the same USB port for this to work. One could think of a way to parse lsusb’s output to dynamically get the bus and port number of a specific device every time the script is called, this would allow you to use any USB port, but I feel that would be an overkill here.



Suggestions taken from this linux.com blog article.






share|improve this answer
















I wrote a script to show how I’d do that:



#!/bin/bash

port="1-1.1" # as shown by lsusb -t: bus-port(-subport)

bind_usb()
echo "$1" >/sys/bus/usb/drivers/usb/bind


unbind_usb()
echo "$1" >/sys/bus/usb/drivers/usb/unbind


unbind_usb "$port"
# sleep 1 # enable delay here
bind_usb "$port"


First you need to get the bus and port number of the usb port in question. You can do that with lsusb and any device you recognize in lsusb’s output, I use a Sandisk pendrive here:



$ lsusb
Bus 001 Device 005: ID 04f2:b39a Chicony Electronics Co., Ltd
Bus 001 Device 112: ID 8087:07dc Intel Corp.
Bus 001 Device 019: ID 04d9:1603 Holtek Semiconductor, Inc. Keyboard
Bus 001 Device 018: ID 0424:2504 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 022: ID 0781:5567 SanDisk Corp. Cruzer Blade
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
|__ Port 1: Dev 22, If 0, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 2: Dev 18, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 19, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 19, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 7: Dev 112, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 7: Dev 112, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 8: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 8: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M


From the output of lsusb you get the bus and device number of the device, then search this device in the output of lsusb -t to get the bus and port number (sometimes with subports). The syntax is:



1-2.3 # for Bus 1 Port 2 Subport 3 – strip leading zeroes!


Use this as port in the script. Now you just need to make it executable with chmod +x /path/to/script and run it with root permissions:



sudo /path/to/script


I didn’t need one for my pendrive, but it may be necessary for you to add a delay between unbinding and binding again, that’s what the commented out sleep 1 line is for – you can experiment with the values, e.g. sleep 0.5 for half a second.



Note that this approach shows how to disable and enable again a certain USB port, if you want a specific device to be unbound and rebound again you’ll have to use the same USB port for this to work. One could think of a way to parse lsusb’s output to dynamically get the bus and port number of a specific device every time the script is called, this would allow you to use any USB port, but I feel that would be an overkill here.



Suggestions taken from this linux.com blog article.







share|improve this answer














share|improve this answer



share|improve this answer








edited May 15 at 7:52

























answered May 15 at 7:28









dessert

19.6k55594




19.6k55594











  • I got the script working on another mouse (I'm not at home). I'll have to test on the mouse in question. And if it solves the problem I'll have to figure out how to run the scripts with permissions on startup. In the mean time, thanks!
    – deanresin
    May 17 at 20:25






  • 1




    @deanresin You’re welcome! I’d use root’s cron as explained in this answer, just that for root’s cron you edit the crontab with sudo crontab -e. The line to add would be @reboot /path/to/script without sudo.
    – dessert
    May 17 at 20:36











  • Great solution... I think I have used root's cron before.
    – deanresin
    May 17 at 22:08










  • Unfortunately it doesn't work. I still have to physically remove the USB transceiver and plug it back in. Also, @reboot doesn't work on my machine (Ubuntu 16.04)
    – deanresin
    May 19 at 3:53
















  • I got the script working on another mouse (I'm not at home). I'll have to test on the mouse in question. And if it solves the problem I'll have to figure out how to run the scripts with permissions on startup. In the mean time, thanks!
    – deanresin
    May 17 at 20:25






  • 1




    @deanresin You’re welcome! I’d use root’s cron as explained in this answer, just that for root’s cron you edit the crontab with sudo crontab -e. The line to add would be @reboot /path/to/script without sudo.
    – dessert
    May 17 at 20:36











  • Great solution... I think I have used root's cron before.
    – deanresin
    May 17 at 22:08










  • Unfortunately it doesn't work. I still have to physically remove the USB transceiver and plug it back in. Also, @reboot doesn't work on my machine (Ubuntu 16.04)
    – deanresin
    May 19 at 3:53















I got the script working on another mouse (I'm not at home). I'll have to test on the mouse in question. And if it solves the problem I'll have to figure out how to run the scripts with permissions on startup. In the mean time, thanks!
– deanresin
May 17 at 20:25




I got the script working on another mouse (I'm not at home). I'll have to test on the mouse in question. And if it solves the problem I'll have to figure out how to run the scripts with permissions on startup. In the mean time, thanks!
– deanresin
May 17 at 20:25




1




1




@deanresin You’re welcome! I’d use root’s cron as explained in this answer, just that for root’s cron you edit the crontab with sudo crontab -e. The line to add would be @reboot /path/to/script without sudo.
– dessert
May 17 at 20:36





@deanresin You’re welcome! I’d use root’s cron as explained in this answer, just that for root’s cron you edit the crontab with sudo crontab -e. The line to add would be @reboot /path/to/script without sudo.
– dessert
May 17 at 20:36













Great solution... I think I have used root's cron before.
– deanresin
May 17 at 22:08




Great solution... I think I have used root's cron before.
– deanresin
May 17 at 22:08












Unfortunately it doesn't work. I still have to physically remove the USB transceiver and plug it back in. Also, @reboot doesn't work on my machine (Ubuntu 16.04)
– deanresin
May 19 at 3:53




Unfortunately it doesn't work. I still have to physically remove the USB transceiver and plug it back in. Also, @reboot doesn't work on my machine (Ubuntu 16.04)
– deanresin
May 19 at 3:53












 

draft saved


draft discarded


























 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1036341%2funplug-and-plug-in-again-a-usb-device-in-the-terminal%23new-answer', 'question_page');

);

Post as a guest













































































Popular posts from this blog

Unable to execute new pre-installation script (/var/lib/dpkg/tmp.ci/preinst)

Running the scala interactive shell from the command line

Do not install recommended packages of dependencies