APU1.CとVyOS(Vyatta)で自作ルーター

以前から、自宅用のルーターをVyOS(Vyatta)で構築したいと考えていたのだが、通常のx86のマザーボード基板(Core iシリーズが乗るようなやつ)を利用すると電気代がかかるし、ちょっとなぁ…と考えていた所、LANコネクタを3ポート搭載したx86対応のPCEngines社製の基板、APU1.Cというものを知った。

ALIXと呼ばれていたシリーズの後継機らしい。下の画像を見てもらえればわかるが、大きさもかなり小さい。

TDPもせいぜい6W程度と省電力で、USBも搭載しているので無線LANアダプタの増設も可能。miniPCIの無線LANカードを増設し、外付けの無線LANアンテナも追加できる。x86のCPUを搭載したルーターを作るには持ってこいだ。
今回の構築で使用したパーツや資材は、以下になる。

上記には、玄箱などをいじっていた人にはかなり違和感のある代物があると思う。
そう、この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カード買って、外付けアンテナを増設してみよう。