Raspberry Pi 2 Model B に Debian Jessie /armhf をインストールする
第 125 回 2015 年 3 月度
岩松 信洋

2015 年 3 月 7 日

アジェンダ1
2Raspberry Pi 2 Model B と Raspberry Pi の違い
Raspberry Pi 2 Model B に Debian Jessie / armhf をインストールするRaspberryPi 2 Model
B と Raspberry Pi の違い

Raspberry Pi 2 とは？

2015 年 2 月 2 日に発売された新しい Raspberry Pi
CPU、メモリの強化
Raspberry Pi 2 では Debian armhf が利用できる
Raspbian 使わなくても良くなった。
Raspbian is not DebianRaspberry Pi 2 Model B と Raspberry Pi の違い

Raspberry Pi 2 Model B と Raspberry Pi の違いCPUSoC
CPU
メモリ
ネットワーク
外部 I/O
ストレージ
電源

RPi Model B+ARM1176JZF-S 1 コア (700MHz) / ARMv6
Broadcom BCM2835
Broadcom VideoCore IV (250MHz)
512MB (SDRAM)
LAN9514 (10/100 Mbps)
GPIO 40 ピン
microSD
600 mA (3.0W)

RPi 2 Model B
ARM Cortex-A7 4 コア (900MHz) / ARMv7
Broadcom BCM2836
同左
1GB (LPDDR2 SDRAM)
同左
同左
同左
900 mA (4.5-5.5W)

Raspberry Pi 2 Model B と Raspberry Pi の違い

ターゲット命令セット
FPU
Debian ネイティブ

Debian armel
ARMv4なし
Yes

Debian armhf
ARMv7
VFPv3
Yes

Raspbian
ARMv6
VFPv2
NoRaspberry Pi 2 Model B と Raspberry Pi の違い

Unixbench (System Benchmarks Index Score)
Debian armel / RPi
66.5

Debian armhf /RPi2
450.8 (183.1)

Raspbian / Rpi
80.1

Raspbian / Rpi2
442.9 (173.8)

Debianarmhf/Jessieのインストー
ル方法Debian armhf / Jessie のインストール方法

準備するもの実機初期化されてもよい 4GB 以上の microSD カード
電源用の micro USB ケーブル

USB シリアル変換モジュール

接続例

Figure: RPi2 接続例

作業の流れmicroSD カードの認識確認
2
microSD カードの初期化
3
microSD カードにパーティション作成
4
microSD カードのフォーマット
5cdebootstrap を使って microSD カードにインストール
6RPi2 の Linux カーネルとカーネルモジュールのインストール
7
RPi2 のカーネルコマンドラインの設定
8
fstab の設定
9
ネットワークデバイスの設定
10 rootfs 用パーティションの変更
11 root のパスワードの設定と rpi ユーザの追加
12 microSD カードのアンマウントと RPi2 の起動
13 RPi2 へのログイン
14 RPi2 専用ツールのインストール
1non native cdebootstrap

microSD カードの認識確認$ dmesg | tail -5[858983.896718] FAT-fs (sdf1): Directory bread(block 32775) fai[858983.896729] FAT-fs (sdf1): Directory bread(block 1390704) f[858983.896731] FAT-fs (sdf1): Directory bread(block 1390705) f[869873.800361] sd 6:0:0:3: [sde] 15523840 512-byte logical blo[869873.831121] sde: sde1

microSD カードの初期化$ sudo dd if=/dev/zero of=/dev/sde bs=1M count=1

microSD カードにパーティション作成$ sudo fdisk /dev/sde
Command (m for help): o...
Command (m for help): n...
Select (default p): p...
Partition number (1-4, default 1): 1...
Last sector, +sectors or +size{K,M,G,T,P} \(2048-15523839, default 15523839): +32M...
Command (m for help): t...
Hex code (type L to list all codes): e...
Command (m for help): n...
Select (default p): p...
Partition number (2-4, default 2): 2...

