Como você atualiza o firmware em um dispositivo USB com um arquivo de atualização de firmware de dispositivo (DFU) do Linux?

2

Eu tenho um alto-falante USB (um Jabra Speak 410 ) que eu preciso atualizar o firmware. Quando tento usar fwupdmgr ele vê o dispositivo, informa-me da versão do firmware existente (1.9) mas não executa nenhuma atualização:

$ fwupdmgr get-devices
Jabra SPEAK 410 USB
  DeviceId:             87caecc4e6db7e3c335deedfef38666e7f279a03
  Guid:                 537f7800-8529-5656-b2fa-b0901fe91696
  Guid:                 a607e767-5dfd-5f21-ac0f-c774dbd6fed5
  Guid:                 1764c519-4723-5514-baf9-3b42970de487
  Plugin:               dfu
  Flags:                updatable|registered
  VendorId:             USB:0x0B0E
  Version:              1.9
  Icon:                 drive-harddisk-usb
  Created:              2018-09-12
$ fwupdmgr update
$

Verifiquei que há um arquivo de atualização disponível ( versão 1.12 ) . Quando eu baixar o arquivo de atualização ( Jabra_SPEAK_410_USB-1-12-0.dfu ) e tentar usá-lo com fwupdmgr write , não parece fazer nada.

    
por Brian Redbeard 12.09.2018 / 21:54

1 resposta

2

A razão para isso é multi-camadas. fwupdmgr é uma ferramenta para recuperar o firmware e processá-lo do Serviço de Firmware do Fornecedor do Linux (LVFS). O LVFS fornece metadados e distribuição de arquivos CAB compactados no Microsoft Update e assinado pelo projeto LVFS. Essas atualizações são gerenciadas pelos fornecedores individuais.

Enquanto o Jabra fez a declaração oficial :

All SPEAK hardware is supported, more models to follow

Não houve atualizações subseqüentes após a versão 1.8 (para o Speak 410) publicado pela Jabra através do LVFS .

Como você tem acesso ao arquivo DFU real fornecido pela Jabra, ele pode ser processado manualmente usando o utilitário dfu-tool também empacotado como parte do pacote fwupd (o pacote pai de fwupdmgr ). / p>

Deve-se enfatizar que, como a assinatura é uma função do empacotamento dos arquivos DFU, cabe ao usuário final garantir que o arquivo seja recuperado de maneira segura. É por isso que o LVFS fornece assinatura e asserção dos arquivos enviados. Assegure-se de que todos os arquivos sejam baixados usando segurança de transporte ou tenha desanexado assinaturas que podem ser usadas para afirmar a propriedade.

Se você achar que o arquivo DFU é genuíno, use o seguinte processo:

Primeiro, verifique se há um dispositivo compatível com DFU válido conectado:

$ dfu-tool list
Found 0b0e:0412 [v1.9]:
 Name:          Jabra SPEAK 410 USB
 Serial:        745C4B561A3XXXXXXXX
 Mode:          Runtime
 Status:        OK
 State:         appIDLE
 Transfer Size: 64 bytes
 Attributes:    can-download|can-upload
 Quirks:        no-dfu-runtime

Depois de verificar se há uma chamada anexada ao dispositivo compatível com DFU dfu-tool com o caminho para o arquivo DFU:

$ dfu-tool write ~/Downloads/Jabra_SPEAK_410_USB-1-12-0.dfu 

(dfu-tool:7597): FuPluginDfu-WARNING **: 12:22:53.882: truncated DFU interface data, no bcdDFUVersion

(dfu-tool:7597): FuPluginDfu-WARNING **: 12:23:05.310: truncated DFU interface data, no bcdDFUVersion
Writing…          [*************************************************]
Waiting…          [*************************************************]
Restarting device…[*************************************************]

(dfu-tool:7597): FuPluginDfu-WARNING **: 12:30:04.795: truncated DFU interface data, no bcdDFUVersion
879644 bytes successfully downloaded to device

Você pode usar fwupdmgr ou dfu-tool como utilitários de conveniência para verificar se a versão de firmware desejada está em execução:

dfu-tool :

$ dfu-tool list
Found 0b0e:0412 [v1.12]:
 Name:          Jabra SPEAK 410 USB
 Serial:        745C4B561A3Dx010900
 Mode:          Runtime
 Status:        OK
 State:         appIDLE
 Transfer Size: 64 bytes
 Attributes:    can-download|can-upload
 Quirks:        no-dfu-runtime

fwupdmgr :

$ fwupdmgr get-devices
Jabra SPEAK 410 USB
  DeviceId:             87caecc4e6db7e3c335deedfef38666e7f279a03
  Guid:                 537f7800-8529-5656-b2fa-b0901fe91696
  Guid:                 f884081f-f58f-5d01-86e8-dc12c88ef073
  Guid:                 1764c519-4723-5514-baf9-3b42970de487
  Plugin:               dfu
  Flags:                updatable|registered
  VendorId:             USB:0x0B0E
  Version:              1.12
  Icon:                 drive-harddisk-usb
  Created:              2018-09-12
    
por 12.09.2018 / 21:54