ARMマイコンの開発環境を考える

これまでARM、特にCortex-M0、M0+のマイコンについて触る機会がありました。しかし、CMSISやBSP (Board Support Package)などのライブラリ周りも理解しておらず、IDEの言うがままに作ってきた感が否めません(BSPで提供されている関数群しか使っていない場合すらあります)。

 

そこで、ARM周辺がどうなっているのか調べてみようと思いました。その一環で開発環境の乗り換えを検討してみたいと思います。今まで使っていたCoIDEにバグや使い勝手の悪い部分があり気になっていた、というのもあります。

 

開発環境の種類は多少古くなっているものもありますがQiitaにまとめて下さった方がいらっしゃいました。

 

qiita.com

 

私が触った事があるのはmbedとCoIDE + GNU ARM Embedded Toolchainです。先にも書いたとおりメインはCoIDEです。 それぞれ触ったイメージをちょっと書き並べますと…

 

mbedはブラウザ上で開発ができ、ライブラリ周辺が充実しているため簡単に開発ができます。欠点としてはデバッグ機能ですね。とは言え、手軽で使っている人も多いので情報もたくさんあり、情報に困ることはあまりなさそうです。

 

CoIDEは中国で開発されているIDEでCMSISやBSPのインポートが比較的簡単にできます。マイコンによってはメーカー純正のデバッガ(プログラマ)が使えたりします、nuvotonのNu-Link Proとか。v1.7系とv2系がありますが安定重視ならv1.7系な気がします。かといってv1.7系が万全かというとそうでもなく、特にnuvoton製のマイコンを扱う場合で確認している事項ですがProgramming Algorithmで指定しているファイルパス初期値が誤っているために書き込み、デバッグができなかったり全体的に作り込みは甘いと思います。インポートできるCMSISもv3系をよく見かけるのですが、全体的に古いような気がします(現時点で最新版はv5系)。CMSISのバージョンって新しければ良いってのもでもないんでしょうが…。

(2017/11/24追記) このCMSISのバージョンを勘違いしておりました。"CMSISの規格全体がv5になった"と言うのが正しく、個々のヘッダファイルなどはCMSISのバージョンとは連動しないようです。そりゃそうか…。もうちょっと調べないとこの辺よく分かりません。

 

GNU ARM Embedded Toolchainはv5系までLaunchpadで配布されていました。v6系からはARMで配布されているようです。これに1年近く気がついていませんでした…。

 

このCoIDEについて乗り換え先にどういったものがあるのか調べてみました。

IDE

有償 (機能制限がありつつも使えそうなもの)

有償版は基本的にコードサイズ制限や期間限定など制限がかかった無償評価版が存在します。制限についてはIDEそれぞれなので各自確認が必要です。DS-5にはCommunity Editionが存在しますが、対応しているプロセッサがARMv8-AとCortex-A9の一部モデルに限定されます。Atmel StudioはAVR、Atmel ARMの開発に使うことができ、無償配布されています。

 無償

相変わらずCoIDEを使う選択肢もあります。Eclipseプラグイン、OpenOCDなどによるデバッガの使用が多いようです。EmacsVimVisual Studio Codeなどのエディタもあります。こちらもToolchainやデバッガとの連携で対応します。

Toolchain/コンパイラ

 デバッガ

 

EclipseGNU MCU Eclipseを使う場合、CMSISはマイコンメーカーが配布しているものを使用するのがいいのでしょうか。EclipseのPackageシステムでKeil/ARM packsを参照、インストールできるようです。これの使い方については未だイマイチ理解できていません。環境は作ってあるので試してみるしかなさそうです。

 

gnu-mcu-eclipse.github.io

 

 これから

とりあえずARMの開発環境にはどのような物があるのかを調べました。開発ができる環境を作るにあたって、無償版のEclipseを使う方法。そしてKeilやIARの無償版を使う方法の2つの軸で進めたいと思います。それぞれ、どこまでできるのかを見極めたいです。また、CMSISの概要についても調べたものをまとめたいと思います。

Visual Studio CodeでRubyの開発環境を整えてみようとして失敗した話

