【無線LAN】DD-WRT【強化ファーム】13
すみません。質問です。 以前、WBR2-G54にdd-wrtを書き込んで失敗して、そのままにしておいたのを思い出し、修復できないかと格闘しているところです。 シリアルコンソールから接続することができています。 CFE version 1.0.37-1.00.0.02 for BCM947XX (32bit,SP,LE) Build Date: Tue, 16 Nov 2004 18:56:26 +0900 (root@localhost.localdomain) Copyright (C) 2000,2001,2002,2003 Broadcom Corporation. Initializing Arena. Initializing Devices. 略 Linux version 2.4.36 (root@dd-wrt) (gcc version 3.4.6 (OpenWrt-2.0)) #312 Sun Jul 27 16:42:02 CEST 2008 略 sh: /tmp/.rc_startup: not found connect: Network is unreachable connect: Network is unreachable connect: Network is unreachable gethostbyname: Network is unreachable こんな感じで止まります。 なにか違うファームを書き込んだのではないかと思います。 ここからどうすればリカバリ可能でしょうか。 192.168.11.1にはアクセスできません。 (初期化ボタンを押しながら起動すると、一瞬192.168.11.1という文字列を見ることはできますが、tftp転送を受け付けません。) >>176 シリアル接続環境は、Linuxです。 # cu -l /dev/ttyUSB0 -s 115200 Connected. まず起動直後にctrl+c押し続けてプロンプトが止められるか >>178 レスありがとうございます。 cuコマンドでなく、screenコマンドでコンソールを開くと、ctrl+cで止められました。 CFE> ifconfig Device eth0: hwaddr ipaddr 192.168.1.1, mask 255.255.255.0 gateway not set, nameserver not set *** command status = 0 IPアドレスは、192.168.1.1なのですが、 同一ネットワークのPCからpingを打っても反応しませんでした。 このサイトを参考にして、tftpによるイメージのロードを試みましたが駄目でした。 https://qiita.com/yamori813/items/ea39b9e9e80b44410b44 CFE> flash -noheader : flash1.trx Reading :: Failed.: Timeout occured *** command status = -21 Readingの間に、192.168.1.1に対して、同一ネットワークのPCからtftpでputしましたが、 駄目でした。 全てのポートに対して試してみる もしくはPC側のポート、LANケーブルの破損 >>179 CFE> nvram erase && reboot と入力してから、ctrl+cで止めて CFE> flash -noheader : nflash1.trx と入力して下さい ルーターのIPアドレスは、初期値の 192.168.11.1 になっています。 WIndows10ならTFTPクライアントをインストールしてからPowerShellに tftp -i 192.168.11.1 put webflash.bin と入力します(ファイル名は任意) 当然、パソコンのIPアドレスも 192.168.11.2 等にします >>181 >>182 ご親切に詳細情報をありがとうございます。 CFE> nvram erase && reboot この後、次のようにIPアドレスが表示されました。 ipaddr 192.168.11.1, mask 255.255.255.0 gateway not set, nameserver not set *** command status = 0 そして、次のコマンドで、read状態になり、アップロード待受になりました。 flash -noheader : flash1.trx >>183 CFE> show devices と入力した時に表示される文字列はどうなっていますか? >>183 ちゃんと経緯を読んでないが、待受ならば、パソコン側からputすれば? >>183 続きです。何故か連続書き込みできなくて。 しかし、同一ネットワークのLinux PCからpingを打ったり、tftp putしますが応答がありません。 そこで、次のように自分自身(WBR2-G54)にpingしてみますが、応答がありません。 CFE> ping 192.168.11.1 192.168.11.1 (192.168.11.1) is not responding (seq=0) 192.168.11.1 (192.168.11.1): 1 packets sent, 0 received *** command status = 1 次のサイトを参考にして、arpテーブルも設定しましたが、駄目でした。 https://w.atwiki.jp/ddwrt_openwrt/sp/pages/24.html ループバックアドレスもだめでした。 CFE> ping 127.0.0.1 127.0.0.1 (127.0.0.1) is not responding (seq=0) 127.0.0.1 (127.0.0.1): 1 packets sent, 0 received *** command status = 1 なぜか、ネットワーク機能が駄目なようです。2台でためしましたが、同じ結果でした。 このようにpingで応答がないので、これをまずどうにかしないいけないと思っています。 >>181 >>187 行けました! なんでpingが応答ないんだろうなと一日気にしていました。 ふと、DCの電圧に思い当たりました。 作業のために、モバイルバッテリーからUSB変換アダプターを経由してG54に給電していました。 シリアル経由でシステムは動作しているとモニタできたので、てっきり正常動作していると思いこんでいました。 そこで、純正のDCアダプタ(3.3V)で給電したところ、あっさりpingが通じるようになりました。 DCの電圧が高かったためにネットワークインターフェイスがうまく動作しなかったのではないかと思います。 さっそく、教えた頂いた通り、putしました。 CFE> ifconfig Device eth0: hwaddr , ipaddr 192.168.11.1, mask 255.255.255.0 gateway not set, nameserver not set *** command status = 0 CFE> CFE> flash -noheader : flash1.trx Reading :: Done. 3751936 bytes read Programming...done. 3751936 bytes written *** command status = 0 CFE> go ←goコマンドの役割ってなんでしょうか。 PC側のアドレスを、192.168.1.2にチェンジして、httpで192.168.1.1にアクセスしました。 Firmware: DD-WRT v3.0-r40559 std (08/06/19) Time: 01:07:43 up 7 min, load average: 0.00, 0.01, 0.00 WAN IP: 0.0.0.0 ありがとうございます。 >>28 かつて鉄板と呼ばれた機種で インストールも楽なんですよ 2.4GHzで要らん事するにはうってつけだと感じます >>189 クライアント側の出力が届かないから意味ないよ WANにLANケーブル接続してネットに接続出来ないと出るんだけど 初期化したらそういうもんだっけ 14chでもWPA2/WPA3使えるんだな。 11b接続限定だから遅いけど。 実家のWZR-300HP慌てて最新ベータに更新した 純正ファームの脆弱性問題見るまですっかり忘れてた 昔ag300hにdd-wrtを入れた記憶を思い出し、結局仕組みがわかってない自分、だれか勉強したいので教えてください、 もう、dd-wrtって人気ないんすかね。 sshからnvram showで見れる設定値って cat /proc/mtdで見ると mtd4: 00010000 00010000 "nvram"ってことは /dev/mtdblock/4の領域からメモリに読み込まれた内容をみてるってことなんですかね、 久々にdd-wrtをやろうとWXR-1900DHP買ったら早速文鎮化したわ AOSSからのtftp読み込みは生きてるので、64MB対応のtftpサーバ使っても 結局転送始まらず 殻割りめんどくさいけど諦めてシリアル接続しないとダメ? >>196 ファイアウォールを無効化してから転送始めてる…? TFTPのプロトコルはサーバ側のUDPポート69番だけでなくて その後の実データ転送にランダムなハイポート 1024~65535番で待ち受けるから、一時的にファイアウォール 全無効化したほうがミスなくていいですよ あとTFTP転送するファイル名を正しく変更しているかとか セキュリティ関係は全部切ってやってる。 tftpのdebug見てるとfirmware.ramみたいなのを探しに来るので dd-wrtやopen-wrt、もともと入ってたファームをバックアップしたやつをrenameしても 結局転送始まらず ブロックサイズとかタイムアウト変えてもダメだったわ ちょっと深くググってみたけど、TFTP転送とシリアルでの ファーム書き換えについてはこのページ(DD-WRTの公式フォーラム)が いちばん詳しかった https://forum.dd-wrt.com/phpBB2/viewtopic.php?t=279158 そこに書いてある限りでは、TFTP単体での書き換えができるとの 報告は1つもなかった それの他にヒットしたのは5ch内のスレで、 1900DHP用のTFTP転送で起動できるOpenWRT initramfsイメージを 公開してくれてる人がいた (メインメモリ内で起動して色々いじれる、PCで言うところのUSB起動みたいなの) 【無線LAN】OpenWrt【強化ファーム】21 https://mao.5ch.net/test/read.cgi/network/1648991070/8 (本当に間違いがなければ)TFTP単体でOpenWRTが起動できるはずなので そこを踏み台にしてDD-WRTなりOpenWRTの最新版を書き込んだら良さそう あと、TFTPサーバはバージョンによっては不具合があったりするので、 メジャーなtftp64の最新バージョンを使うといいかも https://pjo2.github.io/tftpd64/ LinuxとかだったらローカルのTFTPクライアントで localhostに向けて接続して転送できるか 確かめてみるとか >>201 にあるinitramfsでいけたわ これで殻割りしなくて済む、サンキュー 良かったですね 純正ファームはもう飛ばしちゃったのかな…? それでも念のためにmtd*全部をddでダンプして バックアップ取っておくといいかも mtd0がブートローダー?で mtd1がnvram? CFEの環境変数?で u-bootで言うところのubootenvっぽいので 特に大事かも >>204 当分はdd-wrtで動かす予定なので使う事は無いかもしれないけど 純正ファームは幸いdebug可能なバージョンだったので最低限としてmtd2/3のみだけど バックアップ取っておきました >>205 initramfs使ってDDできました? 良ければ教えて欲しい デバッグ出来ないバージョンの1900dhpをどうにかDD化させたいけどなかなかできなくて >>206 initramfsをfirmware.ramにrenameして起動時のTFTP読み込みですんなり行けた open-wrtが起動してきたら普通にdd-wrtのファームを読み込ませれば移行出来るかと >>207 initramfsは無事立ち上がって、ブラウザ上からファーム更新でDD当てたんですけどできない感じですね factory-to-dd-wrt.binは変化なし buffalo-wxr-1900dhp-webflash.binはルーターが再起動して純正ファームが立ち上がってきちゃいます 自分はinitramfsからbuffalo-wxr-1900dhp-webflash.binをブラウザで当てたら DD-WRTで上がってきたんだけどな WXR-1900DHPでもDHP2とか型番違いじゃないよね? >>208 その挙動は想像するに、メインのファームウェア領域は 正常に書き換えられたんだけど、その後にリカバリーで バックアップのファームウェア領域 が メイン領域に書き戻されていそう >>200 でリンク張ったDD-WRTのフォーラムを参照すると WXR-1900DHPのmtdパーティション中には、CFE上の名前では 「nflash1.trx」(メインのファームウェアパーティション)と 「nflash1.trx_recover」(予備のバックアップパーティション) の2つのファームウェア領域があり、 その両方のチェックサムを取ってあって、起動時にそれが 一致しなかった場合バックアップが書き戻されるってことだったと思う >>209 さんの場合、先に文鎮化して両方の純正ファームウェアか その他のクリティカルでないパーティションがぶっ飛んでたので 書き換えが上手くいったんじゃないかと想像 initramfsが立ち上がったあと、sshで1900DHPにログインして # cat /proc/mtd と # cat /proc/partitions を実行して、出力の結果を貼ってもらえませんか? その出力を参考にmtdコマンドで手動でパーティションの内容を eraseして、メインとバックアップファーム領域両方に webflash.binをwriteしたら多分DD-WRT化成功できそう (文鎮しても責任は全く取れませんが…) ちなみにデバッグ可能ファームの方が文鎮化は容易みたいね 試しにデバッグ状態でDD-WRTをブラウザから強制的に書き込んだら 見事文鎮化したわ デバッグ不可ファームの方が中途半端にリカバリーされてDD-WRT化は難しそう >>209 無印1900ですね。DDうらやまです >>212 ちょっと厳しそうなのでDD用に違うの買い足そうかなと initramfsで立ち上げた時/proc/mtd見たんですが、1900dhpは11のパーティションがあるはずなのに6つしかなかったのは覚えてます たぶんOpenWrtが参照されてた感じですかね 他機種と挙動が違うのでしょうか 試しにオペレーション時のlog引っ張り出して/proc/mtd見たら 構成はmtd0~mtd11だったわ **WRTをインストール前とインストール後で flashレイアウト構成は変わるので、純正ファームの状態では 6パーティションしかないのかも知れません (**WRT、純正ファームのバージョンにもよるかも) mtdXパーティションは別のパーティションと物理アドレスが 重複することもあるので、必ずしも物理パーティションが cat /proc/mtd の数だけ、表示された順番に並んでるとは 限らないんですね(入れ子状になってる) かなり古い機種のWZR-AG300HのOpenWRTパーティション構成は 16MBのフラッシュチップが2つ乗っていて(spi0.0, spi0.1) それをまたぐようにfirmwareパーティションが配置されてたり root@OpenWrt:~# cat /proc/mtd dev: size erasesize name mtd0: 01000000 00001000 “spi0.0” mtd1: 01000000 00001000 “spi0.1” mtd2: 00040000 00001000 “u-boot” mtd3: 00010000 00001000 “u-boot-env” mtd4: 00010000 00001000 “art” mtd5: 00100000 00001000 “kernel” mtd6: 01e90000 00001000 “rootfs” mtd7: 01d2c000 00001000 “rootfs_data” mtd8: 00010000 00001000 “user_property” mtd9: 01f90000 00001000 “firmware” mtd9のfirmwareパーティションは kernel,rootfsパーティションを合算したものですし rootfs_dataはrootfsの一部の入れ子パーティションだったはずですし 多分1900DHPでもOpenWRTのファームウェア領域が firmware1 = (kernel1+rootfs1) firmware2 = (kernel2+rootfs2) みたいな感じでそれぞれ入れ子になってるのが更に メインとバックアップで2倍になってるので12と多いんだと思います… (名前は実機持ってないので想像の適当ですが) どなたか、WZR-1750dhpを純正ファームに書き戻すためのバックアップパーティションください!! DD-WRT面白そうだと思ったけど NECは機器リストに無いし対応してないのね 先日1900DHPで使い始めたけど、ド安定だしリソース大量だしで便利だわな 何より簡易的とはいえDNS使えるのが非常にいいわ 検証用に個別にDNS立てる必要が無くなったのがありがたいね >>893 Qua Stationをハードオフでみたことない結構ころがってるもんなの? フォトフレームはあるけどこれみたことないで、、 すぐに手に入って遊べて格安となると ルーター買ってDD-WRTをいれるとかだけど、技適違反のご禁制の品になっちゃうからなー その点をのぞけば一番あそべそうなんだけどねー 他だと、電子辞書関係も安いけどこれはチープだったりすんだよねーまぁ遊べそうだけど。CUIのOSとか読み込ませれば活用法あるかね?? プリンターとかモニターのジャンクを改造とかしたいんだけどなー パソコンとかレコーダーとかプレイヤーをつないで使うというような修理の醍醐味はあんだけど 購入したジャンク単体でなんかシステムとして出来上がるっていうようなのがほしいんだよなー そうなると、パソコンのジャンクになるから あんまり掘り出しもんはないかなー (´・ω・`) initramfsからbuffalo-wxr-1900dhp-webflash.bin 当てても純正firmが戻ってくる openwrt-...-.rtx 当てても純正firm が戻ってくる なんとか dd-wrt に出来ないものでしょうか? root@OpenWrt:~# cat /proc/mtd dev: size erasesize name mtd0: 03000000 00020000 "firmware" mtd1: 001daba4 00020000 "linux" mtd2: 02e25440 00020000 "rootfs" mtd3: 01240000 00020000 "rootfs_data" mtd4: 05000000 00020000 "failsafe" mtd5: 00070000 00010000 "boot" mtd6: 00010000 00010000 "nvram" root@OpenWrt:~# cat /proc/partitions major minor #blocks name 31 0 49152 mtdblock0 31 1 1898 mtdblock1 31 2 47253 mtdblock2 31 3 18688 mtdblock3 31 4 81920 mtdblock4 31 5 448 mtdblock5 31 6 64 mtdblock6 無線lan通信が強力にはびこる状態でストロボ炊いてるばかいるのか 雷と同じだとまだわからんか read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる