Routerboard CCR1016でLINUXを起動する

2016. 03. 28

CCRに電源を挿す

本記事はMacで動作確認をしています。

目次(ページ内リンク)

 

当記事での目標

タイトル通り、Cloud Core Router 1016 12G にUSBを接続し、NANDからブート、USBのLINUXを起動できるようにすることです。
 

準備するもの

1. Cloud Core Router本体、3P→2P変換アダプタ

左側がCloud Core Router本体+パッケージ、右側は電源ケーブルです。
電源ケーブルをそのままで挿せるなら良いですが、
多くの人は3P→2Pの変換アダプタが必要かと思われます。
電源ケーブルはもちろん付属していますが、3P→2P変換アダプタは別途用意する必要があります。
  • CloudCoreRouter本体
  • CloudCoreRoute電源ケーブル
 

2. USB3.0フラッシュメモリ
3. USB3.0 → microUSB変換ケーブル

本製品はCloud Core Routerのパッケージに同梱されていました。
  • USB-microUSB変換ケーブル

4. USBシリアルケーブル

  • USBシリアルケーブル

5. LANケーブル
6. USB3.0対応有線LANアダプタ

  • USB有線LANアダプタ

今回利用したものはどれもUSB3.0対応でした。
USB3.0未対応でも問題ないかもしれませんが、未確認です。

 

作業手順

作業手順目次(ページ内リンク)

1. rootfsのダウンロード
2. rootfsを解凍する
3. USBに ccr_rootfs 以下のファイルを全てコピーする
4. dnsmasqのディレクトリ作成
5. シリアルコンソール接続
6. CCRとMacをLANケーブルで接続する
7. dnsmasqの実行の準備
8. CCR起動とdnsmasqの実行
9. TFTPブートを選択
10. UBIデバイスアタッチ & NAND書き換え(vmlinux_usb)
11. USBでブート
12. CCRのLINUX起動

 

1. rootfsのダウンロード

以下のリンクから必要なファイルを格納してあるrootfsをダウンロードする
ccr_rootfs
 

2. rootfsを解凍する

前項にてダウンロードしたzipファイルを解凍する
 

3. USBに ccr_rootfs 以下のファイルを全てコピーする

USBにccr_rootfs配下のファイルを全てそのままコピーする
そして、CCRにUSBを接続しておく

  • CCRにUSBを接続
USBは fuse-ext2 でフォーマットしました。
今回はこれ以外の種類のフォーマットでは試していません。
 

4. dnsmasqのディレクトリ作成

TFTPブートをする時に読み込まれるディレクトリを作成する
同時に、このディレクトリにはdnsmasqのリースファイルも置いてしまう

$ cd ~/
$ mkdir ./ccr_boot

ディレクトリにダウンロードした vmlinux_usb をコピーする

$ cp ~/Downloads/ccr_rootfs/root/vmlinux_usb ./ccr_boot
ダウンロード先のディレクトリが ~/Downloads であったため、上記コマンドを実行しました。
もしも ~/Downloads 以外へダウンロード・解凍していた場合はコピー元のパスを読み替えてください。

 

5. シリアルコンソール接続

事前確認

$ ls -l /dev/tty.*

crw-rw-rw- 1 root wheel 17, 0 2 19 17:16 /dev/tty.Bluetooth-Incoming-Port
crw-rw-rw- 1 root wheel 17, 2 2 19 17:16 /dev/tty.Bluetooth-Modem

パソコンのUSBとCCRのシリアルを接続する

  • シリアルコンソール接続

接続先の確認

$ ls -l /dev/tty.*

crw-rw-rw- 1 root wheel 17, 0 2 19 17:16 /dev/tty.Bluetooth-Incoming-Port
crw-rw-rw- 1 root wheel 17, 2 2 19 17:16 /dev/tty.Bluetooth-Modem
crw-rw-rw- 1 root wheel 17, 12 3 24 17:02 /dev/tty.usbserial-FTYHICAD

/dev/tty.usbserial-FTYHICAD が追加されている

シリアルコンソール接続を開始するため、下記コマンドを用意しておく

$ screen /dev/tty.usbserial-FTYHICAD 115200

 

6. CCRとMacをLANケーブルで接続する

CCRとMacの接続に利用されたインタフェース名を知るため、既存のインタフェースを確認する

$ ifconfig
出力結果

lo0
en0
en1

