Raspbianのバージョンを知りたいときにはどうすると良いでしょう。いくつか方法はありますが、どこまで詳しく知りたいのかによって、どうすれば良いかが変わってきます。
(「Raspberry Pi Advent Calendar 2017 – Adventar」で2017-12-14の分が空いていたので登録させていただきました)
目次
OSのバージョン
OSのバージョンを知りたい場合は、/etc/os-releaseを確認します。
$ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)" NAME="Raspbian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
いつダウンロードしたか
Raspbianはダウンロードするページに配布開始の日付がついていて、これを知りたいときもあります。/boot/issue.txtを見るとわかります。同じものは /etc/rpi-issue にもあります。
$ cat /boot/issue.txt Raspberry Pi reference 2017-11-29 Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, b71bf3179310aadf9aaf2ffcdf094a88e488dce8, stage5
カーネルのバージョン(その1)
使っているカーネルのバージョンを知りたい場合は unameコマンドを使います。
$ uname -a Linux raspberrypi 4.9.68-v7+ #1064 SMP Tue Dec 12 15:08:24 GMT 2017 armv7l GNU/Linux
カーネルのバージョン(その2)
カーネルのコンパイルに使われたgccのバージョンも一緒に知りたい場合は、/proc/versionを参照します。
$ cat /proc/version Linux version 4.9.68-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #1064 SMP Tue Dec 12 15:08:24 GMT 2017
rpi-update
Raspbianではファームウェアのアップデートをすると、カーネルアップデートがされます。https://github.com/Hexxeh/rpi-update/blob/master/rpi-updateで公開されているrpi-updateコマンドを使います。
$ 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 13403 100 13403 0 0 30202 0 --:--:-- --:--:-- --:--:-- 30255
*** 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.9.59-v7+
#############################################################
This update bumps to rpi-4.9.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=167934
##############################################################
*** 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 220 0 --:--:-- --:--:-- --:--:-- 220
100 54.1M 100 54.1M 0 0 1577k 0 0:00:35 0:00:35 --:--:-- 2300k
*** Updating firmware
*** Updating kernel modules
*** depmod 4.9.68-v7+
*** depmod 4.9.68+
*** 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 cc06d1a475531195a3e268e36be0e5eabff5265a
*** A reboot is needed to activate the new firmware
この rpi-updateコマンドを実行すると、/boot/.firmware_revisionにアップデートしたカーネルのハッシュコードが保存されます。
$ cat /boot/.firmware_revision cc06d1a475531195a3e268e36be0e5eabff5265a
このハッシュコードはhttps://github.com/Hexxeh/rpi-firmwareのリポジトリでコミット時につけられているものです。リポジトリでつけられているハッシュコードを使うと、アップグレードやダウングレードができます。
たとえば、4.9.59-v7+は、https://github.com/Hexxeh/rpi-firmware/commits/masterを見ると、ハッシュコードがa6b3e85で始まっていて、これをコピーするとa6b3e852ca70f2a12850b4542438583cc3b29788になります。下記のコマンドでダウングレードできます。
$ sudo rpi-update a6b3e852ca70f2a12850b4542438583cc3b29788
ファームウェアのバックアップからのリストア(未検証)
ちなみに、rpi-updateをするとファームウェアのバックアップがされます。これは /boot.bak にあります。モジュールは/lib/modules.bakにあります。ですから、手動でバックアップからファームウェアを戻すには、/boot.bak/* を /boot/ へコピーし、/lib/modules.bak を /lib/modules に移動すれば良いということになります。/bootはパーティションが別なので、ディレクトリ単位で移動では反映されないので気をつけましょう。/lib/modulesはrootパーティション内なので移動でも大丈夫です。まとめると、具体的には下記コマンドを実行すれば良いはずです。
$ sudo mkdir /boot.next $ sudo mv -a /boot/* /boot.next/ $ sudo mv -a /boot.bak/* /boot/ $ sudo rmdir /boot.bak $ sudo mv /lib/modules /lib/modules.next $ sudo mv /lib/modules.bak /lib/modules
ところで、ロボットカー・センサー・ディスプレイもいろいろあって、眺めていると欲しくなってしまいます。全部が必要というわけではないのですが、どれか選んで遊んでみたいですね。
- Kuman 3.5インチ HDMI ディスプレイ タッチスクリーン
- Kuman 7インチ Raspberry Pi用ディスプレイ LCD 800*480解像度
- Quimat Arduino ロボットカーキット LQS10
- Elegoo UNOスマートロボットカーV3.0
- Kuman 37個 ArduinoとRaspberry Pi用センサー 電子部品キット
- keyestudio 37枚 センサー キットArduinoと互換 UNO R3 Mega 2560 R3
- Kuman スマートカー ロボット Arduino用 ロボットカー
- Kuman スマートカー ロボットカー Arduino用 2輪
- Keyestudioミニタンクロボットスマートカー
- keyestudioデスクトップのBluetoothスマートカー互換性のArduino/スマートカー