「Linux から BIOS を書き換える」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(fix typo)
(同期)
(2人の利用者による、間の8版が非表示)
5行目: 5行目:
 
{{Warning|マザーボードの BIOS を書き換えることは危険なことであり、あなたのマザーボードを使い物にならなくしてしまう可能性もあります。この記事の著者は何度もこの方法で成功していますが、実際にあなたも上手くいくとは限りません。注意してください。[[マイクロコード]]のアップデートがサポートされている場合は代わりにそちらを考慮すると良いかもしれません。}}
 
{{Warning|マザーボードの BIOS を書き換えることは危険なことであり、あなたのマザーボードを使い物にならなくしてしまう可能性もあります。この記事の著者は何度もこの方法で成功していますが、実際にあなたも上手くいくとは限りません。注意してください。[[マイクロコード]]のアップデートがサポートされている場合は代わりにそちらを考慮すると良いかもしれません。}}
   
  +
{{Note|HP を使っている場合、HP のウェブサイトから Windows BIOS アップデータをダウンロードして、*.exe ファイルを解凍して ISO イメージを CD に書き込むことができます。以下のツールを利用しなくても CD を使うことで BIOS メニューの 'Firmware Upgrade' からアップグレードが可能です。詳しくは [https://h30434.www3.hp.com/t5/Notebook-Operating-System-and-Recovery/How-to-update-BIOS-on-Linux/td-p/4869835 こちらのスレッド] を参照してください。}}
==イントロダクション==
 
Linux でシステム BIOS を書き換えるのに使える方法は限られています。
 
   
 
==BiosDisk==
 
==BiosDisk==
[http://linux.dell.com/biosdisk/ BiosDisk] は Linux におけるシステム BIOS の書き換えプロセスを簡単にします。
+
[https://github.com/dell/biosdisk BiosDisk] は Linux におけるシステム BIOS の書き換えプロセスを簡単にします。
   
 
===インストール===
 
===インストール===
19行目: 18行目:
 
* mkfloppy は biosdisk イメージを作成してフロッピーディスクに直接書き込みます。使用方法は以下の通り:
 
* mkfloppy は biosdisk イメージを作成してフロッピーディスクに直接書き込みます。使用方法は以下の通り:
   
biosdisk mkfloppy [-o option] [-d device] [-k baseimage] /path/to/.exe
+
# biosdisk mkfloppy [-o option] [-d device] [-k baseimage] /path/to/.exe
   
 
* mkimage はユーザーのハードドライブ上にフロッピーイメージを作成します。使用方法は以下の通り:
 
* mkimage はユーザーのハードドライブ上にフロッピーイメージを作成します。使用方法は以下の通り:
   
biosdisk mkimage [-o option] [-i destination] [-k baseimage] /path/to/.exe
+
# biosdisk mkimage [-o option] [-i destination] [-k baseimage] /path/to/.exe
   
 
* mkpkg はフロッピーイメージを作成し、それを使ってディストリビューションにあわせてユーザーがインストールできるパッケージを作成します (例: RPM)。このパッケージがインストールされると、ディストリビューションの固有のツールが使われてシステムのブートローダーを更新し、フロッピードライブがなくともハードドライブのイメージを起動して BIOS が書き換えられるようになります。今のところは Red Hat/Fedora の RPM パッケージしかサポートされていません。使用方法は以下の通り:
 
* mkpkg はフロッピーイメージを作成し、それを使ってディストリビューションにあわせてユーザーがインストールできるパッケージを作成します (例: RPM)。このパッケージがインストールされると、ディストリビューションの固有のツールが使われてシステムのブートローダーを更新し、フロッピードライブがなくともハードドライブのイメージを起動して BIOS が書き換えられるようになります。今のところは Red Hat/Fedora の RPM パッケージしかサポートされていません。使用方法は以下の通り:
   
biosdisk mkpkg [-o option] [--install] [--distro=] [--name=] [--version=] [--release=] /path/to/{.exe | .img}
+
# biosdisk mkpkg [-o option] [--install] [--distro=] [--name=] [--version=] [--release=] /path/to/{.exe | .img}
   
 
* install は biosdisk イメージを作成して、イメージファイルを {{ic|/boot}} にコピー、そしてそのイメージのエントリと共にブートローダーを更新します。したがってユーザーがするべきことはシステムを起動し BIOS を書き換えるイメージを選択するだけです。ハードドライブから直接 biosdisk イメージがロードされて BIOS が書き換えられます。
 
* install は biosdisk イメージを作成して、イメージファイルを {{ic|/boot}} にコピー、そしてそのイメージのエントリと共にブートローダーを更新します。したがってユーザーがするべきことはシステムを起動し BIOS を書き換えるイメージを選択するだけです。ハードドライブから直接 biosdisk イメージがロードされて BIOS が書き換えられます。
   
biosdisk install [-o option] [--name=] /path/to/{.exe | .img}
+
# biosdisk install [-o option] [--name=] /path/to/{.exe | .img}
   
 
==Flashrom==
 
==Flashrom==
 
[http://www.flashrom.org/Flashrom Flashrom] はフラッシュチップを確認・読込・書込・検証・消去するためのユーティリティです。メインボードやネットワーク・グラフィック・ストレージコントローラーカード、そして様々なプログラマーデバイスにおける BIOS/EFI/coreboot/ファームウェア/optionROM イメージを書き換えるために作られました。
 
[http://www.flashrom.org/Flashrom Flashrom] はフラッシュチップを確認・読込・書込・検証・消去するためのユーティリティです。メインボードやネットワーク・グラフィック・ストレージコントローラーカード、そして様々なプログラマーデバイスにおける BIOS/EFI/coreboot/ファームウェア/optionROM イメージを書き換えるために作られました。
   
  +
{{Warning|ノートパソコンを使っている場合は flashrom を使用しないでください。ノートパソコンの EC を操作すると書き込み中にマシンがクラッシュする可能性があります。flashrom はマシンがノートパソコンかどうか判別しますが、全てのノートパソコンが標準に従っているわけではないので 100% の安全は保証できません [https://www.flashrom.org/Board_Testing_HOWTO]。}}
===インストール===
 
====方法 1: 公式リポジトリ (推奨)====
 
[[公式リポジトリ]]から {{pkg|flashrom}} パッケージを[[インストール]]する。
 
   
====方法 2: AUR====
+
===インストール===
[[Arch User Repository|AUR]] には {{AUR|flashrom-svn}} が存在しま
+
[[公式リポジトリ]]の {{pkg|flashrom}} パッケージか [[Arch User Repository|AUR]] {{AUR|flashrom-svn}}{{Broken package link|パッケージが存在しません}} を[[インストール]]してください
   
 
===使用方法===
 
===使用方法===
48行目: 45行目:
   
 
上のコマンドはあなたのマザーボードとチップセットを表示します。それから次のコマンドを実行することでサポートされているか確認できます:
 
上のコマンドはあなたのマザーボードとチップセットを表示します。それから次のコマンドを実行することでサポートされているか確認できます:
$ flashrom --programmer internal -L | grep CHIPNAMEfrompreviouscommand
+
# flashrom --programmer internal -L | grep CHIPNAMEfrompreviouscommand
   
 
新しいメインボードを使っている場合、複数のロムチップが表示されることがあります。上のコマンドで表示されたところからチップの名前を選択してください。{{ic|-c}} オプションを使うことでコマンドによってどの ROM を書き換えるのか選択できます:
 
新しいメインボードを使っている場合、複数のロムチップが表示されることがあります。上のコマンドで表示されたところからチップの名前を選択してください。{{ic|-c}} オプションを使うことでコマンドによってどの ROM を書き換えるのか選択できます:
$ flashrom --programmer internal -c "CHIPNAME" -r backup_CHIPNAME.bin
+
# flashrom --programmer internal -c "CHIPNAME" -r backup_CHIPNAME.bin
   
ROM チップ上に新しい BIOS イメージ (プロプライエタリまたは LinuxBIOS) を書き込んで検証する:
+
ROM チップ上に新しい BIOS イメージ (プロプライエタリのイメージまたは Coreboot) を書き込んで検証する:
$ flashrom --programmer internal internal -c "CHIPNAME" -w newbios.bin
+
# flashrom --programmer internal internal -c "CHIPNAME" -w newbios.bin
   
 
メインボード上の他のフラッシュチップを書き換えたい場合は、次のコマンドで全てのオプションを知ることができます:
 
メインボード上の他のフラッシュチップを書き換えたい場合は、次のコマンドで全てのオプションを知ることができます:
$ flashrom
+
# flashrom
  +
  +
{{Note|1=Linux カーネルのバージョン 4.4 以上では、カーネルの新しいセキュリティ機能である CONFIG_IO_STRICT_DEVMEM によって flashrom の動作が停止する可能性があります。そのような場合はカーネルパラメータに {{ic|1=iomem=relaxed}} を追加してみてください [https://www.flashrom.org/FAQ]。}}
   
 
==FreeDOS==
 
==FreeDOS==
65行目: 64行目:
 
ブータブルな FreeDOS USB スティックを作成する一番簡単な方法は[[公式リポジトリ]]の {{pkg|unetbootin}} を使うことです。
 
ブータブルな FreeDOS USB スティックを作成する一番簡単な方法は[[公式リポジトリ]]の {{pkg|unetbootin}} を使うことです。
   
USB メモリを FAT16 でフォーマットして "boot" フラグを有効にします ({{Pkg|gparted}}, {{AUR|qtparted}}, {{Pkg|partitionmanager}} などで GUI を使って行うことができます)。それから、フラッシュドライブをマウントした後、ディストリビューション '''FreeDOS''' とマウントしたスティックを選択します。アプリは自動的にイメージをダウンロードしてドライブにコピーします。最後に、書き換えたいもの全てをコピーすることができます (BIOS, ファームウェアなど)。
+
USB メモリを FAT16 でフォーマットして "boot" フラグを有効にします ({{Pkg|gparted}}, {{AUR|qtparted}}{{Broken package link|{{aur-mirror|qtparted}}}}, {{Pkg|partitionmanager}} などで GUI を使って行うことができます)。それから、フラッシュドライブをマウントした後、ディストリビューション '''FreeDOS''' とマウントしたスティックを選択します。アプリは自動的にイメージをダウンロードしてドライブにコピーします。最後に、書き換えたいもの全てをコピーすることができます (BIOS, ファームウェアなど)。
   
 
{{Warning|Unetbootin は Lenovo のシステムで正しく作動しないことがあります。ブータブルスティックを別のデバイスに作成する必要があるかもしれません。[http://reboot.pro/topic/9849-blinking-cursor-at-boot/ こちら] を見て下さい。}}
 
{{Warning|Unetbootin は Lenovo のシステムで正しく作動しないことがあります。ブータブルスティックを別のデバイスに作成する必要があるかもしれません。[http://reboot.pro/topic/9849-blinking-cursor-at-boot/ こちら] を見て下さい。}}
難しい方法を使いたい場合は、以下を読んで下さい。
 
   
 
===Gentoo===
 
===Gentoo===
ブータブルな FreeDOS フラッシュドライブを作成したいときは Gentoo Wiki の [http://gentoo-wiki.info/FreeDOS_Flash_Drive FreeDOS Flash Drive] を参照。
+
ブータブルな FreeDOS フラッシュドライブを作成したいときは Gentoo Wiki の [https://wiki.gentoo.org/wiki/BIOS_Update#FreeDOS_environment FreeDOS Flash Drive] を参照。
  +
  +
=== ビルド済みのイメージ ===
  +
他の方法も存在します: [http://chtaube.eu/computers/freedos/bootable-usb/ FreeDOS prebuilt bootable USB flash drive image by Christian Taube]。
   
 
===イメージがフロッピーに収めるには大きすぎる===
 
===イメージがフロッピーに収めるには大きすぎる===
100行目: 101行目:
   
 
===使用方法===
 
===使用方法===
  +
OEM Bootdisk バージョンを推奨します。{{ic|kernel}} と {{ic|command.com}} しか含まれておらずフラッシュユーティリティや新しい BIOS イメージのための領域が存在するからです。FreeDOS イメージをダウンロードして解凍:
'''ステップ 1: FreeDOS ブートディスクフロッピーイメージをダウンロード'''
 
   
  +
$ wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz
We are fortunate that guys at FDOS site have prepared one suitable for us. Use the OEM Bootdisk version, the one with just kernel and command.com, because it leaves more free space on disk for the flash utility and new BIOS image. After you download the image, you need to decompress it. In other words:
 
wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz
+
$ gunzip FDOEM.144.gz
gunzip FDOEM.144.gz
 
   
'''ステプ 2: BIOS フラッシュユーティリティと新しい BIOS イメージをマウントしたフロッピーディスクイメーにコピ'''
+
フロピーディスクイメージをマウントしてBIOS フラッシュユーティリティと新しい BIOS イメージをピーします。必要なモルをロード:
   
  +
# modprobe vfat
Requirement for this step is that you have support for the vfat and loop file systems in the kernel. Or you can have those features compiled as modules. In the latter case, load the modules before the next step, like this.
 
modprobe vfat
+
# modprobe loop
modprobe loop
 
   
  +
{{ic|/proc/fileystems}} で必要なファイルシステムがサポートされているかどうか表示されます。フロッピーディスクイメージを一時的なパスにループマウント:
Consult {{ic|/proc/fileystems}} to see if you have the needed file systems supported. If you do, you should be able to "loop mount" the floppy disk image to some temporary path:
 
mkdir /tmp/floppy
 
mount -t vfat -o loop FDOEM.144 /tmp/floppy
 
   
  +
$ mkdir /tmp/floppy
If the mount went without errors, copy BIOS flash utility and new BIOS image to the mounted floppy disk image. You'll probably have to unzip the archive you downloaded from your motherboard vendor site, to get to those two files. Here's just an example for my motherboard (in your case, files will have different names, of course):
 
  +
$ mount -t vfat -o loop FDOEM.144 /tmp/floppy
  +
  +
マウントで何もエラーが出なかったら、BIOS フラッシュユーティリティと新しい BIOS イメージをコピーしてください。マザーボードのメーカーサイトからダウンロードした圧縮ファイルを解凍したら、おそらく2つのファイルが作られるはずです。例:
   
 
# unzip 775Dual-VSTA\(2.60\).zip
 
# unzip 775Dual-VSTA\(2.60\).zip
124行目: 124行目:
 
# cp 75DVSTA2.60 ASRflash.exe /tmp/floppy
 
# cp 75DVSTA2.60 ASRflash.exe /tmp/floppy
   
  +
2つのファイルがフロッピーに収まることを確認:
Doublecheck that everything went OK, that those two files weren't too big for the floppy:
 
   
 
Filesystem 1K-blocks Used Available Use% Mounted on
 
Filesystem 1K-blocks Used Available Use% Mounted on
 
/tmp/FDOEM.144
 
/tmp/FDOEM.144
 
1424 990 434 70% /tmp/floppy
 
1424 990 434 70% /tmp/floppy
Finally, unmount the floppy disk image:
 
umount /tmp/floppy
 
   
'''ステップ 3: フロッピーデエミュレーするブータブル CD を書き込む'''
+
フロッピーディスクメージアンマウン:
   
  +
# umount /tmp/floppy
Next step is to burn the floppy image to a CD/DVD-RW media, but in a way that it can be booted afterwards. First we need to make a bootable CD image, and then burn it. Notice that on some modern distributions, cdrecord is renamed to wodim, and mkisofs to genisoimage, but the parameters below should be the same.
 
mkisofs -o bootcd.iso -b FDOEM.144 FDOEM.144
 
cdrecord -v bootcd.iso
 
   
  +
次に CD/DVD-RW メディアにフロッピーイメージを書き込みます。後で起動できるように注意してください。まずブータブル CD イメージを作成して、焼き込み:
'''ステップ 3 (別の方法): Grub のメニューにイメージを追加'''
 
   
  +
# genisoimage -o bootcd.iso -b FDOEM.144 FDOEM.144
You will need to install syslinux and copy memdisk to {{ic|/boot}}, and put your image there as well.
 
  +
# wodim -v bootcd.iso
   
  +
または [[GRUB]] のメニューにイメージを追加することもできます。[[Syslinux]] をインストールして {{ic|memdisk}} とイメージを {{ic|/boot}} にコピー:
cp /usr/lib/syslinux/memdisk /boot
 
cp FDOEM.144 /boot/flashbios.img
 
   
  +
# cp /usr/lib/syslinux/memdisk /boot
Now add an entry to your {{ic|/boot/grub/menu.lst}}:
 
  +
# cp FDOEM.144 /boot/flashbios.img
  +
  +
そしてエントリを {{ic|/boot/grub/menu.lst}} に追加:
 
 
 
title Flash BIOS
 
title Flash BIOS
151行目: 150行目:
 
initrd /flashbios.img
 
initrd /flashbios.img
   
Or for GRUB2 in {{ic|/boot/grub/grub.cfg}}:
+
あるいは GRUB2 の場合、{{ic|/boot/grub/grub.cfg}} に追加:
   
 
menuentry "Flash BIOS" {
 
menuentry "Flash BIOS" {
158行目: 157行目:
 
}
 
}
   
Or for syslinux in {{ic|/boot/syslinux/syslinux.cfg}}:
+
あるいは Syslinux の場合、{{ic|/boot/syslinux/syslinux.cfg}} に追加:
  +
 
LABEL flashbios
 
LABEL flashbios
 
MENU LABEL Flash BIOS
 
MENU LABEL Flash BIOS
164行目: 164行目:
 
INITRD ../fdboot.img
 
INITRD ../fdboot.img
   
  +
最後にマシンを再起動して、ブートの順序で CD ドライブが一番最初に来ることを確認して、CD を起動したら BIOS アップグレードを実行してください。GRUB メニューを使う場合、リストの新しいエントリを選択すれば FreeDOS が起動します。
'''ステップ 4: 再起動、書き換え、新しい BIOS を楽しむ'''
 
  +
  +
== ブータブル光学ディスクのエミュレーション ==
  +
Geteltorito.pl スクリプトは [[wikipedia:El Torito (CD-ROM standard)|El Torito]] 起動イメージを抽出します。[[Lenovo ThinkPad X220|X220]], [[Lenovo ThinkPad X230|X230]], W540, T450, [[Lenovo ThinkPad T450s|T450s]] などの Lenovo のノートパソコンで使えることを確認済みです。他のメーカーでも利用できるかもしれません。
  +
  +
=== インストール ===
  +
{{AUR|geteltorito}} パッケージをインストールしてください。
  +
  +
=== 使用方法 ===
  +
  +
メーカーのサポートサイトから BIOS アップデート ISO を取得してください。''geteltorito'' のイメージ抽出を実行:
  +
  +
$ geteltorito.pl -o <image>.img <image>.iso
  +
  +
イメージを usb メモリにコピー:
  +
  +
# dd if=<image>.img of=<destination> bs=512K
  +
  +
再起動して USB メモリから起動し、メーカーの指示に従ってください。
  +
  +
{{Note|"Secure Flash Authentication failed!" というメッセージが表示される場合、何らかのセキュリティチェックによって書き込みが出来ません。BIOS の設定を開いて "Security" > "UEFI BIOS Update Option" から "Secure RollBack Prevention" を無効化して "Flash BIOS Updating by End-Users" を有効にしてください。}}
  +
  +
== fwupd ==
  +
{{Pkg|fwupd}} はソフトウェアによってローカルマシンのファームウェアをアップデートできるようにするシンプルなデーモンです。デスクトップ用に開発されていますが、スマートフォンやタブレット、ヘッドレスサーバーなどでも利用できます。GNOME Software などの GUI のソフトウェアマネージャを使ってアップデートを表示・適用したり、コマンドラインツールやシステムの D-Bus インターフェイスを直接使うことができます。
  +
  +
Dell や Logitech などのメーカーによって Linux にファームウェアのアップデートを配布するために使われています。
   
  +
stable ツリーで利用できるハードウェアのリストは [https://fwupd.org/lvfs/devicelist こちら] で確認できます。
Finally reboot your machine, make sure that your CD drive is first in the boot sequence, and then run your BIOS upgrade procedure when the CD boots. If using the GRUB method, just choose the new entry on the list, and it should boot into FreeDOS.
 

2017年11月12日 (日) 13:36時点における版

この記事では Linux でシステム BIOS を書き換える方法についての情報を提供します。ほとんどのメーカーは Windows でしか実行できない Windows の実行ファイルか BIOS 実行ファイルしか提供していません。しかしながら、Linux でシステム BIOS を更新することを可能にするユーティリティが少数ながら存在します。

警告: マザーボードの BIOS を書き換えることは危険なことであり、あなたのマザーボードを使い物にならなくしてしまう可能性もあります。この記事の著者は何度もこの方法で成功していますが、実際にあなたも上手くいくとは限りません。注意してください。マイクロコードのアップデートがサポートされている場合は代わりにそちらを考慮すると良いかもしれません。
ノート: HP を使っている場合、HP のウェブサイトから Windows BIOS アップデータをダウンロードして、*.exe ファイルを解凍して ISO イメージを CD に書き込むことができます。以下のツールを利用しなくても CD を使うことで BIOS メニューの 'Firmware Upgrade' からアップグレードが可能です。詳しくは こちらのスレッド を参照してください。

BiosDisk

BiosDisk は Linux におけるシステム BIOS の書き換えプロセスを簡単にします。

インストール

biosdisk-gitAURAUR からインストール可能です。

使用方法

biosdisk ユーティリティを使って BIOS フラッシュイメージを作成するには、まずメーカーのウェブサイトからあなたのシステム用の最新の生の BIOS イメージをダウンロードします。ただし、入手するのは BIOS 実行ファイルであって Windows の実行ファイルでないのでそこを確認してください。それからは複数の選択肢があります: フロッピーを作成する、dd フロッピーイメージを作成する、ユーザーがインストールできるディストリビューションごとのパッケージを作成する (例: RPM)、もしくは実際にブートローダーにイメージをインストールする。

  • mkfloppy は biosdisk イメージを作成してフロッピーディスクに直接書き込みます。使用方法は以下の通り:
# biosdisk mkfloppy [-o option] [-d device] [-k baseimage] /path/to/.exe 
  • mkimage はユーザーのハードドライブ上にフロッピーイメージを作成します。使用方法は以下の通り:
# biosdisk mkimage [-o option] [-i destination] [-k baseimage] /path/to/.exe 
  • mkpkg はフロッピーイメージを作成し、それを使ってディストリビューションにあわせてユーザーがインストールできるパッケージを作成します (例: RPM)。このパッケージがインストールされると、ディストリビューションの固有のツールが使われてシステムのブートローダーを更新し、フロッピードライブがなくともハードドライブのイメージを起動して BIOS が書き換えられるようになります。今のところは Red Hat/Fedora の RPM パッケージしかサポートされていません。使用方法は以下の通り:
# biosdisk mkpkg [-o option] [--install] [--distro=] [--name=] [--version=] [--release=] /path/to/{.exe | .img}
  • install は biosdisk イメージを作成して、イメージファイルを /boot にコピー、そしてそのイメージのエントリと共にブートローダーを更新します。したがってユーザーがするべきことはシステムを起動し BIOS を書き換えるイメージを選択するだけです。ハードドライブから直接 biosdisk イメージがロードされて BIOS が書き換えられます。
# biosdisk install [-o option] [--name=] /path/to/{.exe | .img}

Flashrom

Flashrom はフラッシュチップを確認・読込・書込・検証・消去するためのユーティリティです。メインボードやネットワーク・グラフィック・ストレージコントローラーカード、そして様々なプログラマーデバイスにおける BIOS/EFI/coreboot/ファームウェア/optionROM イメージを書き換えるために作られました。

警告: ノートパソコンを使っている場合は flashrom を使用しないでください。ノートパソコンの EC を操作すると書き込み中にマシンがクラッシュする可能性があります。flashrom はマシンがノートパソコンかどうか判別しますが、全てのノートパソコンが標準に従っているわけではないので 100% の安全は保証できません [1]

インストール

公式リポジトリflashrom パッケージか AURflashrom-svnAUR[リンク切れ: パッケージが存在しません]インストールしてください。

使用方法

ウェブサイトであなたのマザーボードや (内部の) チップセットが flashrom によってサポートされているか確認してください: Supported Hardware。次のコマンドを実行してハードウェアがサポートされているか確認することもできます:

# flashrom --programmer internal

上のコマンドはあなたのマザーボードとチップセットを表示します。それから次のコマンドを実行することでサポートされているか確認できます:

# flashrom --programmer internal -L | grep CHIPNAMEfrompreviouscommand

新しいメインボードを使っている場合、複数のロムチップが表示されることがあります。上のコマンドで表示されたところからチップの名前を選択してください。-c オプションを使うことでコマンドによってどの ROM を書き換えるのか選択できます:

# flashrom --programmer internal -c "CHIPNAME" -r backup_CHIPNAME.bin

ROM チップ上に新しい BIOS イメージ (プロプライエタリのイメージまたは Coreboot) を書き込んで検証する:

# flashrom --programmer internal internal -c "CHIPNAME" -w newbios.bin

メインボード上の他のフラッシュチップを書き換えたい場合は、次のコマンドで全てのオプションを知ることができます:

# flashrom
ノート: Linux カーネルのバージョン 4.4 以上では、カーネルの新しいセキュリティ機能である CONFIG_IO_STRICT_DEVMEM によって flashrom の動作が停止する可能性があります。そのような場合はカーネルパラメータに iomem=relaxed を追加してみてください [2]

FreeDOS

FreeDOS はフリーの DOS 互換のオペレーティングシステムで、プロプライエタリの DOS を必要なくさせるという挑戦をしています。必要なのは FreeDOS カーネルが載ったブータブルフロッピーディスクイメージだけです。

Unetbootin

ブータブルな FreeDOS USB スティックを作成する一番簡単な方法は公式リポジトリunetbootin を使うことです。

USB メモリを FAT16 でフォーマットして "boot" フラグを有効にします (gparted, qtpartedAUR[リンク切れ: アーカイブ: aur-mirror], partitionmanager などで GUI を使って行うことができます)。それから、フラッシュドライブをマウントした後、ディストリビューション FreeDOS とマウントしたスティックを選択します。アプリは自動的にイメージをダウンロードしてドライブにコピーします。最後に、書き換えたいもの全てをコピーすることができます (BIOS, ファームウェアなど)。

警告: Unetbootin は Lenovo のシステムで正しく作動しないことがあります。ブータブルスティックを別のデバイスに作成する必要があるかもしれません。こちら を見て下さい。

Gentoo

ブータブルな FreeDOS フラッシュドライブを作成したいときは Gentoo Wiki の FreeDOS Flash Drive を参照。

ビルド済みのイメージ

他の方法も存在します: FreeDOS prebuilt bootable USB flash drive image by Christian Taube

イメージがフロッピーに収めるには大きすぎる

フラッシュイメージがフロッピーには大きすぎる場合、FreeDos bootdisk ウェブサイト に行って、10Mb のハードディスクイメージをダウンロードしてください。このイメージは完全なディスクイメージで、パーティションを含んでいるため、フラッシュユーティリティを追加するのはすこし手間が要ります:

まず最初のパーティションを確認してください (これを書いている時点では、最初のパーティションはブロック63から始まっています。つまりパーティションはオフセット 512 * 63 = 32256 からです)。次のコマンドを実行:

# file -sk <image-file> | sed -r 's/.*startsector ([0-9]+).*/\1/'
63

もしくは:

# fdisk -l <image-file>
…
Units = sectors of 1 * 512 = 512 bytes
…
      Device  Boot  Start    End  Blocks  Id  System
              *        63  19151   9544+   1  FAT12

そしてイメージをマウントします:

# mount -oloop,offset=$((63 * 512)) <image-file> /mnt

これで通常通りにファイルシステムにフラッシュユーティリティをコピーできます。完了したら:

# umount /mnt

通常の手順どおり USB スティックにイメージをコピーするか、memdisk として起動することが可能です。

使用方法

OEM Bootdisk バージョンを推奨します。kernelcommand.com しか含まれておらずフラッシュユーティリティや新しい BIOS イメージのための領域が存在するからです。FreeDOS イメージをダウンロードして解凍:

$ wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz
$ gunzip FDOEM.144.gz

フロッピーディスクイメージをマウントしてBIOS フラッシュユーティリティと新しい BIOS イメージをコピーします。必要なモジュールをロード:

# modprobe vfat
# modprobe loop

/proc/fileystems で必要なファイルシステムがサポートされているかどうか表示されます。フロッピーディスクイメージを一時的なパスにループマウント:

$ mkdir /tmp/floppy
$ mount -t vfat -o loop FDOEM.144 /tmp/floppy

マウントで何もエラーが出なかったら、BIOS フラッシュユーティリティと新しい BIOS イメージをコピーしてください。マザーボードのメーカーサイトからダウンロードした圧縮ファイルを解凍したら、おそらく2つのファイルが作られるはずです。例:

# unzip 775Dual-VSTA\(2.60\).zip
Archive: 775Dual-VSTA(2.60).zip
 inflating: 75DVSTA2.60
 inflating: ASRflash.exe
# cp 75DVSTA2.60 ASRflash.exe /tmp/floppy

2つのファイルがフロッピーに収まることを確認:

Filesystem           1K-blocks      Used Available Use% Mounted on
/tmp/FDOEM.144
                         1424       990       434  70% /tmp/floppy

フロッピーディスクイメージをアンマウント:

# umount /tmp/floppy

次に CD/DVD-RW メディアにフロッピーイメージを書き込みます。後で起動できるように注意してください。まずブータブル CD イメージを作成して、焼き込み:

# genisoimage -o bootcd.iso -b FDOEM.144 FDOEM.144
# wodim -v bootcd.iso

または GRUB のメニューにイメージを追加することもできます。Syslinux をインストールして memdisk とイメージを /boot にコピー:

# cp /usr/lib/syslinux/memdisk /boot
# cp FDOEM.144 /boot/flashbios.img

そしてエントリを /boot/grub/menu.lst に追加:

 title Flash BIOS
 kernel /memdisk
 initrd /flashbios.img

あるいは GRUB2 の場合、/boot/grub/grub.cfg に追加:

 menuentry "Flash BIOS" {
 linux16 /boot/memdisk
 initrd16 /boot/flashbios.img
 }

あるいは Syslinux の場合、/boot/syslinux/syslinux.cfg に追加:

LABEL flashbios
	MENU LABEL Flash BIOS
	LINUX ../memdisk
	INITRD ../fdboot.img

最後にマシンを再起動して、ブートの順序で CD ドライブが一番最初に来ることを確認して、CD を起動したら BIOS アップグレードを実行してください。GRUB メニューを使う場合、リストの新しいエントリを選択すれば FreeDOS が起動します。

ブータブル光学ディスクのエミュレーション

Geteltorito.pl スクリプトは El Torito 起動イメージを抽出します。X220, X230, W540, T450, T450s などの Lenovo のノートパソコンで使えることを確認済みです。他のメーカーでも利用できるかもしれません。

インストール

geteltoritoAUR パッケージをインストールしてください。

使用方法

メーカーのサポートサイトから BIOS アップデート ISO を取得してください。geteltorito のイメージ抽出を実行:

$ geteltorito.pl -o <image>.img <image>.iso

イメージを usb メモリにコピー:

# dd if=<image>.img of=<destination> bs=512K

再起動して USB メモリから起動し、メーカーの指示に従ってください。

ノート: "Secure Flash Authentication failed!" というメッセージが表示される場合、何らかのセキュリティチェックによって書き込みが出来ません。BIOS の設定を開いて "Security" > "UEFI BIOS Update Option" から "Secure RollBack Prevention" を無効化して "Flash BIOS Updating by End-Users" を有効にしてください。

fwupd

fwupd はソフトウェアによってローカルマシンのファームウェアをアップデートできるようにするシンプルなデーモンです。デスクトップ用に開発されていますが、スマートフォンやタブレット、ヘッドレスサーバーなどでも利用できます。GNOME Software などの GUI のソフトウェアマネージャを使ってアップデートを表示・適用したり、コマンドラインツールやシステムの D-Bus インターフェイスを直接使うことができます。

Dell や Logitech などのメーカーによって Linux にファームウェアのアップデートを配布するために使われています。

stable ツリーで利用できるハードウェアのリストは こちら で確認できます。