Raspberry PiのDirty COW対応

基本外からはつながらないようにしているがRaspberry Piを自宅サーバで使っているので一応Dirty COW対応した。

Dirty COWは管理者権限を取られてしまう恐れのあるLinuxカーネルの脆弱性でLinuxベースのOSで漏れなく発生しておりDebianベースなRaspbianも例外ではない。Raspberry Piの用途はサーバであったり、デスクトップPCであったり、IoTであったり様々だと思うがそれなりに数が出ているので狙われる恐れがある。

Dirty COWの対応記事は Fix Dirty COW on the Raspberry Pi にあり、以下の対応策が書かれている。

sudo apt-get update
sudo apt-get install raspberrypi-kernel

自分のjessie環境では apt-get updateraspberrypi-kernel は更新されていたので明示的なインストールが必要な環境があるのかはよくわからない。

気になるのは該当記事に問題が起きる環境と修正された環境の確認方法が書いていないということである。これはコメントに書いてくれている人がいて 4.4.26 kernel 以上になっていれば良いとのこと。再起動後に uname -mrs などのコマンドで確認できる。

軒並みアップデートしたが、それなりに非力なPCであるので暫くアップデートしていないRaspbery Piでは apt-get update にかなりの時間を要した。

部屋の温度がとれていなかった

約半年間Raspberry Piにつないでいるセンサーから部屋の温度や湿度がとれていなかった。年末年始にRaspberry Piのソフトウェア・アップデートをした関係で動かなくなっていたようだ。

sudo i2cdetect -y 1

も動いていなかった。

Optional interfaces (I2C, I2S, SPI) and Device Treeによると3.18 kernelsからハードウェ構成の設定が変わったようで /boot/config.txt に有効にするインタフェースを記述しないといけなくなったようだ。

http://elinux.org/RPiconfigによると

  • Enables I2C on GPIO pins.
    • dtparam=i2c_arm=on
  • Enables I2S audio hardware.
    • dtparam=i2s=on
  • Enables SPI driver.
    • dtparam=spi=on

I2Cを使うので /boot/config.txtdtparam=i2c_arm=on を書き込んで復旧した。

そもそもはデータがとれていない時にアラートを上げるようにしないといけない。モニタリングツールにmuninを使っていて、確か閾値での通知が出来た気がするがちゃんと調べていない。単純にデータが取れなかったらメールアドレスかslackに通知するというバッチを書いたほうが早そうだが。。。

Raspberry PiをJessieにアップグレード

自宅サーバと課しているRaspberry PiのJessie(Debian 8ベースのRaspbian)にアップグレードした。JessieはDebianのコードネームで従来よりToy Storyから採用されている。

基本的な流れは

  • wheezyを最新にする sudo apt-get upgrade; sudo apt-get dist-upgrade
  • source.listをwheezyからjessieに書き換える
  • Jessieに更新する sudo apt-get upgrade; sudo apt-get dist-upgradeする

と、Debianの更新手順と特に変わらない。

source.listの書き換えで

エラー http://raspberrypi.collabora.com jessie/rpi armhf Packages

と見つからないソースリストがあったのでコメントアウトした。Office系のソフトっぽいし、無くても支障はないだろう。

Jessieの更新は2時間くらいかかった(Raspberry Pi 2 Model BでWiFi接続)。パッケージの更新に伴う設定ファイルの確認で何回か対話処理が必要で画面が止まっていたのでもう少し短いかもしれないが。JessieでRubyが2.1になった。今やRuby 2.1でも古いがwheezyが1.9.3だったのでとても新しくなったと感じてしまう。

ちなみにRaspbianにはrpi-updateというコマンドがありファームウェアの更新ができるそうなのでやっておくと良い。

sudo rpi-update

Pi Camera Moduleを買った

Raspberry PiのCamera Moduleを買った。v2.1ではソニー製になったようだ。

Pimoroniで4/27日に購入。
https://shop.pimoroni.com/products/raspberry-pi-camera-module-v2-1-with-mount
ゴールデンウィーク中に使ってみる予定だったが間に合わず、ようやく届いた。

Camera Module v2.1

勢いで赤外線のカメラモジュールも買ってみた。Pimoroniパッケージぽく、付属のカメラマウントは同じパッケージの中に入っていた。

Camera Module v2.1

Pibowとは親和性があるだろう。今までCamera Moduleを使ったことが無いので1から調べよう。

Raspberry Pi 3買うかどうか

Raspberry Pi 3が発売された。使いきれてないRaspberry Piが溜まってきたのでやりたいことを思いつくまで購入は保留する。

