大破ログ

日々大破、それと側転少々。PC関連その他、気になったことなどをつらつらと。

ELECOM WAB-S600-PS, WAB-S1167-PS, WAB-I1750-PS

WAB-S600-PS, WAB-S1167-PS, WAB-I1750-PS内部

3年半くらい前に某氏がWAB-I1750-PSの作業を始め、当方では興味があったので少し弄って放置していました。
が、最近割引セールでWAB-I1750-PSが話題になったことに伴い、せっかくだからとWAB-S600-PSとWAB-S1167-PSも確保して1750とコードを共有させる形で組み立て直して投げ込み、マージされました。

まとめていきます。

仕様

基本的に3機種ともハードウェアはかなり似通っており、特に600と1167は同一と思われ、ソフトウェア面での差のみと推測されます。
法律の関係上、無線機能の使用は非推奨です

  • WAB-S600-PS

    • SoC: Qualcomm Atheros QCA9557
    • RAM: DDR2 128 MiB (Winbond W9751G6KB251 x2)
    • Flash: SPI-NOR 16 MiB (Macronix MX25L12835FMI-10G)
    • Ethernet: 1000Mbps x2
    • USB: USB 2.0 Type-A x1
    • UART: "SERVICE" または内部ピンヘッダ, 所謂Ciscoケーブルは非互換
  • WAB-S1167-PS

    • SoC: Qualcomm Atheros QCA9557
    • RAM: DDR2 128 MiB (Winbond W9751G6KB251 x2)
    • Flash: SPI-NOR 16 MiB (Macronix MX25L12835FMI-10G)
    • Ethernet: 1000Mbps x2
    • USB: USB 2.0 Type-A x1
    • UART: "SERVICE" または内部ピンヘッダ, 所謂Ciscoケーブルは非互換
  • WAB-I1750-PS

    • SoC: Qualcomm Atheros QCA9558
    • RAM: DDR2 128 MiB (Winbond W9751G6KB251 x2)
    • Flash: SPI-NOR 16 MiB (Macronix MX25L12835FMI-10G)
    • Ethernet: 1000Mbps x2
    • USB: USB 2.0 Type-A x1
    • UART:
      • "SERVICE" または内部ピンヘッダ: 所謂Ciscoケーブルは非互換
      • "SERIAL": OpenWrtでは未サポート

その他詳細については、雑記を参照。

OpenWrt化

  1. WABをブートしWebUIにアクセス

    ACアダプタまたはDHCPの無いPoEに接続してデバイスをブートし、192.168.3.x に設定したPCを "PSE" ポート側に接続して http://192.168.3.1 にアクセスする

  2. factory.binイメージでアップデートを実行

    ファームウェア更新ページを開き、OpenWrtのsquashfs-factory.binイメージを選択してアップデートを実行する

  3. 完了

    Flashに書き込み後再起動され、OpenWrtでブートしてくれば完了

備考

  • イーサネットポート2つはデフォルトでブリッジされ、DHCP192.168.1.0/24 のアドレスが配布される状態となっている。
    DHCPが他から配布される上流ネットワークに接続する場合、OpenWrtのLANインターフェースを静的アドレスからDHCPクライアントに変更するなどの設定を行う。

  • "SERVICE" ポートは内部ピンヘッダと同じ入出力が行える、SoCのプライマリかつデバッグ用シリアルポートである一方で、RJ-45ジャックであるものの電圧と配列が特殊であり、所謂Ciscoケーブルとは互換性は無い。

  • "SERIAL" ポートはSoCの持つセカンダリのシリアルポート。このポートは "SERVICE" ポートのシリアルポートとは別の仕組みであり、WAB 3機種のサポート時点ではLinux KernelやOpenWrtでのサポートが無い為、OpenWrt環境下では利用できない。
    なお、今後サポートされたとしても、U-Bootの出力先が "SERVICE" 側である関係上、U-BootとLinux Kernel (OpenWrt) で一貫させる為に "SERIAL" 側にLinux Kernelのdmesgを出力させるようにはしない。
    (メインのコンソール入出力ポート以外にdmesg出力のみ(入力無し)を他のポートに割り当てることはLinux Kernelの機能によって可能であるものの、出力だけの為に "SERIAL" ポートを占有するのもどうかと思うのでやらない)

作業時の色々

  • 今回のWABシリーズ3機種のファームウェアは、先行してサポートされているI-O DATA WN-AC733GR3やWN-AC1167GRと同じファームエア形式を採用しており、OpenWrt側に生成コードが既に存在していることから、WAB用のWebUIから投入できるfactoryイメージの生成も問題無く行えた。

  • 基板自体は3機種とも同一であり、無線の差異によってSoCや5GHz帯用無線チップ、アンテナ回路の実装がわずかに異なる程度だった。

  • 基本的には以前自分が弄ったコードと某氏が作業したコードをすり合わせ、当時のOpenWrtにおける実装方法から変更されたものは今現在の形に書き換えるなどの変更を行った。

色々

前述の通りWAB-I1750-PSは3年半ぶりとなるので、当時の記憶を思い出しつつの作業となった。
最終的に "SERIAL" ポートは少々気になるものの、マージされたので一安心。"SERIAL" については気が向いたら少し弄ってみるかもしれない。

今回は筐体を開けて内部のUARTピンヘッダを利用したものの、毎回開けるのは面倒なので、 "SERVICE" ポートをRJ-45から2.54mm間隔のピンヘッダに変換する基板を製造予定。