OpenWrt導入済みルータにUSBオーディオアダプタを介してスピーカ接続

OpenWrt導入済みルータTP-Link TL-WR703NにUSBオーディオアダプタを介してスピーカ接続

OpenWrt導入済みルータTP-Link TL-WR703NにUSBオーディオアダプタを介してスピーカ接続。LEDが眩しい。眩しすぎる

OpenWrt導入済みルータにUSBオーディオアダプタを介してスピーカを接続した。

…といっても “USB Audio Support [OpenWrt Wiki]” に従い、86cで購入したAdroit 2016 New USB 2.0 Virtual 7.1 Channel 3D Audio Sound Card Adapter For PC Laptop WIN 7 For Mac S6095 drop shipping on Aliexpress.com | Alibaba Groupと百均で買ったスピーカと組み合わせただけ。なので出費は合計200円ほど。

上記Wikiページに説明してあることに追加でしたことといえば、aplayコマンドが使えるようalisa-utilsパッケージをインストールしたことくらい。オーディオ出力デバイスはこれしかないので、特にデバイスを指定する必要もなく、機器を接続して再起動した後は普通にraw PCM音声ファイルがaplayコマンドで出力できた。その他 “SoundcardTesting – AlsaProject” も参照。

アクティブ・スピーカではないし、ヘッドフォン出力なので音量は決して十分ではない。が、ふだん静かにしている部屋で使うのなら使い物になるだろう。TL-WR703Nを「USB端子を持つLinux機」と捉えれば何も珍しくなかろうが、本来ポータブル・ルータであったということを思い出すと、こうやって音声出力ができることは不思議な気がする。

こんなことをしたのも、人が家に来たときにそれが家中でわかるようにするため。玄関のIPカメラのアラーム入力端子に接続された「呼び鈴」が押されると、それが「アラームサーバー」(その実態は上記TL-WR703N)に通知され(この辺の話は “OpenWrt BB rc3上のuhttpdのCGIが思うように動作しない” 参照)、それがさらに自分のスマホにSSH接続し、バイブ及び音で知らせるようになっている。一応それで実用にはなっているが、他人だけがうちにいるときにはその人は気づきようがない。そういう状況でもその人に気づいてもらえるようにしたい、というのが本来の動機。ただ、一旦そういうシステムが成立すれば、いわばローカルPAシステムのようなものなので、その他何か面白い使い方ができるかもしれない。

そうすると、ネットワーク越しに音を再生できるPulseAudio [OpenWrt Wiki]の導入なんかも考えることになるのかも。

USBオーディオアダプタがどれくらい待機時に電力消費しているのか興味持って調べてみた。20mA(5V)くらい。

USBオーディオアダプタがどれくらい待機時に電力消費しているのか興味持って調べてみた。20mA(5V)くらい。

追記:USBオーディオアダプタがどれくらい待機時に電力消費しているのか興味持って調べてみた。20mA(5V)くらい。

 

シリアル, TTL, RS-232, UART…等々

今後整理するとは思えないのでこのまま投稿。


今更ながら、だが、ずっと気になってたので。

RS-232 vs. TTL Serial Communication – SparkFun Electronics“そうか、電圧の違いか
Serial Console [OpenWrt Wiki]

Serial communication – Wikipedia, the free encyclopedia
RS-232 – Wikipedia, the free encyclopedia
RS-485 – Wikipedia, the free encyclopedia
UART – Wikipedia” “Universal asynchronous receiver/transmitter – Wikipedia, the free encyclopedia

Serial Console [OpenWrt Wiki]

Lincomatic’s DIY Blog | electronics, 3d printing, hacking, etc

UARTによるデータ通信で気をつけること | hiro345

怪しいけどベンリなUSB-シリアル変換ツール | mixture-art@Q

Serial HOWTO
Serial Programming HOWTO

command line – How to connect to a serial port as simple as using SSH? – Unix & Linux Stack Exchange” “Screen User’s Manual

Fonera Simpl Hacking – Hot Tuna Labs“ではプルアップ抵抗を入れているが、”【Fonera FON2405e でカスタムファームウェア導入】:Royal Windows:So-net blog“では入れていない。しかしコメントでは入れているという人がいる。ピンヘッダの取り付けについては”【Fonera FON2305E で、カスタムファームウェア導入】:Royal Windows:So-net blog“の方に。

【FON2305e/2405e のカスタムファームウェアのカーネルコンパイル】:Royal Windows:So-net blog“ Hot Tune Labsに更に手を入れたファームウェア

今さら聞けないハンダ付けの仕方 – N.Kojima

プルアップ抵抗 – Wikipedia
プルアップ ‐ 通信用語の基礎知識

 

OpenWrt搭載デバイスに外部USBメモリで記憶容量を増やす

かつて携帯電話で使われていたであろうmicro SDカードをUSB 2.0アダプタを介してしつこく利用

かつて携帯電話で使われていたであろうmicro SDカードをUSB 2.0アダプタを介してしつこく利用

