LinuxでDFU(デバイスファームウェアアップデート)ファイルを使用してUSBデバイスのファームウェアをアップデートするには?

LinuxでDFU(デバイスファームウェアアップデート)ファイルを使用してUSBデバイスのファームウェアをアップデートするには?

USBスピーカーがあります(Jabra Speak 410)ファームウェアをアップデートする必要があります。使用しようとすると、fwupdmgr端末を表示して通知します。既存のファームウェアバージョン(1.9)ですが、アップデートは行われません。

$ 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
$

利用可能なアップデートファイルがあることを確認しました(バージョン 1.12)。更新ファイル(Jabra_SPEAK_410_USB-1-12-0.dfu)をダウンロードして使用しようとしていますが、fwupdmgr write何も反応がないようです。

答え1

その理由は多層的です。 fwupdmgrファームウェアを検索して処理するツールです。Linuxベンダーファームウェアサービス(LVFS). LVFSはメタデータとCABアーカイブの展開を提供します。マイクロソフトアップデートLVFSプロジェクトでフォーマットし、署名しました。これらの更新は個々のベンダーによって管理されます。

そしてザブラ公式の立場を出した:

すべてのSPEAKハードウェアサポート、より多くのモデルをリリース予定

バージョン 1.8 以降は、以降の更新はありません (Speak 410 の場合)。LVFS経由でJabraから公開

Jabraが提供する実際のDFUファイルにアクセスできるため、このユーティリティを使用してファイルを手動で処理できます。このユーティリティは、dfu-toolパッケージ(の親パッケージ)の一部としてもパッケージ化されています。fwupdfwupdmgr

署名という点を強調しなければなりません。パッケージDFUファイルの場合、エンドユーザーはファイルが安全な方法で検索されていることを確認する必要があります。これがLVFSが転送されたファイルの署名とアサーションを提供する理由です。すべてのファイルが転送セキュリティを使用してダウンロードされているか、所有権を主張するために使用できる独立した署名があることを確認してください。

DFUファイルが本物であると思われる場合は、次の手順に従ってください。

まず、有効なDFUデバイスが接続されていることを確認してください。

$ 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

DFU対応デバイスが存在することを確認したら、dfu-toolDFUファイルパスを使用して追加の呼び出しを実行します。

$ 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

fwupdmgrその後、または便利なユーティリティを使用して、必要なdfu-toolファームウェアバージョンが実行されていることを確認できます。

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

関連情報