Raspberry Pi 2のファームウェアのバージョンアップ通知

Raspberry Pi 2のファームウェアの更新は過去にも書いた通り、rpi-updateコマンドを使って行うわけだが、rpi-updateコマンド自体は自身のエンジンは実行時にGitHubからダウンロードしてセルフアップデート、ファームウェアそのものもこれまたGitHubからダウンロードして展開という仕組み。したがって、通常のDebianのパッケージアップデートの通知ではファームウェアのアップデートがあったとしてもrpi-update自体はアップデートされないので通知されないということになる。

これは不便だ。やっぱりファームウェアのバージョンアップがあった場合にはなんらかの方法で自分に通知して欲しい。実際、これを書いている時点でもファームウェアの末尾の番号が既に2上がっていたので、慌ててrpi-updateをかけた。Raspbianのカーネルはファームウェアと同梱なので、ファームウェアを適切にアップデートしておかないとカーネルにセキュリティー上の問題がある場合は放置されることになるから、よろしくない。というわけで、自宅で動かしてるRaspberry Pi 2自身がアップデートを知って通知する方法がないのなら、大本のファームウェアのダウンロード元であるGitHubを利用してやろうじゃないか。

というわけで、github.comにアクセスしてサインアップ。GitHubは自分のような非開発者でもFreeのプランで無料でアカウントを作ることが出来る。アカウントを作ったら、GitHub上のRaspberry Piのファームウェアのリポジトリに行く。

https://github.com/raspberrypi/firmware

右上にある目のアイコンのWatchをクリックしてWatch対象にする。アカウントサインアップ時のデフォルトでWatchしたリポジトリの更新はメールで通知される様になっている。

これでファームウェアにアップデートがあった場合にはGitHubから通知がくるので、そのタイミングでrpi-updateをかけることができるはず。まあでも、開発関係のもろもろでも通知が来るとするとちょっとわずらわしいかなあ。

 

「Raspberry Pi 2のファームウェアのバージョンアップ通知」への2件のフィードバック

  1. 実のところ、GitHubはうざい。もっとマシな方法を見つけたのでUnwatchする。

    出典はここ。GitHubのrpi-updateのリポジトリからファームウェアのバージョンを取得して、バージョンアップが必要かどうか表示してくれるスクリプトを作ってくれた人がいる。

    https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=76824

    さて、このスクリプトをコピペして、/usr/loca/bin/fwupd.shを作成する。


    #!/bin/bash

    URI=”https://api.github.com/repos/Hexxeh/rpi-firmware/git/refs/heads/master”

    [ “$1” = “-q” ] && QUIET=1
    [ “$1” = “-v” ] && VERBOSE=1

    OLD=$(cat “/boot/.firmware_revision”)
    NEW=$(curl -s “$URI” | awk ‘{ if ($1 == “\”sha\”:”) { print substr($2, 2, 40) } }’)

    if [ -z “$NEW” ]; then
    [ $QUIET ] || echo “Can’t download firmware update.” 1>&2
    exit 1
    elif [ “$NEW” = “$OLD” ]; then
    [ $QUIET ] || echo “Firmware is up to date.” 1>&2
    [ $VERBOSE ] && echo “Version: ${OLD}” 1>&2
    exit 2
    elif [ -z “$OLD” ]; then
    [ $QUIET ] || echo “Firmware never updated. Update available.”
    else
    [ $QUIET ] || echo “Firmware update available.”
    [ $VERBOSE ] && echo “Current: ${OLD}”
    fi
    [ $VERBOSE ] && echo “Update : ${NEW}”
    exit 0

    所有をroot:root、パーミッションを755にして、とりあえずちゃんとファームウェアのバージョンアップが必要かどうか表示されるかテスト。テストがうまく行ったら、これを毎日apticronと同じタイミングで実行される様にする。/etc/cron.d/fwupdを作成しよう。


    0 6 * * * root if test -x /usr/local/bin/fwupd.sh; then /usr/local/bin/fwupd.sh -q; else true; fi

    apticronのエントリーを参考にした。ミソはオプションの-qを付けること。これでバージョンアップの必要がない時は何も出力されないが、バージョンアップが必要な時は新しいバージョンのナンバーが標準出力に出力されるので、その時だけメールが来るはず。

  2. しかし、調べてみると、Raspbianはオフィシャルにはrpi-updateによるファームウェアの最新追っかけアップデートを推奨していないみたい。

    ファームウェアもカーネルもきちんとパッケージとして含まれているので、公式できちんとStableだとテストされたものだけがアップデートで流れてくるから、それだけを利用することが推奨なんだとか。

    うむ、ウェブの情報に騙された。まあ、個人趣味サーバーだから最新追っかけアップデートしてもいいか。 🙂

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください