twitter icon   twitter icon   rss icon

Linux.com Japan

Home Linux Jp チュートリアル WiFi ルーターに Linux をインストールする: Linksys WRT1900AC と OpenWrt

WiFi ルーターに Linux をインストールする: Linksys WRT1900AC と OpenWrt

原文は 2015 年 5 月 15 日に掲載されました。

linksyswrt1900ac router

Linksys WRT1900AC は、Linux を使いたくて OpenWrt をインストールするには最適な新型高級ルーターです。OpenWrt は opkg と呼ばれるパッケージ管理システムを含んでいるため、ルーター上で利用可能なさまざまなオープン ソース ソフトウェアを利用できます。ルーターへ SSH アクセスをしたり、接続時に iptalbes を利用したり、その上でさまざまな小規模のサーバーを稼働したりできます。つまり、Linksys WRT1900AC と OpenWrt は、強力な組み合わせとなります。

ハードウェアの観点から、Linksys WRT1900AC は、最高速度 600 MByte / 秒の 2.4 GHz 802.11n と、1.3 GByte / 秒の 5 GHz 802.11ac のデュアル バンドをサポートします。これにより、古い端末でも 802.11n で接続し、新しい端末であれば、802.11ac の恩恵を受けることができます。

ルーターは、デュアルコアの Marvell Armada 370/XP CPU、RAM256MB と 128MB のフラッシュを積んでいます。USB 3.0 と eSATA ポートを利用することで、さらに容量を増やすことができます。OpenWrt を使うと、webcam やプリンターをルーターに接続できます。Linksys WRT1900AC は、G ビット スイッチのポートを 4 つと、G ビットのアップストリーム用 WAN ポートを持っています。

初期設定

Linksys WRT1900AC の標準ファームウェアは、4 つの簡単なステップで初期設定を行えます。ここでは標準のステップを使います。

ステップ 1: アンテナを繋ぎ、電源を入れる

ステップ 2: アップストリーム (インターネット) からの線をルーターの WAN ポートへ接続。

ステップ 3: ルーターの wifi 信号と接続する。他のルーターと異なるネットワーク名、パスワードが用意されています。ステップ 3 は、ルーターの初期設定における脆弱さを除去します。なぜならこのルーターは、電源を入れた瞬間から個別のパスワードを保有しているからです。

ステップ 4: linksyssmartwifi.com にログインし、ルーターを設定する。

インターネット ポートではなく、ローカルの LAN に接続するための 4 つある G ビット ポートの 1 つを使ってみました。しかし、ステップ 4 で linksyssmartwifi.com には接続できませんでした。smartwifi サイトでアカウント作成はできましたが、それ以上の設定は、ルーターを経由する必要がありました。

しかし、リモートのサイトを使用しないでルーターの設定をすることができます。Linksys は 192.168.1.1 のアドレスを持っているので、ラップトップの IP アドレスを 192.168.1.2 にすることにより、設定ページに行くことができました。これで、Connectivity/Local Network ページから、ルーターの IP アドレスを自分の LAN に合わせることができます。不要であれば、DHCP サーバーを止めることもできます。

もう一度、192.168.1.1 に直接接続して初期画面に行くと、リモートのサイトに移動しましたが、これは避けることができます。

eSATA をテストするために、120 GB SanDisk Extreme SSD を接続してみました。標準のファームウェアは ext4 をサポートしていません。/dev/sda1 と認識されましたが、容量 0 Kb、使用容量 0 K と表示されました。FAT 形式の 16 GB フラッシュ ペン ドライブは認識されました。ftp サービスと Samba サービスを使って、ドライブにアクセスできました。

OpenWrt への移行

執筆時点で、OpenWrt  のインストール方法は変更になっています。4 つのイメージ が提供されており、Kernel のバージョンが 3.18 または 4.0、いくつかの修正とアップデートが含まれています。私は、Kaloz の trunk のスナップショットを利用しました。それは、openwrt_wrt1900ac_snapshot.img にあります。

ルーターのイメージ書き換えは簡単です。標準ファームウェアの手動による更新に利用するサイトのページで行えます。書き換え後、ルーターがリブートしてくるのを待つ瞬間は、他のデバイスで書き換えを行なった人ならわかる不安な一瞬です。

リブートしてきた時には wifi 信号はありません。ルーターは、IP アドレス 192.168.1.1 で起動してきます。簡単な方法は、ラップトップを、IP アドレス 192.168.1.2 に設定し、接続することです。OpenWrt の trunk イメージは、ルーター設定用の Web インタフェースを持っていません。192.168.1.1 に行くと、空っぽの画面が表示されます。

