Category Archives: OpenWrt

buffalo wmr-300(トラベルルータ)のフラッシュROMを16MBに換装

fon2405eでSPIフラッシュROMを取り替えが成功したので、他のルーターもやってみました。取り寄せたSPIフラッシュメモリの在庫がかなりあるのでできれば16MBにすれば使い勝手がかなり向上します。8MBでも十分OpenWrtが使えるのですが、本格的に使おうとすると最低16MBは必要です。wmr-300はかなり小さいくトラベルルータとして持ち運びでき重宝するので、SPIフラッシュを取り替えることにしました。 今回はfon2405eの時のようにu-bootからファームウェアを焼かずに、フラッシュROM全体を移し替えます。下図のログは換装後の16MBフラッシュROMですが、”u-boot”、”u-boot-env”、 “factory” 、”firmware”をddコマンドで吸い出して、catコマンド繋ぎ合わせれば、アドレスの連続したファイルが出来上がり全体のフラッシュROMのコピーになります。”firmware”パーティションのアドレスが物理アドレスより大きくなっていますが、物理的に切られるので問題ありません。そのコピーを直接、フラッシュROMに書き込みます。書き込み後、ブートしてデバイスツリーでパーティションを拡大してビルドした新しいファームウェアにアップグレードします。 mt7620だと16MB以上のフラッシュROMを積めるのですが、問題はu-bootが対応していないとブートできないという問題があります。u-bootのソースはあるにはあるのですが、いざコンパイルして使うとなるとリスクが大きすぎます。今回は余っているフラッシュROMを使うことにしたので、16MBまでならオリジナルのu-bootで十分対応可能です。 OpenWrtはデバイスツリーをSPIフラッシュROMを16MB用に変えるだけで他には変更は加えていません。 リソース https://mega.nz/folder/ADoQFboR#GU0oE06AX-PHsA3crkV6OA UPDATE バグはできるだけ潰したのですがどうしても一つだけ潰せないものがありました。デフォルトのネットワークの設定がどうしてもswitchの仕様になります。解決方法はfailesafeでsshログインしてmount_rootでrootfsにマウントし/overlay/upper/etc/config/networkを書き換えます。

Posted in OpenWrt | Comments Off on buffalo wmr-300(トラベルルータ)のフラッシュROMを16MBに換装

fon2405e hack: SPI フラッシュを換装してOpenWrtをインストールする

かなり前にfon2405eへカスタムファームウェアを入れ替えたことがあるのですが、今回、2MBしかないSPIフラッシュを8MB(MX25L6405D)に置き換えてOpenWrtを入れてみます。このことに思い立ったのは前回、IPカメラにOpenWrtをインストールして、思っていたよりも使い道があったことが理由です。IPカメラのSoCはRT5350FでRT3050系の2世代目にあたり、fon2405e/fon2305eはRT3050Fで1世代目に当たります。それなので機能的にはクロックや機能に多少違いがあるものの基本的に同じなので、fon2405eもOpenWrtを入れれば使い道が出てくるということです。OpenWrtでは4M/32MルータのサポートはV19で終了なので、改造するなら今が最後のチャンスと見てよいでしょう。 OpenWrtのインストール方法 fon2405eにシリアル用のヘッダーピンを立てます。LANポートを上にしてGnd Tx Rx Vccの順です。そしてPCからシリアルアクセス(57600 / 8N1)できるようにします。LANケーブルをPCとfon2405e(PCポート)につなぎます。 fon2405e用のinitramfsのファームウェアをダウンロードしてfonita,imgにリネームしてtftp(tftpd-hpa)サーバのルートディレクトリに置きます。サーバのアドレスを10.10.10.3/24にセットアップします。 WPSボタンを押しながら電源を入れ数秒後、「2」を押してu-boot環境に入ります。タイミングが難しいのでアクセスするまで何度もトライするかもしれません。そのメニューからtftpサーバ(ftpd-hpa)に置いてあるinitramfsイメージをロードしてmtdコマンドでu-bootをアップグレードします。もしくはオリジナルのu-bootでもできるかもしれませんが私は試していません。u-bootは換装後でもアップグレードできます。 次にSPIフラッシュを2GBからu-bootを焼いた4GBもしくは8GBに換装します。4GBのSPIフラッシュは8ピン、8GBは16ピンになります(注:MX25L6406Eは8ピンタイプです)。8ピンの場合はクリップを挟んで焼けますが、16ピンの場合は基盤にハンダ付けしてROMライターにセットします。ROMライターで基盤から取り外したSPIフラッシュのイメージを保存します。エラーが起きやすいので数回行い、md5sum等で正確にコピーできたかチェックします。 SPIフラッシュの焼き方 ファームウェアの焼き方は何通りかあり、u-bootコマンドで直接ROMを焼く方法、OpenWrtのinitramfsをロードしてからsysupgradeでROM版を焼く方法があります。 ファームウェアを自分でビルドする Build OpenWrt gitでOpenWrtのソースをダウンロードしパッチを当ててコンパイルします。 コンパイルに失敗したときはログを出力させて原因を調べます。 Build u-boot ソースに設定変更したパッチを当ててビルドするか自分で設定してビルドします。基本、u-bootの起動に失敗したらSPIフラッシュをROMライターで書き込む以外方法はありません。試してみたところOLinuXinoのu-boot(v4.0)のソースが使えます。u-bootのビルドはUbuntu 12.04.5 32bitを使いました。ソースが古いためディストビューションのバージョンによってはビルドに失敗することもあるようです。 注意: u-bootのパーティションサイズはOpenWrtと同じ標準サイズでサブセット版のオリジナルに比べて大きくなっており、SDKのイメージ、オリジナルのFONのイメージを書き込むと使用不能になります。 kermit u-bootをビルド・インストールできたものの、FirmwareのロードでLZMA解凍に失敗した場合、kermitを使ってシリアル経由で圧縮していないFirmwareを転送する方法を使います。Kermitはビルドがすんなりいってくれそうもなく、当時の最新バージョンではソースを少し変更しました。 kermit-9.0.302.diff 簡単な操作方法 Ctrl+\ :ターミナルから抜ける s <filename> :ファイルを転送する 通信設定 .kermrc WLANのeepromのインストール SPIフラッシュを換装してu-bootとfirmwareをインストールできても、まだWLANが使えない問題があります。原因はWLANのeepromがないためです。そこでRalink SDKで作ったファームウェアを調べてそれを使ってみることにしました。元のFONでもいいのですがアクセスが難しいのでRalink SDKのイメージから/etcにあるeeprom(RT3050_AP_1T1R_V1_0.bin)を取り出しました。OpenWrtのeepromはmtd2に保存してあるようで、同じパーティション構成のIPカメラのeepromでhexdumpで調べて比較してみたところ、先頭がボード番号になっていたので、同じことをRT3050_AP_1T1R_V1_0.binでやってみたました。同じくボード番号(3050)だったので、mtdに書き込めば使えるだろう予想して試したところできることが確認できました。 … Continue reading

Posted in DIY, Linux, OpenWrt | Comments Off on fon2405e hack: SPI フラッシュを換装してOpenWrtをインストールする

中国製IPカメラ(SRICAM AP003)にOpenWrtを入れる

