Raspbian Jessie のインストール ()

Debian の最新安定版の jessie (release 8.0) に対応した Raspbian の新バージョンが 2015/09/29 に公開されました。Raspbian は最初の 2012-07-15-wheezy-raspbian から 2015-05-05-wheezy-raspbian まで 3 年間 wheezy (Debian 7.0) をベースとしたディストリビューションでした。 色々なパッケージが古くなってきて、ビルドできないソフトウェアも出てきていたため、新バージョンを待っていた方も多かったのではないかと思います。 Debian 8.0 のリリースは 2015/04/26 だったので、早速 2015-09-24-raspbian-jessie を入手して Raspberry Pi2 で jessie を試してみます。

Debian は コードネームで呼ばれることも多く、なれないとよく分からなくなるので Debian のコードネームとリリースバージョンの対応を表にしてみました。「Toy Story」のキャラクターの名前になっています。 Jessie は woody の妹の名前です。 ディズニーの公式ページ で確認できます。

codename release
jessie 8.0
wheezy 7.0
squeeze 6.0
lenny 5.0
etch 4.0
sarge 3.1
woody 3.0
potato 2.2
slink 2.1
hamm 2.0
bo 1.3
rex 1.2
buzz 1.1

今回のバージョンアップでは、SDカードで起動するといきなりデスクトップが表示され、LibreOffice で表計算などのオフィスアプリケーションがすぐ使えるなど、普通にコンピュータとして使えるようになってます。また、トップメニューの右端に USB のイジェクト用のアイコンが表示されるようになりました。ちょっと最初の方向性(学生の教育用)と違ってきている気がするような...

2015-09-24-raspbian-jessie のインストール

作業を行うSD カードはデータがすべて初期化されるので、新しいカードやデータが不要で消去してもいい SD カードを使って下さい。

いつものように MacBook Pro17(MacOSX 10.10.5) でインストール作業した記録です。 MacOS X ではデバイス名の指定方法が異なるだけで、Linuxと同じく dd コマンドを使ってSDカードに ディスクイメージを書き込みます。 以下の例は、私のMacBookでの例です。今回の作業では SDカード が /dev/disk4 で認識されています。適宜読み替えてください。

dd コマンドのデバイスの指定を間違えると最悪ハードディスクがすべて消えるなどの悲惨な結果が待っています。十分に注意して行なってください。

$ uname -rsv
Darwin 14.5.0 Darwin Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT 2015;
root:xnu-2782.40.9~1/RELEASE_X86_64

ダウンロードしたディスクイメージは以下のサイズです。

$ ls -lt
-rw-r--r--@ 1 jun  staff  1332985725  9 29 21:46 2015-09-24-raspbian-jessie.zip

イメージのハッシュ(SHA-1 Checksum)が公式サイトにある d8d4880cd0e4f155f343984725d5bd94c1f86023 であることを確認します。

$ shasum 2015-09-24-raspbian-jessie.zip
d8d4880cd0e4f155f343984725d5bd94c1f86023  2015-09-24-raspbian-jessie.zip

いつものようにMacBook Pro17 にUSB接続のmicroSDカードリーダを接続して、SDカードをアンマウントします。

$ df -k
Filesystem  1024-blocks Used Available Capacity  iused  ifree %iused Mounted on
 略
/dev/disk4s1    57288    9696     47592    17%     512      0  100%  /Volumes/boot
/dev/disk4s2 15343836 2940004  11754252    21%   86750 870962    9%  /Volumes/Untitled

今回は色々USBに接続していたので、SDカードは /dev/disk4s1 と /dev/disk4s2 と認識されていました。SDカードに見えている2つのパーティションをアンマウントします。

$ diskutil unmount /dev/disk4s1
Volume boot on disk4s1 unmounted
$ diskutil unmount /dev/disk4s2
Volume  on disk4s2 unmounted

zipファイルを展開します。

$ unzip 2015-09-24-raspbian-jessie.zip 
Archive:  2015-09-24-raspbian-jessie.zip
warning [2015-09-24-raspbian-jessie.zip]:  76 extra bytes at beginning or
within zipfile
  (attempting to process anyway)
error [2015-09-24-raspbian-jessie.zip]:  reported length of central
directory is -76 bytes too long (Atari STZip zipfile?  J.H.Holm ZIPSPLIT
1.1 zipfile?).  Compensating...
skipping: 2015-09-24-raspbian-jessie.img  need PK compat.
v4.5 (can do v2.1)

note:  didn't find end-of-central-dir signature at end of central dir.
  (please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)

今回の zip ファイルは壊れていると言われて unzip では展開できませんでした。イメージのハッシュは正しいので、zip ファイルのフォーマットが unzip では扱えない形式になっているようです。「The Unarchiver」を使って img ファイルを抽出しました。Windows では「7zip」を使うと大丈夫とのことです(Raspbian Jessie zip appears corrupt)。

