本記事はMacで動作確認をしています。
目次(ページ内リンク)
当記事での目標
準備するもの
電源ケーブルをそのままで挿せるなら良いですが、
多くの人は3P→2Pの変換アダプタが必要かと思われます。
電源ケーブルはもちろん付属していますが、3P→2P変換アダプタは別途用意する必要があります。
2. USB3.0フラッシュメモリ
3. USB3.0 → microUSB変換ケーブル
4. USBシリアルケーブル
5. LANケーブル
6. USB3.0対応有線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のダウンロード
ccr_rootfs
2. rootfsを解凍する
3. USBに ccr_rootfs 以下のファイルを全てコピーする
今回はこれ以外の種類のフォーマットでは試していません。
4. dnsmasqのディレクトリ作成
同時に、このディレクトリには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ケーブルで接続する
$ ifconfig
出力結果
lo0
en0
en1
CCR本体のBOOTと書いてあるNICにLANケーブルを挿し、
逆側はNICとUSBの変換ケーブルを用いてMacに接続する
$ ifconfig
出力結果
lo0
en0
en1
en8
en8 が追加されている
en8の設定として、IPを固定する
今回は 192.168.88.251 にIPを設定しています。
7. 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の実行
$ 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に電源を挿している様子です
画像右: この段階ではこのようにケーブルが挿されています
9. TFTPブートを選択
すると “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)
カーネルの書き換えを実行する
$ 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でブート
$ reboot
TFTPブートを選択の時のように
boot deviceの選択でNANDからブートするようにする