OpenWrt搭載デバイスに外部USBメモリで記憶容量を増やす方法。もちろん “Rootfs on External Storage (extroot) [OpenWrt Wiki]” を見れば必要な情報は全て得られるのだが、OpenWrtのWikiではコマンドラインでやるように指示があるところがWeb管理インタフェースLuCIで簡単に済ませられるようになっているところがある。ここでは極力LuCIでの操作で済ませ、コマンドラインでの操作は最低限にする手順を示す。OpenWrtのバージョンは15、すなわちChaos Calmerが前提。

USB micro SDカードアダプタを挿してもさほどでっぱりのないNexx WT3020F

USB micro SDカードアダプタを挿してもさほどでっぱりのないNexx WT3020F。テプラが大活躍。

一旦操作不能状態に陥っていながらなんとか復活させたポータブル無線LANルータNexx WT3020Fで実際に自分がやった手順だが、同じくOpenWrt化したバッファロー無線LANルーターWZR-HP-AG300Hでもつつがなく再現できるように記録しておくのがこの記事の最大の目的だったりする。WT3020Fについては、記憶容量追加はついでにやるのに過ぎない。以前携帯電話で使っていたのであろう128MBのmicro SDカードがあったので、2015年初頭に97¢で購入した(現在78¢)USB 2.0 micro SDカードアダプタを使って有効利用したいだけ。このような用途でもなければもはや容量わずか128MBのmicro SDカードなど利用しようがない。WZR-HP-AG300Hについては先日85¢で購入した(現在$1.04)同様のmicro SDカードアダプタ(ただしこちらはSDXCカードにも対応)を128MBのmicro SDカードと併用するつもり。現在特に計画はないが、WT3020Fに比較してよりパワフルなWZR-HP-AG300Hでは何か面白いことができるかもしれない。

前置きが長くなったが具体的手順は以下の通り。

  1. Extroot導入前の空き容量

    Extroot導入前の空き容量

    USBメモリはLinux機でext4などでフォーマット。今回はしなかったが、スワップを別途用意するならパーティションを切る。パーティションを切った場合以下の話のデバイスファイル名が変わってくるので注意。

  2. 後で容量が増えたことが簡単に確認できるよう、OpenWrt機のLuCIで System -> Software で空き容量を見ておく(図)。
  3. そのUSBメモリを挿した上で再起動したOpenWrt機にSSHでログインしコマンド・プロンプトで以下を実行(パーティションを切った場合は/dev/sdaではなく/dev/sda1などとなるので適宜読み替えること):
    # opkg update; opkg install block-mount kmod-fs-ext4 kmod-usb-storage-extras
    # mount /dev/sda /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt
  4. 再起動。
  5. LuCIにて System -> Mount Points のMount Pointsの項を見ると “UUID:….” という項目ができているはずなので、それの Edit ボタンを押して図にあるような変更をし、Save & Apply ボタンを押す。念のため再起動。

    Mount Entryの設定

    Mount Entryの設定

  6. LuCIで System -> Mount Points のページで /dev/sda が /overlay にマウントされていることを確認(図)。さらに、 System -> Software で空き容量が増えていることを確認(図)。
    マウントが意図したようにされていることを確認

    マウントが意図したようにされていることを確認

    Extroot導入後ストレージ容量が増えていることを確認

    Extroot導入後ストレージ容量が増えていることを確認

  7. 超大容量化に成功したこの自分の偉業にしばし感激に浸る。

以上。以前同様のことをしてそこそこ苦労した記憶があるが、LuCIで大半の作業ができるようになったこともあり、楽ちんになった。

スワップについては、今回WT3020では設定しなかった。WZR-HP-AG300Hについてはやっておく価値があるかも。

また、今回はパーティションを切らなかったが、後々考えてみると切って別途データ領域を用意するのは賢明なことだったかもしれない。OpenWrtはシステムのアップグレードをする際、何もしないと管理者による設定等は保存されない。それでも一応その方法はあるにはある。しかしopkgパッケージ・マネジャーを使用せずに、完全に自力でインストールしたアプリケーションについては、管理者にバックアップとリストアが委ねられる。ならば、そういったものはUSBメモリ上の専用領域にインストールするようにしておけば、OpenWrtのシステムアップグレード後、必要があればリンクを張り直すだけで回復できるはず。そのアプリケーションがOpenWrtの更新に耐えられることが条件だが。

ちなみに、OpenWrt上のテキストエディタとしてEmacsクローンのzileを使っているが、ターミナル情報が不足して動作しない場合はterminfoパッケージをインストールすると使えるようになる。

先日購入したUSB 2.0 Micro SD/SDXCカードリーダ。85¢。以前のものよりさらに小型化されてる。なくしそう…。

先日購入したUSB 2.0 Micro SD/SDXCカードリーダ。85¢。以前のものよりさらに小型化されてる。なくしそう…。

追記: 上記の先日85¢で購入した(現在$1.04)同様のmicro SDカードアダプタ(ただしこちらはSDXCカードにも対応)が到着した。上のアダプタより更に小型化している。

ポータブル無線LANルータNexx WT3020Fを復活させた

ダイソーで購入した糸ハンダ

