X



【無線LAN】OpenWrt【強化ファーム】25

レス数が900を超えています。1000を超えると表示できなくなるよ。
1anonymous@fusianasan
垢版 |
2024/07/17(水) 20:55:42.47ID:SkasIb7x
テンプレは>>2以降に
レスバより有益な情報交換を心がけよう
2025/02/05(水) 23:38:06.94ID:???
xiaomiのmir3は100mbくらい空きあったよ
2025/02/05(水) 23:43:06.43ID:???
WR9500Nに初インストールやってみるか
2025/02/06(木) 07:42:43.44ID:???
WSR-3200AX4S にて、24.10.0起動できたよ
純正から24.10.0へ

WSR-3200AX4S Ver.1.46

ファームウェア更新中です。
Power-ランプ点滅中は電源を絶対に切らないでください。
あと約 180 秒、お待ちください。

Model Buffalo WSR-3200AX4S
Architecture ARMv8 Processor rev 4
Target Platform mediatek/mt7622
Firmware Version OpenWrt 24.10.0 r28427-6df0e3d02a / LuCI openwrt-24.10 branch 25.014.55016~7046a1c
Kernel Version 6.6.73
Local Time 2025-02-06 07:19:02
Uptime 0h 52m 20s
Load Average 0.09, 0.12, 0.09

root@OpenWrt:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 4864 4864 0 100% /rom
tmpfs 250252 328 249924 0% /tmp
/dev/ubi0_1 7336 44 6876 1% /overlay
overlayfs:/overlay 7336 44 6876 1% /
tmpfs 512 0 512 0%

パーティションのkernel領域が23.05.5までは4MBで、
今回からは6MBに拡張されてる

kernelサイズ肥大化対策の第一弾ファーム
2025/02/06(木) 08:28:44.87ID:???
WSR-3200AX4S の24.10.0では factory.bin と、factory-uboot.binの2種類がアップされてる。
違いがわからなかったので調べた結果を書く。

この機種で既に23.05.5までを入れてる人が24.10.0へ行くには、パーティションのkernelとrootfs以降の区切り場所を
2MBぶん変化させる処理が必要になる。
該当者は、factory-uboot.binをダウンロードして、sysupgradeで-Fオプションをつけて強制実行する。

このときoverlayの内容が全部消えてopenwrtがバージョンアップされる。
設定データの引継は出来ないから、あらかじめ控えておいて、自分で書き戻す。

別のパターン。いままで純正ファームを使ってて最初のopenwrt導入で24.10.0を入れる場合。
factory.binを使う。普通にkernel領域6MBにて使用開始できる

と、大破さんのブログを見て理解した。この理解であってるなら、自分は後者の新規導入パターンで正常に実行できた形と思う

なお動作は良好、11axも使えて素晴らしい
841anonymous@fusianasan
垢版 |
2025/02/06(木) 20:17:02.80ID:KGp1g+Oq
>>0839
インストール後のフリーエリアはどのくらい?
2MBぶん減るのかな?
2025/02/06(木) 21:53:33.74ID:???
WSR-3200AX4Sでwifi動くのか
以前23.05.3だったかを入れたとき5GhzがW52でしか動かないししかもスピードが全く出なかった
尼かどこかの専売モデルだったので中身が違うのかなと思ってそのときは諦めてちゃんと動く純正に戻したんだけど
24.10でaxで動いているのなら再度試してみよう
2025/02/06(木) 23:56:41.41ID:???
>>839
うーん
WSR-3200AX4Sも7MBしか使えないハズレ機種なのか…
2025/02/07(金) 00:06:28.98ID:???
>>842
問題なくWifi6として接続できてるよ。

openwrt初回起動直後は、5GHz系のmodeが空欄で、n ac ax どれも選択されてなくて使えない。
どれでもいいから選択すると動きはじめる。

バンド幅160MHzにしてみたら、電波が出なくなった。
20 40 80MHz は、いずれも動いた。

iPerf3 で11axスマホ間の計測で
20MHzだと200Mbps程度。
80MHzにして、700Mbps程度出た。

自分としては80MHzで十分すぎる速度なので、これで使うことにした。
2025/02/07(金) 00:10:53.07ID:???
>>843
そう。その件調査中。
WSR3200AX4S NAND128MB搭載なのに、overlay総容量が7.8MBしかない。
mtd11が52MB確保されてるが、中身はほぼ0xFFになってる。
mtd11はUBIでフォーマットされてることがわかった。ddで吸い取って中身を見てみた。
冒頭にUBI用のヘッダがあるが、先頭0x2000以降、ほぼ全部0xFFだった。
ごくまれにデータが入ってる。この、ごくまれに入ってるデータが重要なのだろうか。