ちょっとしたデータの加工に使ってたRuby。最近あまり触っていないので開発環境をまともにしようと色々触ってみました。

 

IDE代わりに使うのはVisual Studio Codeです。理由は今一番使っているエディタだから。EmacsでもVimでもATOMでもありません。そもそも今頃はRubyではなくPythonかその辺りからして流行りに乗っていない感があります。

 

あちこち参考にさせて頂いて設定したのはいいものの、ブレークポイントまでは成功、AutoComplete (入力補完)については失敗という半端な結果に終わっています。

環境

用意するもの

 参考にしたところ

あちこち参考にさせていただきました。Rubyのバージョンが多少古かったりしますが、その辺はそのままでよかったり試行錯誤が必要だったりです。リンク先は記事の最後にまとめました。

 手順

RubyとDevelopment Kitをインストールする

2.4からDevelopment Kitが別配布ではなく本体のインストーラからインストールするように変更になったようです。これまでデバッグ用のGemは別途Development Kitを展開するなど作業が必要でした。

Ruby本体をインストールします。インストール後、デフォルトで"dk.rb install"が実行されるようになっています。コマンドプロンプトが開くので、msysのインストール[1]、アップデート[2]、Development Kitのインストール[3]の順で実行します。msysが既にインストール済みだとエラーが起きる事があるのでアップデート、もしくは一度アンインストールした方がよいそうです。

Gemをインストールする

デバッグに必要なGemをインストールします。はじめに適当なコマンドプロンプトもしくはPowerShellを開き、"gem install bundler"にてbundlerをインストールします。その後、Rubyソースコードを保存するフォルダにて"bundle init"コマンドでGemfileを作成します。ここにインストールするGemを追記します。下記の4つを記入しました。1,2は必須。3はAutoCompleteを実行するため。4は3をインストールすると同時にインストールを推奨されますが必須ではないようです。

gem "ruby-debug-ide"
gem "debase"
gem "rcodetools"
gem "fastri"

VScodeプラグインをインストールする

ダウンロードしたVScodeインストーラを実行、インストールします。VScode本体のインストールが終わったらプラグインをインストールします。VScode拡張機能からMarketplaceでRubyを検索し、Microsoft製の物をインストールします。ショートカットやコマンドパレットの方が早い方はそちらから。

VScode拡張機能の設定

VScodeの左にあるアイコンから虫の形をしたアイコンでデバッグ画面を表示します。左上に歯車のアイコンで設定ファイルを呼び出します。初回はターゲットとなる言語を選択する画面が出てくるようです。今回はRubyを選択し、launch.jsonが表示されます。

"Debug Local File"の欄でターゲットになるソースファイル名(メインのソース)を指定します。デフォルトはmain.rbです。useBundlerオプションの指定をしているサイトもありましたが、ruby-debug-ideをbundler経由で実行するオプションです。これはパス指定でインストールしている場合のみtrue設定のようで、私の環境ではtrueに設定するとエラーで動きませんでした。

また、VScodeの個人設定でrct-completeの場所を指定します。これはGemをインストールした時に追加されます。BATファイルを指定し、引数に"--dev"オプションが必要なようです。

"ruby.rctComplete.commandPath": "D:\\Ruby24-x64\\bin\\rct-complete.bat --dev"

デバッグしてみた結果

これで一通りの設定が終わりました。main.rbを作成し適当なソースを記述、ブレークポイントが有効に働くことが確認できます。putsなど出力結果はVScode下部のデバッグコンソールに表示されます。

AutoCompleteですが、メソッドなどを入力中にCtrl + Spaceで候補が表示されるようです。ようです、と言うのが私の環境では「候補はありません。」と表示され補完されませんでした。参考にさせて頂いたサイトによるとxmpfilter.rbというファイルとrct-completeに問題があり正しく動作しないのが原因のようです。なんてこったい。現状、AutoCompleteを使うにはEclipseなどに頼ったほうがよさそうです。

 

参考にさせて頂いたサイトさま

qiita.com

qiita.com

qiita.com

tokyo.supersoftware.co.jpqiita.com

github.com

 

FirefoxのアドオンをWeb Extensionsへ移行してみる