ダイソーで購入した糸ハンダ

うかつなことにポータブル無線LANルータNexx WT3020Fを使えなくしてしまったが、なんとか復活させた。

自力でシリアル接続がどうしてもできなかった。ダイソーで糸ハンダ(写真)を購入し、”ハンダ付け職人のはんだ付け講座 無料“なんかを参照しながら、父が残していったハンダゴテでハンダづけを試みるものも無残に失敗。ついに自力での解決を諦めて、人に助力を求め、単に導線を端子に押し付けるようしてもらっただけで、あっけないほど簡単にシリアル通信成立。 “Howto flash OpenWrt on Nexx WT3020” を参照してファームウェアの書き換えに成功。

さて、ブートローダーをU-BootからBreedなるものに置き換えておけば今後再度しくじったときのリカバリーが簡単だというので、それもインストールしようとした。”Nexx WT3020 [OpenWrt Wiki]“に説明があるが、mtd_writeコマンドが見当たらない。mtd OpenWrt packageで代用できるだろうと思ったが、

root@OpenWrt:/tmp# mtd unlock mtd0
Could not open mtd device: mtd0
Could not open mtd device: mtd0

…となってうまくいかない。そういえば、上記Wikiでも”Uboot can be flashed like this (only if mtd0 is writable, on stock it’s possible, on openwrt mtd0 is usually read-only in dts)”と但し書きがあるので、それが理由なのだろう。

Howto flash OpenWrt on Nexx WT3020” でU-Bootからブートローダーの書き換えができることはわかっていたので、再度シリアル接続をして、U-Bootに提示されるメニューで9を選び以下をインストール。

http://breed.hackpascal.net/breed-mt7620-reset1.bin

Breedブートローダーについては英語や日本語でのまとまった説明文書がないのが残念だが、以下の文章が参考になる。

利用者としては、リセットボタンを押しながらWT3020を起動すると

  • telnet 192.168.1.1、ないし
  • ブラウザでhttp://192.168.1.1をアクセス

でBreedにアクセスでき、そこで必要ならファームウェアの書き換えなどができる、というところが非常にありがたい。つまり、今後OpenWrtの設定でしくじっても、殻割りしてシリアル接続する必要はもうない、ということ。ちなみに、この際LEDが消灯状態になるので動作しているのか不安になるが、ちゃんと動作している。

オープンソースソフトウェアではないので、中で悪さをしていないかは心配だが…。

追記:Nexx WT3020 U-boot mod? (Page 1) — Hardware Hacking — OpenWrt“を見るとBreedブートローダーなどについてよくわかる。どうも他の人のOSSコードをクレジットもなくぱちって作られたようだ、ということや、そのくせ自分のコードはオープンにしていない、ということは気になる。それでもBreedブートローダーを利用するのであれば、Nexx WT3020購入後、ストックファームウェアの状態でBreedブートローダーをインストールし(この時点ではmtd0に書込み可能なので)、次にそれを利用してOpenWrtをインストールする、というのがもっとも楽ちんな手順なようだ。

ポータブル無線LANルータNexx WT3020Fを使えなくしてしまった

Ethernetポートからアクセスできなくなってしまったので原始的方法で結線してシリアル接続しようとしたがうまくいかない

Ethernetポートからアクセスできなくなってしまったので原始的方法で結線してシリアル接続しようとしたがうまくいかない

OpenWrt化済みバッファロー無線LANルーターWZR-HP-AG300Hのブリッジ運用法を開始した。それにあたって、それを理解する上で必要なVLANについても少しばかし勉強した

ここで欲を出してしまった。以前、WANポート1つ・LANポート1つ・USB 2.0ポート1つのポータブル無線LANルータNexx WT3020Fを入手し、これにOpenWrtをインストールしたものの、ブリッジとして使うための設定をどうしてよいかわからず、ほっぽりっぱなしにしていた。本来の自宅内LANの整理計画では考えてなかったが、せっかくOpenWrtでのブリッジの設定のしかたもわかった(…とそのときは思った)ことだし、ついでにこいつも片付けとくか…。”Nexx WT3020 [OpenWrt Wiki]“を見て確認した上で以下の最新の安定版をインストールし作業にかかった。

https://downloads.openwrt.org/snapshots/trunk/ramips/mt7620/openwrt-ramips-mt7620-wt3020-8M-squashfs-sysupgrade.bin

が、簡単だとたかをくくっていたブリッジ設定はそうではなかった。後で詳しく述べるが、eth0とeth1からなる簡単な構成なのだろうと思っていたら、物理イーサーネットポートは1つ(etho0)で、内部的にスイッチがあり、LAN用とWAN用に別々にVLANを形成していた(eth0.1とeth0.2)。

ここで他の人がやっているように単にそのeth0.1とeth0.2を単にブリッジするだけで基本目的は達成されたのだと思うが、「Dumb AP / Access Point Only [OpenWrt Wiki]” の “For devices with switch only, e.g. WRT54GL“の項に相当するのでは、ならもっと簡略にできるんじゃ」、とVLAN機能を切って(それでも存在するデフォルトの)VLAN #1だけでやろうとしたのが運の尽き。理由が今となってはわからないがイーサーネットポート経由では全くアクセスできなくなってしまった。

