Bir USB cihazını yazılım kullanarak kapatmanın bir yolu var mı?


11

Bir Linux makineden yazılım kullanarak (belirli) bir USB aygıtını tamamen kapatmamın bir yolu var mı?

Bunu (tek bir) USB çubuğunu kapatmak (LED kapalı olacak şekilde) için kullanmak istiyorum.

Bunu başarmak için herhangi bir yöntem biliyor musunuz? Örneğin / sys / bus / usb veya benzerlerini kullanmak?


Evet. Basitçe kaldırmak cihazı.
iglvzx

1
Hayır, bu yardımcı olmuyor. Ayrıca, çubuk üzerinde kullanılabilir bölümler (monte edilebilir) bulunma olasılığı da vardır.
Daniel Jour

Bir flash sürücü için, diski çıkarmanın bir yolu echo 1 > /sys/block/sd<letter[s]>/device/delete... (çıkarma işlemi bunu yapıyor olabilir ...) Aygıtın (yumuşak) "kapalı" olmasına neden olabilir ... (Diskler için çalışıyorsa, disk olmayan cihazlar için çalışmaz ..)
Gert van den Berg

Yanıtlar:


10

Makineniz eski çekirdeği çalıştırıyorsa echo suspend > /sys/bus/usb/devices/X-X/power/level, aygıtın askıya alınmasını zorlayabilirsiniz.

Ancak, 2.6.32'den bu yana artık mümkün değil:

Güç yönetimi olaylarını iki geniş sınıfta kategorize edebiliriz: dış ve iç. Harici olaylar, USB yığını dışındaki bazı ajanlar tarafından tetiklenen olaylardır: sistem askıya alma / devam ettirme (kullanıcı alanı tarafından tetiklenir), manuel dinamik devam ettirme (kullanıcı alanı tarafından da tetiklenir) ve uzaktan uyandırma (cihaz tarafından tetiklenir). Dahili olaylar USB yığınında tetiklenen olaylardır : otomatik askıya alma ve otomatik geri alma. Tüm dinamik askıya alma olaylarının dahili olduğunu unutmayın ; harici aracıların dinamik askıya alma işlemlerine izin verilmez.

power/control

    This file contains one of two words: "on" or "auto".
    You can write those words to the file to change the
    device's setting.

    "on" means that the device should be resumed and
    autosuspend is not allowed.  (Of course, system
    suspends are still allowed.)

    "auto" is the normal state in which the kernel is
    allowed to autosuspend and autoresume the device.

    (In kernels up to 2.6.32, you could also specify
    "suspend", meaning that the device should remain
    suspended and autoresume was not allowed.  This
    setting is no longer supported.

( http://www.kernel.org/doc/Documentation/usb/power-management.txt adresinden )

Yapabileceğiniz en iyi şey, aygıtı sürücüden ayırmaktır , bu nedenle üzerinde herhangi bir etkinlik olmaz ve ardından cihazı mümkün olan en kısa sürede otomatik olarak askıya alacak şekilde yapılandırın ( echo auto > /sys/bus/usb/devices/X-X/power/control && echo 0 > /sys/bus/usb/devices/X-X/power/autosuspend_delay_ms).

Ancak, USB özelliklerini anladığım kadarıyla , cihazı askıya alsanız bile, bağlantı noktasında bir miktar güç kalır, bu yüzden 'aptal' şema ile güçlendirilmişse led'i devre dışı bırakmak imkansız olabilir (yani doğrudan + 5V ve GND'ye bağlı) pim).


Bunu kabul edilen bir cevap olarak işaretliyorum çünkü cihazı sürücüsünden çıkarabiliyorum ve otomatik kapanmayı yapılandırabiliyordum, bu da cihazın kapanmasına neden oldu. Ne yazık ki, hedeflenen USB çubukları (veya: LED'leri) doğrudan + 5V ve GND'ye bağlıdır ve bu nedenle kapatılamaz.
Daniel Jour

3

Çıkar komutunu kullanmak işe yarayacaktır.

Koşun eject /dev/<devicename>ve kapanmalı.


Ne yazık ki, bu benim test sopa için işe yaramaz :(
Daniel Jour

2
USB belleğiniz bir CD, Disket, Teyp veya SCSI sürücü değilse şaşırtıcı değildir. ejectsadece bunlarla çalışır.
Dmitry Grigoryev
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.