FirefoxのアドオンがXUL/XPCOM形式と言うんでしょうか、旧式からWeb Extensionsへ移行します。旧式はFirefox 57から無効になるようです。

ちなみにWeb Extensions化することでChromeOperaはともかくEdgeにも対応しやすくなる模様。

 

forest.watch.impress.co.jp

 

Firefox 57の公開まであと少し。なかなか移行に踏み切れていませんでしたが56にアップデートされたのを機に見直してみることにしました。

 

ちなみに移行前のアドオンを一覧はほぼほぼ旧式表示ですし、移行先が見つからなかったものもあります。また、今のところメインはChromeで用途によってFirefoxやEdgeを使い分けている状況です。

 

1. マウスジェスチャー

まずこれがなければ始まらない。タブの操作はキーボードショートカットの方が早くて確実だったりします。が、流し見する時は無いとお話にならないレベル。

旧式アドオンはFireGesturesを使っていました。マウスジェスチャーが浸透し始めた辺りから使っていた気がします。これの移行先はFox Gestures。タブを閉じるなどの一般的なジェスチャーは概ね共通のようです。


addons.mozilla.org

addons.mozilla.org

 

Web Extensionsの制限なのか、これ以外のアドオン含めAMOやAbout:supportのような特殊なページでは操作ができない模様。さして困る問題でもないと思います。

 

2. JavaScript

JavaScriptで表示されるコンテンツ(広告やポップアップなど)が煩わしい場合や安全のためJavaScriptを向こうにしたい状況がよくあります。

以前はTab Permissionsにお世話になっていましたが、これをQuick JS Switcherへ移行させました。Tab Permissions自体はJSの他、画像やフレーム、リダイレクトの有効化、無効化を切り替えることができ大変便利でした。一方移行先は名前の通りJSのみの対応。JSが一番使用頻度が高く、今回はこちらを移行先としました。

 

addons.mozilla.org

 

addons.mozilla.org

3. タブセッションの管理

Firefoxには終了時の状態を保存するオプションがあります。その保存状況を確実にしたい、もしくは複数の状態を保存したい事がありセッション管理用のアドオンを入れていました。

これまで使用していたのはSession Manager。自動保存や別ウィンドウのタブ一覧も保存できます。これの移行先はTab Session Manager。名前が似ていますが、詳細ページにもある通りSession Managerに強く影響を受けているアドオンです。そのため自動保存機能も装備。足りない機能も可能な限り実装してくれそうです。

 

addons.mozilla.org

addons.mozilla.org

 

4. タブの重複管理

調べ物をする時、とりあえず気になるリンクはばっと開いてあとから確認する派です。この時同じリンク先を開くことが少なくありません。メモリやタブの無駄なので重複するタブを開かないアドオンを使っていました。

これまで使っていたアドオンはDuplicate Tab Blocker。これをDuplicate Tabs Closeへ変更。デフォルトは重複タブの表示だけですが、設定で自動的に閉じることもできます。

 

addons.mozilla.org

addons.mozilla.org

 

5. ダウンローダ

ページ内の画像やファイルを一括でダウンロードしたいときに使っていました。

今まで使っていたのはDownThemAll。ページ内の画像、音声、動画などなど解析してリスト化、必要なものをダウンロードできます。特に動画に限って言えばVideo DownloadHelperも併用していました。これらの移行先はDownload StarとBulk Media Downloader。本来ならどちらかで済みそうなものですが、物によって大丈夫だったりダメだったりなので併用しています。

 

addons.mozilla.org

addons.mozilla.org

addons.mozilla.org

addons.mozilla.org

 

6. テキストをリンクへ

あえてアンカーを打っていないリンクの文字列をリンクのように扱うアドオンです。これはほぼそのままがありました。

 

addons.mozilla.org

addons.mozilla.org

 

7. HTTP/2表示

特に理由はないのですがHTTP/2対応しているサイトに接続した場合、その旨表示するアドオンを入れていました。

移行前はHTTP/2 and SPDY indicatorを入れていましたが現在はページが消失。移行後はHTTP/2 Indicatorです。

 

addons.mozilla.org

 