root@WSR3200AX4S:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00080000 00020000 "Preloader"
mtd1: 00040000 00020000 "ATF"
mtd2: 00080000 00020000 "u-boot"
mtd3: 00080000 00020000 "u-boot-env"
mtd4: 00100000 00020000 "factory"
mtd5: 01800000 00020000 "firmware"
mtd6: 005fffe4 00020000 "linux"
mtd7: 01200000 00020000 "ubi"
mtd8: 01800000 00020000 "Kernel2"
mtd9: 00200000 00020000 "glbcfg"
mtd10: 00200000 00020000 "board_data"
mtd11: 03600000 00020000 "WTB"
2025/02/07(金) 00:16:39.42ID:???
mtd11 はubifsとしてマウントできた。
論理パーティションが1つあり、それもマウントできた。オプションなしでマウントしても、rwオプションをつけてもreadonlyでマウントされる。
ファイルを書くことができない。rw,remountもできない。フォーマットもできない。

ubinfoで情報表示はできる。中身のファイルは1つもない。
/dev/mtd11の中身を覗くとほぼ全部0xFFになってる。
未使用領域ならば使いたいけど、書き込みができない。

root@WSR3200AX4S:~# ubinfo /dev/ubi2
ubi2
Volumes count: 1
Logical eraseblock size: 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks: 432 (54853632 bytes, 52.3 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: 17
Current maximum erase counter value: 3
Minimum input/output unit size: 2048 bytes
Character device major/minor: 247:0
Present volumes: 0
2025/02/07(金) 00:33:50.13ID:???
mtd11に収録されている論理ボリューム、dpiと名前のついたubiボリューム 約50MB が放置されてる
root@WSR3200AX4S:/dev# ubinfo /dev/ubi2_0
Volume ID: 0 (on ubi2)
Type: dynamic
Alignment: 1
Size: 409 LEBs (51933184 bytes, 49.5 MiB)
State: OK
Name: dpi
Character device major/minor: 247:1
root@WSR3200AX4S:/dev#

本当に未使用の領域ならば大破さんが最初から使えるように対応してくれてるはずだよね。
中身はほぼ0xFFだけど、ごくまれにデータが混じってる。
だけどマウントすると、格納ファイルはゼロ。

純正に戻したときに不具合が出ないよう、openwrtではrwでマウントできなくしてあるのだろうか。
overlayが128MB中7.8MBは少なすぎる。純正に戻すつもりはないので、
この52.3MBの遊んでる領域を使うコツ、なんかヒントあります?

なにか理由があって絶対にいじったらいけない領域ならばあきらめるけど。
2025/02/07(金) 01:26:43.33ID:???
mtdの書き込み禁止はubootが管理してるってことなのかな?
設定変更を探しても見つけられない
2025/02/07(金) 06:08:06.50ID:???
dts で ro にしてるから、ってだけじゃないかな
2025/02/07(金) 07:36:37.16ID:???
e8450ubi 24.10.0 wifiも含めて問題なし
2025/02/07(金) 12:51:13.29ID:???
>>849
OpenWrtにdtbファイルないよね
どうなってるんだろう?
2025/02/07(金) 14:21:57.16ID:???
デバイスツリー無いのか
2025/02/07(金) 14:46:07.11ID:???
lsusb とかな一連の ls シリーズな引数はあるぞ。
2025/02/07(金) 22:39:50.15ID:???
WSR3200AX4S 本日やったこと
mtdをロック解除できるパーティションと、できないとで別れた

root@WSR3200AX4S:~# mtd unlock /dev/mtd0
Could not open mtd device: /dev/mtd0
Could not open mtd device: /dev/mtd0
root@WSR3200AX4S:~# mtd unlock /dev/mtd1
Could not open mtd device: /dev/mtd1
Could not open mtd device: /dev/mtd1
root@WSR3200AX4S:~# mtd unlock /dev/mtd2
Could not open mtd device: /dev/mtd2
Could not open mtd device: /dev/mtd2
root@WSR3200AX4S:~# mtd unlock /dev/mtd3
Could not open mtd device: /dev/mtd3
Could not open mtd device: /dev/mtd3
root@WSR3200AX4S:~# mtd unlock /dev/mtd4
Could not open mtd device: /dev/mtd4
Could not open mtd device: /dev/mtd4
root@WSR3200AX4S:~# mtd unlock /dev/mtd5
Unlocking /dev/mtd5 ...
2025/02/07(金) 22:40:20.20ID:???
root@WSR3200AX4S:~# mtd unlock /dev/mtd6
Could not open mtd device: /dev/mtd6
Could not open mtd device: /dev/mtd6
root@WSR3200AX4S:~# mtd unlock /dev/mtd7
Unlocking /dev/mtd7 ...
root@WSR3200AX4S:~# mtd unlock /dev/mtd8
Unlocking /dev/mtd8 ...
root@WSR3200AX4S:~# mtd unlock /dev/mtd9
Could not open mtd device: /dev/mtd9
Could not open mtd device: /dev/mtd9
root@WSR3200AX4S:~# mtd unlock /dev/mtd10
Could not open mtd device: /dev/mtd10
Could not open mtd device: /dev/mtd10
root@WSR3200AX4S:~# mtd unlock /dev/mtd11
Could not open mtd device: /dev/mtd11
Could not open mtd device: /dev/mtd11
2025/02/07(金) 22:41:39.10ID:???
mtd3: 00080000 00020000 "u-boot-env"

この領域をddで吸い取って中身をみたところ、ubootの起動オプションをほぼプレーンテキストで確認できた。

書き換え不可のフラグを動かしたいけど、
シリアルでつないでubootのコンソールへ降りるか、
あるいはopenwrt上で書き換えして、なにかしらの設定値を変えればよいのだろうか。

ただ、書き込み禁止かどうかをubootのオプションで
定義しているかはわからない。

kernelを書き換えないと変更不可なら、いまの自分には無理だ。
2025/02/08(土) 00:27:29.60ID:???
>>851
カーネルの後ろにくっついてるよ
2025/02/08(土) 08:21:16.84ID:???
WSR3200AX4S 余剰パーティションへ、書き込みできた!
ポイントは「insmod mtd-rw i_want_a_brick=1」
で強制的にmtd11を書き込み許可にさせる

これで52MBを自由に使える領域を獲得できた

root@WSR3200AX4S:~# insmod mtd-rw i_want_a_brick=1
root@WSR3200AX4S:~# mtd unlock /dev/mtd11
Unlocking /dev/mtd11 ...
root@WSR3200AX4S:~# ubiattach -m 11
UBI device number 1, total 432 LEBs (54853632 bytes, 52.3 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB)
root@WSR3200AX4S:~# ubinfo -a
ubi1
Volumes count: 1
Logical eraseblock size: 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks: 432 (54853632 bytes, 52.3 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: 17
Current maximum erase counter value: 3
Minimum input/output unit size: 2048 bytes
Character device major/minor: 248:0
Present volumes: 0
2025/02/08(土) 08:44:35.89ID:???
Volume ID: 0 (on ubi1)
Type: dynamic
Alignment: 1
Size: 409 LEBs (51933184 bytes, 49.5 MiB)
State: OK
Name: dpi
Character device major/minor: 248:1

root@WSR3200AX4S:~# mount -t ubifs /dev/ubi1_0 /mnt/a

root@WSR3200AX4S:~# mount
/dev/ubi0_1 on /overlay type ubifs (rw,noatime,assert=read-only,ubi=0,vol=1)

/dev/ubi1_0 on /mnt/a type ubifs (rw,relatime,assert=read-only,ubi=1,vol=0)

mtd11をアンロックしたあと、ubifsとしてマウントしたところroからrwになり、書き込み出来るようになった。

ためしにデータを書いたら、使用容量24KBから28KBへ変化した。
2025/02/08(土) 08:47:08.98ID:???
ext4ではなくubifs配下なので容量は少し減るがNANDチップの劣化を自動で分散でき、
空き地の領域を約42MBとして使える。

root@WSR3200AX4S:/mnt/a# echo a > test.txt
root@WSR3200AX4S:/mnt/a# ls -l
-rw-r--r-- 1 root root 2 Feb 8 08:03 test.txt

root@WSR3200AX4S:/mnt/a# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/ubi1_0 44956 28 42592 0% /mnt/a

本当に書けてるのか確認するため、ためしにルータをリブートしたあと、再度mountした。
リブート前に書いたデータは消えてなくて参照できた。
Wifi機能も使えている。起動不能など不具合は、今のところない。

あとはoverlayを置き換えできれば目標達成になる。
2025/02/08(土) 08:57:20.22ID:???
ext4で再フォーマットすれば領域全てをフルに使えると思う。
が、43.9MB増えただけで、もう充分なので、
ubifsでフォーマット済みの空き地をこのまま使うことにした。

課題は、最初にunlockする必要があるので
単純にfstabにマウントパスを
書いただけではoverlayとして置き換えできないこと
2025/02/08(土) 14:01:57.71ID:???
>>858
i_want_a_brick=1 ってオプション名ウケるなぁ
何があってもサポートしませんよの念押し圧が強いw
2025/02/08(土) 15:29:11.19ID:???
ext4だとNAND不良ブロックに対応できないのでは
2025/02/08(土) 15:48:08.71ID:???
>>845
mtd11の本来の目的は何だろう?
"WTB"はどういう意味?
2025/02/08(土) 16:59:58.88ID:???
>>864
あくまで想像だけど、以下のオプションを入れるための領域かもしれない

https://www.buffalo.jp/service/category/detail/netblocker.html
2025/02/08(土) 18:15:59.31ID:???
ふーん
そんなのがあるのか
初回1年間は無料らしいからOpenWrtにする前にどこが書き換わるか実験すりゃ分かるな
2025/02/08(土) 19:51:06.83ID:???
cudy tr3000
3500円くらいで安い
GL-MT3000の1/3で買える
2025/02/09(日) 05:30:52.40ID:???
>>865
Web Threat blockerの頭文字か
2025/02/09(日) 08:18:06.21ID:???
>>867 欲しい。教えて下さい。
2025/02/09(日) 08:23:43.66ID:???
jdで売ってるけど送料込みで5000円くらいじゃね?
2025/02/09(日) 08:30:40.60ID:???
>>870 ありがと!
2025/02/09(日) 08:50:03.81ID:???
>>845で書いた、WTBパーティションの続報。
「ごくまれにデータが入ってる。この、ごくまれに入ってるデータが重要なのだろうか。」

ロム内に飛び飛びで存在するデータ内容を調べた。
ubifsのLogical eraseblockの管理情報だった。

NANDが劣化したとき故障部を隔離する。
その小部屋の区切りを示すヘッダが書かれてた。
124KB区切りが432箇所ある。

そのヘッダ以外の中身は、ほぼ全部0xFFだった。
2025/02/09(日) 08:53:41.31ID:???
空き地の用途は>>865で想像と書いたが、これで確定ぽい。
別の機種WSR2533で、大破さんの解説ページで軽く触れられてた。

一般の人は、このWTBサービスを契約しつつルーターのファームアップも不定期に実行する。

メインのファームウェア領域とは別の空間に
アプリと、その設定データを格納する。
と考えると、パーティションが分かれてるのは納得いく。

自分の調達した個体(中古)は、このサービスを一度も契約してなかったことになる。
2025/02/09(日) 11:38:29.45ID:???
契約歴ある個体だとubifsの中にファイルがあるってことか。
2025/02/09(日) 11:58:11.93ID:???
>>873
そのブログ探した。軽くと言うか本当に一言だけだね。
mtd11 "WTB"が一番でかいんだから、こっちを潰してOpenWrtの領域にする選択はできなかったんだろうか。
2025/02/09(日) 16:55:47.84ID:???
DSAへの変更で初期化するしかないから最初から設定したら
23.05の時になんとなく違和感があった謎が解決した!

ネットワーク、DHCPおよびDNS、全般タブのローカルドメインの
先頭に、スペースが一文字入ってた…

23.05の設定バックアップ見てて気付いた…
表示の問題で害はなかったけど、24.10にしてよかったw
2025/02/09(日) 17:08:47.06ID:???
OpenWRT公式のimagebuilder鯖のスペックが悪すぎて、作成依頼が10分タイムアウトに引っ掛かって成功しないって愚痴
結局自分でbuildするんじゃSNAPSHOTと変わんねー
2025/02/10(月) 09:30:04.81ID:???
WSR-3200AX4Sで、ソースから再ビルドせずoverlay定格値 7.5MB のまま、なんとしてでも
単体で22MBのバイナリを持つtailscaleを動かしたい。

悪戦苦闘の末、書込制限を解除した空き地mtd11を利用し、単独起動できた。
https://i.imgur.com/2Heot57.jpg

詳細まとめ作成中
エレコムの容量難民の人も同じやり方で出来るかもしれない

学んだこと
/usr/bin と /usr/libは、どかさない、いじらない。一瞬でも見失うと即文鎮。
opkgの挙動。インストール先の場所へシンボリックリンクを
作っただけではエラーが出て失敗する。mount --bind で増築すれば迂回できる。

疲れた。が結果も出たしoverlayの挙動をいろいろ学べて楽しい作業だった。
2025/02/10(月) 10:41:11.58ID:???
おめでとう!

>/usr/bin と /usr/libは、どかさない、いじらない。一瞬でも見失うと即文鎮。
コンソールからsashなら大丈夫なんじゃないかな?

>詳細まとめ作成中
よろしく! WRC-X3200GST3を持ってるんで、mtd10 "reserved" を活用できたら助かる。
2025/02/10(月) 19:14:06.42ID:???
ソースからビルドしたほうが早い。検証する時間の無駄
2025/02/10(月) 21:10:53.63ID:???
>>880
2025/02/10(月) 22:23:41.81ID:???
roにしてあったリージョンを使おうとするなら
bmt関連の設定値も変えておいたほうが良いような気がした
2025/02/11(火) 00:48:28.93ID:???
WRC-X3200GST3で69MBもあるmtd10 reservedのデータを見てみたら、全部が0xFFの完全に何もない領域だった。
ということは、うまいことフォーマットして何とでもなるってことかな?
2025/02/11(火) 09:54:23.55ID:???
最初から広い空き地をOpenWrtの領域にしてくれれば良いのにな。
初回インストールが2段階になるかも知れんけど。
2025/02/11(火) 13:42:44.49ID:???
>>883
多分そういうこと
ただ、「何とでも」の方法がちょっと大変
>>878 の詳細まとめに期待
886anonymous@fusianasan
垢版 |
2025/02/11(火) 20:18:14.20ID:wGWDhmRC
何台かWRC-X3200GST3を買っておくか
2025/02/11(火) 20:46:33.58ID:???
878だけど、コードを複数のファイルに分散してたのを見直して最適化してるところ。
組み込みをシンプルにするため一つのファイルにまとめる作業をしてる

mtd番号を変えるだけでほかの機種に流用可能なように、ハードコード部分を変数に置き換えた


■エレコムの人だけに必要な作業は以下
バッファローの空き地はubifsでフォーマット済みだった。
ファイル数がゼロの未使用パーティション。
だからそのままubifsとしてマウントできた。

対して、エレコムの人は空き地の中身が全部0xFFとのこと >>883 なので、
ファイルシステムとしてマウントするにはフォーマットが必要。
ubifs(NAND劣化に対応する。推奨)か
ext4(書き込み頻度少な目用途で、容量めいっぱい使いたい場合)
で先にフォーマットしておく。
2025/02/11(火) 20:49:28.93ID:???
該当ルーターにて
insmod mtd-rw i_want_a_brick=1
が使えるかどうか

解除後にフォーマットできるのか

適当なマウントポイントへマウントできるか

書き込み出来るか

の4点を確認する必要もある

先にこのあたりを検証しとくと導入がスムーズになると思う。

書込ロック解除の方法は>>858にすべて書いてある。
パーティションの中身が0xFFならばubifsが存在せず、858に書いたコマンド3番目のマウントで失敗する。

ここを通過させるフォーマット処理は、エレコムユーザーだけの追加作業となる
2025/02/11(火) 21:00:27.07ID:???
よっしゃ
俺のWRC-X3200GST3も参戦するぜ!!
2025/02/11(火) 23:59:45.83ID:???
WRC-X3200GST3で、とりあえずmtd10をUBIフォーマット・マウントして読み書きしてみたけど問題なさそう。
ここからoverlayに追加する方法はよく知らんのでまとめに期待します。


mtd unlock /dev/mtd10
ubiformat /dev/mtd10
ubiattach -p /dev/mtd10
ubimkvol /dev/ubi1 -N data -S 527
mount -t ubifs /dev/ubi1_0 /mnt
2025/02/12(水) 01:07:37.94ID:???
あとはソースから再ビルドする場合のまとめもしたいなあ。
とりあえず、自分の方では「mt7622-elecom-wrc-x3200gst3.dts」の下記部分のread-only;を削除してそのままunlockできることは確認した。

partition@30c0000 {
label = "reserved";
reg = <0x30c0000 0x4f40000>;
read-only;
};

で、ubiのラベルがついたmtd6がrootfsとrootfs_dataに分かれていて、rootfs_dataがoverlayにマウントされてるようだけど、
そのへんをどうやれば別のところにもっていけるか、自分の断片的な知識じゃ全くわからんw
2025/02/13(木) 21:16:23.60ID:???
OpenWrt化が可能でWiFi性能が高いコスパが良いおすすめルーターはありませんか?

スペックではなく実効速度や受信感度でです。
中古でも構いません。
893842
垢版 |
2025/02/13(木) 22:27:38.95ID:???
すまんカントリーコード設定したらW52以外でも動いたわ
以前使ってたWSR-1166DHP2では特に設定しなくても動いてたはずだが気のせいかな
あとバンド幅160MHzにしても繋がる
ただ全体的にスピードが出ないのはあいかわらずなのでまたどこか設定ミスっているかもしれない
2025/02/13(木) 22:43:51.68ID:???
>>892
OpenWrtで何をやりたいんだ?
そこもはっきりしないようならRT-AX59Uあたりが何をするにも無難な気はする
2025/02/13(木) 22:44:17.51ID:???
878 空き地利用の件 ほぼスクリプト完成したので、ルータのoverlayも空き地も一旦全部消して1から動かせるのか検証してる

なぜかopkg updateすると署名検証のエラーが出て、tailscaleをインストールできない

一部はpassedで、一部がfailedになる

自分のルータがおかしいのかopenwrtサーバが不調なのか判別できず

別のデバイスFG50Eだと署名が普通に全部通過する

WSR-3200AX4Sを持ってる人居たらopkg update できるか試してもらえませんか?

root@OpenWrt:~# opkg update
Downloading
Updated list of available packages in /var/opkg-lists/openwrt_core
Downloading
Signature check passed.

Downloading
Updated list of available packages in /var/opkg-lists/openwrt_base
Downloading
Signature check failed.

Remove wrong Signature file.
2025/02/13(木) 22:50:14.25ID:???
エレコム機を自動判定するコード作成中

>>890
ubus call system board | jsonfilter -e '@.model'

これを実行した時の結果を教えてください。
ルータのモデル名が返ってくるはず


root@FG50E:~# ubus call system board | jsonfilter -e '@.model'
Fortinet FortiGate 50E
2025/02/13(木) 23:06:14.39ID:???
さっきluciからiperf3インストールしようとしたら署名エラーで出来ず以降iperf3自体見つからなくなった
しばらく間をおいてからopkg updateしたら見つかるようになってluciからインストール出来た
2025/02/13(木) 23:08:17.57ID:???
root@OpenWrt:~# ubus call system board | jsonfilter -e '@.model'
ELECOM WRC-X3200GST3
root@OpenWrt:~#
2025/02/13(木) 23:10:01.46ID:???
>>895の件 いま実行したら解決
opkgサーバがおかしかったみたい
tailscaleインストールできて初回ログインできた
2025/02/14(金) 00:11:02.09ID:???
WRC-X3200GST3でソースからビルドして空きのmtd10を割り当ててみた。
53MBの空きができました。

https://imgur.com/a/RwZz4tM

やり方自体は非常に簡単で誰でもできるけど、今の自分のレベルでは初回はシリアルコンソールつなげないと無理
もうちょいがんばってみる
2025/02/14(金) 00:14:51.22ID:???
今北
WRC-X3200GST3でmtd10が使えることを期待して24.10.0を初期インストール

製造時期によって違いあるかも知れないので順番に確認
・24.10.0初期状態で使えるフラッシュ容量は7.6MB
・/proc/mtd は >>774 と同じだった
・hexdump /dev/mtdblock10 は全てff

しかし >>890 は失敗
root@OpenWrt:~# mtd unlock /dev/mtd10
Could not open mtd device: /dev/mtd10
Could not open mtd device: /dev/mtd10
root@OpenWrt:~# ubiformat /dev/mtd10
ubiformat: error!: cannot open "/dev/mtd10"
error 13 (Permission denied)
2025/02/14(金) 00:43:25.22ID:???
>>901
ごめん
>>890は一部省略してます。mtd10は読み込み専用に設定されてるから、
kmod-mtd-rwをインストールして
>>858さんのinsmod mtd-rw i_want_a_brick=1が先に必要です。
2025/02/14(金) 01:07:40.92ID:???
WRC-X3200GST3を使ってる方にちょっと質問ですが、dmesgのログに
OF: Bad cell count for /spi@1100d000/flash@0/partitions
っていう表示ありますか?

いろいろいじって遊んでて、いったん通常の24.10.0に戻したんですが、
元から出てたのか、なんかおかしくなったのか分からなくなりました。
もともと出てるんならいいんですが。
2025/02/14(金) 03:13:03.73ID:???
858です。

■空き地利用スクリプトできた。前提条件
openwrtの配布版をそのまま使う前提で、導入初期に一度だけ簡単なスクリプトを動かすことで、使える領域を少し増やすことを目指す

自分でソースコードからビルドすれば自由度が上がることは重々承知している。
が毎回ビルドからやり直して、どこを変更したのか自分で管理する必要がある。
これをOS更新の度に毎度毎度、自分でやれる自信がないのが、再ビルドを避けたい理由。

対応機種 WSR-3200AX4S(確認済み) ELECOM WRC-X3200GST3(実機を持ってない)

スクリプトを見れば簡単にほかの機種へ改変できるはず
たとえばFortigate FG50Eの、2つ収録されるOSの予備側をつぶせば空き地として使えそう。

■/overlayの一部の領域を拡張する
今回はOS起動直後に丸ごと/overlayを置き換える、いわゆるextroot化ではない。
mount --move を使用することでoverlay領域を完全に入れ替えできるが、
OSが立ち上がった後にこれをやると、切り替え後に各所の謎動作を過去に経験した。
設定を変更したあとリブートすると、変更した内容が元の値に戻ってるなど。
extroot(mount --move)を使わず、一部だけ拡張する方法はないか?と実験したのが今回の物。
2025/02/14(金) 03:14:29.81ID:???
■起動時に、空き地を使用可能にするコード
・やれることは、/usr/sbinに書き込まれる大きなファイル(tailscaleの22MBバイナリなど)を空き地へ配置できるので本来のoverlayの容量を消費しない

・/etc以下や、/usr/binにインストールされるツール類は、今のコードでは空き地へ移動しない。あくまで/usr/sbinだけを対象としている。
空き地へ退避させるパスを追加すればできるけど、マウントできなかったときに不具合が起きる可能性が高いので、よく検証する必要がある。
2025/02/14(金) 03:16:17.61ID:???
■以下、導入手順

1)空き地へファイルシステムの作成と動作確認
Buffalo WSR-3200AX4Sはmtd11がubifsでフォーマット済みなので、やることなし。
純正ファームで有害サイトフィルタの動作を開始した履歴のある個体は、既存ファイルが入っている可能性がある。
必要ならバックアップしてから消す

エレコムユーザーは、mtd10の空き地をubifsでフォーマットしておく。kmod-mtd-rwやubifsのフォーマッタなどは自分で入れる。
ubifsのNameは「dpi」とすればbuffaloと同じになりスクリプトをいじる必要がない。

・空き地をフォーマットして、/mnt/vacant_spaceなどへ仮でマウントして、ファイルを書き込みできる状態であることを確認しておく

2)下準備
・openwrtを初期化する。初期化後、ネットに出られるまで設定した状態で作業するのがベスト。
(使い込んで、すでに/usr/sbinに後付けファイルが作成された状態だと、失敗するかもしれない)

