人気ブログランキング | 話題のタグを見る


主人KuLuSの趣味Blog ★ PSP,エミュ,オンラインゲーム,PSO2NGS,パソコン,プログラム,Vtuber、Hololive、SNS,著作権,舞台,歌舞伎,音楽,DTP,DTM,マンガ、ラノベなどを戯言ってみる
by dengel
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
■ カテゴリ
全体
・ゲーム/PSO/PSU
・PSP/PSV/エミュ/ガジェット
・DTM/Audio/音楽
・小説/漫画/ラノベ
・舞台/歌舞伎/映画
・プログラム/NW
・PC/戯言/メモ
・iOS/Android
■ 検索
■ お気に入りブログ
すちゃらか統一ウオーズを...
ゲームパッド地下秘密
Dengel Wing
Invisible Ray
博麗幻想書譜
目撃者を探しています!平...
■ 以前の記事
2025年 08月
2025年 02月
2024年 12月
more...
■ 各種規約/設定
▼【AI】▼
■OpenAI:ChatGPT
■Google:Gemini
■Anthropic:Claude
■Infrection:Pi
■Microsoft:Copilot

▼【WEBメール】▼
■Gmail
■MSN Hotmail
■10min E-Mail (メーラー)

▼【CG/画像加工】▼
■Photoshop
■Pixlr
■Canva(AI画像)

▼【ストレージ】▼
■Gドライブ
■BOX
■OneDrive

▼【便利サービス】▼
■Google Keep (メモ)
■CoolText (タイトル生成)

▼【PSP関連】▼
■Emu on PSP
■PSPnfo
■QJ.net(DL)

▼【情報】▼
■連邦
■Impress
■Gigazine
■にがHP

 ● 素材拝借


▼タイトル画像▼
[www.SCX.hu]写真素材サイト
Richard Sweet photography 様
▼背景画像▼
Grayish Web 様
▼プロフィール画像▼
Bart Vermeersch 様
 ● 著作権利


このページで使用されている画像は(株)セガの許諾を得て、Windows用ゲーム『ファンタシースターオンライン ブルーバースト』および『ファンタシースターユニバース』よりキャプチャーしたものです。配布や再掲載は禁止されています。
(C) SEGA
■ 最新のトラックバック
■ その他のジャンル
■ ライフログ
■ ファン
■ 記事ランキング
■ ブログジャンル
■ 画像一覧
■ Cisco Meraki MR42 OpenWrt化 ■
  ::: 2024年 04月 07日 :::
■目的
 クラウド登録済みのMeraki MR42を入手したけど
 アカウント紐づいたままで、このままでは動作テストもできない。
 そのためOpenWrt化してクラウドレスで実験をしたい。

 Blogとしては、日本語で説明している方々のサイトを参考にするも
 全てが同じ動きをしていなかったので
 改めて自分が実施した手順を説明します。

 →2024.06.08追記
  Meraki MR42の3台目を入手しました。
  1台目は、OpenWrt化して動作テストへ。
  2台目は、実際のMerakiCloudで設定方法の勉強に使いました。
  3台目は、1台目と同じくOpenWrt化予定です。

  今回は手元にWindows11のLet's noteがあるので
  各所のLinuxでの1台目の経験を生かして
  Windowsで作業を実施してみたいと思いました。

 →WindowsでOpenwrt化
  結論から言うと、Pythonのスクリプトでコケました。
  TFTPも、ターミナルも、TeratermもWindowsで用意したのですが
  そもそも、Windows上ではpyserialを入れても、Python3を入れなおしてもダメでした。
  スクリプト内が複雑で解析できていないんですが、
  pythonの文字が出てから全く動かなかったです。

  結局、3台目も1台目の準備済みLinuxノートで実行したら
  全く問題なく動きましたので、記事を更新します。

■参考サイト

 ●OpenWrtの公式手順

 ●cisco Meraki MR42のOpenWrt化の手順

 ●Meraki MR42にOpenwrtをインストールする手順のメモ

■作業概要
 ・MR42とシリアル↔USBアダプタを結線
 ・PC側からスクリプトを流し込む
 ・MR42がTFTPからOpenWrtを自動インストール
 ・MR42側からアップデートして完了





■事前準備/物理
●Meraki MR42
 →背面のグレーのゴム足4つを外すとネジが見える。ネジを4つとも外す。
Cisco Meraki MR42 OpenWrt化_c0072228_21255702.jpg
 
