Help us understand the problem. What is going on with this article?

【Ubuntu Dell XPS13-9380】Firmware(UEFI/BIOS)の更新が出来なくて困ったけどfwupdを使って更新できた話

0. はじめに

こんにちは。都内でエンジニアをしている、@gkzvoiceです。
先日、私用Linux PCのFirmwareの更新でコケてしまったので、そのトラブルシュートにチャレンジしておりました。

結論からお伝えしますと、後述する、fwupdを使って無事更新することができました。
そこで本記事では、fwupdを使ってFirmware(UEFI/BIOS)の更新ができるようになるまでの手順について解説していきます。

1. 目次

  • 2. 環境/バージョン情報
  • 3. 遭遇したエラーの説明
  • 4. 更新手順
  • 5. 参考資料

2.環境/バージョン情報

ローカル開発環境

  • Dell XPS13-9380
  • Ubuntu 20.04.1 LTS (Focal Fossa)"
  • BIOS 1.11.0
  • fwupdmgr
    • client 1.3.11
    • daemon 1.3.11

僕だけかも知れませんが、バージョン一つ確認するのも苦労したので確認に使ったコマンドを貼っておきます(とくにBIOS。。)。

## Dell XPS13-9380
$ sudo lshw -short | head -3
H/W path           Device           Class          Description
==============================================================
                                    system         XPS 13 9380 (08AF)
## Ubuntu
$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

## BIOS
$ sudo dmidecode -s bios-version
1.11.0

## fwupdmgr client/daemon
$ fwupdmgr --version
client version: 1.3.11
compile-time dependency versions
    gusb:   0.3.4
    efivar: 37
daemon version: 1.3.11

3. 遭遇したエラーの説明

なにがきっかけかは分かりませんが、下記のスクリーンショットの左側に表示されているようなエラーメッセージが画面に出るようになったんですよね大汗。

Screenshot from 2020-09-08 22-31-08.png

エラーメッセージ全文です↓。

Unable to update "Dell Inc. System Firmware" as download failed:
failed to download https://fwupd.org/downloads/-xxxxxxx-d35-XPS_9380_1.11.0.cab: Connection terminated unexpectedlly

4. 更新手順

4-1.下記のLinux Vendor Firmware Service(LVFS⁠)⁠から自分PCに合ったcabをダウンロード

https://fwupd.org/lvfs/devices/com.dell.uefice945437.firmware

  • 下記のようにcurlやwgetを使ってダウンロードしても、GUIでcabをクリックしてもよい
$ curl https://fwupd.org/downloads/60344cbcc1f3c061ea202e1c7d7cc9c6333f0f070eba09fc8ef27114fe3ced35-XPS_9380_1.11.0.cab \
> --output $HOME/Downloads/xps_9380.cab
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 21.6M  100 21.6M    0     0  1454k      0  0:00:15  0:00:15 --:--:-- 2711k

Screenshot from 2020-09-13 19-49-01.png

  • 無事 curlのoutputオプションで指定したダウンロード先にcabがあることを確認(GUIでダウンロードされた方はよしなに)
$ ls $HOME/xps_9380.cab 
$HOME/Downloads/xps_9380.cab

4-2. fwupdmgr installコマンドでcabをインストール

  • 下記のようにfwupdmgr install /path/to/$FILEを実行してからyを押す
  • fwupdmgr installコマンドを実行するためには、ACアダプタをつなぐ必要があります。
  • なお、このfwupdmgr installとはfwupdというデーモンが提供するインストールコマンドみたいです。
$ fwupdmgr install Downloads/xps_9380.cab 
Decompressing…           [***************************************]
Authenticating…          [***************************************]
Installing on System Firmware…                                   ]
Scheduling…              [***************************************]
Successfully installed firmware

An update requires a reboot to complete. Restart now? [y|N]: 
  • 後は画面に従って再起動したり、淡々と進めるだけでした。

fwupdmgr installコマンドについては、fwupd/firmware-dellリポジトリで自分で立てたissueで教えていただきました。

Download the .cab files that match your hardware and then install them on the target hardware via Ansible or Puppet using fwupdmgr install foo.cab.

参考:Offline Firmware — LVFS documentation

  • fwupdについてはこちらを。

The Linux Foundationは3月26日(米国時間⁠)⁠,同ファウンデーション傘下の新しいプロジェクトとして「Linux Vendor Firmware Service(LVFS⁠)⁠」がスタートしたことを発表した。

Linux Vendor Firmware Service
LVFS Project Announcement - The Linux Foundation
LVFSはRed Hatの開発者が中心となって進めてきた活動で,各ハードウェアベンダが提供するファームウェアやBIOSを,再配布可能な形式(.cab)でサイト上で集約し,ユーザや開発者は「fwupd」というデーモンを介してLVFSに接続することで,ローカルマシンのファームウェアアップデートが可能になる。

参考:2019年3月29日 ファームウェア提供のスタンダードに! Linux Foundationの新プロジェクト「Linux Vendor Firmware Service」がスタート:Linux Daily Topics|gihyo.jp … 技術評論社

5. 参考資料

P.S. Twitterもやってるのでフォローしていただけると泣いて喜びます:)

@gkzvoice

gkzz
SoftwareDeveloper #python #ansible #docker #stackStorm #geekhouse #gkz
https://github.com/gkzz
ap-com
エーピーコミュニケーションズは「エンジニアから時間を奪うものをなくす」ため、ITインフラ自動化のプロフェッショナルとして、クラウドも含めたインフラ自動化技術で顧客の課題を解決すると同時に、SI業務の課題を解決するプロダクト・サービスを提供するNeoSIer(ネオエスアイヤー)です。
https://www.ap-com.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした