web-dev-qa-db-fra.com

Comment éteindre automatiquement les périphériques usb après le démontage

Comment créer une configuration telle que, si je démonte un disque USB, il se met automatiquement hors tension?

2
Allen

D'une manière générale, udisksctl devrait faire l'affaire si le matériel le prend en charge. Tous les disques USB ne respectent pas les normes aussi bien ...

udisksctl power-off -b /dev/sdX tentera d'éteindre le disque:

$ udisksctl power-off --help 
Usage:
udisksctl power-off [OPTION...]

Safely power off a drive.

Options:
  -p, --object-path         Object path for ATA device
  -b, --block-device        Device file for ATA device
  --no-user-interaction     Do not authenticate the user if needed

Je viens de tester cela avec deux ou trois disques différents (Seagate BackupPlus 1000 Go, ICY-box avec un disque de 500 Go) et cela semble fonctionner. Il ne fonctionnait pas avec un adaptateur S-ATA-USB chinois très bon marché (0,90 $) ...

Vous pouvez également essayer la commande eject qui envoie la commande d’éjection au périphérique. Dans de nombreux cas, cela entraînera un ralentissement. Sudo eject /dev/sdX - mais il y a peu de chance qu'il fonctionne, si udisksctl ne fonctionne pas.

1
vidarlo

Autant que je sache, certains ordinateurs de bureau le font automatiquement, d'autres non. Le plasma ne le fait pas ( https://bugs.kde.org/show_bug.cgi?id=270808 ) une solution simple a été postée là-bas ( https: // bugs.kde.org/show_bug.cgi?id=270808#c64 ). Voici une version légèrement améliorée qui affichera des notifications.

La solution consiste à ajouter une nouvelle action à DeviceNotifier, qui exécutera un script bash qui démontera et mettra le périphérique hors tension. Il ne teste pas tous les cas Edge, mais cela devrait fonctionner dans la plupart des cas. Ajoutez simplement les deux fichiers suivants. Après le redémarrage de kded5 (ou après la déconnexion et la remise sous tension), les nouveaux périphériques amovibles doivent avoir une nouvelle action "Démonter et éteindre le périphérique USB".

~/.local/bin/power-device-off (assurez-vous de chmod + x this)

#!/bin/bash

if udisksctl unmount -b $1; then
    if udisksctl power-off -b $1; then
        notify-send "Device $1 powered off and can be removed safely."
    else
        notify-send "Unmounted $1, but could not power down."
    fi
else
    notify-send "Could not unmount $1."
fi

~/.local/share/solid/actions/power-devices-off.desktop

[Desktop Entry]
X-KDE-Solid-Predicate=[ [ [ StorageVolume.ignored == false AND StorageVolume.usage == 'FileSystem' ] OR [ IS StorageAccess AND StorageDrive.driveType == 'Floppy' ] ] OR StorageAccess.ignored == false ]
Type=Service
Actions=open;

[Desktop Action open]
Name=Unmount and Power-Off USB device
Exec=power-device-off "%d"
Icon=emblem-unmounted
0
Sunday