Sonyのα6400を買った

はじめに

カメラが欲しかったのでSONYのα6400を買いました。

www.sony.jp

なのでどんなOSSを使っているのかをちょっとだけ眺めてみることにしました。

最初に断っておきますが筆者は組み込み機器のことを全然知らないので、「何言ってんだこいつ、なんでこんな基本的なことも知らないんだ」と思われたかたは訂正していただけると助かります。もう一点、この文書は細かいことにこだわらずにフィーリングで読んだことのメモ書きに過ぎないのでとくに自分以外の読者への読みやすさには配慮していませんし、内容の正しさの保証もしていません。

OSSSONY製品、およびα6400

SONY製品は他の家電製品の例にもれずにOSSをたくさん使っており、必要とあらば製品に組み込まれたOSSソースコードを公開しています。

下記ページから製品名からOSSソースコードをたどれます。

oss.sony.net

これは別に隠しページとかではなく、「sony open source」とかでぐぐればトップに出てきます。

α6400付属OSSのソースはここにあります。

oss.sony.net

α6400はどんなOSSを使っているのか

ソースコードの一覧は次の通りです。

compat-wireless.tar.gz
linux-kernel.tar.gz
qrencode.tar.gz
R8168-Driver.tar.gz
sony-target-dev-busybox-1.13.4-08020205.src.rpm
sony-target-dev-busybox-1.13.4-08020504.src.rpm
sony-target-dev-dosfstools-2.11-08020202.src.rpm
sony-target-dev-dosfstools-2.11-08020502.src.rpm
sony-target-dev-e2fsprogs-1.42-08020502.src.rpm
sony-target-dev-gcc-gplv3-libs-4.5.1-08020202.src.rpm
sony-target-dev-gcc-gplv3-libs-4.5.1-08020502.src.rpm
sony-target-dev-glibc-2.11.2-08020205.src.rpm
sony-target-dev-glibc-2.11.2-08020503.src.rpm
sony-target-dev-hostname-3.05-08020502.src.rpm
sony-target-dev-iptables-1.4.10-08020502.src.rpm
sony-target-dev-libnl-3.2.22-08020502.src.rpm
sony-target-dev-procps-3.2.7-08020202.src.rpm
sony-target-dev-procps-3.2.7-08020502.src.rpm
sony-target-dev-pump-0.8.16-08020502a.src.rpm
sony-target-dev-rpm-4.4.2.3-08020502.src.rpm
sony-target-dev-util-linux-ng-2.17.2-08020502.src.rpm

個々のソースについて細かく見るのではなく、どんなOSSのどのバージョンを使っているのかくらいだけを確認だけしました。興味の無いソフトについては飛ばしてます。

linux-kernel.tar.gzというのはその名の通りlinuxカーネル(以後"linux"と表記)ですね。最近は多くの家電製品にlinuxが採用されていますが、α6400も同様なようです。ちなみにlinuxのライセンスはGPL v2なので、SONYとしては製品を買った人にしかソースを公開する義務はないのですが、誰にでも見られるようにしてくれているようです。やったぜ。カーネルバージョンは3.0.27。3.0が2011年7月に出たもので、3.0.27は2012年4月に出たものです。うーん、7年ものか、古い。伝説に聞く「組み込み系機器に積んであるソフトは古い」というのが確かめられたぞ。そういえばセキュリティパッチはどこまで当たってるんですかね。diffがでかすぎるので追ってませんが、ちゃんと当てるべきものは当たっていることを望みます。なお、そうでない場合にどうなるかというとファインダー越しにDOOMが動くようになったりします。

compat-wirelessは新しいカーネルから古いカーネル用に無線LANのドライバをバックポートしたものです。とうの昔にバックポート対象が無線LANだけにとどまらず他のドライバにも及んで名前もbackportsに改められたはずが、昔の名前で出ています。古い。ちなみにこのパッケージを展開するとcompat-wireless-3.5.4-1-brcmという名前になりました。多分Broadcomの機器を積んでいるんでしょう。

qrencodeはQRコード生成ライブラリです。α6400にはスマホからQRコードを利用して本体と接続してデータをやりとりする機能があるので、それ用だと思います。

R8168-DriverというのはRealtek社のコントローラ(いわゆるカニチップ)を積んだNICのドライバでしょう…と、ここまで書いて思ったのですが、何で(少なくとも見かけ上は)Ethernetポートが存在しない機器にNICのドライバが必要なんだろう?

その他のソフトウェアについては理由はよくわかりませんがソースがsrpmとして提供されています。ソフトウェアによっては複数バージョンが存在することもありますが、番号が大きなほうだけを気にすればいいのかしら。0802...と続く部分は単に日付とも思えないし、一体何を意味するものなのだろうか。

busyboxlinuxの基本コマンドをシングルバイナリに詰め込んだものです。GNUツールの*-utilsなどのフルセットを持つよりもはるかに小さなサイズで最小限のことができるので組み込み機器などにおいて重宝されます。1.13.4というバージョンは2009年4月に出たものらしいです。うーん、これも古い。

dosfstoolsはFATなどのファイルシステムを操作するためのソフトウェアです。おそらくは本体に挿したSDカード上に存在するFATファイルシステムの操作をするために存在するのでしょう。

e2fsprogsはext系ファイルシステムを操作するためのソフトウェアです。おそらく本体に内蔵されているlinuxシステムのrootfsがext系ファイルシステムなのでしょう。

おわりに

噂には聞いていましたけどソフトウェアのバージョンがどれもこれも古いですね。私の慣れ親しんできたエンプラlinuxの世界でもカーネルバージョンが古い古いとよく言われますが、組み込み機器においてはさらに古いようです。別にけなしているわけではなくて、単に「ほんとにそうだったんだ」とびっくりしているだけです。いい経験になりました。

では、α6400で写真撮ってきます。