ファームウェアは、デバイス固有のハードウェアに低レベルの制御を提供するソフトウェアの一種です。ファームウェアは、デバイスの読み取り専用メモリ(ROM)上に格納され、ハードウェアに操作方法を指示します。ファームウェアは、他のソフトウェアと同様に、エンドユーザーが変更したり削除したりすることはできません。これを行うには、専用のソフトウェアが必要です。このチュートリアルでは、Linux マシンのファームウェアを更新する方法を説明します。

Linux ベンダーファームウェアサービス

Linux ベンダーファームウェアサービスは、ハードウェアベンダーがユーザーのためにファームウェアの更新を直接アップロードすることを可能にする安全なウェブサービスです。このサービスは、すべての主要な Linux ディストリビューションで使用されています。Linux Vendor Firmware Service によって提供されるメタデータとファイルは、gnome-software と fwupdmgr によって、あなたのシステムのファームウェアを更新するために使用されます。

どのハードウェアベンダも、再配布可能なファームウェアを Linux vendor firmware service にアップロードすることができます。まず、ファームウェアは業界標準の .cab アーカイブにパッケージされる必要があり、次に Linux 固有のメタデータ・ファイルをユーザー用に追加する必要があります。メタデータは、必要なファームウェアを検出し、システムにインストールするために使用されます。

Debian で欠落したファームウェアをインストールする方法

Linux ディストリビューションにおける欠落したファームウェアは、しばしば non-free の Debian リ ポジトリで発見されます。non-free という言葉を混同しないでください。Debian で non-free のソフトウェ アを使うのにお金を払う必要はありません。

そのソフトウェアにアクセスするには、Debian のソースを “/etc/apt/sources.list” ファイルに追加してください。

sudo nano /etc/apt/sources.list に Debian のソースを追加してください。

ファイルの一番下に、以下の行を追加してください。

deb http://deb.debian.org/debian stretch main contrib non-free
deb-src http://deb.debian.org/debian stretch main contrib non-free
 
deb http://security.debian.org/debian-security/ stretch/updates main
deb-src http://security.debian.org/debian-security/ stretch/updates main
 
deb http://deb.debian.org/debian stretch-updates main
deb-src http://deb.debian.org/debian stretch-updates main

ファームウェアのインストールに必要なパッケージ名を検索するには、Debian キーワードでデバイス名を検索してください。おそらく、探しているパッケージの名前が見つかるでしょう。

例えば、私は Wi-Fi カードのファームウェアを検索しており、“firmware-realtak” パッケージをインストールしなければならないことを知りました。このパッケージは以下のコマンドで簡単にインストールすることができます。

sudo apt-get install firmware-realtek

fwupd を使ってファームウェアをアップデートする

fwupd は Linux マシンのファームウェアを更新するための最も一般的なオプションかもしれません。始める前に、あなたのデバイスの製造元が Linux Vendor Firmware Service (LVFS) をサポートしているかどうかチェックしてください。これを確認するには、LVFS デバイスリストウェブサイトで、あなたのデバイスを検索し、見つかったら次のセクションに進みます。

fwupd をシステムにインストールする前に、システムをアップデートしてください。

sudo apt update
sudo apt upgrade

Linux マシンに fwupd パッケージをインストールします。通常、Linuxディストリビューションにプリインストールされていますが、インストールする前に再確認しておくとよいでしょう。

sudo apt install fwupd

インストールが完了したら、fwupd デーモンを起動します。

sudo systemctl start fwupd

fwupd が正しく動作しているか確認するために、以下を実行します。

sudo systemctl status fwupd.service

ファームウェアアップデートマネージャーを使用して、ファームウェアアップデートリストを更新してください。

sudo fwupdmgr refresh

自動的に更新されない場合は、--force フラグを使用します。

sudo fwupdmgr refresh --force

結果は以下の画像のようになります。

何らかの更新があった場合は、このコマンドで端末のファームウェアを更新します。

sudo fwupdmgr update

Gnome-Software を使ったファームウェアのアップデート

ターミナルにあまり慣れておらず、ターミナルを避けたい場合、gnome-software を使ってデバイスのファームウェアを更新することができます。

Gnome-software は通常、gnome デスクトップ環境にプリインストールされています。他のデスクトップ環境を使用している場合は、以下のコマンドを実行することでgnome-softwareをインストールすることができます。

sudo apt update
sudo apt インストール gnome-software

インストール後、gnome-software を開き、「Updates」タブをクリックします。ファームウェアのアップデートがある場合、ここに表示されます。電池残量が少ないとアップデートが表示されないことがあるので、デバイスを接続してください。

gnome-softwareの「アップデート」タブにアップデートが表示されている場合は、「インストール」をクリックします。デバイスの起動時にファームウェアをインストールするため、コンピュータを再起動します。インストール時には、デバイスが接続されていることを確認してください。ファームウェアを部分的にインストールすると、システムが壊れる可能性があります。

KDE Discover Software を使ってファームウェアをアップデートする

gnome-software と同様に、KDE discover は KDE デスクトップ環境用に作られたソフトウェアストアです。KDE neon や kubuntu などの多くの Linux ディストリビューションにプリインストールされており、通常 KDE plasma にバンドルされています。Discoverソフトウェアは定期的にLVFSからメタデータファイルをダウンロードし、D-Bus経由でfwupdにサブミットします。