公式Raspberry Piマガジン(MagPi)の43号でRaspberry Pi 3が紹介されているので読んでみた。MagPiはPDFが無料でダウンロードできる。
https://www.raspberrypi.org/magpi/issues/43/

項目 スペック
SoC Broadcom BCM2837
CPU 4× ARM Cortex-A53, 1.2GHz
GPU Broadcom VideoCore IV
RAM 1GB LPDDR2
Networking 10/100 Ethernet, 2.4GHz 802.11n wireless
Bluetooth Bluetooth 4 Classic, Bluetooth Low Energy
Storage microSD
GPIO 40-pin header, populated
Ports HDMI, 3.5mm analogue audio-video jack, 4× USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI)

パフォーマンス向上など良い面は伝えられているが、消費電力はPi 2と比べてアイドル時に19%、ロード時に38%ほど増えている模様。

それ以外で大きいのは無線がデフォルトで使えるようになったことだろうか。MagPi 43にRaspberry Pi 3で新しくできるだろう5つが書いてあった。

  1. 無線センサーネットワークの構築
  2. Bluethooth通信のストリーミングオーディオ (A2DP)
  3. より複雑なゲーム
  4. シンクライアントインフラの構築
  5. 64bitコードの実行

ここまで来ると普通のパソコンになってきた。そろそろ軽量化Mod使ったら普通にPC版のマインクラフトも動くんじゃないのか。

Raspberry Pi 2と同じ価格というのも嬉しいが、消費電力が増えて気軽にUSB電源供給できなくなってきたのでまだModel B+やRaspberry Pi 2の出番は残りそうだ。

公式によるとModel B+もRaspberry Pi 2もそれぞれ $25, $35で売り続けられる。

Are you discontinuing earlier Raspberry Pi models?

No. We have a lot of industrial customers who will want to stick with Raspberry Pi 1 or 2 for the time being. We’ll keep building these models for as long as there’s demand. Raspberry Pi 1 Model B+ and Raspberry Pi 2 Model B will continue to sell for $25 and $35 respectively.

Model A+の後継も検討中らしい。もともとRaspberry Piは教育用の安価なコンピュータがコンセプトなのでパソコン化は当然のように思える。それとは別に電子工作やIoT方面の需要も高まりつつあるのでこの方向でも展開が続くのだろう。

公式Raspberry Piプロジェクト本

公式Raspberry Piプロジェクト本が https://www.raspberrypi.org/blog/official-raspberry-pi-projects-book/ で紹介されている。英語だけど。

12ポンド(2000円弱)で販売されているようだけど無料のPDFが上記サイトからダウンロードできた。
https://raspberrypi.org/magpi-issues/Projects_Book_v1.pdf

Otherwise, you can grab a copy from the Swag Store, get a copy in our app available for Android and iOS, or grab the free PDF of the whole thing!

普通に全部読めるけど、本当にタダでいいんだよね?と疑心を頂きつつ読んだ。

内容としては

  • Raspberry Piを使った人様の作品の紹介
  • Kanoなど販売されているような製品の紹介、レビュー
  • カメラモジュールなど手に入れられるものを使ったチュートリアル

など、いろいろあって楽しい。チュートリアルが勉強になり、人様の製品は刺激にもなる。

Raspberry Piで無線LAN

Pibow買ったときにPiHutのUSB Wifi Adapter for the Raspberry Pi買ってた。今までRaspberry Piで無線LANは使ったことがなくてどのUSBアダプターを買って良いのかよくわからなかったのでこれにした。

Raspbianでのセットアップ方法も載っていてRaspberry Pi 2 + Raspbian 2015-02-16だとデフォルトの状態から/etc/wpa_supplicant/wpa_supplicant.confを以下のように修正して再起動(sudo reboot)するだけで動いた。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="YOUR_SSID"
    psk="YOUR_PASSWORD"
    # 0: default, 1: stealth
    scan_ssid=1
}

最初、全然つながらなくていろんな人のサイトを見てプロトコルや暗号化方式を細かく指定してもダメ。設定を調べていると scan_ssid を見つけてステルスSSIDだから繋がらないということに気付いた。WPA-PSK(AES)だけどscan_ssid=1だけ追加しただけで接続できた。

WiFiは配線が減って楽。

Raspberry Pi 2メモ

Raspberry Pi 2のいろんな記事を読んで情報を集めていたけど、そもそもraspberrypi.orgに大体のことが書いてあった。

