Quero descobrir o que gnome-disk
está acontecendo, como fazer o mesmo na linha de comando e como desfazer o que quer que gnome-disk
esteja acontecendo. (Ele não pode desfazer tudo o que faz sozinho.)
Já experimentei um pouco e descobri o seguinte: o pen drive de memória USB ("stick") com o qual brinquei tem pelo menos 3 "níveis de estado" para alternar, 2 deles podem ser alternados com os gnome-drive
botões "ejetar" do ( ligado e desligado) e "desligar" (apenas desligado).
Do nível mais alto ao mais baixo, descobri:
- ejetar
gnome-drive
botão de ejeção- drive não desaparece, nem do gnome-drive, nem de outro lugar
- linha de comando:
eject /dev/sdb
- não pode ser desfeito com
gnome-drive
- desfazer com:
eject --trayclose /dev/sdb
- mensagens do kernel (
journalctl -k
)- ejetar
sdb: detected capacity change from 30253056 to 0
- desejetar
sd 4:0:0:0: [sdb] 30253056 512-byte logical blocks: (15.5 GB/14.4 GiB)
sdb: detected capacity change from 0 to 30253056
sdb: [partition details of my drive]
- ejetar
- (des)ligar
- não encontrei equivalente em
gnome-drive
- linha de comando:
echo 3-6 > /sys/bus/usb/drivers/usb/unbind
- dispositivo desaparece
gnome-drive
completamente - sem mensagens do kernel
lsusb -t
ainda vê o dispositivo, mas não mostra mais classe ("Armazenamento em massa") ou driver ("armazenamento USB")/sys/bus/usb/drivers/usb/3-6
diretório desapareceu- desfazer com
echo 3-6 > /sys/bus/usb/drivers/usb/bind
- isso provoca mensagens do kernel
usb-storage 3-6:1.0: USB Mass Storage device detected
scsi host4: usb-storage 3-6:1.0
scsi 4:0:0:0: Direct-Access TOSHIBA TransMemory PMAP PQ: 0 ANSI: 6
sd 4:0:0:0: Attached scsi generic sg2 type 0
sd 4:0:0:0: [sdb] 30253056 512-byte logical blocks: (15.5 GB/14.4 GiB)
sd 4:0:0:0: [sdb] Write Protect is off
sd 4:0:0:0: [sdb] Mode Sense: 45 00 00 00
sd 4:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sdb: [partition details of my drive...]
sd 4:0:0:0: [sdb] Attached SCSI removable disk
- isso provoca mensagens do kernel
- não encontrei equivalente em
- desligar
gnome-drive
botão de desligar- dispositivo desaparece em tudo, como fisicamente desconectado
- indistinguível da desconexão real
- mensagem do núcleo:
usb 3-6: USB disconnect, device number 10
- Como desligar pela linha de comando?
- Como ligar novamente sem reconectar de verdade?
Para completar: reconectar o stick atribui um novo número de dispositivo (11), o barramento e a porta permanecem os mesmos (3-6) e estas mensagens do kernel são mostradas:
usb 3-6: new high-speed USB device number 11 using xhci_hcd
usb 3-6: New USB device found, idVendor=0930, idProduct=6545, bcdDevi>
usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 3-6: Product: TransMemory
usb 3-6: Manufacturer: TOSHIBA
usb 3-6: SerialNumber: C03FD5F7713EE2B1B000821E
[plus all kernel messages as quoted under (re-)bind above]
Perguntas semelhantes (àquela do seu título) foram feitas ao longo dos anos, por exemplo, [1] , [2] , [3] (provavelmente mais de uma dúzia se você reservar um tempo para pesquisar...) a maioria das respostas não funciona mais hoje em dia devido a mudanças no código...
Enfim, não uso
GNOME
há anos, mas vou focar na primeira pergunta do seu post:a maneira mais fácil é apenas olhar o código-fonte, por exemplo,
gnome-disk
usagduwindow.c
duas funções:udisks_drive_call_eject ()
eudisks_drive_call_power_off ()
- documentado aqui onde diz que eles invocam os métodos D-BusEject()
e respectivamente,PowerOff()
o que significa que você pode invocar esses métodos no CLI por meiod-bus
de chamadas.Exemplo: uma unidade flash
ADATA
identificada comosda
e não montadaPrimeiro, obtenha o ID da unidade correspondente a
sda
:isso imprimirá algo como
Você pode então usar a parte entre aspas como objeto para a
d-bus
chamada para ejetar ou desligar a unidade:mesmo com
gdbus
o qual éGNOME
específico:Observe que esses comandos apresentarão erros se o sistema de arquivos estiver montado (unidade em uso). Além disso, como você pode ver na documentação, não existe um método
un-eject
orun-power-off
e é por isso quegnome-disk
não é possível desfazer nenhuma dessas operações.Não sei por que alguém usaria os comandos acima (e não entendo muito bem o sentido
eject()
no contexto de uma unidade flash, mas isso é outra discussão) ...Eu (como muitos outros) desmonto o sistema de arquivos com
e, em seguida, desligue a unidade com
Para reconectar uma unidade que foi desligada, você teria que executar algum tipo de redefinição/nova verificação/reconfiguração da porta USB (o que não pode ser feito por usuários comuns). Nenhuma das soluções nos outros posts funciona para mim com o kernel 6.6.2, então não posso sugerir nada por enquanto...
Como desligar na linha de comando?
A porta é
bus_nr-port.by.port.hub.chain.seperated.with.dots
, ou seja,3-3
ou3-2.4.6
. Nesses dois exemplos a porta está no barramento 3. O primeiro exemplo é apenas a porta 3, o segundo exemplo é uma cadeia de dois hubs, onde o primeiro está na porta 2 do barramento 3 e o segundo hub está na porta 4 do primeiro. O dispositivo está na porta 6 do segundo hub.Como ligar novamente sem reconectar de verdade?
ou porque
3-2.1
poderia serEnquanto a porta está habilitada, você pode ver antecipadamente a localização real da interface de gerenciamento de porta do hub correspondente no
pwd -P
diretório com o arquivo.disable
Para obter uma lista de controladores host que estabelecem um barramento USB,ls -l /sys/bus/usb/devices/usb*
é um bom começo.Veja também como interpretar
lsusb
para mais dicas. (Ou os documentos do kernel .)Como desligar na linha de comando?
Atualização: finalmente descobri - veja minha outra resposta.
Como ligar novamente sem reconectar de verdade?
Um método bruto (ele desativou temporariamente meu mouse e teclado, portanto, certifique-se de iniciar os dois comandos...) é religar o dispositivo PCI host USB. Isso parece desligar e ligar todas as portas, como uma inicialização ou reconexão física. Pelo menos para mim:
O número precisa ser ajustado ao seu ambiente, é claro. Veja o que você tem:
revelou que aquele barramento USB é acionado por
xhci_hcd
emostrado apenas
0000:00:14.0
como dispositivo.