openwrt初期化後、以下のソフトを入れる。これを入れないと空き地のmtd書込制限を解除できない。
opkg update
opkg install kmod-mtd-rw
2025/02/14(金) 03:26:29.59ID:???
3)空き地 有効化スクリプト mount_vacant_space 設置
コードの中身は以下
https://pastebin.com/XDja96GT
908anonymous@fusianasan
垢版 |
2025/02/14(金) 03:51:58.96ID:oraxjU47
5chに貼れないし、pastebinも「このコードは危害を及ぼす恐れがある」との理由で
アカウントを持っていないと参照できない形でしか貼れなくなった
せっかく半自動で導入できるように作ったのに、まさかの結果。
続きを見たい人は以下でどうぞ
pastebin.com/WNeZy39Y
2025/02/14(金) 04:15:30.61ID:???
何を書いたらダメなのか、もうわからない
あとは適当にやってみてください
w get -O /etc/init.d/mount_vacant_space ht tps://pastebin.com/raw/XDja96GT
se d -i 's/\r//' /etc/init.d/mount_vacant_space
ch mod 755 /etc/init.d/mount_vacant_space
/et c/init.d/mount_vacant_space enable
2025/02/14(金) 04:23:18.06ID:???
3)これにて拡張終了。拡張領域を使ってみるため、tailscaleインストール
初回起動時1回だけ、/usr/sbinの内容を空き地のMOUNT_POINT/usr_sbinへ、自動でコピーされる。
なお本体のoverlayの容量を稼ぎたい理由で、cpではなくmvをしてはいけない。
コピーが終わると1744KBくらい使っている状況になる。