→ヘラなどを使ってAPを殻割。爪を折らないように。
 →グレー面を外すと金属ボックスが見える。アンテナ線に注意。
 →金属の外周10個のネジ(長辺3x2、短辺2x2)を外して、金属ボックスを開ける
  →公式手順の写真がとても参考になるのでオススメ。
 →LANポートを右側に向けると、基盤上部に
  シリアルポートとなる4つの穴がある。
Cisco Meraki MR42 OpenWrt化_c0072228_21255856.jpg

 →穴は、一番右の「▼」が付いているのが3.3Vで使用しない。
 →「▼」から左に向かって1,2,3,4とし
  1-3.3v、2-TX、3-RX、4-GND
 →「1」は使わない
  「2-TX」はUSBアダプタの「RX」と接続
  「3-RX」はUSBアダプタの「TX」と接続
  「4-GND」はUSBアダプタの「GND」と接続
  →接続方法については、手抜きだとホールの金属縁に
   配線をガムテ等で止めるようですが
   自分は、電子部品用の4Pinヘッダをホールに半田付けしました。

   4ピン基板用ピンヘッダ

 →ピンホールとUSBアダプタをケーブルを接続してください。
  上記のように止め方は千差万別です。
  念のため、金属カバーと基盤の間にビニールを差し込んで
  接触しなようにだけ注意しています。(写真参照)

 ▼結線 参考写真
Cisco Meraki MR42 OpenWrt化_c0072228_15260834.jpg

●PC(自分はLinux:Ubuntu)
 ・Pythonがインストールできて、シリアル接続できて、
  TFTP立てられるのであればWindowsでもできそうです。
  ※残念ながら手持ちにWinノートPCが無かったのでLinuxでやりました。
   →ダメです。Windowsではスクリプトで止まってしまいました!!
    ※pyserialを入れたLinuxで動いているので、シリアル操作のあたりが
     Windowsと違うのかもしれません(予想)

●シリアル↔USB変換アダプタ
 ケーブルで「RX」「TX」「GND」を接続できるタイプなら何でもだけど
 ピン接続するので、なるべく剥き出し・わかりやすものが良いと思います。

 自分は失敗しても良いように以下の3つセット買いました。
 ※AP側ないしはアダプタ側の3.3Vを使うとアダプタが焼け故障します。

・HUB(自分は余ってたPoEハブ)
・LANケーブルx2
 →PC~APの直接続はクロスケーブルが必要な気がしたので
  PC~HUB~APと構成になるよう接続。

■事前準備/論理
●PC(Ubuntu)に「python3」「pyserial」「minicom」「tftp」をインストール

→コンソールを起動
→Linux(Ubuntu)にPython3 をインストール
 →「sudo apt-get install python3
 →Python3を入れたらPythonにpyserialをインストール
  →「pip install pyserial

→Linux(Ubuntu)にminicomをインストール
 →「sudo apt-get install minicom

→Linux(Ubuntu)にTFTPをインストール
 →「sudo apt-get install tftpd-hpa

※1:pyserialはpythonで入れるので、先にPythonが入っていること
   またインストールコマンドが pip になるので注意

※2:UART(シリアル)接続対応アプリは
   操作できるのであれば、どれでもOKです。
   自分は他の方が使っているのが分かりやすかったので
   そのまま「minicom」を入れました。

※3:TFTPは後述する「192.169.1.250/24」で
   TFTPサーバが立って、ファイルが置ければどんなソフトでもいいです。
   自分は1台で完結させる上に、インストール後の設定がほぼ無く
   ファイル置場のパスが分かりやすい「tftpd-hpa」を入れました。

●LANのインタフェースのアドレスを変更する
 →LANポートを「192.169.1.250/24」にする。
  →自分はデスクトップから、GUIでネットワーク→インタフェースで設定
  →IP:192.169.1.250
   サブネット:255.255.255.0
   デフォゲ:192.168.1.250
   DNS:なし

   ※ルート知っているのは自分のみと思ったので
    デフォゲは自身のポートにしました。
   ※Openwrtが入った後なら、デフォゲは 192.168.1.1でも大丈夫です。

●Openwrt公式からMR42用の「sysupgrade」イメージをダウンロード

 ※OpenWrtのサイトから(手順サイトではなく)最新版を落として実行した所
  ワイヤレス設定が出ないなど不具合が起きて失敗したので
  最新Verにするより、OpenWrt公式のアップデート方法が記載されている
  上記アドレスの確実なバージョンの方で成功しました。