(echo o; echo n; echo p; echo 1; echo ; echo +32M; \echo t; echo e; echo n; echo p; echo 2; echo ; echo ; \echo w) | fdisk /dev/sde

microSD カードのフォーマット

$ sudo mkfs.msdos /dev/sde1$ sudo mkfs.ext4 /dev/sde2$ mkdir /tmp/boot /tmp/rootfs$ sudo mount /dev/sde1 /tmp/boot$ sudo mount /dev/sde2 /tmp/rootfs

cdebootstrap を使って microSD カードにインストール$ sudo cdebootstrap --arch=armhf -f standard \--foreign jessie \--include=openssh-server,ntp,ca-certificates,vim \/tmp/rootfs...

RPi2 の Linux カーネルとカーネルモジュールのインストール

RPi2 の Linux カーネルは Debian では提供されていない
完全にアップストリームでサポートされていない
起動にファームウェアが必要
Debian で RPi2 の Linux カーネルを扱うには rpi-updateを使って最新カーネルをコピーする

RPi2 の Linux カーネルとカーネルモジュールのインストール$ sudo curl -o /tmp/rootfs/usr/bin/rpi-update https://raw.githu$ sudo chmod +x /tmp/rootfs/usr/bin/rpi-update$ sudo mkdir /tmp/rootfs/lib/modules$ sudo ROOT_PATH=/tmp/rootfs BOOT_PATH=/tmp/boot /tmp/rootfs/us*** Raspberry Pi firmware updater by Hexxeh, enhanced by Andrew*** Performing self-update% Total% Received % Xferd Average Speed
TimeTime
Dload Upload
Total
Spent
100 8107 100 8107
00 54471
0 --:--:-- --:--:-*** Relaunching after update...

RPi2 のカーネルコマンドラインの設定$ sudo sh -c "echo dwc_otg.lpm_enable=0 console=ttyAMA0,115200
root=/dev/mmcblk0p2 rootwait > /tmp/boot/cmdline.txt

fstab の設定

proc/dev/mmcblk0p1/dev/mmcblk0p2/proc/boot/proc
vfat
ext4

defaults
0defaults0
defaults,noatimeネットワークデバイスの設定

auto eth0
iface eth0 inet dhcp

rootfs 用パーティションの変更

trap ’error "Interruped!"’ HUP INT TERM
mount -n -o remount,rw rootfs / <- これをmount -n -o remount,rw /dev/mmcblk0p2 / <- これに変更
chown -hR 0:0 /root のパスワードの設定と rpi ユーザの追加

echo ’deb http://ftp.debian.org/debian jessie main’ > /etc/apt/
echo "root:root" | chpasswd <- この行を追加
useradd -m rpi <- この行を追加
echo rpi:rpi | chpasswd <- この行を追加
run rm /sbin/initmicroSD カードのアンマウントと RPi2 の起動

12345

microSD カードをアンマウントし、PRi2 の microSDカードスロットに挿入する。
挿入後、micro USB ケーブルを RPi2 に挿し、RPi2 を起動する。
起動すると自動的に 2nd bootstrap が実行され、RPi2 上でインストールが実行される
30 分ほど待つ
インストール完了

RPi2 へのログイン

USB シリアルモジュール経由
SSH 経由HDMI モニタ（tty）経由

RPi2 専用ツールのインストール

RPi の専用ツールである rpi-update、raspi-config はま
だ Debian では提供されていない
これらを Debian で利用できるようにするには
raspberrypi.org で提供されている 各ツールの Debianパッケージをインストールする必要がある。

RPi2 専用ツールのインストール# wget -O - http://archive.raspberrypi.org/debian/raspberrypi.g# echo deb http://archive.raspberrypi.org/debian wheezy main >># apt-get update# apt-get install rpi-update raspi-config

終わりにRPi2 から ネイティブの Debian が利用できるようになった
インストーラや microSD カードイメージが準備されていなくても、cdebootstrap 使えば簡単にインストールできる
Raspbian is not Debian。RPi2 では Debian を使いましょう。