tailscaleをインストールしてみよう 空き容量チェックを無視するオプションをつける
(理由は別途解説)
opkg --force-space install tailscale

22MBのtailscaleバイナリはvacant_spaceへ格納された。
tailscaleが必要とする共有ライブラリと/etc配下の設定ファイルは本来のoverlayへ格納される。
空き容量7.5MBから若干減るが問題なし。

これにて、tailscale up で動作を開始できる。
2025/02/14(金) 04:27:17.45ID:???
909で書いたコマンドを実機へ入れたあと再起動してください

■さいごに
自分は、巨大なバイナリ tailscale さえ入れば、他は入れなくてもなんとかなる使い方なので、
ほかのパッケージを入れる検証はやってない。
各自でやって報告してもらえると参考になり助かります。
2025/02/14(金) 04:35:03.04ID:???
エレコム機は>>898で教えてもらった内容をもとにコード作りましたが実機未所有のため試してないです
dmesgをみて、Model detected の検出結果がなかったら、caseの文字列をマッチするよう変更してください
913anonymous@fusianasan
垢版 |
2025/02/14(金) 06:32:35.40ID:P/55eNZN
>>0912
WRC-X3200GST3 でも問題なく動作しています。御尽力に感謝いたします。
従来のフリースペースの7−8MBを超えるサイズのパッケージのイントールやアップグレードは注意が必要ですね。LVM的なコンバインが可能であれば楽なんですがね・・・。
2025/02/14(金) 10:43:21.61ID:???
>>913
報告ありがとう
一人でも動作OKなら、掲載したコードは想定通りに動けているので嬉しい
2025/02/14(金) 21:18:51.82ID:???
>>909
素晴らしい!
広い空き地が利用できないまま放置だったのもアレだけど、これで多くの人が救われる
5chだけにしとくのはもったいない
858さんがスクリプトのライセンスを決めてくれないかなあ
OpenWrtと同じGPL2が最適と思う
https://openwrt.org/license
858さんがGPL2を宣言してくれれば誰でもフォークできる
githubで対応機種が追加されてどんどん発展する(かも知れない)
916901
垢版 |
2025/02/14(金) 21:30:25.38ID:???
WRC-X3200GST3について