9. Hatena Bookmark

いわゆるはてブ用のアドオンで、ブックマークの登録やコメントの一覧が見られます。私はほぼROM専ですが。これは公式に新形式に対応が告知されていましたが、正式に対応したようです。AMOのダウンロードページは2.3.12ですが新形式は3.0.0以降になります。Chromeと同じもの…なんでしょうか。ダウンロード先はいずこ?

 

addons.mozilla.org

 

10. 移行ができない物や検討中のもの

もちろん移行先が見つかっていないものも多々あります。その中でも使用頻度が低くもういいかなと思うものもあります。

 

10-1. All-in-One Sidebar

サイドバーを作り、お気に入りなど色々な情報が表示できるようにしていました。必須と名高いアドオンですが、ChromeやEdgeに慣れてくると正直別に無くてもいいかなと…。

 

addons.mozilla.org

 

10-2. AutoPagerize

次へ、みたいなリンクを押さずともスクロールするだけで次のページを読み込み表示してくれるアドオンです。スクリプトで機能を拡張するアドオン、Greasmonkeyにもスクリプトがありますね。あるとあるで便利です。このアドオンはともかくGreasmonkeyはWeb Extensionsで対応できるんですかね。Greasmonkeyは今は入れてませんけど。

 

addons.mozilla.org

addons.mozilla.org

 

10-3. Download Manager (S3)

ダウンロードの状況をステータスバーのように表示してくれるアドオンです。このアドオン、作者によるとWeb Extensionsに対応するAPIがなく現時点で対応不可と言われているみたいです。標準のダウンロード表示はショボいので非常に残念。

 

addons.mozilla.org

 

11. 新規導入したもの

実は今回の移行で新規導入したものがあります。

省メモリでおなじみ、タブのサスペンドを行うアドオンです。Chromeでは既に入れている拡張機能Firefoxでも導入しました。Tab Suspender (Tab Unloader)です。振り分けで恒久的にサスペンドに入らないような設定や、一時的にサスペンドに入らない設定もできます。

 

addons.mozilla.org

 

 

細かいものもまだありますが、これでほとんど支障がないぐらいに移行はできています。マルチプロセスも晴れて有効になりました。プロセスとしては5つほど稼働しているようです。

 

ほとんどのアドオンが出始めのため、バグがあったり実は悪意のあるアドオンだったりする可能性があります。機能的に今ひとつな面も、もちろんあります。これから新形式のアドオンが増えてくることも考えられますし、もうしばらくは入れ替えも含めて試行錯誤が続きそうです。

 

2017/11/15 追記

Firefox Quantumが公開されたので、代替を紹介してくれているブログを漁る日々…。

rockridge.hatenablog.com

00.bulog.jp

 

 

第三回 吹上初夏の窯元めぐり

昨年に引き続き吹上初夏の窯元めぐりへ行ってまいりました。

 

nitteru.hatenablog.com

 

前回の記事にて「日置、伊集院方面が面白そうです」と締めていました。あれから一年。日和さんにはそこそこの回数通い、美山周辺も含めイベントやお店に顔を出し、とわりと満喫しております。もちろん当時購入した器も毎日使いっています。私のチョンボで何枚か割ってしまった物がありますが…。

 

dannachanbiyori.chesuto.jp

 

今回も開催元の窯元さんは七然窯、陽窯、隠野窯、松韻窯さんの四窯。各窯1000円購入でスタンプを貰え、全て揃えると一万円分が抽選で12名に当たるプレゼント企画も前回通りでした。そしてその当選確率の高さも(窯元さん談)。

 

昨年一通り回っているので窯元さんのイメージもだいたい掴めてます。前回は色々迷って二周ぐらいしていましたが、今回は一周だけ。代わりに一か所ずつじっくり見ていたような気がします。一年経っているのもあり新作を見つけるのが面白かったです。ワンポイントの柄などがちょっと変わっているんですね。すでに持っている皿の置換えを狙って、こんな皿ないかなぁと悩みながら見るのも楽しかったです。気に入ったものを見つけても、昨年買ったものと被っていたりする時はさらに悩みます。

 