しかし、OpenWrtにはありがたーいFailsafe機能が組み込まれており、設定でしくじってもこれでたいがいの場合復旧が可能。FailSafeモードで立ち上がったなら、telnet 192.168.1.1でログインした上で、Wiping JFFS2 file system (‘Factory reset’ to default config)にしたがってそれまでの設定のリセットも可能。逆にいうと、FailSafeモードで立ち上がったときには、暫定的にイーサーネットポートを介してルーターにアクセスできるようになっているだけで、それまでの設定はそのまま残っている。ハードウェアボタンでオールリセットできる仕様になっていればありがたかったが…。

ところが、今回はそのFailSafeモードすら利用できなくなった。正確には、FailSafeモードで立ち上がってはいるのだが、イーサーネットポートが然るべき設定になってないようで、ポート自身が生きてないような感じ。おそらくは”#18768 (Nexx WT3020 Failsafe does not work) – OpenWrt“が関係しているのではないかと。つまり、VLAN機能を切ってしまったのが仇になった模様。パッチは存在するがChaos Calmerには適用されてないという。

何かあってもFailSafeモードが使えると思っていたので慎重さを欠いたが、後になって考えると、それに頼り切らず、自分の設定がうまくいかなくても何らかの他の手段でルーターをアクセスできる手段を可能なら残しておくべきであった。例えば今回Wifiの設定はまだしていなかった。OpenWrtのインストール直後はwifiは無効化されているからだ。だが、もしwifiをlanとブリッジせず、独自にアクセスできるようにしておけば、Ethernetポート経由でのアクセスが不可能になってもwifiでアクセスできたはずだ。

また、”Nexx WT3020 [OpenWrt Wiki]“に記載があるBreedブートローダーについては詳細がパッとわからなかったので特にインストールしなかったが、”adventures in console window: Uboot alternative – Breed.“によればWebインターフェースを持つU-Boot亜種のようだ←独自ブートローダーのようだ。インンストールしておけばよかった…。以下Breedを使ったファームウェアのインストールの様子。

残る手はボード上に出ているUART端子を利用してシリアル接続し、U-Bootブートローダーに指示してTFTPでファームウェアを送り込んで焼かせるしかない。”Howto flash OpenWrt on Nexx WT3020” にシリアル接続のしかたが出ている(特に重要なのはTx, Rx, GNDの位置を示す図)ので、それを参照にしつつ本稿最初にある写真のように、USB TTLアダプタ(多分6Pin USB 2.0 to TTL UART Module Serial Converter CP2102 STC Replace Ft232 Moduleと同型)を利用してシリアル接続を試みてみたが、うまくいかなかった。はんだ付けのスキルはないので、テープで固定でなんとかならないかと思ったが、そうは問屋がおろさなかった。

なお、結局シリアル接続に成功してないので、確かなことは言えないが、このUSB TTLアダプタについては、”Serial Cables [OpenWrt Wiki]“にある以下の記載が当てはまるんじゃないかと思った。

Please note that some USB serial adapters (The CP2102-based one in the Amazon link above, for example) have the RX and TX connectors labelled according to what you should connect them to, not what they actually do. If connecting TX → RX and RX → TX doesn’t work for you, try switching to TX → TX and RX → RX.

↑が当てはまらないことが確認できた。

なお、OpenWrtのNexx WT3020用デフォルト設定はOpenWrtのWikiに記載されているが、より見やすいLuCIでの画面キャプチャを以下に載せておく。

Nexx WT3020FにOpenWrtをインストールした直後のスイッチにVLAN

Nexx WT3020FにOpenWrtをインストールした直後のスイッチにVLANが2つ用意されている

 

LANはVLANの1を含む

LANはVLANの1を含む

WANはVLANの2を含む

WANはVLANの2を含む

追記: その後人に手伝ってもらい無事回復させることができた


以下はNexx WT3020を購入した頃に書き着替えてた記事のドラフト。もう完成させることはないがそのまま載せておく。OpenWrtについては今回インストールした最新版についての話ではないのでそこは要注意。

[古記事]玄関やトイレにWifi電波が届くよう、ブリッジ接続でプラネックス製ちびファイMZK-RP150Nを設置 | あくまで暫定措置としてのブログ

プラネックス製ちびファイMZK-RP150Nのファーム置き換えたが多分それは失敗 | あくまで暫定措置としてのブログ

どうしようか迷った。うちは鉄筋コンクリート造りなのでwifi電波が思うように透過してくれない。これは変わらぬ事実。しかし、自分が使うスマホ(や父が使ってたスマホ)については、最近のものは2010年頃製のものと比較すると言うまでもなくいろんな面で進化している。その一つの改善点として、wifi電波の感度もよくなっている気がする。したがって、以前使っていたスマホならwifi接続が間違いなく切れていたような場所でも、今使っているものならかろうじて繋がり続けていることが多い。「ほとんど切れない」では不十分で、必ず常時繋がってもらわなければ困る監視用IPカメラ2台については、いろいろ工夫したが結局は有線で繋げておりもはやwifi電波が到達する・しないは問題ではない。