>>902
ありがとう
opkgをmtdで検索する位は自分でやるべきだった
アンロックしたらmtd10に書き込めた

>>903
24.10.0初回インストール直後のほとんど何もやってない状態でそれ出た
mtdが元々バグってんのかな?
[ 0.604412] OF: Bad cell count for /spi@1100d000/flash@0/partitions
2025/02/15(土) 05:37:27.75ID:???
>>916
ありがとう
OF: Bad cell count for .... については、調べたみたら無害のようだ。気にしないでおこう。
https://github.com/openwrt/openwrt/issues/10950#issuecomment-1280068499
2025/02/15(土) 10:19:46.59ID:???
>>915
感想ありがとう
対応機種を増やす流れは自分も考えてて、
スクリプト内のcase文で2機種を判定できるところまで仕上げて初版の公開に踏み切った。

このcase部分をコピペして、固定値を変えれば対応機種を簡単に増やせる

いまの状況は自分のルーターでうまく動いて、
類似の問題を抱えるエレコムにも使えた状況

そのほかの機種で使えた人は、機種の文字列とmtd番号を書いてもらえたらスクリプトへ追記します
収集用に、近日Googleフォームでも設置する予定

いまのコードは、誤爆防止のチェックが最低限しかないので、
実際に存在するmtdの個数を見るなどエラーチェックをもう少し実装したのち、
誰でも添削できる場所へコードを移そうと思ってます
919858
垢版 |
2025/02/15(土) 11:00:47.27ID:???
この、空き領域を使えない問題って技術的課題というより、今のopenwrt開発チームにとって
空き領域の再利用がアリなのかナシなのか、まだ結論を出せていない状況と思う