かなり以前にアマゾンで買ったIPカメラがあるのですが、中国製ということでどうもファームウェアが信用できない。特に使うこともないのですが、ファームウェアをOpenWrtにしてみました。中を開けてみるとRT5350Fというチップが乗ったモジュールが入ってました。これはRalinkのWifiがrt305xベースでポピュラーなSoCと同等です。それなのでOpenWrtのファームウェアのどれかに当てはまるはずです。 UARTポート まずはシリアルアクセスですが、どうもこのモジュールの基盤にはそれらしきものはありません。そこでこのモジュールに近い情報を集めてみました。 ほぼ基盤のレイアウトが同じでインターフェースのpin数が同じなので、この情報をもとにアクセスしてみました。何通りか試してみたら、UART_TXD2、UART_RXD2、GNDに57600 8N1、3.3Vでアクセスできました。 OpenWrtをSDRAMにロード Ralink製品はたいてい一度SDRAMにOpenWrtをロードしてから、susupgradeコマンド使ってROMに書き込みます。シリアルアクセスができるようになったので、ロードしてみました。 OpenWrtのファームウェアは色々試してみた結果、openwrt-18.06.8-ramips-rt305x-mzk-dp150n-initramfs-kernelがいいようです。このファームウェアをfile.binとリネームして、tftpのルートディレクトリに置きます。起動できたら、openwrt-18.06.8-ramips-rt305x-mzk-dp150n-squashfs-sysupgrade.binをscpで/tmpに転送してsysupgradeコマンドを実行してROMに書き込みます。 あとはOpenWrtの基本設定をすれば完成です。IPカメラなので残りにROMにドライバーを入れれば使えるようになると思われますが、勉強不足なので暇見てアップデートすることにしています。ffmpegで送信したいのですが、容量的にも性能的にも厳しい気がしてますが、どうでしょうか? IP Cameraを認識 OpenWrtが起動できるようになりIP Cameraに挑戦してみました。前回、使ったファームウェアは実は4MB用のモノだったので、openwrt-18.06.8-ramips-rt305x-wt1520-8M-squashfs-sysupgrade.binにしました。このファームウェアはSwitchがこのIP Cameraと同じなので一つのlanポートでWANとLANを分けることができます。 さて、本題でGoogleで検索してもこの型番にあった情報は見当たらなかったので、rt5350のデータシートを見みてヒントを探しました。OpenWrtではUSBのIP Cameraドライバーは結構豊富にあるで、このIP CameraもUSB経由で動いているのだろうと考えました。GPIOでも出力が可能なので、もしそうであればドライバーがないので詰みです。ドライバーが認識できれば/dev/video0というデバイスファイルができます。まず基本のパッケージをインストールします。 この時点ではデバイスファイルは出来ていません。データーシートではこのモジュールはUSB2なのでUSBを使えるようにパッケージを入れました。 USBデバイスを調べてみます。 Alcor Micro Corp.がIP Cameraのようです。デバイスファイルも出来ていました。そこでmjpg-streamerを立ち上げてみます。 Firewallでポート8080を開けてアクセスしてみます。IP/パスワードはデフォルトでoprnwrt/oprnwrtです。 VLCでストリーム再生する場合 スナップショットを撮る場合 録画する場合ですが色々調整したのですが、どうしても早送りになります。 Motion Detection motionパッケージをインストールすると動きを検知できます。motionをつかうにはOpenWrtのバージョンを19.07にあげないといけません。残念ながらこのIPカメラではメモリが不足して動きませんでした。 メッシュネットワーク化 最新のOpenWrtの11s+WPA3のメッシュネットワークに挑戦してみましたが、IFは立ち上がるのですがどうもうまくいきません。WPA2 Enterprise(TLS1.2)のSTAモードもダメなようです。それかWPA2 PersonalでSTAモードで接続するかになります。私のところではWPA2 Enterpriseと11s+WPA3なのでそれは選択外です。そこで以前やっていた11s+tincのメッシュネットワークにしました。11sはEncryption: Noneの設定なら古いSoCでもメッシュ化出来ます。 以上、IP CAMのOpenWrt化でした。 参考 https://openwrt.org/docs/guide-user/hardware/video/webcam https://downloads.openwrt.org/releases/18.06.8/targets/ramips/rt305x/packages/ … Continue reading

Posted in Linux, OpenWrt | Comments Off on 中国製IPカメラ(SRICAM AP003)にOpenWrtを入れる

ELECOM WRC – 1167GHBK2 – SにOpenWrtをセットアップする

中古のWRC – 1167GHBK2 – Sが手に入ったのでOpenWrtをインストールしてみました。手順は簡単でOpneWrtのfactoryイメージでアップデートするだけです。アップデートしてみたところいくつか問題がありました。OpenWrt公式のファームウェアなので油断していたこともあります。 現時点の19.07.2ではWi-Fiが使えません。MediaTek MT7615Dモジュールは現時点では対応してませんが、LEDE版をダウンロードしてみたらファイルサイズが公式版より大きかったのでこれはWLANが使えると直感したのでそれをアップデートしました。LEDEはかなりバージョンが離れると古い設定ファイルを残すとルーターが死にます。それなのでクリーンアップデートします。アップデートに失敗してUSBシリアルでアクセスしようとしてもそのモジュールが発熱して壊れるというアクシデントもあって、これは文鎮化かなと半ば諦めかけてたのですが、初期化スイッチで試してみたところ無事復旧できました。 LEDE版はWLANが使えるのですが、どうもMesh+WPA3の互換性からか繋がるものの非常に不安定な状態です。それとスイッチが使えない仕様らしいのでVLANはできるとどうかは怪しいところです。LEDE版のWLANの仕様を見てみるとかなり機能が豊富になっています。 使ってみたいのはWPA3-EAPです。LEDE版でWLANが使えるということは次期メジャーアップデートで公式に採用してされることなので、それまで期待して待つつもりです。 追記:2020.05.02 OpenWrt SNAPSHOT r13136-ad27c133ebでWi-Fiがつかえるようになりました。

