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/スマートカー