一馬力のメモ帳

MVSからLinuxまで。基盤屋さんは眠らない

Raspberry Pi 3 Model Bのファームウェアを更新する方法

毎度一馬力です。今回はRaspberry Piファームアップ更新の話です。

Raspberry Piを購入したら,apt-get update > apt-get upgradeを実行して   パッケージを最新にすればOKと思っていたのですが、、、。

rpi-updateでファームウェア(kernel)も更新するのが正解のようです。

RaspberryPi上のドキュメントはココに書いています。 https://www.raspberrypi.org/documentation/linux/kernel/updating.md

ではでは早速更新方法の紹介。

目次


利用するコマンド rpi-update

ファームウェア(kernel)の更新には”rpi-update”コマンドを利用します。

apt-cacheコマンドでまずは内容を確認してみます。

  • 確認の1
pi@raspberrypi:~ $
pi@raspberrypi:~ $ apt-cache search rpi-update
rpi-update - Raspberry Pi firmware updating tool

pi@raspberrypi:~ $
  • 確認の2
pi@raspberrypi:~ $
pi@raspberrypi:~ $ apt-cache show rpi-update
Package: rpi-update
Version: 20140705
Architecture: all
Maintainer: Alex Bradbury <asb@asbradbury.org>
Installed-Size: 44
Depends: binutils, curl
Homepage: https://github.com/asb/rpi-update
Priority: extra
Section: unknown
Filename: pool/main/r/rpi-update/rpi-update_20140705_all.deb
Size: 4408
SHA256: 4bc29751f21331bd188cf15dbba992c384b03a11fbc565b7d04ea5bd4d13d3fa
SHA1: 10696c650f0aa05e142ba688a5011f1f779ebdb7
MD5sum: 066d5f0117735a7908a6b780e3edb4b7
Description: Raspberry Pi firmware updating tool
Description-md5: 7b43e22c7fcdb0e9198e870e4ebf094c

rpi-updateコマンドはファームウェアをアップデートするための道具です。と。

更新前のファームウェアを確認する。  

更新前に、現在のファームウェアの確認を行います。   raspberry piファームウェアの実態はLinuxカーネルなので  

uname -a”コマンドで確認しておきます。  

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.4.21-v7+ #911 SMP Thu Sep 15 14:22:38 BST 2016 armv7l GNU/Linux

念のため,”lsb_release -a”コマンドも確認しておきます。

pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID:    Raspbian
Description:    Raspbian GNU/Linux 8.0 (jessie)
Release:    8.0
Codename:    jessie
pi@raspberrypi:~ $

更新前の一馬力のラズパイは

"Linux raspberrypi 4.4.21-v7+"

でした。

ファームウェアの更新

それでは実際のファームウェアの更新。

更新は”sudo”の利用が必要です。

コマンドは”sudo rpi-update"

pi@raspberrypi:~ $ sudo rpi-update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** Performing self-update
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12022  100 12022    0     0  21384      0 --:--:-- --:--:-- --:--:-- 21429
 *** Relaunching after update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** We're running for the first time
 *** Backing up files (this will take a few minutes)
 *** Backing up firmware
 *** Backing up modules 4.4.21-v7+
This update bumps to rpi-4.4.y linux tree
Be aware there could be compatibility issues with some drivers
Discussion here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=144087
##############################################################
 *** Downloading specific firmware revision (this will take a few minutes)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   168    0   168    0     0    204      0 --:--:-- --:--:-- --:--:--   204
100 51.7M  100 51.7M    0     0   267k      0  0:03:18  0:03:18 --:--:--  234k
 *** Updating firmware
 *** Updating kernel modules
 *** depmod 4.4.23-v7+
 *** depmod 4.4.23+
 *** Updating VideoCore libraries
 *** Using HardFP libraries
 *** Updating SDK
 *** Running ldconfig
 *** Storing current firmware revision
 *** Deleting downloaded files
 *** Syncing changes to disk
 *** If no errors appeared, your firmware was successfully updated to 840a496a84e9e76ee3aef42918eecac06bd7f610
 *** A reboot is needed to activate the new firmware