CCR本体のBOOTと書いてあるNICにLANケーブルを挿し、
逆側はNICとUSBの変換ケーブルを用いてMacに接続する

  • BOOTのNICに接続
$ ifconfig
出力結果

lo0
en0
en1
en8

en8 が追加されている

en8の設定として、IPを固定する
今回は 192.168.88.251 にIPを設定しています。

 

7. dnsmasqの実行の準備

ここではdnsmasqの実行の準備として実行するコマンドのみ準備しておく

$ sudo /usr/local/sbin/dnsmasq -a 192.168.88.251 -i en8 -z -d -p 0 --dhcp-range=192.168.88.100,192.168.88.102 --dhcp-leasefile=/Users/user_name/ccr_boot/dnsmasq.leases --bootp-dynamic --enable-tftp --tftp-root=/Users/user_name/ccr_boot/ --dhcp-boot=/Users/user_name/ccr_boot/vmlinux_usb

オプションの内容

-a CCRとMacを接続しているインタフェースのIP(今回の場合は 192.168.88.251)
-i ホストとCCRの接続に利用しているインタフェース(今回の場合は en8)
--dhcp-range=dhcpで割り当てるIPの範囲
--dhcp-leasefile=デフォルトで利用されるディレクトリはない場合もあるので、リースファイルのフルパスを指定する
--bootp-dynamic --enable-tftp
--tftp-root=vmlinux_usbを置いたディレクトリのフルパス
--dhcp-boot=vmlinux_usbのフルパス

フルパスの指定が必要であるためか、 ~/ という記述では実行できませんでした。
このため、/Users/user_name は適宜読み替える必要があります。

 

8. スクリーンコマンドの実行、CCR起動とdnsmasqの実行

スクリーンコマンドを実行し、CCRからの標準出力を待機する

$ screen /dev/tty.usbserial-FTYHICAD 115200

CCRの電源を入れるとscreenコマンドを打ったターミナルへの標準入出力が開始する
以下の文章が出てくるので2秒以内にエンターを押す

Press any key within 2 seconds to enter setup..

新たなターミナルを起動し、前項で準備したdnsmasqコマンドを実行する

$ sudo /usr/local/sbin/dnsmasq -a 192.168.88.251 -i en8 -z -d -p 0 --dhcp-range=192.168.88.100,192.168.88.102 --dhcp-leasefile=/Users/user_name/ccr_boot/dnsmasq.leases --bootp-dynamic --enable-tftp --tftp-root=/Users/user_name/ccr_boot/ --dhcp-boot=/Users/user_name/ccr_boot/vmlinux_usb

画像左: CCRに電源を挿している様子です
画像右: この段階ではこのようにケーブルが挿されています

  • CCRに電源を挿す
  • CloudCoreRouterの現状
 

 

9. TFTPブートを選択

以下のような設定画面が表示されるので、まずは “o” を押し、boot deviceの選択をする
すると “e – boot over Ethernet” という文字があるので、 “e” を押し、
イーサネット経由でのブートを選択し、 “x” を押して設定から抜ける

What do you want to configure?
d - boot delay
k - boot key
s - serial console
n - silent boot
o - boot device
f - cpu frequency
a - memory frequency
r - reset booter configuration
e - format nand
w - repartition nand
g - upgrade firmware
i - board info
p - boot protocol
b - booter options
x - exit setup
CCR login:

少しするとCCRがリブートして、上記のようにCCR login:と出てきます。
ここまで来ればTFTPブートは成功です。
USER:root pass:空
上記を入力してログインしましょう。

 

10. UBIデバイスアタッチ & NAND書き換え(vmlinux_usb)

まずは、ブートができて不要となったため、CCRとMacを接続しているLANケーブルを抜く

カーネルの書き換えを実行する

$ ubiattach /dev/ubi_ctrl -m 1
$ mount -t ubifs /dev/ubi0_0 /mnt/
$ cp /root/vmlinux_usb /mnt/kernel
$ umount /mnt

rootfsの書き換えを実行する

$ ubiattach /dev/ubi_ctrl -m 2
$ mount -t ubifs /dev/ubi1_0 /mnt/
$ rm -fr /mnt/*
$ cd /mnt
$ tar xf /root/rootfs.tar.xz

 

11. USBでブート

CCRを再起動する

$ reboot

TFTPブートを選択の時のように
boot deviceの選択でNANDからブートするようにする

 

12. CCRのLINUX起動

USBでブートでブートが成功すれば完了