●Githubページから以下3つのファイルをダウンロード
 ・mr42_u-boot.bin
 ・openwrt-ipq806x-generic-meraki_mr42-initramfs-fit-uImage.itb
 ・ubootwrite.py

●TFTPにファイルを置く
 →tftpd-hpaのデフォルトディレクトリは「/srv/tftp
  GUIで権限(パーミッション)を書き換えて、上記ディレクトリに
  「openwrt-ipq806x-generic-meraki_mr42-initramfs-fit-uImage.itb」を置く
  ※容量は8.66MBです。わざわざ書いたのは、GithubからDLしたら数回に1回しか成功せず
   数百KバイトでDLされる事があって失敗したのでメモします。

●「mr42_u-boot.bin」と「ubootwrite.py」を適当な作業ディレクトリに置く
 →自分は「makedir」コマンドで「/tmp/mr42」を作成し、
  mr42の中にファイルを置きました。

■接続テスト
●参考サイト様に則り接続試験を実施
→PCにUSBアダプタを接続
 →「ls -l /dev/ttyUSB* 」を実行
 →アダプタが「/dev/ttyUSB0」なのか別の名称か
  認識しているか確認
→PCからコンソールを起動
 →「sudo minicom -s」を実行
 →メニュー画面にて、「A」のデバイスが「/dev/ttyUSB0」を確認
  ※先のコマンド判明したUSBデバイスを選んでください。
  「F」の「ハードウェア制御:なし」になっているのを確認
 →「E」の速度が「115200」であることを確認
  ※自分の場合、テストでは「9600」で動いたけど
   本番では「115200」でした。

 参考:
 →「EXIT/終了」を選ぶと設定が終了してシリアル接続されます。
 →「Exit from Minicom」を選ぶと、Minicom自体が落ちて
  通常のコンソールになります。

→MR42の電源を入れます。
 →結線が正常で、Minicomの設定が正常なら、起動メッセージが表示されます。
  →されない場合:「結線」を確認、Minicomの「デバイス」と「速度」確認
   特にデバイス名は、使うLinuxディストリビュートやバージョンで
   異なったりするので、ttyUSB0なのか、ttyUSB1なのか、それ以外なのか
   コマンドで確認すること
  →自分は、「速度」が何度か食い違っており
   表示されない・文字化けする→速度を変える→表示される、でした。
→メッセージが表示されたら接続正常なので、MR42の電源を落とす。

■OpenWrt導入
●物理結線
 →「MR42~~~HUB~~~ノートPC」でLAN配線する。

●TFTPの起動
 →インストール時に起動している想定ですが、ファイルを置いたので
  念のためサービスの再起動をします。
 →「sudo service tftpd-hpa restart

●スクリプトとファイルを置いたディレクトリに移動
 →「ubootwrite.py」と「mr42_u-boot.bin」を置いたディレクトリに移動
 →自分は「cd /tmp/mr42

●スクリプトの実行
 →「sudo python3 ubootwrite.py --write=mr42_u-boot.bin
 →正常に実行されると、待機状態になる。

●MR42の起動
→MR42に電源を入れる。PoE(1台目)でもAC(3台目)でもOKです。
→正常に起動すると、シリアル転送のメッセージが表示される。
 →15分~20分くらい待つ(進捗が秒間0.3ぐらいずつ増える)

●実行完了→TFTP
 →スクリプトを実行後、正常であればそのまま自動で
  PCの有線側からアクセスしTFTPからイメージを自動取得して
  更新後に再起動される

●事後処理
 →再度Minicomを起動して、APに接続してから以下コマンドを順番に実行
 →「insmod mtd-rw i_want_a_brick=1
 →「mtd erase /dev/mtd8
 →「nandwrite -pam /dev/mtd8 /root/mr42_u-boot.mbn
 →実行後、以下メッセージが表示される事を確認
 Writing data to block 0 at offset 0x0
 Writing data to block 1 at offset 0x20000
 Writing data to block 2 at offset 0x40000

 ※この後は必ずイメージのflashまで完了させる事
  flash前にデバイスを再起動してはいけない。

●ボリューム削除(任意)
 →ファームの再利用する気がない場合、以下コマンドにて
  ストレージを少し空ける事が可能
 →「for i in diagnostic1 part.old storage part.safe ; do
 →「ubirmvol /dev/ubi0 -N $i
  →done
 