openwrtの開発に携わる人たちは空き地の存在を知ってて、そこがもったいないことも当然わかってるはず。
その領域を有効化して積極的に利用すべきか、もしくはオリジナルに戻せなくなるリスクを考えて
触るべきでないのか?どちらにすべきか方針が決まってないのが今ではないかと

決まらないうちは、安全面に配慮して空き地へ書き込み不許可で作成されているのが今の配布版openwrtになる。

そこを理解した上で、個人でいじるなら今回みたいに簡単に使用開始できる。自己責任で先行して空き領域を使うのが今回のコード、と自分では考えてる。
2025/02/15(土) 11:06:05.10ID:???
未利用のFG-50Eがある
この機会にOpenWrt化してmtdを見てみようかな
FG-50EはNORが128MiBもあるという高級機
921anonymous
垢版 |
2025/02/15(土) 11:07:36.36ID:???
ファームウェアのアップデートで書き換えが想定されている部分以外を利用するのは
完全な自己責任で推奨はしてほしくないな
データ舐めたらブリックする地雷機種もいるにはいるので
2025/02/15(土) 12:02:10.43ID:???
今回の空き地利用は、推奨するという話ではないので大丈夫だよ
923858
垢版 |
2025/02/15(土) 12:13:30.18ID:???
そもそも昔のルーターは、ここまでの空き地はなかったよね。
最近の機種は、Webフィルタ系機能でパターンファイルをオンラインで更新するのがトレンドになり、それが空き地の出現につながる。
空き地の含まれるデバイスは今後増えていく。