色々悩んだものの、連れと割り勘という言い訳で今回は小鉢や中皿など比較的大きめな物を買い揃えました。こうやってお金が無くなっていくんですね…。大皿や一輪挿しや鉢なんかも迷ったものの、お値段もそこそこなのでこれはまた来年予算を組んで挑戦したいと思います。

 

以下、一個だけですが戦利品を。

 

 

戦利品と冷たい珈琲

nitteruさん(@nitteru)がシェアした投稿 -

 

 

shichizengama.chesuto.jp

yoyo.chesuto.jp

blog.livedoor.jp

 

隠野窯

話題のHuluが見れないパターンに当てはまり何とか解決した件

Huluが5月17日にリニューアルしました。

 

hulu-japan.jp

 

リニューアルにあたって、DRMの関係で再生できない環境が増え、DRM関係の仕様変更について告知が不十分だった事から大炎上しています。この仕様変更で私の再生環境もHuluの指定する環境から外れパソコンで再生ができなくなりました。モニター自体はデュアルモニタ環境なうえHDMI接続ではないものの、HDCPには対応しています。最終的に再生できるようになったのですが、ある条件が重なると再生が出来ない可能性があるということがわかりました。

 

デュアルモニタ環境で片方のモニターの電源を切っていると、両方のモニターがHDCP対応していても再生ができないようです。他のHDCP確認ツールを用いても、電源OFF時で非対応、ON時で対応と表示が変わることも確認しました。両方のモニターの電源を入れることで晴れて再生できることを確認しました。ただし元々Huluの想定している環境と大きく違うためまた再生できなくなる可能性もあります。

 

以下、詳細です。

 

今回のリニューアルで行われたDRM機能の強化により対応できない端末も増えました。私手持ちの端末(ソフト)としては3DSWindowsアプリでした。Windowsアプリは地味に使っていたのにな…残念。

 

そしてパソコンやゲーム機等の端末で視聴する場合もHDCP必須となりアナログ出力では再生できない事と、この仕様変更について告知が不十分だった事から荒れに荒れていると言うのが流れと理解しています。

確かにそんな告知あったかなと疑問に思い、気になってHuluからのメールを探してみましたがメール本文に記載されているメールは見つかりませんでした。Webサイトへの誘導はあったかもしれません。もちろん私がメールを一度読んで不要と判断し消してしまった可能性もありますが。

 

help.happyon.jp

 

japanese.engadget.com

 

私はHuluをスマホWii U、パソコンとWebブラウザ(Chrome)で利用していますが、そのうちパソコンの環境で再生エラーが発生するようになりました。

 

パソコンはモニターが4k(メイン)とWUXGA(サブ)のデュアルモニタ環境です。4kモニタはDisplayPort接続。WUXGAモニタはDVI-HDMI変換ケーブルで接続していてHDMIがモニター側。この時点でHuluの言う再生環境から外れてはいます。HuluのサイトにはモニターはHDCPの都合上、HDMIで接続することとあるんですね。マルチモニタについては具体的な記載が見当たりませんでした。ところでDVI-DやDisplayPortのHDCPと何か違いがあるんだろうか…よく知りませんが。今度調べてみよう。

 

この状態でHuluを再生させるとしばらくバッファリングの様な画面が続き、最終的にエラーにより再生できなかった旨の表示がされます。特に何が原因と思われるかは書いていません。サブのモニターの電源は切った状態です。ちなみにサブのモニターは以前、HDDレコーダーに繋いでいた時期がありその時は表示できていました。この時点でモニターがHDCP非対応という線は無いなと考えていたのですが、念のためツールを使って確認するとなんと非対応の文字。

 

CyberLink Blu-ray Disc サポート

 

そんなアホなと思いながら、別途モニターを用意してサブと入替えてみるとHDCP対応と表示が変わりました(なおこの時サブの電源は入れていました)。最初に試したモニターは勘違いでHDCP非対応だったか、と思った時、最初試した時は電源を入れてなかったなと思い出し再度初めのモニタに戻して電源を入れ、ツールを起動させると対応と表示が変わりました。お前か。

 