もちろん接続スピードが速いのに越したことはない。5GHzがサポートされていればよいし、11acがサポートされているのもよい。が、自分の経験上、後でつぶしがきくという意味ではUSBポートが用意されていることの方がずっと重要。

ところが、日本のこの手の製品にはUSB端子を持つものが見当たらない。

Nexx WT3020 [OpenWrt Wiki]

[Old] Running OpenWRT on TL-WR703N | あくまで暫定措置としてのブログ
TP-Link TL-WR703N [OpenWrt Wiki]よりスペックは上

ちなみに、いくつか亜種があるが、WT3020AだけUSBポートがなく(他はある)、フラッシュメモリも4MBしかない(他は8MB)のでこれだけ避ける必要がある。

USB 3GモデムをサポートするというWT3020Fを$15.97で注文。

オリジナルファームウェアでもtelnetできる

OpenWrtをインストールするなら既にバイナリが用意されているが、インストール後telnetできないというバグがあるとかないとか。もしインストールするならそれが解消されてからのほうが無難。”nWorld: WT3020HをOpenWrt化してみた。“によるとOnionWrt.linkにある2014年10月22日づけのバイナリでは問題がないようだ。”nWorld: WT3020のUSB速度低下問題

他のファームウェアNexx WT3020 U-boot mod? (Page 1) — Hardware Hacking — OpenWrt” オリジナルファームウェアも掲載

古いモデル【上海問屋】通販サイト | 【メール便配送(送料216円)対象商品です】 Wi-Fi 無線LAN ルーター : NAS機能搭載 11n/g/b 150Mbps対応 手のひらに収まるコンパクト設計 小型 wifi ルーター 上海問屋 DN-84749 [エコ] [メ02] 税込み1,999円 Wi-Fi 無線LAN ルーター 11n/g/b 300Mbps対応 コンパクト wifi ルーター 上海問屋 DN-11042 [エコ]の通信販売【上海問屋】 | 上海問屋 税込み2,199円

写真を見るとanonaboxもハードウェアはNexx WT3020を使っている模様。”nWorld: WT3020にTorを入れてanonabox化してみた。“で実際

192.168.8.1 ユーザネーム、パスワード共admin 最初からUI言語が英語になっていたのはよかった

パッケージリストがアップデートできない。リポジトリのURLが変更されてしまったからのようで、どうせならファームウェアをアップグレードすることに。https://downloads.openwrt.org/snapshots/trunk/ramips/mt7620/

 

root@OpenWrt:~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                    4800      1268      3532  26% /
/dev/root                 2048      2048         0 100% /rom
tmpfs                    30676       460     30216   1% /tmp
/dev/mtdblock6            4800      1268      3532  26% /overlay
overlayfs:/overlay        4800      1268      3532  26% /
tmpfs                      512         0       512   0% /dev
root@OpenWrt:~# df -h

#17299 (mount as overlay storage for block-extroot does not work) – OpenWrt“にあるようにSDカードが/overlayにマウントされるようにしてもうまくいかない。おそらく、それ以前に/dev/mtdblock6がそこにマウントされてしまうからだろう。

#18795 (pivot_root / pivot_overlay not working on chaos calmer r44053) – OpenWrt“にあるように強制的に/etc/mtblock6のマウント・ポイントを変える方法もあるのだろうが、”Rootfs on External Storage (extroot) [OpenWrt Wiki]“にある

  • Another possibility to consider and try is to include in /etc/rc.local the commands: export PREINIT = 1;mount_root, as described in 14946 ticket, which in the case of running Chaos Calmer r44266 in the Comtrend AR-5387un, has been the only thing that allowed me to achieve extroot.

がこれもだめ。

Bridged AP [OpenWrt Wiki]

Dumb AP / Access Point Only [OpenWrt Wiki]

TL-WR1043ND: Convert WAN Port into 5th LAN port (Page 1) — Community Documentation — OpenWrt

Dumb AP / Access Point Only [OpenWrt Wiki]

Network configuration [OpenWrt Wiki]

IPカメラが壊れたかと思った

ACアダプタを取り替えた後無事動作を再開したIPカメラ

ACアダプタを取り替えた後無事動作を再開したIPカメラ

台所に設置してたIPカメラが突然動作しなくなった。動いたの3年くらいか?アラーム入出力端子つきのもので、ビデオ監視よりも、大阪ガスの煙・ガス不完全燃焼探知機ぴこぴこの同報機能で通知を受け取り、それを電子メールなどで自分や父に通知できることが主たる目的だった。父がまだ存命中に設置したもので、ゆくゆくは不用意な彼がコンロの火をつけっぱなしにしたりしたら、それを画像処理で検知できるようにしたいなどと思っていたが、それは企画倒れに終わった。彼が脳梗塞を起こしてここには住まなくなったので。