公式では前作を Raspberry Pi 1 Model B and B+ と呼んでいる。Raspberry Pi 1 Model B+と比べると以下が変わってあとは互換がある。

  • A 900MHz quad-core ARM Cortex-A7 CPU
  • 1GB RAM

ARMv6からARMv7になったことでUbuntu CoreWindows 10といった実行できるOSが増えた。MicrosoftのページによるとRpi2向けのWindows 10は無料で提供されるらしい。今のところOSをWindowsにしたら何が嬉しいのかよくわかっていないがクラウドや開発環境を揃えて提供してくれればIoTの敷居が下がるので一応チェックしておこうと思う。

RaspbianはARMv7カーネルとモジュールを含むバージョンにアップデートが必要。リリースノートを見ると2015-01-31が要る。

6倍速くなったことについては以下のように書いてある。

The speedup varies between applications. We’ve seen single-threaded CPU benchmarks that speed up by as little as 1.5x, while Sunspider is around 4x faster, and NEON-enabled multicore video codecs can be over 20x faster. 6x is a typical figure for a multi-threaded CPU benchmark like SysBench.

マルチコア使いきれば6倍速くなるかもという感じ。過度の期待はせず1.5倍程度と考えておいた方が良いかな。

今のところ消費電力の面と、パフォーマンスにあまり困っていないのですぐにRaspberry Pi 1 Model B+から置き換える気は無い。サーバ監視で使ってるmuninのグラフ作成が追いつかなかったけど一日一回の作成に変更して特に困っていないので工夫しだいでPi 1でもなんとかなる。違う目的で使おう。

というわけでとりあえずAmazonで1,000円のmicroSDカードを買う。

Raspberry Pi 2 + 水色Pibowケース

2015年の初ガジェット購入はRaspberry Pi 2だった。

Raspberry Pi 2 with Pibow Case Coupé Flotilla

Raspberry Pi Model B+が出てそれほど時間が経っていないのに、Raspberry Pi 2 Model Bが発売された。値段が$35と同じなので移行していくんだろうか。

水色のPibowケースに惹かれてしまったので、£が高いけどPimoroniで購入。£42のRaspberry Pi 2 with Pibow Case Coupé Flotillaだけど、1ポンドが176.8円だったので7,400円くらいになる。送料が10ポンドだとほぼ9千円である。もはや教育用の安価コンピュータというより金を持て余した大人達の遊び。

Pibowケースが欲しいからあきらめているんだけど、海外で安くRaspberry Piを手に入れるならどこが良いのだろう。(PimoroniはRaspberry Piをケース付きかスターターキットでか売っていない模様)

他にはAdafruitMaker Shedあたりを知っているけど、ドルとポンドのレート次第とは言えPimoroniとあまり変わらなそう。結局、送料で2〜3,000円は持っていかれるのでそりゃ高いよな。。。というわけで円安の現状では待てる人は5,000円台でも国内で買えるのを待ったほうが良いと思う。在庫があればRSオンラインが安いが法人、個人事業主向けらしい。

一応考えていることがあるけどRaspberry Pi 2の使い道についてはまた今度。

でも水色Pibow格好いいよ。Pibowの色でModel B+と区別。

Pibow Case Coupé Flotilla

ちなみにModel B+のPibowは微妙に2に合わないらしい、試してはいない。Model B+並べて写真取りたかったけど狭いところでサーバとして動かしているので諦めた。カメラにフラッシュは使っていない。

サーバ移行

このブログを動かしているさくらのVPSのv3 SSD 2G石狩リージョンからv4 SSD 2G東京リージョンに移行。年間支払が1300円くらい安くなり仮想コアが2から3にアップ。関東大震災が起きたら心中。

前回にChefでセットアップするようにしたのでやるぞと決めてすぐに実行できた。前回移行したのが数ヶ月前なのでもったいないかと思っていけれど石狩リージョンの契約自体は4月にしていて今解約しても来年2/Eまでの契約になるのでほぼ年間契約全うに近い状態だった。やっぱりセットアップを自動化しておくと契約してからすぐに作業できるので良い。

続いて自宅サーバにしているRaspberry PiもModel BからModel B+に置き換えた。こちらもChefのレシピを書いていたので楽に移行できた。Raspberry PiはDebianベースのRaspbianというOSを使っているのでDebian/Ubuntu向けに書いたレシピが使いまわせる。SDカード入れ替えるだけで移行するという妄想をしていたけど標準サイズのSDカード使っていたのでそもそもMicro SDカードになったModel B+に挿せなかったというオチ。

Model Bが3台。使い道模索中。会社にでも持って行くかな。