以前から、自宅用のルーターをVyOS(Vyatta)で構築したいと考えていたのだが、通常のx86のマザーボード基板(Core iシリーズが乗るようなやつ)を利用すると電気代がかかるし、ちょっとなぁ…と考えていた所、LANコネクタを3ポート搭載したx86対応のPCEngines社製の基板、APU1.Cというものを知った。
ALIXと呼ばれていたシリーズの後継機らしい。下の画像を見てもらえればわかるが、大きさもかなり小さい。
TDPもせいぜい6W程度と省電力で、USBも搭載しているので無線LANアダプタの増設も可能。miniPCIの無線LANカードを増設し、外付けの無線LANアンテナも追加できる。x86のCPUを搭載したルーターを作るには持ってこいだ。
今回の構築で使用したパーツや資材は、以下になる。
- APU1C
- ケース(ALIX.2D3用)
- ACアダプタ(12V1A DCジャック2.5mm)
- mSATA SSD
- USBシリアルケーブル
- シリアルケーブル(クロス)
- USB DVDドライブ
- VyOSのディスク
上記には、玄箱などをいじっていた人にはかなり違和感のある代物があると思う。
そう、このAPU1C、ちょっと変則的な方法ではあるが、普通にディスクからOSのインストールが可能なのだ!
…まぁ、単純にVyOSがシリアル接続に対応している、というだけなんだけど。
なお、これらのパーツはスイッチサイエンスさんおよびヤマモト・ツール・ワークスさんにて購入した。
1.組み立て
まずはapu1cのボードとケース、mSATA SSDの組み立て。
といっても難しくはない(ちょっと面倒ではあるが)。
まずは、付属している放熱用の金属板を、背面のチップとくっつける。
この時、くっつけるシールの粘着力がえらく弱いので、ケースに組み付けるときに注意が必要。落っこちるから。下の画面では青いシールを貼ったままにしているけど、これも剥がしてケースに貼ってもらいたい(これも粘着力が弱い)。
次に、シリアルコネクタの両脇にあるスペーサーを外して、ケースに組み付けて、ネジ止めするだけ。
後は蓋つけて終わり。最初の放熱板のとこが一番面倒臭い…。
2.VyOSのインストール
次に、VyOSのインストールを行う。
APU1.Cには電源ボタンというものは存在しないので、電源ケーブルの接続前にUSB DVDドライブにVyOSのディスクを入れて接続。
あと、シリアル接続するPCでUSBシリアルコンソールとクロスケーブルを用いてシリアル接続。接続用のソフトはTeratermなどを利用する。
シリアルポート接続の速度は、今時点は「115200」とする。
シリアル接続された状態で電源ケーブルを指すと、以下のようにBIOSの内容が出力される。
Total memory 4096 MB
AMD G-T40E Processor
System memory size: 4080 MB
SeaBIOS (version SageBIOS-20140708_12%00:00-frink)
SeaBIOS (version SageBIOS-20140708_12%00:00-frink)
Found coreboot cbmem console @ df150400
Found mainboard PC Engines APU
Relocating init from 0x000e8dd1 to 0xdf106630 (size 39171)
Found CBFS header at 0xfffff8c8
found file "bootorder" in cbmem
CPU Mhz=1000
Found 27 PCI devices (max PCI bus is 05)
Copying PIR from 0xdf160400 to 0x000f26b0
Copying MPTABLE from 0xdf161400/df161410 to 0x000f24c0 with length 1ec
Copying ACPI RSDP from 0xdf162400 to 0x000f24a0
Copying SMBIOS entry point from 0xdf16d800 to 0x000f2480
Using pmtimer, ioport 0x808
Scan for VGA option rom
EHCI init on dev 00:12.2 (regs=0xf7f08420)
Found 1 lpt ports
Found 2 serial ports
AHCI controller at 11.0, iobase f7f08000, irq 11
EHCI init on dev 00:13.2 (regs=0xf7f08520)
EHCI init on dev 00:16.2 (regs=0xf7f08620)
Searching bootorder for: /pci@i0cf8/*@11/drive@0/disk@0
AHCI/0: registering: "AHCI/0: SB mSATA SSD ATA-10 Hard-Disk (14318 MiBytes)"
Searching bootorder for: /rom@img/setup
Searching bootorder for: /rom@img/memtest
Searching bootorder for: /pci@i0cf8/usb@12,2/storage@1/*@0/*@0,0
Searching bootorder for: /pci@i0cf8/usb@12,2/usb-*@1
OHCI init on dev 00:12.0 (regs=0xf7f04000)
OHCI init on dev 00:13.0 (regs=0xf7f05000)
OHCI init on dev 00:14.5 (regs=0xf7f06000)
OHCI init on dev 00:16.0 (regs=0xf7f07000)
Searching bootorder for: /pci@i0cf8/usb@16,2/storage@1/*@0/*@0,0
Searching bootorder for: /pci@i0cf8/usb@16,2/usb-*@1
USB MSC vendor='Multiple' product='Card Reader' rev='1.00' type=0 removable=1
Device reports MEDIUM NOT PRESENT
scsi_is_ready returned -1
Unable to configure USB MSC drive.
Unable to configure USB MSC device.
USB MSC vendor='BUFFALO' product='Optical Drive' rev='2.00' type=5 removable=1
All threads complete.
Scan for option roms
Running option rom at c000:0003
iPXE (http://ipxe.org) 00:00.0 C000 PCI2.10 PnP PMMpmm call arg1=1
pmm call arg1=0
+DF0E2F50pmm call arg1=1
pmm call arg1=0
+DF042F50 C000
Press Ctrl-B to configure iPXE (PCI 00:00.0)...
Searching bootorder for: /rom@genroms/pxe.rom
Press F10 key now for boot menu:
Searching bootorder for: HALT
drive 0x000f2410: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=29323728
Space available for UMB: c1000-ee800, f0000-f23b0
Returned 253952 bytes of ZoneHigh
e820 map has 8 items:
0: 0000000000000000 - 000000000009fc00 = 1 RAM
1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED
2: 00000000000f0000 - 0000000000100000 = 2 RESERVED
3: 0000000000100000 - 00000000df14e000 = 1 RAM
4: 00000000df14e000 - 00000000e0000000 = 2 RESERVED
5: 00000000f8000000 - 00000000f9000000 = 2 RESERVED
6: 0000000100000000 - 000000011f000000 = 1 RAM
7: 000000011f000000 - 0000000120000000 = 2 RESERVED
enter handle_19:
NULL
Booting from DVD/CD...
Waiting for device to detect medium... Booting from 0000:7c00
ISOLINUX 4.02 debian-20101014 ETCD
「ISOLINUX 4.02 debian-20101014 ETCD」という一文以降は、シリアル接続の速度が変わるので、115200から9600に切り替える。
後は、VyOSを通常通りインストールするだけだ。
VyOSのインストール手順については、こちらを参照してもらいたい。
3.VyOSの初期設定
インストール完了後は、VyOSの初期設定を行うだけだ。
初期設定方法については、こちらを参照してもらいたい。
また、シリアルコンソール接続を今後利用する場合、シリアル接続の速度を115200に変更すると良いだろう。以下のコマンドをVyOS上で実行し再起動したら、以降は115200で接続可能だ。
$ configure
# set system console device ttyS0 speed '115200'
# commit
# save
うーん、これはいいなぁ…
次は無線LANカード買って、外付けアンテナを増設してみよう。