PC関連の一覧に戻る

BIOSのアップデートに失敗するなどしてBIOSの内容が壊れ、PCが起動しなくなった場合の対処方法(Raspberry Pi を使用した)


Raspberry Pi を使用して、PC の BIOS によく使われている NOR FLASH チップ (spi通信)の内容を書き換えます。
flashrom というツールを使用します。

私がやってできたのは以下の3つです。
Raspberry Pi 2 Model B V1.1
Raspberry Pi 3 Model B V1.2
Raspberry Pi Zero W V1.2

ラズベリーパイにOS(raspbian)をインストールし、設定を行います。

raspbian を使用します。
ラズベリーパイのOSセットアップについては以下のページに説明を書いておきました。
/server/RaspberryPi_noobs_raspbian_install.html

raspbian が起動したら、設定を開き、SPIを有効にしておきます。



ターミナルを起動し、su にて root 権限に移行します

パスワードが設定されていなければ、sudo passwd root にて設定します。




flashrom をインストールします

必要なコンポーネントをインストールしたのち、flashromをインストールします。
sudo apt-get install build-essential pciutils usbutils libpci-dev libusb-dev libusb-1.0-0 libusb-1.0-0-dev libftdi1 libftdi-dev zlib1g-dev subversion
sudo apt-get update -y
sudo apt-get install -y flashrom



raspberry pi と BIOSチップ(EEPROM(SPI)) を接続します

チップの Vcc, HOLD, WPピンに RaspberryPi の 3.3Vピンを接続します
チップの SIピンに RaspberryPi の SPI MOSIピンを接続します
チップの SOピンに RaspberryPi の SPI MISOピンを接続します
チップの SCKピンに RaspberryPi の SCLKピンを接続します
チップの Vssピンに RaspberryPi の GNDピンを接続します
チップの CSピンに RaspberryPi の CE0ピンを接続します

写真は raspberry pi zero w ですが、問題なく動きます。
ピン一覧(raspberry pi 3)
13.3V5V2
3SDA1, I2CGPIO 025V4
5SCL1, I2CGPIO 03GND6
7GPIO_GCLKGPIO 04GPIO 14TXD08
9GNDGPIO 15RXD010
11GPIO_GEN0GPIO 17GPIO 18GPIO_GEN112
13GPIO_GEN2GPIO 27GND14
15GPIO_GEN3GPIO 22GPIO 23GPIO_GEN416
173.3VGPIO 24GPIO_GEN518
19SPI_MOSIGPIO 10GND20
21SPI_MISOGPIO 09GPIO 25GPIO_GEN622
23SPI_CLKGPIO 11GPIO 08SPI_CE0_N24
25GNDGPIO 07SPI_CE1_N26
27I2C ID EEPROMID_SDID_SCI2C ID EEPROM28
29GPIO 05GND30
31GPIO 06GPIO 1232
33GPIO 13GND34
35GPIO 19GPIO 1636
37GPIO 26GPIO 2038
39GNDGPIO 2140
CS18Vcc
SO27HOLD
WP36SCK
Vss45SI

マザーボードメーカーのホームページから BIOS のイメージをダウンロードします。

マザーボードメーカーのホームページから、当該の BIOS のイメージをダウンロードします。
(もし、BIOS の形式が CAP であれば、「UEFITool」 を使用して、メニューの「CAPSULE」から、
バイナリのボディを書き出します)

ここでは、バイナリの BIOSファイルを「bios.bin」とリネームしました

パスを通すために、ダウンロードした BIOS が保存されている、Downloads フォルダに入ります。
cd /home/pi/Downloads
但し、日本語の場合は、「Downloads」ではなく、カタカナで「ダウンロード」なので、
ターミナルを、日本語入力可能にするか、もしくは以下をコピー&ペーストして使います。
cd /home/pi/ダウンロード

BIOSの内容をクリアします。

flashrom -E -V -p linux_spi:dev=/dev/spidev0.0,spispeed=16000

BIOSにromイメージを書き込みます。

flashrom -w bios.bin -V -p linux_spi:dev=/dev/spidev0.0,spispeed=16000

※ 書き込み速度は十分遅くしてありますが、スピードの問題で書き込めないことがあるようですので、spispeed の値を調整してください。

※ 基板上に直接取り付けられた、ソケットになっていない BIOS チップを書き換えるには、チップを挟み込むように接続する部材が必要です。

以上で、説明は終了です。




PC関連の一覧に戻る

Information of This Page
picture BIOSのアップデートに失敗するなどしてBIOSの内容が壊れ、PCが起動しなくなった場合の対処方法(Raspberry Pi を使用した) pubdate:


© 2024
Author : FloatGarden