Posted in OpenWrt | Comments Off on ELECOM WRC – 1167GHBK2 – SにOpenWrtをセットアップする

I-O DATA WN-AC1167DGRのOpenWrt化

中古のI-O DATA WN-AC1167DGRが手に入ったのでOpenWrt化しました。目的はクアルコムのWN-AC1167DGRとMediatekのBuffalo WSR-1166DHPと性能比較するためです。インストールは至って簡単で標準のダッシュボードからファームウェアをインストールするだけです。openwrt-19.07.2-ath79-generic-iodata_wn-ac1167dgr-squashfs-factory.binをダウンロードしてアップグレードします。性能は11acでみてみましたがあまり変わりありません。CPUがシングルコアですが若干体感的に速い程度です。ROMも十分パッケージをインストールできる余裕もあります。WSR-1166DHPはWi-Fiが途切れることなく安定いていて、今後の比較は安定性になるかと思われます。

Posted in OpenWrt | Comments Off on I-O DATA WN-AC1167DGRのOpenWrt化

Buffalo WCR-1166DSのOpenWrt化

中古のWCR-1166DSが手に入ったのでOpenWrt化してみました。この機種はtftpを使いインストールします。まずはホストPCにtftpd-hpaをインストールして起動します。この場合inetdよりもデーモンのほうが良いでしょう。firewallもオフにしてオープンにします。 1.tfpdをセットアップしてファームウエアをセットします。ファームウェアはopenwrt-ramips-mt76x8-wcr-1166ds-initramfs-kernel.binをリネームしてlinux.trx-recoveryとします。ホストのIPアドレスは192.168.11.2/24にします。 https://mega.nz/#F!dXplSB7B!pisrpYVKjyGcDqYmXrXBDA 2.AOSS/WPSボタンを10秒ほど押してinitramfsモードにします。すると自動的にtftpが起動してlinux.trx-recoveryをホストPCからダウンロードして起動します。ホストPCのアドレスを192.168.1.2/24にしてpingコマンドで192.168.1.1が通れば起動しています。 3.最新のファームウェア(現在:openwrt-19.07.2-ramips-mt76x8-wcr-1166ds-squashfs-sysupgrade.bin)をscpでルーターの/tmpにコピーします。 4.sshでルータアクセスしてアップグレードします:sysupgrade -v sysupgrade.bin 以上で完成です。公式には16MBのROMがあるはずですがなぜか空きスペースが3MBしかありません。2つあるLANポートはスィッチングHUBになっておりメインルータとしてLANとWANに分けてインターネットにつなげることもできるし中継ルータとしてのHUBにもできます。

Posted in OpenWrt | Comments Off on Buffalo WCR-1166DSのOpenWrt化

OpenWrt 19.07.0: Mesh Network + WPA3

OpenWrtのメジャーアップデートがありました。今回の目玉となるのはWPA3です。まだクライアントでは対応していないのですが、WPA3 SAEでピンときました。以前メッシュネットワークでWPA2では暗号化に失敗してtincを使ってメッシュネットワークを構築しました。暗号化方式のSAEは詳しくはわかりませんがメッシュとは相性がいいので、もしかしたらと考えて試してみました。結果はすんなりと接続できました。150Mbit/sが限界ですが、以前よりシンプルにネットワークが構成できるようになりました。暗号化していないデバイスからアクセスしても繋がらなかったのでWPA3は機能しているようです。 不安なので調べてみました。RSNの項目をみるとCCMP、SAEとあり、WPA3は機能しています。 TSF: 8139981344 usec (0d, 02:15:39) freq: 2437 beacon interval: 100 TUs capability: (0x0010) signal: -32.00 dBm last seen: 1100 ms ago SSID: RSN: * Version: 1 * Group cipher: CCMP * Pairwise ciphers: CCMP * Authentication suites: … Continue reading