今ある知識では、その目的のためにアラーム入出力端子を持つIPカメラを利用するという手段がある、というのはほぼ自明なのだが、最終的にこれに到達するまでには何気に手間隙かかってる。LAN接続するのさえ、今は結局ここまでずるずるEthernetケーブル(UTPケーブル)を引っ張ってきて有線で接続しているので安定しているが、当初はwifiで接続しようとし、しかし鉄筋コンクリートづくりのこの家では思うようにwifi電波が通らず、それだけでも頭痛の種だった。そうやって苦労して曲がりなりにも1つの解に到達したら、もうそのことは忘れてしまいたい。なのにまた手をかけなければいけないのかと考えると正直気分が滅入った。

が、ふと、ひょっとしてイカれたのはIPカメラ本体ではなくてACアダプタの方では、と思い取り替えてみたら…動作した!しかし!「新しい」ACアダプタは実は、かつて一人暮らしのおばのみまもりが娘がしやすいようにと用意した他のIPカメラに付属していたものだった。しかも今回壊れたのと同型。

さらに、この「新しい」ACアダプタも、既に壊れたと思って代替品を用意したものだった。新たに単品で入手した新しいものではなく、置き換えられた、少なくとも当時は故障していると思っていたものだ。

なんともはや、そんな経緯があったので結果として「古い」ACアダプタの代替品が手元にあった。ただ、今は一応使えている「新しい」ACアダプタも、「古い」のとおそらく同型であるので同様にいずれ壊れてしまうかもしれない。なにしろ、既に一度は壊れたと判断したものだったのわけだし。

OpenWrt化済みバッファロー無線LANルーターWZR-HP-AG300Hのブリッジ運用法の改善

OpenWrt化済みバッファロー無線LANルーターWZR-HP-AG300Hブリッジとして運用し始めたものの、どうもすっきりしないところがあった。

OpenWrt Wikiの

Buffalo WZR-HP-AG300H [OpenWrt Wiki]” の “Network Port Assignments” の項に掲載されている内部構成図

基本以下のようにしていた。

  • eth0、eth1とWNICをブリッジ、
  • ポート0–4をVLAN #1として定義

ポート0は内部ポートでeth0とつながっているため、結局これら全部にまたがってブリッジが形成され、思うような挙動をしてくれたのだと思う。だが、ブリッジの設定でeth0ではなくVLAN #1であるeth0.1を直接指定することもできたので、そちらの方がeth0とするよりいいのか悪いのか疑問に思った。

多少は自分でも勉強し、以下の資料にもあった結果、それで問題ないのだろうと結論づけた。ただ、その方がパフォーマンス的に有利であるとか、不利であるとか、無関係である、とかいうことについてはわからない。

その結論に基づくLuCIによる設定画面が以下の通り:

‘lan”のブリッジに’eth0’ではなくVLANの’eth0.1’を加える

VLAN機能はオフにしてもデフォルトのVLAN #1はあるということがわかったので、VLANについては安心して以下のようにした(ただし、VLANはうかつにオフにしてはならないということを後で思い知ることになる)。

TagするならCPUのポートでは?

TagするならCPUのポートでは?

CPUのポート0についてはtaggedにする必要はないと思うんだが、つけても問題なかろうか、と。つけないほうがパフォーマンス的にはよいのかな?

とにもかくにも、以上の設定で得られた/etc/config/networkの内容は以下の通り。

root@OpenWrt:/etc/config# cat network

config interface 'loopback'
 option ifname 'lo'
 option proto 'static'
 option ipaddr '127.0.0.1'
 option netmask '255.0.0.0'

config globals 'globals'
 option ula_prefix 'fd3c:bbab:4f3b::/48'

config interface 'lan'
 option force_link '1'
 option type 'bridge'
 option proto 'static'
 option netmask '255.255.255.0'
 option ip6assign '60'
 option gateway '192.168.11.1'
 option broadcast '192.168.11.255'
 option dns '192.168.11.2'
 option _orig_ifname 'eth0 wlan0 wlan1'
 option _orig_bridge 'true'
 option ipaddr '192.168.11.11'
 option ifname 'eth0.1 eth1'

config switch
 option name 'switch0'
 option reset '1'
 option mirror_source_port '0'
 option mirror_monitor_port '0'

config switch_vlan
 option device 'switch0'
 option vlan '1'
 option vid '1'
 option ports '0t 1 2 3 4'

 

Just Some Personal Notes on VLANs

Just some personal notes on VLANs…

First, refreshing my memory on the basics…

  • Hubs & Repeaters” Hubs=repeaters. Operate at OSI Layer 1 (Physical Layer). “Switches create separate collision domains but not broadcast domains. Routers create separate broadcast and collision domains. Hubs are too simple to do either, can’t create separate collision or broadcast domain.”
  • Switches & Bridges” Operate at OSI Layer2 (Datalink Layer). Spanning-Tree Protocol (STP) for loop avoidance. Switches are hardware based while bridges are software based.
  • Routing

Virtual LAN – Wikipedia

