【強化ファーム】 OpenWrt移植のためのルータ解析スレ
■ このスレッドは過去ログ倉庫に格納されています
▼OpenWrtとは
主に無線LANルータのファームウェアを書き換える形で動作するLinuxディストリビューションです。
パッケージマネージャを備えているので
メモリが許せば様々な追加ソフトをインストールして使うことが出来まが、
それはさておき、このスレはハードウェアを解析するスレです
▼LEDEとは
2016年5月にOpenWrtから派生したディストリビューションです。
開発スピードが早く、2017年9月現在では事実上の後継バージョンといえます。
意見の相違からOpenWrtから独立しましたが、近々の再合流が話し合われています。
▼DD-WRTとの関係
初期のOpenWrtのGUI付バージョンとしてスタートしたプロジェクトで
現在ではかなり乖離しています
GUI操作前提の無線LANルータ用高機能カスタムファームウェアを志向しています。
▼電波法について
日本国内においてはOpenWrt/LEDEを組み込んだ無線LANルータで
無線LANをONにすると電波法に違反することになります。
『適合表示無線設備と同等の機能であっても技術基準適合証明の技適マークの無い機器、
または技適マークがあるが改造された機器の使用は、
総務大臣の免許の無いまま無線局を開設したこととなり、
第110条第1号により1年以下の懲役又は100万円以下の罰金刑に処される。』
※ Wikipedia「技適マーク」からの引用
OpenWrt/LEDEではインストール直後は無効になっているので
無線LANはOFFのまま高機能ルータとして使えるようにしましょう。 悪質犯罪詐欺業者バッファローの詐欺の詳細テラヤバス
・1733Mbps対応をうたって販売していながら1733MbpsリンクできるPCは皆無
・1733Mbpsリンクには連続160MHzで帯域確保する必要があるが、
バッファローは従来の80MHzを2つ使って160MHzだと主張するポンコツ詐欺仕様
・日本だろうが米国だろうが36chから160MHz確保は何の問題もない
・ルーターよりモジュール出荷数のほうが圧倒的に多いことから、連続160MHzがスタンダード
・いまだに事実上1733Mbps非対応であることを隠して詐欺機器販売中
・スクリプトギトギトポンコツオナニーUIでセキュアな健常者のPCから設定できない
人だまくらかさないと食えない社会的ポンコツ害虫とっとと倒産しろや糞詐欺バッキャロー ac2100もじわじわ
煙突型blackも
ax3600は別次元だな まずはソニールーターやね
クアルコムってEFIで動くの?
USBポートでboot.scrで動かしたい boot.scr ってu-boot用のスクリプトじゃなかったつけ? OpenWrt の 対応機種(target) 追加の覚書
新たな機種をOpenWrt に追加したいときは公式サイトの以下ドキュメントを参照
https://openwrt.org/docs/guide-developer/adding_new_device
https://openwrt.org/docs/guide-developer/add.new.device
↑に記載されたテクニックだが、本家gitリポジトリで
"add support for"のキーワードでcommit log を検索すると
他機種追加の際に変更したファイルとその内容が得られるので大いに参考になる。
https://git.openwrt.org/?p=openwrt%2Fopenwrt.git&a=search&h=HEAD&st=commit&s=add+support+for OpenWrt build 環境準備の覚書
公式 Document の以下を参照
https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem
OpenWrt プロジェクト非公式サポート扱いではあるが
Windows 環境ではWSL2 の debian11 を使うのがお手軽
注意点は
WSL2によって付加されるWindows ホスト側PATHが原因でbuild error を引き起こすので
以下の公式Documentを参照してPATHの書き換えが必要
https://openwrt.org/docs/guide-developer/toolchain/wsl build system を使った OpenWrt のコンパイル方法の覚書
git clone https://github.com/openwrt/openwrt.git
cd openwrt
git checkout openwrt-22.03
git pull
./script/feed udpate -a
./script/feed install -a
make menuconfig
# LUCIは明示的に含める必要がある
make -j 1 V=s defconfig clean download world
downloadを付けないとtoolchain やpackage を全てコンパイルするため時間がかかる
-j X はCPUコア数を指定すると高速化するがdebug メッセージを見るときには -j 1 にする
build 時間は IO性能への依存も大きく NVME SSD の恩恵は大きい ARM SoC機種における基本的な device 追加方法の覚書
既にOpenWrt に含まれている device と 同等構成の追加の場合は
以下の手順で可能
1. make target/linux/{clean,prepare}
途中menuconfig が開くので取得したいtargetを選択
終了すると build_dir 以下にkernel source が展開される
2.Device Tree Source を作成する
以下ディレクトリでdts を作成する
build_dir/target-arm_xxxxx/linux-xxxxx/linux-5.1X.xxx/arch/arm/boot/dts/
3.作成したdts から dtbを生成するようMakefileに追記する
上記ディレクトリのMakefile を編集
4. diff を取り、patch を作成する
cd build_dir/target-arm_xxxxx/linux-xxxxx/linux-5.XX.xxx/
diff -uprN /dev/null ./arch/arm/boot/dts/xxxxxx.dts > ~/dtspatch.patch
diff -uprN ./arch/arm/boot/dts/Makefile.org ./arch/arm/boot/dts/Makefile >> ~/dtspatch.patch
5. patch を target/linux/<target名>/patches-5.XX にコピーする
パッチ命名規則は以下参照
https://openwrt.org/docs/guide-developer/adding_new_device#patches
(quilt コマンドを使うと良い感じにやってくれるので慣れたらそちらで)
6. imageを生成するように.targetのMakefileに記述を追加する
target/linux/<target名>/image/Makefile
ここまででローカルbuild での新規device の image は生成可能になる
make menuconfig で6.で追加したdevice を選択し、
make -j 1 V=s clean download world でbuild すると最終的に以下ディレクトリに生成される
./bin/targets/<target名>/generic Device Tree についての覚書
Device Tree (DT) とは ハードウェア機種依存部分を定義した設定ファイルのこと
linux kernel や Driver が DT を参照することで様々なハードウェアをサポートできるようにしている
ソースコードの dts ファイルを 実機に読み込ませる形式の dtb にコンパイルして使用する
2022年現在では x86 以外のアーキテクチャのほとんどで使われている
(x86では 同等の役割を担うACPIがあるためあまり使われない) OpenWrt においての Device Tree の役割についての覚書
Luciに表示される機種名は dts の model = 行の記載内容
cpuクロック、数、メモリ容量、
LED、物理スイッチ・ボタン、USBや有線LAN・無線LANチップのコントロール用のレジスタなどが記載されている
既に同型SoCのサポートが存在している機種の場合は、
既存のdts を参考に実機に即した値を定義したdtsを作成すれば
比較的容易にOpenWrt image を作成できる 長々と連投しましたが、
OpenWrt の build system は
次々に投入されるSoC、毎年発売されるデバイスを効率よくサポートできるように
良く作られていると感心します
Luciの機種名の追加位ならC言語やハードウェアの知識がなくてもできてしまうので、
興味のある方はチャレンジしてみませんか? 【無線LAN】OpenWrt【強化ファーム】21
http://mao.5ch.net/test/read.cgi/network/1648991070/73-80
>78 さん
ありがとうございます。
状況を共有します。
WZR-1166DHP/DHP2 を OpenWrt でサポート追加するためには
Device Tree を追加しないといけないのですが、
OpenWrt の BCM5301X のメンテナ は Linux Kernel メンテナもしていて、
dts 追加パッチはupstream の Linux kernel 側に投げるように、との方針です
既に一度 DHP2用( = memory 256MiB) のdtsを追加するpatchを投げたのですが、
メンテナから修正を求められて対応をしているところです
LEDの定義を 従来の 記述方法から変えるように求められていて、ちょっと苦戦しています
うまくできたら image を共有しますので
78さんお手持ちの WZR-1166DHP でお試しいただければと思います >20
前スレ78
以下にWZR-1166DHP用にbuildした image を uploadしましたので、
1)動作可否 2)メモリ容量が正しく認識されているか 3)LED点灯動作
の3点を中心にご確認いただけないでしょうか
https://ux.getuploader.com/OpenWrt/download/14
お手数をおかけしますが、よろしくお願いします。 >21
BCM5301X の Linux Kernel メンテナの Florian Fainelli 氏からの指摘で、
DTSの LEDの定義を従来のWZRシリーズが使っていた方法から変更しています
label から function/color に変更しています
このため LED動作を心配しています
(元の記述はコメントアウトして残しています) >>21
インストールしてみました。
1)有線のネットワークは正しく動作しているように見えます。
2)メモリは512MBとして認識しています。
3)LEDについては定義されている >>21
3)定義されているLEDのON/OFFは正しく機能しているようです。
USB3.0が利用できる(lsusb -t)は確認しています。
gpioが定義されていないようなので、これは自分で作る感じですかね。 >>22-24
ありがとうございました!
>gpioが定義されていないようなので、これは自分で作る感じですかね。
ごめんなさい。このあたり詳しくなくて。。。
DTSのgpio定義はWZR-1750DHPの記述のまんまコピーなので
特に変えていないのですが、、、
今までこうだったものが、>21のimageではこうなっている、
という形で教えていただけないでしょうか >>25
こちらこそ、ありがとうございます。
物理スイッチの割当がgpioだと思いますが、そのままでは利用できなかったので1750のイメージと比較してみます。
スイッチは過去にAG300Hで利用したことがあるのですが、使い方含めすっかり忘れています。
1750でスイッチは使ったことがないので、もとから利用できないのかもしれません。 >>25
1750と比較しましたが、GPIOの定義は正しくできていました。
私が過去に使ったことのあるAG300Hと使い方が違うようで、スイッチのGPIOが定義できていないと勘違いしていました。
スイッチのGPIOを利用する手順がいくつかあるようですが、古い手順で正しく利用できることを確認しています。
ですので、私の確認できる範囲で作成されたdtsは問題ないと思います。 >>27
詳細なご確認、ありがとうございました!
まずはDTSのパッチを Linux Kernel ML に投げなおします パッチ投げ込んだのですが、メンテナの反応ないですね。。。
何かミスがあってスルーされているのか、単に後回しになっているだけなのか・・・ WZR-1166DHP/DHP2の場合はWZR-1750DHPらとDTBが違うだけなので、
imagebuilder のスクリプトを眺めて、DTBを差し替える方法がないか調べていました。
結果、以下方法でOpenWrt 21.02.3 の imagebuilder で
WZR-1166DHP/DHP2 の ファームウェアを生成できることがわかりました。
kernel自体は imagebuilder のままなので 公式の kmod pkg が使えます Imagebuilder には zImage が含まれているので
これをコピーした上で、WZR-1166DHP用のDTBを結合。
toolchain の lzma で展開して 中間ファイルとなるkernel.bin を作成
それを WZR-1750DHP 用の kernle.bin に差し替えることで
imagebuilder で WZR-1166DHP 用のファームウェアを生成する形です
種となるDTBファイルともう少し詳しい手順は以下にuploadしてあります
https://ux.getuploader.com/OpenWrt/download/15 仮に今投げているパッチがmergeされたとしても リリースバージョンとしてダウンロード可能になるのは
次々期 23.X 以降になるでしょう。
それまでの数年間の繋ぎとして、「公式リポジトリを使える非公式ファームウェア」として使えると見込んでいます >27-29
WZR-1166DHP,DHP2のDTSがようやくLinux Kernel に merge されました
https://github.com/Broadcom/stblinux/commits/devicetree/next
前提をクリアしたので 続けてOpenWrt 側にPRを投げようと思います >>12からの覚書でtarget追加できた。ありがとう 通信技術板のopenwrtスレって、なくなった?
検索しても出てこない。 普通に落ちたとかじゃなくて何か消えたんよな
NG4とか表示される 究極の食い物らしいのではあるけど
これがディーラークオリティなのかもなぁ
第一弾の時は飾らない純粋な表情が充分可愛いし、余計なことをするのに
どうしても不具合や使い勝手をチェックする部分はある 大浴場とか朝食バイキングとか
名前忘れたけど車はあったぞ ■ このスレッドは過去ログ倉庫に格納されています