Posted in OpenWrt | Comments Off on OpenWrt 19.07.0: Mesh Network + WPA3

Proxy ARPの設定

今使っているNAS(ReadyNAS 102)はカスタムカーネルを使っているためFirewallが使えません。カスタムFirmwareを検索してみたところ、だいぶ前に開発が止まっていました。カスタムカーネルを入れ替えればいいのですが、そもそもリスクが大きいことと正規ファームウエアによるチェックでダッシュボードにアクセスできないという問題があるらしいのです。そこでブリッジにFirewallいれて同等の機能をもたせようと思案しても2つ以上ポートのある機材は手元にありません。そこでProxy ARPなら手持ちに機材で対応できるので設定することにしました。ルータはBuffalo WZR-HP-AG300Hです。このルータはLAN用のアダプタとWAN用のアダプタの2つのイーサネットデバイスを持っています。ルータの中には1つのイーサアタプターをVLANでWANとLANを分けている機種もあります。ふだん中間ルータとして使う分にはWAN用のアダプタをブリッジしてLAN用ポート増やす使い方してますが、今回、このWANポートのProxy ARPのブリッジ化をしてみます。 [Layout] OpenWrt Router: NAS: +—————-+—————-+ PC: 192.168.1.100/24 ==== | 192.168.1.1/24 | 192.168.1.2/24 | ==== 192.168.1.11/24 | ZONE:lan2 | ZONE:lan1 | | IF :eth1 | IF :br-lan | +—————-+—————-+ 192.168.1.100 dev eth1 proto static scope link … Continue reading

Posted in Linux, OpenWrt | Comments Off on Proxy ARPの設定

OpenWrtの証明書を作成する

必須ではないもののOpenWrtのダッシュボードのSSL化に挑戦してみました。お手軽ツールのXCAでルート証明及びサーバ証明書を作ってインストールしてみましたがだめなようです。PCで作った鍵と証明書をダッシュボードのuHTTPdから’Remove configuration for certificate and key’ボタンを押してすでにある証明書&鍵を消してインストールしますscp等使ってインストールします。鍵をDERに変換してないとWWWサーバが死にます。 さらにブラウザから確認してみると証明書は有効だがセキュアじゃないそうです。 インストール opkg update && opkg install openssl-util luci-app-uhttpd luci-ssl-openssl 追記: FreeRadiusで作った証明書をベースに作成してみました。ChromeではだめでしたがFirefoxではうまくいきました。CAがFreeRadiusのままですがこれもテンプレートを使って書き換えれば済みます。でも面倒なのでそのまま使います。CAはブラウザにもインストールしておきました。 openssl rsa -in gateway.luci.openwrt.pem -outform DER -out gateway.luci.openwrt.key cat gateway.luci.openwrt.crt ca.crt > gateway.luci.openwrt.chain.crt openssl verify -CAfile ca.crt gateway.luci.openwrt.chain.crt 成功したのでこれをXCAのテンプレートとして再度XCAで作成しました。 Certification Authorityの設定: countryName: … Continue reading

Posted in OpenWrt | Comments Off on OpenWrtの証明書を作成する

FreeRadiusとOpenWrtを使ったWPA Enterprise (EAP-TLS)の設定 (2)

2. WPA Enterprise用のAPのセットアップ(OpenWRT) /etc/config/wirelessを編集します。例として次のようになります。パスコードは、FreeRADUSの/etc/freeradius/clients.confで指定したパスコードになります。 例) config wifi-iface option device ‘radio1’ option network ‘lan’ option mode ‘ap’ option ssid ‘{MyAP}’ option encryption ‘wpa2+ccmp’ option auth_server ‘{radius IP}’ option auth_secret ‘{secret}’ 3. クライアントのセットアップ Linux Desktop Network Managerの設定でEdit Connectionを選択します。 Security: WPA & WPA2 … Continue reading

Posted in Android, Chromebook, Linux, macOS, OpenWrt, Windows | Comments Off on FreeRadiusとOpenWrtを使ったWPA Enterprise (EAP-TLS)の設定 (2)