ツールで確認した後ブラウザでHuluを開き再生させた所、無事再生を確認。これでようやくリニューアル前と同じように視聴することができるようになりました。サブモニター使ってないのに電源入れなきゃいけないのが多少無駄っぽい感じもしますが。

 

ちなみにPC側の環境として、Windows 10 64bit Creators Update適用済。Radeon R9 200 Series (285だったと思います…)、グラボソフトウェアのバージョンは17.1.1です。

 

結構限定された条件ではありますがもし当てはまりそうな方がいればご参考まで。HDCP周辺ではこんな事もあるんだなぁ、という事で。

 

 

【悲報】モニターのアームが破断

nitteruさん(@nitteru)がシェアした投稿 -

 

ちなみにこれらの検証作業を行おうとした時にモニターのアームが破断…。とりあえずパネルが無事でよかったけど、追加でアーム買わなきゃ(´・ω・`)

5月の作ってみた

ようやく再開できた電子工作。今回も簡単な光り物です。

 

これが

f:id:nitteru:20170515092717j:plain

 

こうなって

f:id:nitteru:20170515092719j:plain

f:id:nitteru:20170515092722j:plain

 

こうなる

f:id:nitteru:20170515092711j:plain

f:id:nitteru:20170515092715j:plain

 

100均で売っている家型のオブジェにLEDと人感センサーを仕込んで、前を通過したらLEDが指定時間光るという単純なものになっております。時間は多回転ボリュームで設定できて、その範囲は約20秒から5分です。

 

回路構成は乾電池2本、約3Vを5Vまで昇圧して回路の電源としています。制御するマイコンArduino Mini Pro互換ボード。GPIOピンにLEDと電流制限抵抗(約200Ω)。AN0に10kΩの多回転ボリュームと1kΩの抵抗。INT0に人感センサーの出力ピンを接続しています。

 

乾電池で動くので電池の保ちを考慮します。普段はディープスリープモードで待機しています。人感センサーが反応(INT0割り込みが発生)すると復帰してLEDを点灯します。ここで再度スリープモードに入ります。ここからはウォッチドッグタイマで1秒おきに復帰するように設定しています。復帰ごとにインクリメントカウンタをカウントアップして規定の時間になるとLEDを消灯し、最初の待機状態へ戻ります。LEDを点灯させている間に人感センサーを拾わないようにINT0割り込みは無効化しておきます。手違いで消費電流を測る前に組み立ててしまったので実際どれくらい電池が持つのかは未知数です…。

 

思いつきで作ったので回路図とソースコードを載せることができませんでした。KiCADやgithubをちゃんと使って成果物を公開できるようにするのがこれからの目標になりそうです。

 

当初使う予定だった小型の人感センサーが品切れになってしまい、急遽別のセンサーを使う羽目に。このお陰でセンサーが一部隠れてしまった上にケースの穴加工がおかしなことになってしまいました…。

f:id:nitteru:20170515092713j:plain

 

実際にはこんな感じで壁にぶら下げて使っています。廊下に置いておくと夜に足元灯みたいになって便利です。

f:id:nitteru:20170515092716j:plain

 

インターネット環境の更新

※ 4月の工作も間に合いませんでした…

 

ここ最近、ブラウジングやファイルのダウンロードにもたつく事が多くなってきたのでインターネット環境の更新を行いました。変更点は下記の4点です。

  1. ISPの変更 (Synapse → IIJ)
  2. IPoEによるIPv6接続
  3. DS-LiteによるIPv4接続
  4. Aterm WR9500N → Yamaha RTX1200 + TP-Link C3150 (APモード)

これまでの環境

今までの環境は概ね以下のような感じです。ひかり電話は契約していないためONU無線LANルーターを直結してルーターでPPPoEを行っています。

 

[フレッツ光ネクスト]-[ONU]-[ルーター WR9500N]-[各クライアント(ハブ含む)]

 

接続しているクライアントは有線無線のPCやスマートフォンNAS、プリンターからRaspberryPiを含むIoTデバイス3Dプリンターなど含めると恐らく30台に手が届きます。普段から外に向けて比較的ヘビーな通信を行っているのはメインのデスクトップとノートPCぐらいです。プロバイダーは鹿児島県民おなじみのSynapseさん。

 

www.synapse.jp

 

ネットで困ったことがあれば鹿児島中央駅目の前、シナプスステーションの優しいお兄さん、お姉さんスタッフが親切丁寧に対応してくれるはずですます。

 

今まで散々お世話になっておいてなんですがIPv6接続への対応は未定とのことで泣く泣く別のプロバイダへ移行します。BIGLOBE@Niftyなど安価もしくは無償でIPv6接続が可能なISPもありますが、今回はIIJへ移行することに決めました。てくログなど技術的な面が見えやすかったのが決め手です。

 

techlog.iij.ad.jp

 

とりあえずルーターを更新してみる

まずは我が家のトラフィック全てをさばくルーターを更新します。ルーターNEC製のWR9500N。2011年10月下旬頃発売の高級機でした。今となっては11acにも対応していない旧型機ですが…。

 

121ware.com

 

更新前はspeedtest.net計測で平日昼間が80Mbps程度。平日夜間・休日が8~30Mbps程度でしょうか。本当に混んでいる時はYoutubeのキャッシング中にも待たされている感がありました。なお、空いてそうな時間帯にPCをONUに直結してPPPoEで接続すると200Mbps以上を叩き出すのでルーターボトルネックの一つになっていることがわかります。そもそものスループットが低いのか、無線LAN等々の管理も行っているので処理能力的にイッパイイッパイなのかは判断できていません…。

 

今回新しく導入するルーターヤマハRTX1200です。新品なんて買えるわけがない(値段的にも、生産時期的にも)ので1.5万円ぐらいの中古を探してきました。簡単に手に入って安価という意味ではRTX3000あたりも出回っているようです。大きさと冷却音が凄そうですが。 RTX1200でのPPPoEの設定は初回ウィザードで設定できます。アカウントを入力してサクッと設定。この状態で再測定してみると直結と同じく200Mbps以上を叩き出しました。前回測定時と条件が厳密にあっていませんがルーターの能力にある程度のボトルネックがあったようです。

 

またこの時点で無線LAN関係をTP-Link C3150へ入れ替えています。当たり前ですが問題なく11acで接続されたことを確認できました。リンク速度は800Mbps前後で、クライアントの最高速度に近い値で接続できています。ルーティングはRTX1200に任せているのでAPモードでの使用です。

 

www.tp-link.jp

 

プロバイダの変更

次に今回の本命。プロバイダをSynapseからIIJへ変更し、IPv6+DS-Lite接続へ移行します。なお今回光コラボのIIJmioひかりは使わずフレッツ光ネクストを維持したままFiberAccess/NF契約で進めています。

 

設定の方法についてはコマンドリストを載せることもできますが、ネットにある先人の知恵をお借りしているだけですのでここでは割愛します。IPoEを使う前にNTTへv6オプションの申し込みをするのを忘れないようにしましょう。フレッツ専用サイトから行うと費用もかかりません。

 

そんなこんなで設定が終わり、再度速度測定してみます。IPv6の速度はIIJmio測定サイトIPv4はspeednet.netで行っています。結果、IPv6では250Mbps前後、IPv4では300~400Mbps程度まで出るようになりました。もう一つ変わった点は、Pingが30msec程度から半分の16msec程度まで短くなりました。

 

特にIPv6で思ったより速度が出ていないのは測定サイトの帯域や処理能力、速度の計算方法にもよるらしく実際は全く問題にならない速度がでていると思います。特にIPv6に対応しているYouTubeなどに接続すると体感できるかもしれません。余談ですがspeedtest.netは接続先などでも結果が大きく変わるので気をつけましょう。

 

これで今回の目的は概ね達成できました。複数の端末が一斉に通信始めた時など速度の低減が解消されそうです。今後ですが、下記を重点に環境整備していければと思っています。特にRTX1200の設定、ネットワークの勉強が主になりそうです。

 

  1. VPNの整備。特にDS-Liteでは実現できないらしいのでPPPoEをもう1セッション張ってルーティングしたい
  2. IPアドレス管理の徹底 (NASなど固定IPの整理など)