VLANs operate at Layer 2 (the data link layer) of the OSI model. Administrators often configure a VLAN to map directly to an IP network, or subnet, which gives the appearance of involving Layer 3 (the network layer). In the context of VLANs, the term “trunk” denotes a network link carrying multiple VLANs, which are identified by labels (or “tags”) inserted into their packets. Such trunks must run between “tagged ports” of VLAN-aware devices, so they are often switch-to-switch or switch-to-router links rather than links to hosts. (Note that the term ‘trunk’ is also used for what Cisco calls “channels” : Link Aggregation or Port Trunking). A router (Layer 3 device) serves as the backbone for network traffic going across different VLANs.

A basic switch not configured for VLANs has VLAN functionality disabled or permanently enabled with a default VLAN that contains all ports on the device as members.[2] The default VLAN typically has an ID of 1. Every device connected to one of its ports can send packets to any of the others. Separating ports by VLAN groups separates their traffic very much like connecting each group using a distinct switch for each group.

It is only when the VLAN port group is to extend to another device that tagging is used. Since communications between ports on two different switches travel via the uplink ports of each switch involved, every VLAN containing such ports must also contain the uplink port of each switch involved, and these ports must be tagged.

The second paragraph answers the question I had earlier: why does my wifi router WZR-HP-AG300H has one VLAN even when I turn off its VLAN functionality?

It also touches upon the practical consideration while managing VLANs, which I learned the hard way… It’s critical to secure a way to access your router even when the changes you are going to have take effect do not have the intended consequences.

Management of the switch requires that the administrative functions be associated with one or more of the configured VLANs. If the default VLAN were deleted or renumbered without first moving the management connection to a different VLAN, it is possible for the administrator to be locked out of the switch configuration, normally requiring physical access to the switch to regain management by either a forced clearing of the device configuration (possibly to the factory default), or by connecting through a console port or similar means of direct management.

VLAN Basics – Thomas-Krenn-Wiki

InterVLAN Routing – Routing between VLAN Networks

今さら聞けない「VLANの基本」 (4) VLAN間ルーティング | マイナビニュース

Quick Charge 2.0/3.0に対応する巻取り式USB充電ケーブル…を買わなかった

ダイソーだかで買った巻取り式USBケーブルで9Vでの充電ができている

ダイソーだかで買った巻取り式USBケーブルで9Vでの充電ができている

現在のメイン端末Au版Galaxy S5 SCL23を入手してちょうど2年になる。使い始めた当初は起きている間中は電池がもってとても嬉しかったのだが、さすがに電池がヘタってきたのかそうはいかなくなり、就寝時以外にも1日のどこかで1度は充電が必要になった。Galaxy S5はQuick Charge 2.0に対応しているので、手っ取り早く充電できるようQuick Charge 3.0対応USB AC充電器を入手した。この後にも他のモデルを入手した。

充電ケーブルは原則デバイスに付属したものを使うべきなんだろうが、巻取り式のものの利便性は捨てがたい。どうせ安物ではQuick Charge 2.0/3.0に対応してないだろうから、と下線以下のリサーチを始めたところで、ふと、ところでダイソーだかで買った巻取り式USBケーブルはどうだろう、とUSB電流電圧テスターで計測してみると…おや、しっかり約9V/1.5A出てる…(写真)。

2A出力の急速充電対応をうたう充電ケーブル(ただしQuick Charge対応という意味ではない)で計測すると5Vしか出なかったりしたので、てっきり、Quick Charge 2.0での充電ができるためには充電ケーブルを選ぶ(これ自身は正しい)→特に線の細い百均の巻取り式ケーブルが使えるはずがない、と思い込んでいたが、誤りだったようで。USB電流電圧テスターが到着したときにいくつかのケーブルでテストしていたのだが、そのときも百均の巻取り式ケーブルは当然ダメだろうと思ってテストすらしなかったのでこんなことになった。愚かだ。

新たに注文する前に気づいただけ不幸中の幸い。


エレコム microUSBケーブル USB2.0 0.7m 2A出力 巻き取り 通信 充電対応 0.7m ホワイト ニンテンドークラシックミニ対応 MPA-AMBR2U07WHは、以下のレビューがあるのでOKのよう。1つだけなので心もとないが…。

オウルテック 急速充電専用ケーブル 1m巻取り ホワイト microUSB 2.4A出力対応 Galaxy/Xperia等スマートフォン タブレットPC対応 OWL-CBRJ(W)-SP/U2ATは以下のレビューがあるのでダメだろう。断線した、というレビューも多くいずれにせよ避けたろうとは思うが。

OpenWrt化済みバッファロー無線LANルーターWZR-HP-AG300Hをブリッジとして運用

バッファロー無線LANルーターWZR-HP-AG300H

バッファロー無線LANルーターWZR-HP-AG300H

OpenWrt化済みバッファロー無線LANルーターWZR-HP-AG300Hをブリッジとして運用する。オリジナルファームウェアでは筐体背面のスイッチでブリッジを選択すると、それだけでブリッジとして動作してくれた(はず)。OpenWrtでは同じステップで同じ効果は得られず、本来のWANポートはやはりWANポートとして動作するままだった。なので自分で設定しなければならない。そうだ、そういえばこの手間を省きたいがために最初はOpenWrtではなくバッファローの公式ファームウェアの元になっているDD-WRTを載せようと考えたのだったよ…

