Raspberry Pi 2でDebian jessie armhf を動かす
Raspberry Pi 2のCPUはCortex A7でarmv7アーキテクチャです。RaspbianはRaspberry Pi 1との共通化のためにarmv6向けにビルドされています。Debianのarmhfはarmv7向けなので、これをRaspberry Pi 2で動かしてみました。
debootstrapを使ったDebianのルートファイルシステムの構築
NFSサーバとなっているLinuxマシン(今回はUbuntu 14.04 x86_64)の上で以下を実行しNFSのディレクトリにarmhf_jessieのルートファイルシステムの元のファイルを置きます。
$ sudo apt-get install debootstrap $ mkdir armhf_jessie $ sudo debootstrap --foreign --arch armhf jessie ./armhf_jessie/ http://http.debian.net/debian/ $ sudo cp -a ./armhf_jessie /export/
Raspberry Pi 2のSDカードの/boot/cmdline.txt のカーネルパラメータを以下のようにNFSrootで起動するようにし、init=/bin/sh を追加します。
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 root=/dev/nfs nfsroot=192.168.0.6:/export/armhf_jessie rw ip=dhcp elevator=deadline rootwait init=/bin/sh
これでRasberry Pi 2を起動すると # のshのプロンプトが出るので、そこで以下を実行します。
# /debootstrap/debootstrap --second-stage
これは20分くらいかかります。
各種設定ファイルの編集
NFSサーバの側から以下の4つのファイルを編集します。
- /export/armhf_jessie/etc/hostname
- /export/armhf_jessie/etc/hosts
- /export/armhf_jessie/etc/resolv.conf
- /export/armhf_jessie/etc/apt/source.list
Raspberry Pi 2のホスト名をarmhf-jessie00とすると
/export/armhf_jessie/etc/hostname
armhf-jessie00
/export/armhf_jessie/etc/hosts
127.0.0.1 localhost 127.0.1.1 armhf-jessie00ff02::1 ip6-allnodes ff02::2 ip6-allrouters
/export/armhf_jessie/etc/resolv.conf
nameserver 8.8.8.8
/export/armhf_jessie/etc/apt/sources.list
deb http://http.debian.net/debian jessie main #deb-src http://http.debian.net/debian jessie main deb http://http.debian.net/debian jessie-updates main #deb-src http://http.debian.net/debian jessie-updates main deb http://security.debian.org jessie/updates main #deb-src http://security.debian.org jessie/updates main
Raspberry Pi 2でユーザーの登録と初期設定
Raspberry Pi 2のシェルのプロンプトで以下を実行します。
最初に登録するユーザーアカウントをuser とすると
# export PATH=/bin:/usr/bin:/sbin:/usr/sbin # mount -t proc proc /proc # adduser user # adduser user sudo # apt-get update # apt-get install sudo locales dialog ssh # dpkg-reconfigure locales # dpkg-reconfigure tzdata
完成
これで最小限の設定はできたはずなので、initスクリプトを動かしてみます。
# exec /sbin/init
これで問題なくuserのアカウントでログインできて使用することができたら、SDカードのboot/cmdline.txt の中の init=/bin/sh を外します。
Raspberry Pi 2でのDebain jessie armhfのブートログ
debootstrap --second-stageの後の細かい設定が煩雑ですが、これの面倒を見てくれる便利なスクリプトはないのかな?