$ ls -l 2015-09-24-raspbian-jessie.*
-rw-r--r--@ 1 jun  staff  4325376000  9 25 01:14 2015-09-24-raspbian-jessie.img
-rw-r--r--@ 1 jun  staff  1332985725  9 29 21:46 2015-09-24-raspbian-jessie.zip

SDカードに書き込みます。 今回は /dev/rdisk4 に書いています。

$ sudo time dd bs=1m if=2015-09-24-raspbian-jessie.img of=/dev/rdisk4
4125+0 records in
4125+0 records out
4325376000 bytes transferred in 264.807992 secs (16334009 bytes/sec)
      264.83 real         0.01 user         2.87 sys

ブート領域のファイルを確認します。

$ cd /Volumes/boot
$ ls -lt
total 39712
-rwxrwxrwx  1 jun  staff      137  9 24 15:33 issue.txt
drwxrwxrwx  1 jun  staff     8192  9 24 13:30 overlays
-rwxrwxrwx  1 jun  staff      136  9 24 13:29 cmdline.txt
-rwxrwxrwx  1 jun  staff     1583  9 24 13:29 config.txt
-rwxrwxrwx  1 jun  staff    10125  9 23 15:10 bcm2708-rpi-b-plus.dtb
-rwxrwxrwx  1 jun  staff     9846  9 23 15:10 bcm2708-rpi-b.dtb
-rwxrwxrwx  1 jun  staff     9850  9 23 15:10 bcm2708-rpi-cm.dtb
-rwxrwxrwx  1 jun  staff    11113  9 23 15:10 bcm2709-rpi-2-b.dtb
-rwxrwxrwx  1 jun  staff    17900  9 23 15:10 bootcode.bin
-rwxrwxrwx  1 jun  staff     6359  9 23 15:10 fixup.dat
-rwxrwxrwx  1 jun  staff     2392  9 23 15:10 fixup_cd.dat
-rwxrwxrwx  1 jun  staff     9599  9 23 15:10 fixup_db.dat
-rwxrwxrwx  1 jun  staff     9597  9 23 15:10 fixup_x.dat
-rwxrwxrwx  1 jun  staff  4056224  9 23 15:10 kernel.img
-rwxrwxrwx  1 jun  staff  4032544  9 23 15:10 kernel7.img
-rwxrwxrwx  1 jun  staff  2719896  9 23 15:10 start.elf
-rwxrwxrwx  1 jun  staff   596824  9 23 15:10 start_cd.elf
-rwxrwxrwx  1 jun  staff  4852968  9 23 15:10 start_db.elf
-rwxrwxrwx  1 jun  staff  3810376  9 23 15:10 start_x.elf
-rwxrwxrwx  1 jun  staff    18693  8 21 16:04 COPYING.linux
-rwxrwxrwx  1 jun  staff     1447  8 21 16:04 LICENCE.broadcom
-rwxrwxrwx  1 jun  staff    18974  9 25  2013 LICENSE.oracle

overlays というディレクトリも見てみましょう。

$ cd overlays/
$ ls -l
$ ls
README                          pps-gpio-overlay.dtb
ads7846-overlay.dtb         pwm-2chan-overlay.dtb
bmp085_i2c-sensor-overlay.dtb   pwm-overlay.dtb
dht11-overlay.dtb               raspidac3-overlay.dtb
enc28j60-overlay.dtb            rpi-dac-overlay.dtb
gpio-poweroff-overlay.dtb       rpi-display-overlay.dtb
hifiberry-amp-overlay.dtb       rpi-ft5406-overlay.dtb
hifiberry-dac-overlay.dtb       rpi-proto-overlay.dtb
hifiberry-dacplus-overlay.dtb   rpi-sense-overlay.dtb
hifiberry-digi-overlay.dtb      sdhost-overlay.dtb
hy28a-overlay.dtb               sdio-overlay.dtb
hy28b-overlay.dtb               smi-dev-overlay.dtb
i2c-rtc-overlay.dtb             smi-nand-overlay.dtb
i2s-mmap-overlay.dtb            smi-overlay.dtb
iqaudio-dac-overlay.dtb         spi-bcm2708-overlay.dtb
iqaudio-dacplus-overlay.dtb     spi-bcm2835-overlay.dtb
lirc-rpi-overlay.dtb            spi-dma-overlay.dtb
mcp2515-can0-overlay.dtb        tinylcd35-overlay.dtb
mcp2515-can1-overlay.dtb        uart1-overlay.dtb
mmc-overlay.dtb                 vga666-overlay.dtb
mz61581-overlay.dtb             w1-gpio-overlay.dtb
piscreen-overlay.dtb            w1-gpio-pullup-overlay.dtb
pitft28-resistive-overlay.dtb

