-
通信技術
-
【無線LAN】 OpenWrt 【強化ファーム】 26
-
UPLIFTで広告なしで体験しましょう!快適な閲覧ライフをお約束します!
あなたのワイヤレスルーターをもっと活用できるように解析や使い方を研究しませんか? 様々な追加パッケージをインストールすれば色々出来ます。アンオフィシャルファームウェアであなたのルーターの可能性が拡がります。
※ 前スレが技適荒らしに侵されてしまったため技適の話題は禁止です。 - コメントを投稿する
-
技術基準適合証明 (電波法第38条の2)
技術基準適合認定 (電気通信事業法第53条)
電波法 https://elaws.e-gov....awid=325AC0000000131
電波法施行規則 抄 https://elaws.e-gov....awid=325M50080000014
電気通信事業法 https://elaws.e-gov....awid=359AC0000000086
電気通信事業法施行令 https://elaws.e-gov....awid=360CO0000000075
電気通信事業法施行規則 https://elaws.e-gov....awid=360M50001000025
電波法施行令 https://elaws.e-gov....awid=413CO0000000245 -
総務省電波利用ホームページ https://www.tele.soumu.go.jp/
端末機器に関する基準認証制度について https://www.soumu.go...joho_tsusin/tanmatu/
電話機、FAX、モデム等の端末機器を電気通信事業者のネットワーク(電気通信回線設備)に接続し使用する場合、原則として利用者は、電気通信事業者の接続の検査を受け、当該端末機器が電気通信事業法に基づく技術基準に適合していることを確認する必要があります。
NTT東日本回線に接続するにあたって https://www.ntt-east.../tekigou/gaiyou.html
NTT西日本 約款・技術情報 https://www.ntt-west...jp/tariff/index.html
端末設備等の接続の技術的条件 https://www.ntt-west...o.jp/tariff/gijutsu/
電気通信機器の基準認証制度における技術基準への不適合等の事例について https://www.soumu.go...nmatu/futekigou.html
電気通信機器基準認証制度マニュアル https://www.soumu.go...sin/pdf/kijyun_m.pdf -
▼関連情報
「DD-WRT OpenWrt 適材適所で両方使いたい人向け」
http://www57.atwiki.jp/ddwrt_openwrt/
「OpenWrtインストール実績」
https://www57.atwiki...penwrt/pages/57.html
DD-WRT公式
https://dd-wrt.com/
FreshTomato公式
https://freshtomato.org/ -
技適はNG推奨
-
NGワードで解決するのに分断スレ建てる方が荒らしなんだけど
-
技適~ギテギテギテ~キキ技適技適キテキテ技適♪
技適~ギテギテギテ~キキ技適技適キテキテ技適技適キ♪ -
23.05.4が出てたんでアップグレードした
-
25が終わるまでココは休眠だね
-
きゅうミン
-
9見ん
-
WTR-M2133HPにOPENWRT入れた人いますか?
-
ミスしましたメインの方にもう一度質問します。
-
メインよりまいんちゃん
-
>>1
前スレ845あたりからのまとめ
802.11ax世代(WiFi6)のWSR-3200AX4SとWRC-X3200GST3は共にNANDフラッシュ128MBあるのにOpenWrtで使用可能域が8MBしかないというハズレ機種
このため両機種共に未使用の広い空き地を活用する方法が模索された
その成果として前スレ909で公表されたのが空き地活用スクリプト
詳細は前スレを読め
https://mao.5ch.net/...work/1721217342/845- -
日尼のFlint2が品切れで買えないんで米尼行ったら購入人数多くて評価が高いDynalink DL-WRX36とかいう謎のルーターを発見した。調べたらIPQ8072A搭載で80ドルと神コスパでOpenWRTにも対応とある。これ日本にも来てほしいな。
-
ほー
スペック良さそうだな
けど日本へは発送しないのか… -
それ政治的な理由なのか?
それとも米国内で品薄というだけ? -
政治かんけーねぇだろ
電波法の問題 -
WRC-1167GS2Hというのが550円だったんで確保した
本体にはWRC-1167GS2と書いてあるから多分箱が違うだけ
早速インスコしてみる -
前スレ
>>998さん
電源投入時のデフォルト動作をTFTPブートに書き換えてるので、fw_setenv・・のところを間違いなく入力してれば、間違って電源切ったりしても、
再度電源投入で同じようにTFTPブートになるので問題はないですね。 -
それは一安心
でももうこの時点では後に引けないってことだねw -
>>24
ビルドしたファイルの代わりにオリジナルのファイルを使って全く同じ手順で元に戻すこともできますよ。
まあ、戻すこともないだろうから特に書きませんでしたw
"tm_pattern"、"tm_key"、"user_data"のデータをバックアップしておけばメーカ純正に戻すこともできますね。 -
とりあえずカーネル作ってみるわ
すんなりできたら勢いで実機に書き込んじゃうかも -
ごめん、ビルドのところでELECOM WRC-X3200GST3の選択が抜けてたので編集しなおして下記追加しました。
make menuconfig
Target Profile (Multiple devices) ---> ELECOM WRC-X3200GST3 [Enter]
[→] < Exit > [Enter] Do you wish to save your new configuration? < Yes > [Enter]
オフィシャルのconfigをそのまま使ってるのでmt7622の機種が全部ビルドされると思ってたが、選択してやらないとビルドされないようだ。 -
すまん
根本が分かってないんだが、こうやってmakeするとx86じゃなくarmのバイナリができる仕掛けはどこにあんの? -
>>29
・・・https://downloads.op...622/config.buildinfo -O .config
この部分です。
もともとmt7622用に構成された設定ファイルがOpenWrtのダウンロードページにあるので、それをダウンロードして保存してます。
https://openwrt.org/...hain/use-buildsystem
Using official build config のところを参照 -
ありがとう
今までクロスコンパイルやったことがなくて、どうもピンと来ない
まずは自分でやってみた方が良さそうだ -
WSR-3200AX4Sは空き地が離れてて簡単には一体化できなそう
-
オリジナルのmt7622-elecom-wrc-x3200gst3.dtsの下記部分についてだけど、これはubifsになってる部分だけ抜かしてあるよね。
mediatek,bmt-remap-range = <0x0 0x8c0000>,
<0x1bc0000 0x30c0000>;
最大限確保ビルドではNANDの後半の方を全部ubifsにしたから、
<0x1bc0000 0x30c0000>;
この部分は消したほうがいいんだろうか・・ そのままでも支障はないだろうけど。
WSR-3200AX4Sの方ではubifsになっているはずのWTBの部分もrangeに入ってるみたいだし、正直よくわからん。
たいして気にしなくてもよいとは思うけど、どなたか意見求む! -
前スレ994やってみたが最後のmakeでエラー
Ubuntu 24.04LTSで全く同じコマンド投入したのに何が違うんだろ
-- Configuring incomplete, errors occurred!
make[3]: *** [Makefile:29: /home/user/openwrt/build_dir/host/ccache-4.10.2/.configured] Error 1
make[3]: Leaving directory '/home/user/openwrt/tools/ccache'
time: tools/ccache/compile#3.44#1.63#108.49
ERROR: tools/ccache failed to build.
make[2]: *** [tools/Makefile:231: tools/ccache/compile] Error 1
make[2]: Leaving directory '/home/user/openwrt'
make[1]: *** [tools/Makefile:227: /home/user/openwrt/staging_dir/host/stamp/.tools_compile_nyyyyyyynnyyyynynyyyyyyynyyynynyyyyynyyyyyyynyyyyyyyyyyynynnyyyyynyyy] Error 2
make[1]: Leaving directory '/home/user/openwrt'
make: *** [/home/user/openwrt/include/toplevel.mk:233: world] エラー 2 -
前スレ994です。
https://github.com/o...rt/openwrt/pull/4729
ここを一通り読むとreservedとかuser_dataを使わないのは、やはり元のパーティション構成を変えたくないという大破さんの好みなんですね。
あと、NANDの不良ブロック関連でbmt-remap-rangeはやはりubiの領域は除外した方がよいって書いてあるから、 <0x1bc0000 0x30c0000>の部分は消したほうがよさそうだな。
ちょっと消してビルドしなおして問題なさそうならページ更新します。別にそのままでも支障はなさそうけど一応ね。 -
>>34
エラーの本体は貼り付けてある部分よりも前の部分にある気がするな。貼り付けてある部分に何も情報がない。
あと -jxxオプションで並列処理してるとエラーが分かりずらくなるから、
いったん make -j1 V=s
(1つだけ実行 & 詳細表示)でやってみるといいかと。 -
昨日 >>34 に貼ったエラーは -j1 V=s でやり直した結果
エラー直前は正常な進行だったんで手掛かりがあるとして膨大な出力のどこか前の方
これを探すのも手だけど大変そう
まずはdebianとかalmaとか別環境で同じことをやってみる -
前スレ994さん
手順の公開、どうもありがとうございました。
当方の WRC-X3200GST3 のフリースペースは残り3−4MBくらいだったのが87MBになりました。
mtd のバックアップを取った上でシリアルコンソールの準備もしていたので安心して作業できました。
ビルド自体は普段 Debian のカーネルやモジュールをコンパイルしている
Debian 12 (bookworm) Ryzen 5 5600G 6C12T マシンで行いました。
1回目のビルドはエラーで失敗しました。
必要なパッケージがいくつか不足していたようでエラーから不足パッケージの見当がついたので不足していたパッケージを追加して2回目のビルドで無事にターゲットのファイルがビルドできました。
依存関係の warning は20個近く出ていました。ほとんどがビデオドライバがらみのものでした。
今回のビルドでは無視できるものでした。
$ time make -j13 defconfig download clean world
real 26m50.071s
user 238m26.166s
sys 19m12.021s
通常、カーネルのコンパイルが20分程度で終わるので意外とヘビーな作業だと思いました。
menuconfig から Luci の日本語リソースやエディタ、念の為に kmod-mtd-rw
などいくつかのパッケージを追加したのでその分のワークロードも増えていたと思います。
今回はビルドする環境が流用できたのでそんなに手間はかかりませんでしたが、
ビルドする環境から構築するのは大変だと思います。
ルーターの OpenWrt 化の作業は手順通りに実施すれば問題なくできると思います。
やはりビルド作業の方が大変だと思います。
環境が変われば出るエラーも変わるのでそれを個々に潰していく作業になると思います。
以上、感謝の意を込めてご報告させていただきました。 -
不足してて追加したパッケージは何?
これ重要 -
>>40
python3-setuptools swig -
最近のNECはもう完全に詰みなんだろうか
パスかかってて何もできん -
python3-setuptoolsとswigはインストール済だった
>>34 は別の原因だわ -
>>36
やはりそうだったか
大破氏自身が
This also has a lot of personal taste, I don't want to change the partition structure from stock unless it is mandatory. So, I want to keep those partitions.
と書いてるな
大破氏が手掛けた機種はフラッシュ使用可能領域が少ないってことになる
今後の入手は大破氏の機種を避けることにするよ -
>>39
報告ありがとう。
今後の注意点としては、バージョンアップの際は全く同じようにdts置き換えでビルドしたsquashfs-sysupgrade.binでアップグレードすることですね。
間違って公式のsquashfs-sysupgrade.binでアップグレードしちゃうと、たぶんパーティション構成の違いで書き込み失敗で起動しなくなりシリアルコンソールで修復が必要になります。 -
今度はIO-DATA WN-DX2033GRで最大限容量確保にチャレンジしてみた。
この機種なもともと30MBほど空きがあるのでそれほど困ることはないけど、要らない領域はつぶしてUBIFSで97MBほど確保できた。
https://imgur.com/a/LHAQmtb
参考までにdtsファイル(mt7621_iodata_wn-dx2033gr.dts)をアップしときます。
https://pastebin.com/raw/4KkEqHY9
元は下記のような構成になっているが、"Config" "firmware_2" "Config_2" "idmkey" "Backup"の領域は純正ファームでしか使ってないので全部ubiに統合した。
"persist"はブートに関する重要な情報が入ってるので消すことができないが、その後ろの"idmkey" "Backup"が20MBほどありもったいないので、MTD concatの仕組みで結合している。
mtd0: 00100000 00020000 "Bootloader"
mtd1: 00100000 00020000 "u-boot-env"
mtd2: 00100000 00020000 "Factory"
mtd3: 00100000 00020000 "SecondBoot"
mtd4: 00400000 00020000 "kernel"
mtd5: 02e00000 00020000 "ubi"
mtd6: 00100000 00020000 "Config"
mtd7: 03200000 00020000 "firmware_2"
mtd8: 00100000 00020000 "Config_2"
mtd9: 00100000 00020000 "persist"
mtd10: 00100000 00020000 "idmkey"
mtd11: 01380000 00020000 "Backup"
ビルドしたファイルの適用方法としては、通常のOpenWrt化の方法と同じで純正ファームから2段階書き込みすればよい
下記方法でOpenWrtから純正ファームに戻すことができる
mtd erase firmware_2
mtd write wndx2033gr_v103.bin firmware_2
echo -ne "\x02" | dd of=/dev/mtdblock9 bs=1 count=1 seek=4 conv=notrunc
reboot
(メーカページからダウンロードした純正ファーム(wndx2033gr_v103.bin)をfirmware_2に書き込み、firmware_2からブートするようにフラグ変更)
この機種はシリアルコンソールなしでTFTPブートなどする方法はなさそうなので、オリジナルや純正に戻したい場合はシリアルコンソールが必要
以上、参考まで。 -
あと同じような構成の下記機種でも同じようにdtsファイル作ればいけるはず
WN-AX2033GR
WN-AX1167GR2
WN-DX1167R
WN-DX1200GR -
>>45
シリアルコンソールをつないでいたので公式から配布されている squashfs-sysupgrade.bin
でアップグレードしたらどうなるか試してみました。結果はカーネルパニックが発生して正常に起動
できませんでした。
今後はマイナーバージョンが上がったタイミングでビルドを行ってアップグレードすることにします。
ビルドする手間はかかりますが、それを上回るメリットがあると思います。
再度、御尽力に感謝いたします。 -
共有ありがとうございます。909を参照しましたが、思い通りになりません。
入れているOpenWrtは24.10.0 (r28427-6df0e3d02a)です。
アクションに修正すべき箇所をご存知でしたら、教えていただきたいです。
opkg install kmod-mtd-rw
root@OpenWrt:~# wget -O /etc/init.d/mount_vacant_space https://pastebin.com/raw/
root@OpenWrt:~# sed -i 's/\r//' /etc/init.d/mount_vacant_space
root@OpenWrt:~# chmod 755 /etc/init.d/mount_vacant_space
root@OpenWrt:~# /etc/init.d/mount_vacant_space enable
#ここまで順調#
#ここからうまくいかない#
root@OpenWrt:~# opkg --force-space install tailscale
Installing tailscale (1.80.2-r1) to root...
Downloading https://downloads.op...rch64_cortex-a53.ipk
Installing kmod-tun (6.6.73-r1) to root...
Downloading https://downloads.op...rch64_cortex-a53.ipk
Configuring kmod-tun.
Collected errors:
* pkg_write_filelist: Failed to open //usr/lib/opkg/info/tailscale.list: No space left on device.
* opkg_install_pkg: Failed to extract data files for tailscale. Package debris may remain!
* opkg_install_cmd: Cannot install package tailscale.
* opkg_conf_write_status_files: Couldn't close //usr/lib/opkg/status: No space left on device.
root@OpenWrt:~# client_loop: send disconnect: Broken pipe -
>>49
エラーに空き容量が無いと。。 -
>>50
スペースを拡大するためのスクリプトだと思って実行しましたが。。。 -
>>49
tailscale をインストールする前に再起動はしてるよね? -
>>49
ここまで順調 のところで一旦reboot必須です
リブートしたあと、dfと打って、マウントポイントが2つ増えていれば空き地が使えてる状態だから成功。
以下のように、44956KBのubi1:dpiが2つ増えていれば成功
root@OpenWrt:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/ubi0_1 7336 92 6828 1% /overlay
ubi1:dpi 44956 1744 40872 4% /mnt/vacant_space
ubi1:dpi 44956 1744 40872 4% /usr/sbin
増えてない場合は
cat /etc/init.d/mount_vacant_space
これを打ってみて、きちんとスクリプトが表示されるか確認してみて。
pastebinに書いてある内容が入ってなかったらwgetの一連の実行をすべてやり直す。
49の、pastebinの/raw/のあとに続く英数字の文字もすべて入れる必要があるけど入ってる?
入ってない場合、スクリプトの本体ではなく無関係の内容をダウンロードしてしまってる。
その無関係な内容に権限を与える見当違いな処理になってるから、やり直す。 -
前スレ909のコードでやってる内容は以下です
wgetの行で、実機内へコードをダウンロードしてそのまま保存する
pastebinからダウンロードしたコードはCRLF改行なので、sedを使って改行コードをCRLFからLF化する
実行権限付与
ルーター起動時に自動実行させる設定をオンにする。
設定するだけでこの時点では実行されてない。空き地はまだ使えない。
で、このあと
reboot
再起動する。次のブートの時に空き地がマウントされる。
■本体内へ入れたスクリプトでやってることは以下
実行するルーターで空き地のmtd番号がいくつなのか、機種名を元に決める。機種名の文字列をopenwrtから読み取って判定材料にする。
コードに書いてある機種名の文字列と一致したらmtd番号を確定する。ubifsとして使えるようにする。
ubifsの空き地のボリュームラベルを調べてdpiという名称が存在したらマウントする。
マウントした中身が、すでに使用中かどうかを調べる。
空き地のルートへusr_sbinのディレクトリがあるかないかで、使用中かどうかを判定する。
ディレクトリがない場合は初回実行時と判断して、本体の/usr/sbinの内容を自動でコピーする。
すでにディレクトリがある場合は使用中と判断して、コピーはせず処理を終わらせる。 -
今度はFortiGate 50Eです。117MBほど確保できた。正直そんなにいらんけどw
https://imgur.com/a/sEb1C3t
参考までにdtsファイルアップしときます
armada-385-fortinet-fg-50e.dts
https://pastebin.com/raw/fGRaMBuS -
ふむふむ
FG-50Eは良いね
でも残念ながら大破さんの移植で使用可能域が狭かった
BRID3出たしやりたいことは色々あるからopenwrt化してみるかな -
すまん
BRID3じゃなくBIRD3 -
>>53
丁寧に説明いただき、ありがとうございました!!!
Rebootしたら、その後は行けました。
が、それでもスペースが増えていませんでした。
おそらく私がOpenWrtではなくImmortalWrtを使っているからかと思われます...
そしてOpenwrtのSysupgradeをインストールしたら、いまシステムが起動できないハメに...LANすら認識してくれません。
TTLで救うしかないみたいです涙 -
>>58
前スレ910のスクリプトは、overlayの見た目上の空き容量は増えませんよ。
スクリプト実行後は、opkgがsbinにファイルを書きこむと、別の空き地が消費されます
元のoverlayの空き容量が減らないから結果的に
tailscaleなど巨大なバイナリを入れられて、実行パスの変更もなしでそのまま使えます。
ImmortalWrtって初めて知ったのですが、これって日本で使う上でどんなメリットあるのですか?
文鎮になったとのことで、使ってるバージョンが書かれてないですが
23.05.5と24.01.0とで、カーネルサイズの再調整が入るので、再調整後に逆戻りするとブリックするかも。
ImmortalWrtと行き来出来るのか自分にはわからないです。 -
I-O DATA WN-DX1200GR
NAND128MB搭載
mtd6の空き地50MBを空き地活用スクリプトで、41172KBとしてマウントできました。
標準overlayが33MB、追加できる空き地が41MB。空き地へtailscaleインストールできました。
https://i.imgur.com/h05HbKa.jpg
前スレ910の公開スクリプトに対応機種として追加しました。
(新規ではなく追記編集したので、URLは変わらず)
ubifsとしてフォーマットする下準備をしておけば、スクリプトを走らせるだけでマウント可能。
以下、追記した機種情報
"I-O DATA WN-DX1200GR")
MTD_NUM=6
UBI_VOLUME="dpi"
;; -
cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00020000 "u-boot"
mtd1: 00100000 00020000 "u-boot-env"
mtd2: 00200000 00020000 "factory"
mtd3: 00400000 00020000 "kernel"
mtd4: 02e00000 00020000 "ubi"
mtd5: 00100000 00020000 "Config"
mtd6: 03200000 00020000 "firmware_2"
mtd7: 00100000 00020000 "Config_2"
mtd8: 00100000 00020000 "persist"
mtd9: 00100000 00020000 "idmkey"
mtd10: 01380000 00020000 "Backup"
root@WNDX1200GR:~# df
/dev/ubi0_1 33488 1884 29852 6% /overlay
ubi1:dpi 41172 12056 26972 31% /mnt/vacant_space
ubi1:dpi 41172 12056 26972 31% /usr/sbin
root@WNDX1200GR:~#
空き地mtd6はubifsではない。内容は不明だけどopenwrtを23.05.5から24.01.0にsysupgradeする前と後とで
1バイトも変化しなかった。使っていない領域として理解した。(事前にバックアップを推奨) -
ここを、ubifsとして使えるように整地するまでの作業は以下
1)
mtd6を、unlockする
opkg install kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
root@WNDX1200GR:~# mtd unlock /dev/mtd6
Unlocking /dev/mtd6 ...
2)
ubifsでフォーマットする
NAND不良ブロックのカウント履歴を0の状態から始めるか?と問いがでるので、yを2回押す。
root@WNDX1200GR:/mnt/cifs/openwrt# ubiformat /dev/mtd6
ubiformat: mtd6 (nand), size 52428800 bytes (50.0 MiB), 400 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 399 -- 100 % complete
ubiformat: 319 eraseblocks are supposedly empty
ubiformat: warning!: 81 of 400 eraseblocks contain non-UBI data
ubiformat: continue? (y/N) y
ubiformat: warning!: only 0 of 400 eraseblocks have valid erase counter
ubiformat: erase counter 0 will be used for all eraseblocks
ubiformat: note, arbitrary erase counter value may be specified using -e option
ubiformat: continue? (y/N) y
ubiformat: use erase counter 0 for all eraseblocks
ubiformat: formatting eraseblock 399 -- 100 % complete
root@WNDX1200GR:/mnt/cifs/openwrt# -
3)
mtd6を、ubifsでattachする
ubiattach -m 6
UBI device number 1, total 400 LEBs (50790400 bytes, 48.4 MiB), available 376 LEBs (47742976 bytes, 45.5 MiB), LEB size 126976 bytes (124.0 KiB)
4)
ファイルシステムを、領域最大容量で作成する。ボリュームラベルをdpiと命名する
ubimkvol /dev/ubi1 -m -N dpi
5)
作成できてるか確認する
root@WNDX1200GR:/mnt/cifs/openwrt# ubinfo -a
ubi1
Volumes count: 1
Logical eraseblock size: 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks: 400 (50790400 bytes, 48.4 MiB)
Amount of available logical eraseblocks: 0 (0 bytes)
Maximum count of volumes 128
Count of bad physical eraseblocks: 0
Count of reserved physical eraseblocks: 20
Current maximum erase counter value: 1
Minimum input/output unit size: 2048 bytes
Character device major/minor: 249:0
Present volumes: 0
Volume ID: 0 (on ubi1)
Type: dynamic
Alignment: 1
Size: 376 LEBs (47742976 bytes, 45.5 MiB)
State: OK
Name: dpi
Character device major/minor: 249:1 -
6)
使えるようになったので、例のスクリプトを実行する。
前スレ910をまるごとコピペするだけ
ここに書くとまたアク禁になりそうなので書かない
7)
rebootする。
1回目のrebootをした直後は、機種名を検出することはできたが、その後の
マウントができなかった。何もせずもう一度rebootしたところ、マウントされた。
■この機種を実験した背景
この機種は、NAND128MBで、openwrtオフィシャル版でoverlayの空きが33MBある。普通に使ってれば困ることは無いと思う。
空き地の存在は確認できたが、0xFFではなく内容が3割ほど入っていて、ubifsではない。
ここをubifsで再フォーマットして動くのか興味があって実験したところ、成功した。 -
この機種をopenwrtへ対応してくれた大破さんのブログを拝見したところ、シリアルコンソールの対話メニュー入力待ちを、つぶしてある機種らしい。
openwrtを一度起動出来たら、以降メニューを出すように環境変数を変更するコードを、大破さんが入れてくれたとのこと。
(一度でもopenwrtを実行出来たら、メニュー有効化がずっと生きてるのかは、自分にはわからない)
仮にメニューを出せていない状態でopenwrtをブートできないと、復旧がほぼ不可能になる。
だから、動くかどうか誰も確約できない最新版の自動生成snapshotは使わないのを強く推奨とのこと。
openwrtのsysupgradeに失敗したとき復旧手順がなくなるリスクが高い機種かもしれない。
安定板のオフィシャルopenwrtを普通に入れ、
空き地として後付けでマウントする、お手軽コースが今回の内容。
類似機種でも同じ手順でいけると思う。
報告以上です。 -
>>64
>>46を作るときに検証済ですが、これらの機種はファームウェア領域が2個(firmware/firmware_2)あって、純正ファームでファームウェアアップデートを行うともう1個の使ってない方を書き換えて、そちらから起動します。
つまりファームウェアアップするたびにどちらから起動するか入れ替わります。どちらから起動するかの情報はpersistの領域に書き込まれます。
で、OpenWrtでは1個目のfirmwareの領域を使っていて、firmware_2は不要です。
純正ファームのfimwareはOpenWrtでは(kernel+ubi)となり、firmware_2と同じサイズです。
あと、>>46の通り、fimware_2に純正ファームを書き込んで、persistの特定箇所に0x2を書き込むと純正ファームに戻せます。 -
あと、WN-DX1200GRでは、 dtsでmediatek,bmt-remap-rangeが指定されてますね。
ubifsの領域はrangeから除くべきだがfirmware_2の領域はbmt-remap-rangeに入ったままなのであまりよろしくはないのかも。
mt7622の機種も同様だが、まあそれほど気にはしなくていいのかもしれない。 -
>>66
解説ありがとうございます
見直してみたら構成ほぼ同じですね
WN-DX1200GRへopenwrtをいれ、空き地をいじる前にddで吸ったpersistパーティションをエディタで見たら0x01でした。
勝手に書き換わることはないと思いますが、手動で02に書き換えた場合、データ領域から起動できないからブート不可になりますね
大事なフラグを保存するパーティションが、こんな隙間にあるとは。
remap指定の件について。これはubifs使用時に物理アドレスがなにかの事情で移動している場合があり、不良ブロックが発生したときの処理を正しく反映されないことになるのかな。
これが将来的に不安定化のリスクになるならば、再ビルド以外はおすすめできなくなる。
自分の個体は、いつ壊れてもいい環境なので、このままつかってみます。
この機種の場合、2箇所の空き地について46さんが細部まで解析してくれてるので、ubiconcatで統合して再ビルドが確実ですね。 -
今度はWSR-3200AX4Sです。77MBほど確保できた。
https://imgur.com/a/X2YEjjq
この機種は技術的に非常におもしろそうだったのでつい勢いで買ってしまったw
これまでに格闘した機種の集大成って感じで非常に難しかったけどうまいことできた。最終的なやり方自体は簡単。
いろいろ新しい発見もあったので、またメモとしてWEBページにまとめようかなと思う。 -
もう満足して引退かも知れんけど、せっかくの成果を公式に反映できないもんかな?
公式に合体できれば桁違いに多くの人が助かるんだけどなあ -
>>69
この機種に関してはそこそこ需要がありそう。公開待ってます。 -
>>72のビルドが通らない件、解決した
以下のexportを実行してから再度makeしたら、ビルド成功した。
ひとまず手元で、ノーマル状態のbinファイルを作れた
考えられる原因
WSL 環境特有の問題:
Windows のシステムパス(WindowsApps など)が Ubuntu の PATH に含まれているため、find の -execdir オプションがセキュリティ上の理由でエラーを出しています。
対処法
ubuntu上で、以下を入れてからmakeする。
一時的に WindowsApps のエントリを除去する
export PATH=$(echo $PATH | tr ':' '\n' | grep -v 'WindowsApps' | paste -sd:) -
24.10 tree を git して build したいんだが、24.10 branch の引っ張り方知ってる人がいたら教えて
-
>>74
私はこんな感じでやってます。
$ git clone https://git.openwrt..../openwrt/openwrt.git
$ cd openwrt
$ git tag | grep 24
v24.10.0
v24.10.0-rc1
v24.10.0-rc2
v24.10.0-rc3
v24.10.0-rc4
v24.10.0-rc5
v24.10.0-rc6
v24.10.0-rc7
$ git checkout v24.10.0 -
>>75
ありがとう! -
SDK から始めないと、時間かかるのね、、
-
Rocky でハマったので Ubuntu でやり直し、、
-
Intel N100 だと重いです、、
-
>>80
gj! -
80さんの手順通りにテスト中
自分の新規構築環境に問題があるようで、エラーでビルドが通らない
make[3] -C package/kernel/ath10k-ct clean-build
make[3] -C package/kernel/ath10k-ct compile
make[2] package/install
make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on
make: *** [/home/user/openwrt/include/toplevel.mk:233: world] Error 1
V=sつけて、やり直し中
実機で検証する以前にそもそもビルドが通らない、落ち着かせるまでがむずいね -
Ubuntu で 24.10 SDK から rtw88 パッチ含め kmod 作りましたが、それでも WI-U2-433DHP 認識せず。OpenWrt One, USB2 500mA 流せない疑惑w 電源付きUSBハブ経由だと lsusb にはでますが driver load されず。Realtek 8821AU のマニュアルには USBハブサポートなし、とあるし。ふーむ
-
>>83
またそのエラーか -
おまけでメーカー純正ファームウェアへの戻し方を追記しました
https://writening.net/page?uLy3gN
OpenWrt化する前にバックアップしておけば簡単に戻せますが、バックアップしてなくても戻せるか興味あったので検証したメモです。 -
NETGEAR R6350
フラッシュ128MBあるのに使用可能は25.6MBだけ
mtdがやたら細切れになってる
MLとか何だろう? -
root@OpenWrt:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00020000 "u-boot"
mtd1: 00100000 00020000 "SC PART_MAP"
mtd2: 00400000 00020000 "kernel"
mtd3: 02800000 00020000 "ubi"
mtd4: 00200000 00020000 "English UI"
mtd5: 00200000 00020000 "ML1"
mtd6: 00200000 00020000 "ML2"
mtd7: 00200000 00020000 "ML3"
mtd8: 00200000 00020000 "ML4"
mtd9: 00200000 00020000 "ML5"
mtd10: 00200000 00020000 "ML6"
mtd11: 00200000 00020000 "ML7"
mtd12: 00200000 00020000 "ML8"
mtd13: 00200000 00020000 "ML9"
mtd14: 00200000 00020000 "ML10"
mtd15: 00200000 00020000 "ML11"
mtd16: 00200000 00020000 "factory"
mtd17: 00200000 00020000 "SC Private Data"
mtd18: 00200000 00020000 "POT"
mtd19: 00200000 00020000 "Traffic Meter"
mtd20: 00200000 00020000 "SC PID"
mtd21: 00200000 00020000 "SC Nvram"
mtd22: 00200000 00020000 "Ralink Nvram"
mtd23: 00200000 00020000 "reserved0"
mtd24: 00200000 00020000 "reserved1"
mtd25: 00200000 00020000 "reserved2"
mtd26: 00200000 00020000 "reserved3"
mtd27: 00200000 00020000 "reserved4"
mtd28: 02180000 00020000 "reserved5"
root@OpenWrt:~# -
NETGEARといえば、うちでR6850(mt7621)が21.02.7のまま絶賛稼働中だから、見てみた
これもnand128搭載で、空き地が多い機種だった たぶん改造できるね
mtd3が40MB、rootfsとoverlayで使われ、ubifsで分割で利用してる
mtd6は57MBあるが、未利用の空き地だ
overlay空き容量が28MBで若干狭い。usb2.0がついてるから、足りなくなったらextrootで拡張を考えてたが、今の所必要性に至らず。 -
NETGEAR R6850
major minor #blocks name
31 0 1024 mtdblock0
31 1 1024 mtdblock1
31 2 4096 mtdblock2
31 3 40960 mtdblock3
31 4 24576 mtdblock4
31 5 2048 mtdblock5
31 6 57344 mtdblock6
254 0 3968 ubiblock0_0
dev: size erasesize name
mtd0: 00100000 00020000 "u-boot"
mtd1: 00100000 00020000 "SC PART_MAP"
mtd2: 00400000 00020000 "kernel"
mtd3: 02800000 00020000 "ubi"
mtd4: 01800000 00020000 "reserved0"
mtd5: 00200000 00020000 "factory"
mtd6: 03800000 00020000 "reserved1"
dmesg | grep mtd
[ 4.368494] UBI: auto-attach mtd3
[ 4.387736] ubi0: attaching mtd3
[ 4.831808] ubi0: attached mtd3 (name "ubi", size 40 MiB) -
netgearの公式ページひどいな
R6850の技術仕様を見てみたら
LAN WANポートが10 100baseの表記(実際はGbE)
CPUクロックが800GHz
こういう仕様ページ作成で、わかってる人が仕事してなくて、チェックもされてないのか -
https://patchwork.oz...367531-1-jan@3e8.eu/
https://git.openwrt....aef77c2af163f9719379
だそうです。いろいろ理由があるみたいですよ。 -
つまりR6850もバージョンアップすれば>>89のR6350と同じレイアウトになるってことです。
-
>>94
上のR6850の者です。情報ありがとう 勉強になりました
NANDフラッシュ内のSC_PART_MAPパーティションに格納された情報を読み取り、
不良ブロックを回避するようにパーティションサイズを動的に拡張
が小分けの理由のようで。
不良ブロックが発生するとパーティションテーブルの開始位置と実際に使われてる開始場所がずれる場合がある。
無線の初期設定値を指定場所から読めない場合は工場出荷時に決めた固定値のmacアドレスが不定になり、
無線機能の出力が最弱になり、macアドレスもランダム生成になる
nand128の中にブートローダーやkernelもあるので、そこへ不良ブロックが出ると起動不可になる
長年普通に使っている中で、いじってないのに突然文鎮になる事例が報告され、対策したのが今の状況
nandの壊れた箇所は放置して、使用領域を後ろのパーティションへスライドさせる領域を確保した
というのが調べた感じ。間違ってたら訂正求む。
内蔵ソフトウェアをnandで全てやるルーターは、長期運用面で危険をはらんでいるのね。 -
SCという文字列は、Sercomm(中磊電子)が作ってる意味のようで
空き地を活用する場合、純正ファームウェアの状態で確認しておくとよいね
有料フィルタリングアプリの格納領域などで、使用用途がハッキリしていれば使って問題ない
一見使ってなさそうに見えて、nandが劣化するなど状況次第で突然使い始める領域もある、と
これは判別が難しい -
うーん、分からない
WRC-X3200GST3やWSR-3200AX4はubifs以外の不良ブロック無対策だから突然死の確率高いってことなのか? -
本来はメモリでramdisk作って動かすところをメモリケチった結果なんじゃ
↑今すぐ読める無料コミック大量配信中!↑