SSH などを使って、ルーターにネットワーク越しにログインします。ログインにはパスワードが必要です。OpenWrt はパスワードなしのログインを禁止しているので、接続できないように思えました。しかし telnet サーバーは動作しているので、ラップトップに telnet クライアントをインストールすれば、パスワードなしでログインできます。少しほっとしました。

telnet したら、"passwd" コマンドでパスワードを設定し、SSH を使えるようにします。telnet で繋いでいる間に SSH をテストします。こうすれば、SSH がうまく行かなくても問題解決できます。

LuCI パッケージをインストールして、Web インタフェースを使えるようにします。以下のコマンドを利用します。インターネット アクセスに proxy が必要であれば、http_proxy、https_proxy、および ftp_proxy 環境変数を利用します。もし LAN が 192.168.0.0/24 のサブネット (良くあることですが) にあると、ルーター (192.168.1.1) へのアクセスが失われます。ブリッジされたポート (br) の IP アドレスを ifconfig コマンドで 192.168.0.X に変更すると、すべてのアドレスがそのサブネットに変更されてしまいます。これは恒久的な変更ではないので、リブート後、うまく接続できなければ、192.168.1.0/24 でルーターに再接続できます。LuCI を使えるようになれば、簡単に変更できます。

export http_proxy=http://192.168.1.10
opkg update
opkg install luci

LuCI をインストールすれば、ルーター設定の残りは、Web 上でマウスをクリックするだけです。WiFi を使用可能にするために Network/Wifi ページに行き、2 つの周波数帯、2.4 GHz と 5 GHz 802.11nac の設定を行います。標準では両方とも使用不可になっています。周波数帯のボタンをクリックして、Interface Configuration and the Wireless Security ページにスクロールしたところ、標準が "No Encryption" になっていました。個人的には、"WPA2-PSK" を標準にしてほしいところです。ESSID を設定して、モードを確認 (アクセスポイントを利用しました) します。"Wireless Security" を標準から変更して、パスワードを設定します。

opkg で他の追加パッケージをインストールすることで、LuCI の追加サポートができます。たとえば DLNA サーバーを動かしたかったら、minidlna パッケージがあります。また、luci-app-midlna パッケージは、LuCI web インタフェースでサーバー管理ができます。

opkg install minidlna
opkg install luci-app-minidlna

Linksys WrT1900AC の 128 MB のフラッシュは、複数のパーティションに分割されています。core/overlay パーティションは 24.6 MB、tmp/syscfg は 30 MB で、そのうち 300 KB しか利用されていません。コンパイル済みのソフトウェアをインストールする容量はあるのですが、gcc をインストールする容量がありません。Linksys WRT1900AC のフラッシュの利用方法について、質問を投げかけているところ  です。extroot を利用して、OpenWrt のインストールのための容量を稼ぐことができます。これは、外部記憶に主システムを格納するのです。eSATA SSD になるでしょう。

extroot を使いたくない場合は、ソフト浮動小数点をサポートするスタティック バイナリを生成する他の ARM マシンを利用します。rsync を利用して OpenWrt に移動します。ARM マシンはソフト・ハード両方の浮動小数点機能をサポートしており、そのどちらかでコンパイルされています。所有しているハードウェアがどちらであるかを知るには、"readeld" ツールを利用して、いくつかのバイナリを調べます。"soft-float ABI" という行が出ていることを確認します。

root@linksys1900ac:~# readelf -a /bin/bash|grep ABI
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Flags:                             0x5000202, has entry point, Version5 EABI, soft-float ABI

push button WPS set を動かしたかったのですが、失敗しました。標準ファームでは問題ないので、うまく動かせれば端末の接続が容易になるはずです。

Linksys WrT1900AC には TTL ベースのシリアル接続用ヘッダが出ていて、uboot から直接ファームの更新を行う方法が掲載されていました。これはやっていませんが、文鎮になってしまったデバイスを救う良い方法だと思います。

ルート以外のユーザーを用意しておくことで、リスクを減らせます。"shadow" ユーティリティをインストールして、sudo コマンドを使います。

  root@wrt1900ac:/dev# opkg install sudo
  root@wrt1900ac:/dev# opkg install shadow-useradd shadow-groupadd
  root@wrt1900ac:/dev# sudo -u ben bash

OpenWrt で、Linksys WRT1900AC をブートすると、すぐにファンが回り始めました。ファンは、しばらくして停止しました。"sensor" コマンドを利用して温度を測れます。

root@wrt1900ac:~# sensors 
tmp421-i2c-0-4c
Adapter: mv64xxx_i2c adapter
ddr:          +52.8 C  
wifi:         +55.1 C  
armada_thermal-virtual-0
Adapter: Virtual device
cpu:          +61.7 C  

性能

Android 5 を搭載した LG G3 の上で、Wfi Network Analyzer アプリによる測定では、ルーターから 1 フィートほどの位置で 433 Mbps の性能が出ました。数部屋離れると 200 Mbps に落ちました。標準ファームと OpenWrt で同じ結果でした。

OpenWrt 上で iperf (2.0.5) を動かして、Mid 2012 Macbook Air では 120 Mbps を出しました。DLink DIR-855 を使って、同じ条件 (クライアント、サーバー、距離) で 5GHzでは、82 Mbps でした。この Mac は wifi-n しかサポートしていません (wifi-ac は翌年のモデルからサポートされました)。

Android 5 を搭載した LG G3 の wifi-ac ネットワークの性能は、iperf アプリの測定で 120Mbpl 出ました。"-s" オプションでサーバーを起動し、"-c サーバー IP アドレス" オプションでクライアントを起動して、テストを実行しました。Linksys WrT1900AC/OpenWrt 上のサーバーでは、TCP ウィンドウ サイズに標準の 85 Kb を指定しました。G3 上でウインドウ サイズをいじることで、+ 10% 程度の性能向上が認められました。

eSATA の性能を見るために、120 GB SanDisk Extreme SSD を接続しました。シーケンシャル IO Bonnie++ は、89 Mbps、読み込みは 148 Mbps、再書き込みは 55 Mbps でした。5,200 シーク / 秒の性能が出ました。Cubox では、それぞれ、150 Mbps、50Mbps でしたので、ほぼ同等です。Cubox の書き込みは 120 Mbps で、Linksys WRT1900AC より 35 % 速いです。両方とも、ext4 ファイル システムの同じドライブを利用しました。

bonnie++ -n 0 -f -m Linksys1900ac -d `pwd` 

OpenSSL の性能は、BeagleBond Black と CuBox i4Pro のballpark と同様の結果でした。暗号化の性能は、アルゴリズムにより異なります。DES と AES-256 は他の ARM マシンに比べて遅くなりました。Blowfish と Cast は、他の多くの ARM CPU と同様でした。1,024 ビット RSA シグネチャでは、Linksys WRT1900AC は他の ARM CPU に比べて 25 ~ 30 % の性能でした。

digests linksys router

ciphers linksys router

rsa sign Linksys router

最後に

LuCI インタフェースは使いやすいものです。LuCI が提供する "app" パッケージにより、簡単にソフトウェアを追加できます。Linksys WRT1900AC 用 OpenWrt は開発途上です。LuCI を含んだ安定版が出たら、もっと良いものになるでしょう。OpenWrt の Linksys WRT1900AC に関するフォーラムの投稿の多さは、コミュニティの関心の高さを示すものです。

Linksys WRT1900AC は、OpenWrt を動かすのに充分な性能を持っています。Linus/OSS と最新のハードウェアの組み合わせは、皆さんの利用目的にぴったりです。SSH だけでなく rsync も使えますし、利用したい言語もインストール可能です。パケット フィルタリングのように、ルーター上で動かしたいアプリケーションも動きます。ルーター上で簡単なポリシーにより、タブレットや電話が作業マシンとつながることを防止できます。

最後に、Linksys が WRT1900AC を提供してくれたことに感謝します。

Linux Foundationメンバーシップ

30人のカーネル開発者

人気コンテンツ

  1. Today's Linux 2018/07/09 2018年 7月 08日
  2. Today's Linux 2018/07/10 2018年 7月 09日
  3. Today's Linux 2018/07/11 2018年 7月 10日
  4. Today's Linux 2018/07/12 2018年 7月 11日
  5. Today's Linux 2018/07/18 2018年 7月 17日

Linux Foundationについて

Linux Foundation はLinux の普及,保護,標準化を進めるためにオープンソース コミュニティに資源とサービスを提供しています

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

サイトに関するお問い合わせはこちらまで

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

Linux.com JAPANでは広く皆様の提案、要望、投稿を受け付ける予定です。

乞うご期待!