USB bağlantı noktalarını açma / kapatma


18

Ubuntu'daki terminali kullanarak belirli bir USB portunu açmak / kapatmak mümkün mü?

lsusb aşağıdaki sonucu görüntüler:

Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 2232:1020
Bus 002 Device 009: ID 0bc2:a013 Seagate RSS LLC
Bus 002 Device 003: ID 0a5c:219c Broadcom Corp.

Seagate harici sabit disk sürücüm. Terminalde kapatabilir miyim?

Linux ile bir USB güç kaynağını kontrol etmeyi (açık / kapalı) denedim . Ama yerine neyin değiştirilmesi gerektiği konusunda kafam karıştı usbX.

Yanıtlar:


8

Önceki tüm yanıtlar bir USB askıya alma mekanizması, yani bir "mantıksal kapatma" hakkında konuşuyor , VBUS + 5V'yi asla USB bağlantı noktasından fiziksel olarak kesmeyecekler.

Sadece birkaç göbek VBUS'u burada açıklandığı gibi kesebilir .

Hubpower aracı bunu (hub destekliyorsa) yapabilirsiniz.


7

Aynı sorunla karşılaştıktan sonra, komutların farklı girilmesi gerektiğini gördüm, böylece "sudo" hakları uygun şekilde uygular.

"Tee" komutunu kullanın.

echo 0 | sudo tee /sys/bus/usb/devices/usb2/power/autosuspend_delay_ms

"tee" komutuna root haklarını uygulayarak 0'ı belirtilen dosyaya yazar ve o anda var olan her şeyi değiştirir. Eklemek için -a seçeneği ile tee komutunu kullanın.

bilgi için tee


2
teeKomut ayrıca ekrana baskı yan etki yaratacak. İsterseniz, dd of=/sys/bus/...yalnızca dosyaya yazacak ve başka hiçbir yere yazamayacaksınız.
Brandon Rhodes

4

Aslında usbXbir şey değildir ama USB bağlantı noktaları numaraları Xgibi sayısını gösterir 1ya da 2vesaire ... Örneğin, usb1ve usb2portlar için 1 ve 2 . Genel olarak, bir dizüstü bilgisayarda USB 2.0 ve USB 3.0 bağlantı noktalarına sahip üç veya dört USB bağlantı noktası olabilir.

Ubuntu yılında usb1, usb2... usbXbağlantılarıdır /sys/devices/pci000:00/*. İyi anlamak için şu komutu çalıştırın:

ls -l /sys/bus/usb/devices/

Yani etkinleştirmek / devre dışı USB bağlantı noktaları usbXile değiştirilecektir usb1sen / devre dışı istediğinizde USB Port Number 1(Stack Exchange veya bakınız):


Düzenleme: sayesinde Stefan Denchev doğru şekilde anlatmak için echo kullanarak bir dosyaya bazı metinler sudo . (Yorumunu da kontrol et.) İzin verilmedi mesajını şimdi almamalısın .

sudo sh -c "echo '0' > /sys/bus/usb/devices/usb1/power/autosuspend_delay_ms"
sudo sh -c "echo 'auto' > /sys/bus/usb/devices/usb1/power/control"

lsusbSonucunuzu gördükten sonra , Seagate cihazınıza bağlı gibi görünüyor Port No. 2, bu yüzden devre dışı bırakmanız gerekiyor usb2. Sonra komutlar şöyle olur:

sudo sh -c "echo '0' > /sys/bus/usb/devices/usb2/power/autosuspend_delay_ms"
sudo sh -c "echo 'auto' > /sys/bus/usb/devices/usb2/power/control"

Teşekkürler. Ben denemek echo "0" > "/sys/bus/usb/devices/usb2/power/autosuspend_delay_ms"çıktıbash: /sys/bus/usb/devices/usb2/power/autosuspend_delay_ms: Permission denied
curious_coder

sonra sudone olduğunu görün ile deneyin ..
Saurav Kumar

Denedim. Hala aynı hata.
curious_coder

Aslında Linux'ta herhangi bir bağlantı noktasını etkinleştirmeye / devre dışı bırakmaya çalışmadım. Sloganım sizi usbXsorun hakkında açıklığa kavuşturmaktı . Yakaladığınız komutlar hakkında çok açıksanız, StackOverflowsadece denemelisiniz. Şimdi herhangi bir şekilde ben de hangi portları etkinleştirmek / devre dışı bırakmak için gerçek komut olduğunu bilmek istiyorum. Benim için işe yaradığında yakında size cevap vereceğim. Söyleyin, ardından cihazınızın fişini çekip tekrar deneyin. veya verilen ilk yanıtı deneyin stackoverflow.
Saurav Kumar

1
sudo sh -c "echo 'on' >> /sys/bus/usb/devices/usb4/power/control"
UIlrvnd

1

udisksctlvardır power-offEğer birlikte kullanmak Önerim bayrağı, unmount

Gönderen man udisksctl:

power-off
           Arranges for the drive to be safely removed and powered off. On the
           OS side this includes ensuring that no process is using the drive,
           then requesting that in-flight buffers and caches are committed to
           stable storage. The exact steps for powering off the drive depends
           on the drive itself and the interconnect used. For drives connected
           through USB, the effect is that the USB device will be deconfigured
           followed by disabling the upstream hub port it is connected to

gösteri

İşte benim USB jumpdrive'ımın bağlantısını kesip kapatıyorum

testdir:$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 009: ID 154b:007a PNY 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

testdir:$ lsblk                                                                
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk 
└─sda1   8:1    0 111.8G  0 part /
sdb      8:16   1    30G  0 disk 
└─sdb1   8:17   1    30G  0 part /media/xieerqi/6A32C4555E1C5B4D
sr0     11:0    1  1024M  0 rom  

testdir:$ udisksctl unmount -b /dev/sdb1 && udisksctl power-off -b /dev/sdb1
Unmounted /dev/sdb1.

testdir:$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

testdir:$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 111.8G  0 disk 
└─sda1   8:1    0 111.8G  0 part /
sr0     11:0    1  1024M  0 rom  

testdir:$ 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.