openwrtの公式で将来、空き地を活用する方針が仮に決まったとして、対応機種へ機能を反映するのは相当な時間が必要と思う。
2025/02/15(土) 14:20:10.81ID:???
ライセンスに書いてある通りOpenWrt自体が完全に無保証で自己責任の使用
空き領域が極端に狭くなってしまう場合は一定の検証をした上で公式が空き地を最初から利用するのはアリだと思う
純正ファームウェアに戻せなくなるなら明示の上で
925anonymous@fusianasan
垢版 |
2025/02/15(土) 15:04:01.19ID:DkEBtYEM
openwrtなんてすでに自己責任の世界じゃねーか
2025/02/15(土) 15:12:56.43ID:???
OpenWrtの個別機種対応には一定の時間が掛かる
大半は最新じゃなく周回遅れの機種で使うことになる
使い古しや中古購入でも純正ファームウェアに戻したい人はいるんだろうけど、全体から見ればかなり少数派なんじゃないかなあ
2025/02/15(土) 17:02:08.06ID:???
今日の買物
WRC-300GHBK2-I
550税込
無線は2.4GHzだけの802.11nまでで使い物にならない
フラッシュ8MiBしかないけど有線GbE×5を活用する予定
2025/02/15(土) 17:13:56.93ID:???
同じような事例で↓こういのもあるから、純正ファームでも全く使用していない領域ならそれを活用しようってのはありなんでしょう。