WANポートも実質LANポートとして動作して欲しい。それだけ有線で繋ぎたい機器があるからだ。 “自宅内LANの整理”プランのステップ6で「WZR-HP-AG300Hがブリッジとして動作するよう設定を施してから、それで1階のWG1200HSを置き換える」としているのもそれが理由。WZR-HP-AG300HがWANポート1+LANポート4で合計5ポートあるのに対して、WG1200HSはWANポート1+LANポート3で合計4ポートしかないからだ。その余分の1ポートはChromecast 2015を有線接続するのに使う可能性が現在高い。

さて、Buffalo WZR-HP-AG300H [OpenWrt Wiki]” の “Network Port Assignments” の項にある以下の構成図を念頭に考えていく。


資料として以下を参考にしたが、決してよくわかったとは言えない。

ブリッジを実現するためのOpenWrt上の設定(一部)

ブリッジを実現するためのOpenWrt上の設定(一部)

後でもう少し勉強してみた

結論としては以下のようにすればよさそうだ(以下全てOpenWrtのLuCI Web管理システム上での操作を前提):

  1. Network -> Wifiでwifiインターフェースを適切に設定し有効化。
  2. Network -> InterfacesでWAN, WAN6インターフェースは削除。
  3. 同じページでLANインターフェースの編集(”Edit”ボタン)。
    • “General Setup”タブでLAN側アドレスの設定や、必要ならばDHCPサーバーを無効化するなどする。
    • “Physical Settings”タブでブリッジ設定。LAN側インタフェースeth0やwifiインタフェースだけでなく、本来WAN側インタフェースeth1が含まれているようにする(図参照)。ここで、switchを実現してるだろうVLAN Interface: "eth0.1"も含めてもいいように思うのだが、そうしなくても思うような挙動をしている(今のところ)。
  4. Network -> Switch で “Enable VLAN functionality” のチェックを外す。これはおそらくしてもしなくても、あとで見るようにswitchのポートをまとめるVLANは生成されるようなので、実質無意味だろう(自信なし)。
  5. 必要ならファイアウォールの無効化。

これらの操作の後の /etc/config/networkを見てみると以下のような感じ。

config interface 'loopback'
 option ifname 'lo'
 option proto 'static'
 option ipaddr '127.0.0.1'
 option netmask '255.0.0.0'

config globals 'globals'
 option ula_prefix '省略'

config interface 'lan'
 option force_link '1'
 option type 'bridge'
 option proto 'static'
 option netmask '255.255.255.0'
 option ip6assign '60'
 option gateway '192.168.11.1'
 option broadcast '192.168.11.255'
 option dns '192.168.11.2'
 option _orig_ifname 'eth0 wlan0 wlan1' #その前の設定を保存している模様
 option _orig_bridge 'true' #その前の設定を保存している模様
 option ifname 'eth0 eth1'
 option ipaddr '192.168.11.11'

config switch
 option name 'switch0'
 option reset '1'
 option mirror_source_port '0'
 option mirror_monitor_port '0'

config switch_vlan
 option device 'switch0'
 option vlan '1'
 option ports '0 1 2 3 4'
 option vid '1'

VLANは無効化しているはずだが、しっかりswitch用のが用意されている。

この中のoption ifname 'eth0 eth1'が謎で、wifiインタフェースが含まれていないように見える。その前の値'eth0 wlan0 wlan1' の方が正しいように思えるのだが(eth1は含まれるべきだが)、以下の/etc/config/wirelessを見てみると、wifi-ifaceの設定の方にそれが反映されているようだ。

config wifi-device 'radio0'
 …

config wifi-iface
 option device 'radio0'
 option mode 'ap'
 option encryption 'psk-mixed'
 option key '省略'
 option ssid 'OpenWrt-bgn'
 option network 'lan'

…というわけで、OpenWrt化済みバッファロー無線LANルーターWZR-HP-AG300Hをブリッジとして動作させることができるようになったので、“自宅内LANの整理”のステップ7まで終了。残っているステップはあるが、計画の根幹部分は終了。ふう。

ところで、 “OpenWrt上でのDnsmasqの設定 ” に書いたように、自宅LAN内IP機器には、ホームゲートウェイGE-ONU PR-500MIとDnsmasqを動かしているサーバーを除き、全てDHCPでIPアドレスを払い出すつもりでいた。このようにすると、IPアドレス払い出し状況が一覧しやすいし、DHCPサーバーのdnsmasqがDNSサーバーも兼ねているため、hostname.lanというわかりやすいホスト名でこれら機器にアクセスできるから。ただ、これはネットワーク設定がうまくいっているときはよいのだが、何か問題があってルーターをLANから取り出してPCに繋いで個別に設定する際に問題になる。DHCPサーバーをPC側で走らせないといけないからだ。今自宅LAN内でブリッジとして動作させているルーターはWZR-HP-AG300HWG1200HSの2台。これらについては本体自身に固定でIPアドレスを設定することにした。