デバイスツリーの定義ファイルは、ハードウェアの違いを吸収するため、色々なハードウェアの個別の設定値をカーネルの外で用意しておいて、起動時にカーネルに渡すことで多くのハードウェアに対応する仕組みです。 /boot/config.txt にちょっと追加すれば比較的簡単に使えるようになるのでしょう。 rpi-ft5406 が公式の7インチタッチスクリーン用のファイルのようです。

Name:   rpi-ft5406
Info:   Official Raspberry Pi display touchscreen
Load:   dtoverlay=rpi-ft5406
Params: <None>

/boot/config.txt に dtoverlay=rpi-ft5406 を追記すると公式の7インチタッチスクリーンが使えるようになりそうです(未確認)。 タッチスクリーンは発注済みですが、3週間遅れるとの連絡が今日届きました (T_T)。

$ cat config.txt
# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

Raspberry Pi で動かすため、Mac から SDカードをアンマウントして取り出します。 /dev/disk4s2 はフォーマットが ext4 なので Mac では見えていないのが普通です。

$ df -k
Filesystem   1024-blocks    Used Available Capacity  iused     ifree %iused  Mounted on
 略
/dev/disk4s1     57288     20264     37024    36%      512         0  100%   /Volumes/boot
/dev/disk4s2   4097112   3156700    732284    82%   128265    132343   49%   /Volumes/Untitled

$ diskutil unmount /dev/disk4s1
Volume boot on disk4s1 unmounted
$ diskutil unmount /dev/disk4s2
Volume  on disk4s2 unmounted

Raspbian Jessie で起動

2015-09-24-raspbian-jessie ではイメージを書き込んだ SDカードで起動すると、そのままデスクトップが表示されて、ログインすることもなく、すぐに使用することができます。 このバージョンから、コンピュータを起動した時に期待される動作:「すぐに使える」に変更したとのことです。

カーネルのバージョンを確認してみます。

$ uname -a
Linux raspberrypi 4.1.7-v7+ #817 SMP PREEMPT Sat Sep 19 15:32:00 BST 2015
armv7l GNU/Linux

raspi-config による初期設定は自動的に実行されません。 SDカードは容量にかかわらず、書き込んだイメージのサイズになっています。

$ df -k
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        4031552 3197456    609584  84% /
devtmpfs          469756       0    469756   0% /dev
tmpfs             474060       0    474060   0% /dev/shm
tmpfs             474060    6444    467616   2% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs             474060       0    474060   0% /sys/fs/cgroup
/dev/mmcblk0p1     57288   20312     36976  36% /boot
tmpfs              94812       0     94812   0% /run/user/1000

上のようにパーティションは4GBとなっていて、あまり空きはありません。

raspi-config による初期設定

これまでと同じ raspi-config も使用できますが、上のスクリーンショットのようにデスクトップのメニューからもGUIで設定できるようになりました。「Expand Filesystem」ボタンを押して、再起動するとSDカード全体を使うようになります。

$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root       15275404 3201584  11393724  22% /
devtmpfs          469756       0    469756   0% /dev
tmpfs             474060       0    474060   0% /dev/shm
tmpfs             474060    6432    467628   2% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs             474060       0    474060   0% /sys/fs/cgroup
/dev/mmcblk0p1     57288   20312     36976  36% /boot
tmpfs              94812       0     94812   0% /run/user/1000

その他の設定

以下の記事も参考にして下さい。

日本語化
デスクトップの軽量な日本語化と英語モードとの切替。ちょっとダイアログのデザインが変更されていますが、理解できる範囲内と思います。
デスクトップのカスタマイズ
デスクトップのウィンドウやダイアログの色や形状を変更する方法。
新しい無線LANの設定
デスクトップのメニューから簡単に無線LANの設定ができるようになっています。

プログラミング言語のバージョン

Wheezy から Jessie になって、 プログラミング言語のバージョンはどうなったのか調べてみました。 Raspbian では、追加インストールすること無く使えるプログラミング言語として、CC++JavaPythonPypyLuaLuaJITPerlAwkRubyアセンブラ(GNU as)といった、ほとんどすべてのメジャーな言語が使えるようになっています。 最後の glibc は言語ではなくライブラリですが、重要なので載せておきます。

言語 Weezy Jessie
gcc 4.6.3 4.9.2
java 1.8.0 1.8.0
python 2.7.3 2.7.9
python3 3.2.3 3.4.2
pypy 2.2.1 2.2.1
perl v5.14.2 v5.20.2
lua 5.1.5 5.1.5
luajit 2.0.0-beta11 2.0.3
ruby 1.9.3p194 2.1.5p273
as 2.24.51.20140425 2.25
bash 4.2.37(1) 4.3.30(1)
awk 1.3.3 1.3.3
glibc 2.13 2.19


続く...