https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=ad6c6361f9f85f7cf6f53558d109c82de73743a5
https://patchwork.ozlabs.org/project/openwrt/patch/20191112140214.59f2971f@kosmio.komorska/
2025/02/15(土) 17:35:31.54ID:???
空き地活用しないのはOpenWrtの方針というより大破氏の方針なのかな?
930927
垢版 |
2025/02/15(土) 19:12:29.42ID:???
WRC-300GHBK2-Iに24.10.0インストール完了
空き領域が1.0MiBしかない
フラッシュ8MiBで利用できる空き地もなし
最低限のパッケージ追加しようとして領域不足エラー
550円とは言えなかなか厳しいな、あはは
931anonymous@fusianasan
垢版 |
2025/02/15(土) 19:58:09.26ID:emIvzlh4
24.10でWPA3-SAEと高速ローミングが動いたらしいんで試してるけど上手くいかん。
誰かやってないですか
2025/02/15(土) 20:24:12.89ID:???
ローミングは知らんがWPA3 SAEは以前のバージョンから普通に使えてる
使えないなら端末かルータのハードウェアが対応してないんだろう
2025/02/15(土) 21:41:37.12ID:???
110円で買ったWZR-HP-G301NHにOpenWrt入れようとしたらどうやっても入らん
DD-WRTは一発で入った
しかしDDのカーネルって最新でもv3なのか...
2025/02/15(土) 22:49:37.28ID:???
それハマる機種みたいだな
2025/02/15(土) 22:53:48.54ID:???
たしか、MIPSとARM、果てはチップメーカーすらversionで違うという罠機種だった。
dd-wrtをインストして8年程度使ってたことあるけど、ハングアップもせず使用機器入れ替えに伴う規格の刷新までちゃんと動いてた。
2025/02/16(日) 00:53:26.31ID:???
>>933
背面のバーコード下部の4文字で判定する必要がある

うちのWZR-HP-G301NH A1A3はEthスイッチはRBタイプだった。300NHの後期版と同じ。
Buffalo WZR-HP-G300NH (rtl8366rb)として使える

WZR-HP-G302HのA2A0の個体に、A1A0のイメージを焼いてはいけない。
ややこしいことにopenwrtのサイトではWZR-HP-G302H用は今もA1A0しか配布してない。
A2A0用のイメージは公式サイトに存在しない。
WZR-HP-G300NHのRB(後期版)を焼くと使える。
2025/02/16(日) 00:56:10.02ID:???
間違えると、内部は動いてるけどLANアクセス不可になる。
ファームは正常に焼けてるからリセットしても無駄で、tftpで復旧する以外どうにもならない

そのtftpも癖があり、特定のarpを固定指定し、かつLANスイッチを間に挟まないと母艦と通信できない

この一連のグループたち、USBがついてフラッシュ32MBでoverlayを27MB使えて、安定して優秀

結果的にtftpとarp固定をマスターできる入門機になる
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。