●Sysupgrade
 →正常にOpenWrtがインストールできていれば
  Luciが入っているので、結線そのままならブラウザから「192.168.1.1」でアクセス
 →ID「admin」、PASS「空白」 で行けます。
 →「System」→「Backup/Flash Firmware]を選択
 →「Flash new firmware image」の項目「Flash image」を選択
 →Sysupgradeファイルを選択
  「openwrt-ipq806x-generic-meraki_mr42-squashfs-sysupgrade.bin」を選択
 →「Upload」→「Continue
 →ファームウェアの更新が始まりMR42が再起動する
 
 ※参考

●上記でOpenWrt化完了
 ナレッジ
 ・公式説明でも、他の方でもそうですが、
  「Minicom」の使い方、「TFTP」の使い方が記載ないので
  知らない方は多少の勉強が必要です。

 ・MR42とUSBアダプタの3.3Vは繋げない事
  →自分は昨年間違えて繋ぎ、触れないほど熱くなって沈黙しました。

 ・結線はできるだけ確実に、ホールにケーブルつなぐ場合
  テープだけでなく、クリップや洗濯ばさみなど
  せめて圧着させる工夫の方が失敗が少ない

 ・Minicomは、接続に問題がなく
  基本設定が間違ってないなら、大抵は速度の変更で解決する。
  ※スクリプトが動かない、画面表示がされない、接続ができないケースは
   大体結線の接触不良です。
  ※次点で、画面が文字化けするなら、レートの問題か、結線不良です。

 ・Sysupgradeのファイルに注意
  →自分は最新のを入れたら失敗してLuciが消えてしまい
   CLIでLuciを手動インストールするもWifi設定が見つからず
   →再度、確実な世代前のSysupgradeを入れなおしたら
    Wifi設定できるようになりました。

●OpenWrtでWifi設定
・カントリーコードで、Japanを選択
・各アンテナに対してSSID等、Wifi設定を実施
※日本は電波法で出力が決まっているのでご注意ください。
 (そのためのカントリーコードJapanです)
※Wifi設定参考

・他の方も記載しているが、2.4Ghz帯、5GHz帯 1300Mbps ACの他
 「5GHz/ac/433Mbps」or「2.4GHz/n/300MHz」のアンテナ(1本)もあり
 OpenWrt化後は3つのアンテナ・Wifi設定ができます。
 →自分が確認した限りでは
  「Qualcomm Atheros QCA9990 802.11ac/n」
   →5GHz/1300Mbps
  「Qualcomm Atheros QCA9990 802.11b/g/n」
   →2.4GHz/600Mbps
  「Qualcomm Atheros QCA9887 802.11ac/b/g/n」
   →5GHz/433Mbps、2.4GHz/150MHz
  のようです。

■ひとりごと
 他の方も書いてますが、写真を見ても分かるように
 プラスチックのガワを外すと
 ごつい金属ケースに囲まれた基盤がでてきます。
 アンテナも樹脂で1つ1つ外れないように止められています。
 Buffalo等の家庭用とは一線を画す筐体クオリティです。

 非常に安定していて動きは良いです。
 数台のアクセスでは、別に家庭用と大差ないですが
 10台くらいのアクセスや、複数人で同時に動画を見る等
 負荷をかけた時に安定していたり

 電波も法律上は同じはずなのに、電波の強さや
 繋がりやすさを感じて、非常に良いものだと思っています。

 以上、実験終了です。

*2024.10.23追記
■OpenWrt化したMeraki MR42で5GHzの送信側リンク幅が40MHzから上がらない件
5GHzで40MHz以上にリンク上がらないバグがあるとの事。
80MHzに設定してもDL側が40MHzでしかリンクできない事を確認しました。
ただUL側は80MHzでアップしているので、すぐには気が付きませんでした。

ドライバ入れ替えると、リンクの表示はおかしいけど通信はできるとありますが
自分の場合、PCでもiPhoneでも、SSIDは表示されても接続できませんでした。

幸い電波強度などつながりやすさは折り紙つきなので
どう使うかはその人次第ですね。
自分は別のAPも混在して使っているので、サブ的な使い方や
メインPC・端末以外の機器をつなぐなどに切り替えようと思います。


by dengel | 2024-04-07 15:35 | ・プログラム/NW | Comments(0)