これでファームウェアの入替えは完了。

コマンドの実行結果にいも書いていますが   反映には再起動が必要です。

再起動

ファームウェアの更新が終わったら再起動です。 再起動は”sudo shutdown -r now”コマンドで行いました。

pi@raspberrypi:~ $
pi@raspberrypi:~ $ sudo shutdown -r now
Connection to raspberrypi.local closed by remote host.
Connection to raspberrypi.local closed.

起動までしばらく待ちます。

更新の確認

更新後,ファームウェアの入替えが行われている事を確認します。

pi@raspberrypi:~ $
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.4.23-v7+ #913 SMP Tue Oct 4 14:16:19 BST 2016 armv7l GNU/Linux

pi@raspberrypi:~ $


pi@raspberrypi:~ $

pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID:    Raspbian
Description:    Raspbian GNU/Linux 8.0 (jessie)
Release:    8.0
Codename:    jessie
pi@raspberrypi:~ $
pi@raspberrypi:~ $
pi@raspberrypi:~ $

無事にファームウェアが更新されて  

Linux raspberrypi 4.4.23-v7+

に更新された事が確認でしました。

参考

参考としてファームウェア更新で何が変更になったのか   履歴を確認してみます。

更新履歴はGitHubで確認できます。 ファームウェア更新で新規のデバイスが利用できるようになったり,バグ対応が行われているようですね。

ラズパイに新しいデバイスを接続する場合   事前に”sudo rpi-update”を実行する事をおすすめします。

Linux raspberrypi 4.4.21-v7+ #911Linux raspberrypi 4.4.22-v7+ #912

kernel: Bump to 4.4.22 kernel: Allo Piano DAC boards: Initial 2 channel (stereo) support See: raspberrypi/linux#1645 kernel: Correct typos in spi-gpio35-39-overlay.dts See: raspberrypi/linux#1651 kernel: drm/vc4: Enable limited range RGB output with CEA modes kernel: brcmfmac: Change stop_ap sequence

Linux raspberrypi 4.4.21-v7+ #912 > Linux raspberrypi 4.4.23-v7+ #913

https://github.com/raspberrypi/firmware/commit/cb7b3fed0eabd02e3e03d1ae1f9deea8a5bf880a#diff-b62955b0c83a90df59ef23bda53dce36

kernel: Bump to 4.4.23 kernel: Add Adafruit pitft35 touchscreen support See: raspberrypi/linux#1657 firmware: resize: Add a queue of input images to avoid dropped frames with opaque input firmware: resize: Set the direct_input flag when using mmal opaque mode firmware: arm_loader: Restrict automatic loading to LOWMEM See: raspberrypi/linux#1641 firmware: RaspiVid: Make open_filename() unified for all outputs (video, imv, pts) See: raspberrypi/userland#338

まとめ

  • 更新は”sudo rpi-update”コマンドで実施
  • 新しいデバイスを使うときはファームウェアの更新をオススメ
  • 更新履歴はGitHubで確認できる。

以上です。

試した環境

Raspberry Pi 3 Model B
  Pi 3 Starter Kit 32GB [896-8660-Kit4]

Raspbian
  pi@raspberrypi:~ $ uname -a
  Linux raspberrypi 4.4.23-v7+ #913 SMP Tue Oct 4 14:16:19 BST 2016 armv7l GNU/Linux

  pi@raspberrypi:~ $ cat /proc/version
  Linux version 4.4.23-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #913 SMP Tue Oct 4 14:16:19 BST 2016

  pi@raspberrypi:~ $ lsb_release -a
  No LSB modules are available.
  Distributor ID:    Raspbian
  Description:    Raspbian GNU/Linux 8.0 (jessie)
  Release:    8.0
  Codename:    jessie