KDE discover ソフトウェアを使用してファームウェアの更新をインストールするには、ソフトウェアを開き、updates オプションに移動します。このオプションは、ソフトウェアの左下側にあります。お使いのシステムでアップデートが利用可能な場合、discoverソフトウェアがすべてのアップデートをリストアップします。すべて更新」ボタンをクリックして、ファームウェアをインストールします。

CPUマイクロコード

マイクロコードはプロセッサのファームウェアに関連するものです。カーネルはBIOSアップデートでプロセッサのファームウェアを更新する必要がなく、更新することができます。マイクロコードの更新は揮発性メモリに保存されるので、BIOS/UEFI やカーネルは起動のたびにマイクロコードを更新します。

IntelとAMDは、バグを修正し、パフォーマンスを向上させるために、定期的にCPUのマイクロコードをリリースしている。CPUのマイクロコードのリリースは、新しいプロセッサのために非常に頻繁に行われます。古いプロセッサの場合、時間とともにすべてのバグが修正されます。古いプロセッサのマイクロコードのアップデートがベンダーからリリースされることはほとんどありません。

マイクロコードのバージョンを確認するには、ターミナルで次のコマンドを実行してください。

cat /proc/cpuinfo

マイクロコードパラメータを検索します。私のマイクロコードのバージョンは以下の通りです。

IntelのCPUを使用している場合は、以下のコードを実行して、intel-microcodeをシステムにインストールします。

sudo apt-get update
sudo apt-get install intel-microcode

AMD プロセッサをお使いの場合は、amd-microcode をシステムにインストールしてください。

sudo apt-get update
sudo apt-get install amd64-microcode (日本語)

Appstream-glib

appstream-glib ライブラリは、AppStream メタデータの読み書きを容易にするための GObjects とヘルパーメソッドを提供します。このツールは圧縮された AppStream XML ファイルの読み書きが可能です。そのため、このライブラリーは .cab ファイルを処理するために使用されます。

ファームウェアのアップデートはすべてユニバーサル圧縮ファイルシステムの .cab ファイルであるため、Linux ファームウェアのアップデートには appstream-glib ライブラリーが非常に重要です。新しいファームウェアを更新してインストールするには、このツールを直接使用しないでく ださい。Fwupd と先に述べた他のプロセスは、メタデータとファームウェアファイルを解析するために、ボンネットの下で appstream glib を使用します。

Fwupdate ツール

注意:このプロジェクトは、もはやメンテナンスされていません。古い Linux サーバを使っているのでなければ、fwupdate の代わりに fwupd ユーティリティを使うべきでしょう。

これはユーザースペースライブラリです。fwupdate ツールは fwupd とカーネル ESRT インタフェースと対話し、UEFI のアップデートを HDD に保存することができます。fwupdate はクロス OS ユーティリティです。Linux、Solaris OS、Windows for x86 serversでサポートされています。fwupdateツールを使用すると、ストレージデバイスのファームウェアを照会、更新、および検証することができます。

fwupdateツールは、汎用のクロスOSストレージ管理ライブラリを使用して、特定のハードウェア情報にアクセスします。ホストシステムに接続されたオンボードおよび外部ストレージリソースの調査、監視、および設定 を提供します。

Asus EZ 機能の使用

このプロセスは Asus ハードウェアに非常に特有です。Asus のラップトップをお持ちの場合、Asus EZ 機能を使用して BIOS (UEFI) とファームウェアを更新することができます。

Asus ウェブサイトの製品ページに移動し、ドライバとユーティリティのセクションをクリックします。BIOSとファームウェアのセクションの中に、ダウンロード可能なファイルが表示されます。必要なファイルをダウンロードし、ファイル内容を外付けUSBドライブに解凍してください。

電源に接続し、ノートパソコンの電源を切ります。BIOSやファームウェアのアップデートを解凍した外付けUSBを接続し、ノートパソコンを起動し、F2キーを押してBIOSモードに移行します。Advanced “セクションで、ASUS EZ flash utilityのオプションが表示されます。このオプションをクリックし、アップグレードが含まれている外付けUSBを選択します。

ノートパソコンが自らアップデートをインストールします。必要なだけ時間をかけ、プロセスを中断させないでください。フラッシュが完了した後, 最新のファームウェアで起動するために、ラップトップを再起動します.

また、AsusのYouTubeビデオで詳細を確認することができます。

よくある質問

Linuxファームウェアはどこにインストールされますか?

Linuxのファームウェアのデフォルトのインストール先は、"/lib/firmware “フォルダーです。以下のコマンドを実行することで、インストールされているファームウェアの一覧を確認することができます。ls /lib/firmware/` を実行してください。

カーネルはファームウェアと同じですか?

いいえ、カーネルとファームウェアは別物です。ファームウェアはハードウェアを管理するもので、ハードウェアのためのソフトウェアと考えることができます。カーネルはユーザソフトウェアとハードウェアのインターフェースとして機能し、統一性と信頼性のために開発者とユーザから多くの重要なものを受け取ります。Linuxはオペレーティング・システムではなく、カーネルである。GNUなどのソフトウェアと一緒に提供される場合は、GNU/Linuxオペレーティングシステムと呼ばれます。

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。