DeNA 剽窃記事サイト騒動を受けて,改めて DuckDuckGo を推奨する

DeNAが9メディアの記事を非公開に、転用奨励で批判相次ぐ | ロイター
DeNA、健康・美容サイト「WELQ」運営見直し 内容に「医療デマ」と批判相次ぎ
DeNA、「WELQ」騒動で「MERY」以外の9媒体を非公開に–守安社長「私自身の判断の甘さ」 – CNET Japan

 無内容で嘘偽りに満ちた極端に低品質な記事を,手段を選ばない SEO で強引に検索結果の上位に表示させる。そしてその内容は他のサイトからの剽窃――言語道断の所業です。
 しかし間違えてはいけないのは,こうした行為をしているのは DeNA だけではないということです。DeNA の場合,「東証一部上場の大企業がこんなことをしている」ということ,また資本がきわめて大きいことからいわば成功しすぎたために,結果として世間の耳目を集めているだけであり,同様のことをしている企業および個人は星の数ほど存在します。DeNA が事業を畳むなり倒産するなりしたところで,第二第三の DeNA がその地位を引き継ぐだけです。

 では,そもそもの原因はどこにあるのか? 考えるまでもありません。「ウェブでバカを騙すのはカネになる」から,これに尽きます。
 スマートフォンやタブレットの急速な普及によって多くの人がウェブにアクセスできるようになった一方,消費者のリテラシ――知識,警戒心――は今なお未発達であり,コンテンツを提供する事業者との間には情報の非対称性が広がっています。人々は新しいツールで得られる情報を貪欲にむさぼっています。質は一切問われません。多くのアクセスを得られるコンテンツである掲示板などのコピペブログの記事は,既にソフトウェアによる自動生成が一般的です。文章自体が自動生成であること,すなわちワードサラダであることも珍しくありません。こんなあからさまなゴミであっても,多くの人々にアクセスされ,場合によっては読まれるのです。DeNA の記事群も,ゴミ情報という点では同じであっても,人の手によって書かれていて文法・文脈的破綻が比較的少ないという点では,まだマシな方です。資金力さえあれば,毒,すなわち世論や消費行動の誘導を意図した偽情報を盛り込むことさえ,きわめて容易です。
 この怒涛のアクセスをカネに変える魔法がアドネットワーク(そしてアドエクスチェンジ)の広告です。これは広告出稿者と広告掲載者の間に入る一種の広告代理業であり,出稿者と掲載者が直接交渉や契約をせずに広告掲載ができるようになります。掲載者としてはページにちょっとした html タグを貼り付けるだけです。コンテンツの質なんてどうでもいいですし,かかるのは僅かなサーバ代・ドメイン代くらいです。あとは獲物が罠に誘い込まれて広告をクリックないしタップするたび儲けが生まれるのです。ゴミからカネが生まれる。なんと素晴らしい錬金術でしょうか!
 そして,消費者が情報にアクセスするためにまず訪れる場所が検索エンジン 1であり,検索結果の上位に表示されること,同じ検索結果ページに表示される他のページに何か加えたような内容にすることによってアルゴリズムに「他のページより価値がある」と認識させることが,錬金術の効率を高める一番の近道なのです(ゆえに他のサイトからの剽窃が多くなることは当然の帰結です)。

 もちろん,検索エンジンのプロバイダ,Google や Microsoft 等にとって,検索結果へのゴミ情報の氾濫は看過できるものではありません。提供する検索エンジンの価値を貶め,競合に対する競争力を失わせることにつながるからです。実際,時折アルゴリズムの改良によってスパムの排除が試みられています
 しかし,大手の検索エンジンプロバイダは同時に巨大な広告事業者でもあります。たとえば Google はその収益の9割以上を広告事業から得ています。先述の通り,検索エンジンに現れるスパムは広告収入が目当てであり,その広告収入の一部は検索エンジンプロバイダ自身の利益でもあります。つまり,抜本的な対策が困難であるばかりか,最小限度の対策に留めることによってこそ利益を最大化できる構造となっているのです。これらの広告表示には,出稿された広告を配信している同じ会社が検索エンジンとして収集した閲覧者の情報が利用されています。
 加えて,検索エンジンは特定のひとつのサービスが圧倒的なシェアを握りやすい傾向があります。独占的な地位を得ているサービスは国により異なりますが,1位のサービスは80%以上のシェアを握っていていることも普通です。また,グローバルでは Google が約76%(2016年12月現在)を占めており,全体でも独占構造になっています。シェアが奪われる見込みがなく,またシェアを奪える見込みもなく,検索エンジンの間に競争が働かず,消費者に対するサービスの改善への動機付けが存在しないということも,こんにちの混沌とした状況に至った一因と言えるでしょう。

 今のウェブ広告の仕組み自体が原因となって生まれている状況であるため,将来については悲観せざるを得ません。無内容なスパムに悩まされることがなくなるのは,金銭という動機付けが失われるとき,すなわち今のウェブ広告の仕組みが破滅するときであるので,これはかなり先になりそうです。
 消費者にできるのは自らの行動に自覚的になることです。中身のないサイトに不用意にアクセスして収益をもたらすことのないようにすべきです。Firefox のユーザであれば Hide Unwanted Results of Google Search が役立つでしょう。また,固定化したシェアを揺るがして検索エンジンプロバイダの間の競争を促すことも必要であるはずです。日本であれば Google や Yahoo! Japan の代わりにシェアの低い Bing を使うようにするだけでも違いますが,理想的なのは DuckDuckGo を利用することです 2。DuckDuckGo はプライバシの重視と意図的な操作のない(フィルタバブルのない)検索結果を売りとする検索エンジンです。日本語での検索結果の品質はまだまだといったところですが,概ね実用的な水準に達しています。現在のところ DuckDuckGo は自前のクローラに加え Yandex など他の検索エンジンの検索結果も利用しており,スパムもありますが,少なくともスパムサイトと利害が一致してはいません。もしも DuckDuckGo のようなサービスのシェアが大手サービスに並ぶような事になれば,他の検索エンジンプロバイダに対するこれ以上ないほどの強烈なメッセージとなることでしょう。

16/12/03 加筆修正。タイトルの「コピペ」が不正確であったことから,「剽窃記事」に修正。

Notes:

  1. この記事では本来の意味の検索システムとしての検索エンジンのことではなく,ウェブ検索サービスを提供するポータルサイトの意味でこの語を使っていることを註記しておきます。
  2. 同様の存在として Searx というものもあり,こちらもおすすめです。Searx は DuckDuckGo と違いサーバサイドのシステムそのものが自由ソフトウェア(AGPLv3)として公開されているのが特長です。ただしこちらは検索エンジンとしての独自性を志向してはおらず,既存の検索エンジンの検索結果を組み合わせて使用するメタ検索エンジン以上のものになることを意図したプロジェクトではありませんので,既存の検索エンジンに与えるインパクトは限定的でしょう。

DDoS 攻撃者を「サイバーフーリガン」と呼んではどうか

 最近また DDoS 攻撃が増えているようです。
 DDoS 攻撃は一般に面白みのない単純な力技で,わずかな代金で攻撃を請け負う業者まで存在します。ボットネットの構築から自前でやるにしても,ソースコード付きのソフトウェアがウェブ上で流通しており,多くの人のセキュリティ意識は依然として非常に低いという現状があって(そう,専門家でもなんでもない普通のおっさんおばさんが相手なのです),脆弱性を抱えた情報家電も多く存在していることから,技術的にはそのへんの中学生でも簡単にできてしまいます。いにしえのハッカー・クラッカー論争は置いといても,このダサさを恥ずかしく思わない,あるいはダサいと気づかない程度の者は,いかなる定義によってもハッカーの範疇に含まれることはありえないでしょう。
 また,彼らは技術のみならず「抗議」の対象についてもしばしば無知です。たとえば,捕鯨への反対を大義名分に掲げつつも,実際に攻撃を受けているのは何の関係もない(しかし外国人への知名度は高い)組織が殆どです。その一方で,どことは書きませんが,捕鯨に関係の深い組織の大半は特に攻撃が観測されていません。そもそもターゲット自体が見当違いであり,抗議としての体をなしていないわけです。
 どこかで似たようなものを見たものがありますね。サッカーにおけるフーリガンです。彼らは必ずしもチームの熱心なファンというわけではありません。しかし,欠かさず試合を観戦し,ちょっとしたきっかけを目ざとく掴んではそれを理由にして大声で叫んで暴れます。それを見た他のフーリガンもまた集団心理で同調して暴れ始めます。赤信号もみんなで渡れば怖くないというわけです。そうして堰を切ったように暴れる者が増えてゆき,まもなく馬鹿げた大騒ぎへと至るのです。暴力の対象は問わず,無関係の人をも巻き込みます。
 思うに,近ごろの DDoS 攻撃者も似たようなものでしょう。誰それ構わず手当たり次第に DDoS 攻撃を仕掛ける攻撃者には何の美学も見いだせません。見えるのは自己顕示欲だけです。彼らをハクティビストと呼ぶのは本物のハクティビストに失礼というものです。彼らは完全に区別された名前で呼ばれなければなりません。また,動機が自己顕示欲であれば,ハクティビストというある種の“ブランド”から切り離してしまい,ダサくて取るに足らない存在として扱うことで,安易な違法行為に走る理由が失われることが期待できます。一つのアイデアとして,安直ですが,「サイバーフーリガン cyber hooligan」という呼び名を提案してみます。

JINS の通販で眼鏡を買ってみたメモ

 JINS 店頭で眼鏡を買ったら通販限定の30%引き券を貰ったので,通販も試してみました。おもいっきり導線に引っかかってる。
 
 商品選択・度数選択は JINS の通販ウェブサイトでできます。度数はユーザが勝手に入力する仕組みなので,むちゃくちゃな度数の眼鏡も作ろうと思えば作れるはずです(だからどうしたという話ですが)。店頭と違いレンズの屈折率を自分では選べないようで,おそらくこれが理由で,私の度数ではレンズ面が大きなフレームは選択できませんでした。ひょっとしたらレンズの在庫状況なども関係しているのかもしれません。
 欠点はむろん実際にかけて試せないことですが,私はもともとオーソドックスなものしか選ばないのであまり問題ではありませんでした。むしろ,細かい寸法データを比較しながらゆっくり選べるのがよかったです。
 
R0013046
 注文してから数日後,こんな箱に入って届きました。配送は佐川急便でした。撮る前に破ってしまいましたが,この上からビニール袋で覆ってあって雨などで濡れないようになっています。写真がむちゃくちゃなのは資料だから許して。
 
R0013048
 封筒の中には「ご注文納品書」,「保証書」,「返品・交換カード」,それにレンズのパッケージが入っていました。店頭で買うのと同じ Hoya Lens Thailand ltd. 製レンズです。

R0013049
 空中に浮かせて衝撃から保護するタイプのパッケージングです。

R0013050
 眼鏡を不織布で覆って眼鏡ケースのなかで動いて擦れないようにされています。当然ですが,傷などはありませんでした。
 
 税込6372円が30%引きで4461円也。いい買い物。
 私は小さい頃から眼鏡なので,眼鏡といえば精密な医療器具という感覚なのですが,「安物」でも案外値段ほどの差はないものです。JINS の眼鏡は既におそろしく安いですが,通販によるコスト圧縮で品質を落とさず値段を更に下げるというのはよい考えですね。一方で JINS 一強の現状は消費者としてはどうも危なげな気もしますし,医療器具というイメージから産業の空洞化的アレにも思いを馳せたりしつつ新しい眼鏡でこの記事を書いています。ま,とにかく良い眼鏡が安く手に入ってよかったです。

【必見】オリジナル必敗マニュアル! 採用面接で不合格になるための10の方法を無料公開中!

syukatsu_naitei_no_man
(イラスト:いらすとや
 
 就活生の皆さんこんにちは! 調子はいかがでしょうか?
 
 なに,内定が集まりすぎて困るぐらい?
 
 なるほど……では,私が編み出したオリジナル必敗マニュアルを,読者の皆様だけに無料でこっそりお伝えしましょう。
 
 名づけて,「採用面接で不合格になるための10の方法」!!! 当日の朝ネットで見るまで面接室では促されるまで着席してはいけないことも知らなかった超・面接弱者の私だからわかった,誰でも絶対に不合格になれる魔法のメソッドです!!!
 
 どんなに内定が取れていた人でも,これらを実践するだけでぴたりと内定が取れなくなります!!!
 
 ひとつ注意点として,これらは大学では主に学問をしてきたという人に対してのものです。サークルやアルバイト,ボランティアなどに打ち込んだという人はそのままでは使えないかもしれません。しかし,学べる点はきっとあるはずです!
 
 皆さんもこれを実践してぜひ不合格を達成してください!!!
 
 
 1, 尊大なくらいに堂々と振る舞う
 
 まず面接において最も大切なことをお教えしましょう。それは,尊大なくらいに堂々と振る舞うことです。
  
 あなたは何度か交渉の経験があるはずです。そのとき,あくまでも自信満々な態度で接することが重要であるということを学んだはずです。
 
 面接も,言ってみれば,あなたを採用させる交渉です。
 
 実際には不安な点も多々あるでしょうが,あたかも完璧な自信があるかのように,自信満々にいきましょう。底しれなさを示すために,あなたが積み上げてきた実績の数々を言葉の節々に散りばめます。
 
 声は大きい方が良いです。身振り手振りも交えましょう。確固たる自信の表現を発言と所作のすべてに練り込みます。その一方で,じっくりと相手の出方を伺いながら,抜け目なくロジカルに伏線を張って相手を罠にかけるのです。
 
 ひとたびこちらのペースに持ち込むことができれば,もう勝ったも同様です。
 
 
2, 面接の練習なんてしない
 
 面接は人物を見る場です。考えてもみてください,皆さん二十数年という短かからぬ年数を生きてきて,その人その人の人生経験に基づいて個性豊かな人格が形成されているはずです。ところが世間では,同じ質問をすれば皆同じ答えを返すロボットのような就活生ばかり。そんなことでは一人ひとりの特性を面接担当者に伝えることはできません!
 
 もちろん一般的なルールというのはあります。たとえば,色が指定されていなくても答案用紙に赤ペンで論文を書く人はいませんよね? 基本的な常識は事前に確認しておく必要があります。ただ,それだけで充分です。使うペンの型番まで他の人に揃える必要はありません。大切なのは形式ではなく実質です。
 
 もちろん,評価基準が明らかにされていない中,他の人と同じように振る舞わないと不安かもしれません。しかし,面接の前に「普段通りに答えてください」と指示されるはずです。各人がどのような人生を歩んできたかを表現することが求められているのです。ここは指示に従いましょう。胸を張って,普段通りのあなたで面接に臨んでください。
 
 
3, 筆記もしょせん足切り用なので対策しない
 
 場合によっては筆記試験がありますが,これは足切りのためのものであるので,最低ラインでパスすればそれで足ります。したがって,学力のある人であればことさらに対策する必要はありません。
 
 本番は面接です。有能なところは面接で見せてやればよいのです。それが合理的なリソース配分というものです。もし筆記試験の成績と面接の内容にばらつきがあっても,だからといって志望度が低いとか,それが理由で不合格であるとか,そういう判断がされることはないでしょう。
 
 
4, 面接とはなにか? 資料を読み込んで論理で殴りに行くことである
 
 さて筆記は突破しました。当然のことですね。
 
 では,次にすることは何でしょうか。決まっています,種々の資料をよく読み込んで面接担当者に殴り込みに行くことです!
 
 世間ではサークルやらアルバイト,ボランティアなどが重要だという話が流布していますが,そんなものは学生の本分ではありません。学生は,読んで字のごとく「学ぶこと」を本分としています。サークルやアルバイト,ボランティアなどが重要なのであれば,大学など来ないですぐに就職すればよいのです。責任ある仕事を任せられることでアルバイトよりずっと多くの経験ができるでしょうし,お金があるので学生サークルより多くのことができます。もちろん,ボランティアをする余裕も生まれます(親の金で暮らしながらボランティアをしたところで,それはその学生ではなく親のボランティアです)。仮に面接でサークルやアルバイト,ボランティアなどに関することを聞かれたら,自信を持って「ない」と答えればよいのです。
 
 面接とはつまり,口頭試問です。より身近には,ゼミやレポート課題でいつもやっているアレですね。殴り込めば殴りこむほどあなたへの評価は上がります。あのとき,教授のロジックの矛盾を突いて見事に止揚したあなたを見て,教育者冥利に尽きるとばかりに喜んでいる教授の顔を,あなたは忘れてはいないはずです。もちろん反撃も手強いですが,熱心に学んだあなたであればそれをすべて跳ね除けることができるはずです。
 
 質問をされたら,あなたの知識と能力の全てを動員して,全力で殴りかかりましょう! 反応がない? たぶん突っ込むところがないほど完璧な答案なんですよ,きっと。
 
 
5, 本当のことを話す
 
 相手はこれから一緒に働くことになるかもしれない人です。嘘を付いていったい何になるというのでしょう?  事実面接に先立って本当のことを話すよう再三アナウンスがあります。そもそも先に述べたように面接とは口頭試問であり,志望動機だとかサークルやアルバイトの話は枝葉末節であって,着飾る必要などありません。だいたいそんなプライベートなことにも嘘をつくようでは,実際に仕事を始めてからどんな嘘をつくものかわかったものではありません。聞かれたことに対して本当のことを正確に答えるように心がけるべきです。

 「御社が第一志望です」などということもあえて言う必要はありません。儀式化された無益な嘘です。向こうは多くの志願者の中から情け容赦無く選びますし,こちらも多くの選択肢のひとつとして検討するというまでのことです。
 
 とくに,併願先の報告を求められるかもしれませんが,その回答は採用人数の決定などシステム上のもので合否には一切関係がないとアナウンスがあるはずです。合否には一切関係がないのであるから,当然,面接で聞かれることもないはずです。ただ実際には,面接で併願先に関することを聞かれることがあるかもしれません。しかしそれは合否には一切関係がありません。併願先は合否には一切関係がないとアナウンスされているからです。合否には一切関係がないので,正直に報告するべきです。言い換えれば併願先は合否には一切関係がないということになります。しかし本当に併願先は合否には一切関係がないのでしょうか? それは心配する必要はありません。併願先は合否には一切関係ないためです。まとめると,併願先は合否には一切関係ありませんから,併願先は合否には一切関係がないことになります。
 
 
6, もちろん適性検査も正直に回答する
 
 適性検査というのは性格の傾向を知り,仕事への適性を測るためのテストのことです。これに「模範解答」はありません。人の数だけ答えがあるのが当然のことです。
 
 じっさい,これに取り組む際,正直に記入するよう指示があるはずです。あくまでも極端に適性のない人を採用してしまいお互いが不幸になるようなことを未然に防ぐためのものであって,ここで問われるような性格は人の生まれ持った性質であって,人種や性別と同様,ほとんど変えることのできないものですから,これが採用に関わることはまずないはずです。
 
 あなたはあなた自身に嘘を付くことなどできませんし,そうすべきでもありません。正直に回答しましょう。
 
 
7, 見た目ではなく心を見せる
 
 就活というと,何千円も払って写真館でレタッチ付きの証明写真を撮る人が多いですが,くだらないことです。あなたが面接担当者だったとして,写真の写りで採否を決めますか? いつも資格試験に使っている1シート500円の証明写真機のもので全く問題ありません。
 
 面接当日の身なりにも同じことが言えます。流石に清潔感がないようなのは問題がありますが,たとえば髪の毛を高い美容院で切る必要はありません。いつもの千円カットで充分です。
 
 
8, ユーモアも忘れない
 
 面接は対話であって演説ではありません。人の心と心が通いあうようでなければ,それは対話とは言えません。

 そこで重要になるのが諧謔心。面接はどうも肩が凝りがちです。適宜ユーモアのある発言を挟んで,緊張した空気と相手の警戒心を解きほぐすように心がけましょう。
 
 笑いのあるところに心の交流が生じ,信頼関係が生まれるのです。
 
 
9, 自分を安売りしない
 
 役職の高低は身分の高低ではありません。自分が面接を受けている身だからといって卑屈になる必要などありません。
 
 主張すべきことは臆さず主張することが責任ある大人として必要なことですし,時に主張と主張が鋭くぶつかり合うことによって新しいものが生まれるのです。

 教え合い学び合うことこそが健全な市民社会の維持と発展のために不可欠な営みであり,安易なリスク回避の果てに今のこの国の窮状があります。優秀で人生経験豊かな面接担当者の方々も当然そのことを知っています。あなたは「就活生」という顔のない概念なのではありません。あなたは,他でもないあなたなのです。
 
 
10, ビジョンは大きく,目標は高く。革新的な提案をする
 
 あなたは若い。能力にも恵まれている。慣習に飼いならされて,いったいどうすると言うんです?
 
 この国はいま大きな転機に差し掛かっています。昨日の常識は今日の非常識です。あらゆる常識をラディカルに再検討するべき時なのです。
 
 旧態依然とした組織,そして社会はこの激動の時代を生き残ることはできないでしょう。それを変革するのがあなたなのです。それが,教育を受けたあなたが背負っている義務なのです。その思いを,我こそが現状を打破してやるという熱意を伝えるのです。
 
 
 
 
 はい,全部私の初面接における実話です。
 教訓:相手のニーズは事前によく調査しておこう

My original Minetest skins

These are some Minetest skins I made. All skins reached revision 1.0 are also available on Addi’s Open MT-Skin Database but make sure that any tweaks made on revisions higher than 1.0 will not be applied on the database because it seems there is no function to remove or update skins uploaded at this time. All skins on this post are licensed under CC BY-SA 4.0 or later / CC BY-SA 2.1 JP or later / GFDL 1.3 or later (pick one most suitable for your purpose). The author name is “maruyuki”.

Diceman
diceman-frontdiceman-back
A cube. First of all, it’s a dice.
Revision: 1.0
Release/Last update: 2016-08-15
Download
Variant: Floating dice.

Wireframe boy
wireframeboy-frontwireframeboy-back
In honor of the great vector scan age…
Revision: 1.0
Release/Last update: 2016-08-15
Download

Balloon 2
balloon-frontballoon-back
But still you will hear your footsteps, weirdly.
Revision: 1.0
Release/Last update: 2016-08-15
Download
Old version (Balloon 1, not using mantle, for environments 3D Armor Mod installed)

Police officer
police_officer-frontpolice_officer-back
A diligent police officer works really hard.
Revision: 1.0
Release/Last update: 2016-08-15
Download

Shopkeeper
shopkeeper-frontshopkeeper-back
A friendly yet shrewd shopkeeper selling everything, from daily foods to banned weapons.
Revision: 1.0
Release/Last update: 2016-08-15
Download

Aloha tourist
aloha_tourist-frontaloha_tourist-back
Blue ocean, shiny sun… Tropical islands awaiting your visit.
Revision: 1.0
Release/Last update: 2016-08-16
Download

Mondrian
mondrian-frontmondrian-back
More artistic one; Mondrian.
Revision: 1.0
Release/Last update: 2016-08-16
Download

Walking PDP-11
walking-pdp-11-frontwalking-pdp-11-back
Now you’re the elder legendary computer.
Revision: 0.5
Release/Last update: 2016-08-15
Download

Last update: 2016-08-15

中華的優良多媒体播放器・Ruizu X02

 1年ちょい使った Transcend MP870 の調子がどうも悪い。ちょっとした衝撃ですぐに電源が落ちてしまう。
 保証期間も切れてるし買い換えるか,ということで後継機種の MP710 を見たのですが,ogg vorbis が再生できなくなっているようです。それに,レビューを見ると MP870 と同様の(おそらく)設計上の問題も残っているようです。かといって Walkman やら iPod も好みでない。もっとディープでチープなものを。ということで白羽の矢が立ったのが,中国 Shenzhen KuRei Digital Technology Co., Ltd.RUIZU X02という機種です。
 ルイズ!ルイズ!ルイズ!ルイズぅぅうううわぁああああああああああああああああああああああん!!!
 あぁああああ…ああ…あっあっー!あぁああああああ!!!ルイズルイズルイズぅううぁわぁああああ!!!

 ……ではなく,「锐族」と表記するようです。こいつを中国のショップから購入します。
 本体色は3色展開で,「激情紅」「天空藍」「優雅白」があります。今回は「激情紅」を選びました。「激情紅」
 気になるお値段は8GBモデルで US$16.20(1700円くらい)なり。安っ。

 ポチッと注文,待つこと二週間,やっと到着。
DSC00038
 正規品確認のスクラッチも付いていてなかなかちゃんとしてますが,能書きの英語の怪しさから中小企業感がにじみ出ています。たとえば「RUIZU brand Seiko digital player」なる表現が登場します。「精工」が「Seiko」に機械翻訳されたんでしょうね…… 「美学エディション」とのことですが,他のエディションもあるのでしょうか。

DSC00039
 内容物は本体,イヤフォン,USB ケーブル,説明書類。
 なお説明書は英語(ただし機械翻訳)ですが内容が薄く役には立ちません。まあ,UI はシンプルで使いやすいので,この手のデバイスに慣れている方であれば操作に迷うことはないと思います。

DSC00095
 付属イヤフォンが意外といい感じです。高音がややチープですが聴き疲れしない音なので PC 用に最適です。日本の物価で言えばこれだけでも500円分くらいの価値はあるかも。

DSC00062
DSC00069-a
 4-5世代の iPod nano に似ていますが,素材やコストの制約を踏まえたアレンジが加わっており,中小企業であっても単純な模倣に終始する時代は終わったのだと感じさせます。
 裏面には「X02 多媒体播放器」とあります。かっこいい。

音質
 「入門級 HiFi」を売り文句にしているだけあり,ノイズなどは特に気になりません 1。特定の周波数が出ていないということもないようです。秋葉原で売っている千円くらいの mp3 プレーヤと Walkman や iPod のどちらに近いかで言えば,明らかに後者です。

対応フォーマット
 設定メニュー内に対応フォーマットの一覧があり 2,以下が示されています。
 mp3, wma[wma9, 32-48khz, 5-192kbps],Audible,Flac[8-42khz, VBR, 16bits], APE[8-48khz, VBR, 16bits], wav[8-48khz, up to 1.44mbps]
 書かれていませんが ogg vorbis にも対応しています。というか,販売店情報でそのことを知ったので買ったというのもあります。同様に販売店情報で,この機種は Rockchip 社の RKnano-B という ARM SoC を使用しているようです。
 いちおう動画も対応していますが,フォーマットは中国独自規格の amv のみ,解像度は160*128までの対応と,事前の変換が前提です。しかしまあ,この機種で動画再生をしようという人もいないでしょう。
 他に録音機能,写真再生,テキスト表示機能もあります。FM ラジオ機能もありますが日本の周波数帯には対応していないようです。
 また,「Music」ではなく「Folder」から開くことで,古き良きディレクトリベースの DAP として使うこともできます。開いた場所もちゃんと記憶されます。ただし「Folder」からの参照の場合なぜかファイルの並びが名前順にならず,バラバラになってしまいます。今後の改善を期待したいところです。
 
操作性
 時代に真っ向から反するほぼテキストベースのシンプルな UI ですが,メニューの見通しがよく,レスポンスもよくサクサク動くためとても使いやすいです。日本語の表示にもしっかり対応していますし,先に触れたとおり日本語メニューもあります。操作性は良いですが,いくつか問題も指摘できます。
・ボリューム操作がボタンひとつではできず,まず VOL を長押しして音量メニューを出してから戻る/進むキーで調節する,という手順を踏む必要がある。
VOL+戻すでホールド機能(操作無効化)が有効になるが,間違えて押してしまうことが多い,というか間違えて押してしまうことしかない。そもそもこの機能って使っている人いるんだろうか? 解除には VOL+戻るを3回押す必要がある。設定でオフにできない。
 しかし,全体的には満足のゆくものです。

バッテリの持ち
 素晴らしく良いです。公称値は80時間。自分の使い方だと二週間くらい平気でいけます。ちなみに,さらに2.5倍,公称200時間(!)の X08 という機種もあるのですが,ボタンが少なすぎますので,操作性とのバランスの良さそうな X02 にしました。

サイズ・重量・質感
 いい意味でチープです。というのも,とても薄く軽く 3,ポケットに入れていることを忘れるほどなのです。値段も値段ですから,特に扱いに気を使うこともありません。文具の感覚で気軽に使えます。近ごろ多機能化・高音質化の追求で主流派 DAP が高級化・肥大化していっていますが,やっぱり DAP はこうでなくちゃ。
 梨地加工 4になっているので,質感は意外にも高く,なんとなく指で撫でたくなる感じです。見た目にもお洒落な印象を受けます。ただ,この加工は角の削れや黒ずみが付き物ですので,使っている内にどうなるかは気になります。まあ,普通で言えばカバーぐらいの値段なので,汚れてきたら買い換えるという割り切りもできるといえばできますが。

2016/11/28追記:プラグジャックの接点がきついようで,イヤフォンのプラグに傷が付くことに気付きましたので,追記しておきます。特に実用上の問題はありませんが,高価なイヤフォンを挿すのは避けるべきでしょう。安価ながら音質の良さに定評のある KZ ED9 などを一緒に注文しておくのもいいかもしれません。

 ということで,Ruizu X02 はかなりお勧めできる DAP でした。
 しかし最近の中国新興メーカー製品の品質の向上は凄まじいです。スマートフォンなどを見るとわかりやすいですが,極端にコモディティ化した分野では既に絶対的な品質で比べても負けつつあります。日本は一刻も早く労働集約的な産業への依存,(ファブレスや IP でない)製造業偏重の政策から脱却しないと大変なことになるはずです 5

Notes:

  1. ただし外から来るノイズには弱いらしく,スマートフォンと重ねて使ったりすると,通信に合わせてノイズが乗ることがあります。
  2. 英語版では「Supported formats」ですが,なぜか日本語版 UI では「サポートされていないファイル形式」と誤訳されています。
  3. 実測で重さ30g,厚み8mm
  4. 古い Thinkpad とかのアレ。
  5. そこ,もう既に手遅れだとか言わない。

『平成生まれ』が最終回を迎えるそうで

 過去記事を見ていただければわかる通り,このブログでは,というか私は基本的に硬派な話しかしないのですが,これは言及せざるをえない。
 私イチオシの漫画,ハトポポコ『平成生まれ』が掲載誌「まんがタイムきららキャラット」8月号(今月28日発売)で最終回を迎えるそうです。単行本も7月に発売予定で,Amazon の商品ページには以下のようなキャプションがあります。

ウザくて堪らないのに何故か読み出すとやめられない、とまらない。
そんな「平成生まれ」シリーズも遂に最終巻。

平成生まれ3 (まんがタイムKRコミックス) | ハトポポコ | 本 | Amazon.co.jp

 終わると見せかけて終わらないことに定評のある『平成生まれ』ですが,「シリーズ」最終巻とあるので本当に終わってしまうようです。私がこの作品を知ったのは今年の2月なんですが,もう終わってしまうとは…… 1

 この作品,まず登場人物がよくあるストックキャラクタの枠の中に収められておらず,かつそこまで奇をてらったような設定でもないのがすごくよい。むろん漫画という特性上おのおのカリカチュアライズされた特徴が与えられていますが,そこから少し崩すことで「人」を描写しようとする意識が感じられます。間合いのとり方や言葉の選択が丁寧であり,特定の表現に関連付けられた記号としての“感情”ではなく,連続的でアナログな感情描写がなされています。そのため,きちんと書かれた小説のように,次に何が起こるか覚えるほど読み返しても繰り返し楽しめます。そして,そうしたリアリティとうまく両立している理想化された悪意のなさ。人の弱さ,すなわち感情や自意識に振り回されてのぎこちないコミュニケーションは妙に現実的でさえありますが,そこで交わされているのは限りない肯定です。ああ,なんて現実の世に足りないものであることか。人はここに善を見いだすでしょう。不条理と獣性に満ちた殺伐とした現実からのつかの間の逃避ができる場所,それが『平成生まれ』なのです 2

 とりあえずは単行本の予約ですね。雑誌も探してみます。そして買いましょう,皆さんも。千円近くとちょっと高いですけど,何度読んでも楽しめるのでお得ですよ!

Notes:

  1. もっとも連載開始は2011年とのことで,5年という長い期間続いたわけですから,仕方のないことです。
  2. まだ大丈夫です。まだそんなに追い込まれてないです。

鈴木正朝氏,高木浩光氏らが独立シンクタンク「一般財団法人情報法制研究所」設立へ

News & Trend – 「もう役所任せにしない」、情報法制の民間研究団体を企業や学者らが設立へ:ITpro
一般財団法人情報法制研究所設立、学際的な専門家の集積による政策提言目指す – WirelessWire News(ワイヤレスワイヤーニュース)
「一般財団法人情報法制研究所」設立、理事に鈴木正朝教授、高木浩光氏らが就任、LINEも支援 -INTERNET Watch

 なるほどねー。なるほどねー。まず顔ぶれが濃ゆい。理事一覧を見ると,「プライバシーフリーク」で有名な高木氏,鈴木氏を初めとして,これまで適正なプライバシ保護の重要性を主張してきた専門家の方々の名前が勢揃いしています。そういう意味ではかなり旗幟鮮明な組織と言えるでしょう。しかし,立場的にそこまで近いわけでもないと思われる方々の名前も見えます。必ずしも主張のために固まるのではなく,むしろアカデミックでの成果を社会に還元する力を持つためのプラクティカルな組織というのが本義であるようです。そのことは,政策提言を行うのみならず,約100人の委託研究員を集めたタスクフォースを作り,企業と NDA を結んだ上で踏み込んだ具体的な支援を行える体制を作るという計画にも現れています。一見うさんくさいようにも見えますが,鈴木氏や高木氏らはこれまでも,過度に緩和された(=消費者保護の乏しい)法制・ポリシーでは,国外のデータを国内に移転することができない等の理由から産業の発展をかえって阻害することになると指摘してきました。そうした主張の実践として考えてみると,とても合理的なやり方です。特に BtoC のオンライン産業では今でも浮き沈みが激しく,規律あるフェアプレイよりも全ての権利を自らの手に留保しておくほうが魅力的に見えてしまうのは仕方のないことです。それを今後につながるモデルに転換するにあたり,机上での啓蒙活動を行うのみならず今ここで役立つオルタナティブを提供するということには,非常に大きな意味があるのではないかと思います。
 興味深いのは,複数の大企業が情報法制研究所の設立・運営を支援する見通しだという点です。これまでのプライバシ関連ニュースを眺めてきて,日本のオンライン産業界は某界隈と同様の見解で一致しているように思い込んでいたので,正直なところ意外な感があります。日本の企業にも,顧客の利益を代弁するという文化が芽生えつつあるのでしょうか。あるいは飼い殺しにしてやろうという目論見なのかもしれませんが,理事の顔ぶれを見る限りそれは不可能だということが明らかでしょう。尤も,高木氏に“ステルスマーケティング”の依頼をするという暴挙に及んだある会社の広報担当者もいたくらいなので世の中わかりませんが……ともあれ,今後の展開に期待できそうです。
 ところで,こうなるとやっぱり,市民の権利そのものを守るものとして,日本にも EFF 型のバリバリに政治的かつ政治的に独立した社会運動団体も欲しくなってきますね。一応日本にも MIAU があるのですが,イシューが知財分野の一部と漫画・アニメにおける表現の問題に限られていて,サイバー空間の自由と平等一般を擁護するものとはなっていない現状があります。欧米的な「non-partisan」と日本的な「中立」の違いのわかりやすい例というか……「なら俺が!」と言うには私はまだまだ無知蒙昧なガキですし。うーむ。

3大キャリアの Android 端末に捜査当局が GPS 位置情報をこっそり抜ける機能が搭載へ

携帯のGPS情報、本人通知なしで捜査利用 新機種から:朝日新聞デジタル(2016/5/16)

  • 総務省の個人情報保護ガイドライン改訂に基づき,捜査当局が対象者に通知せず GPS 位置情報を取得できる端末が登場する。
  • ドコモは次に発売する端末の一部から対応。これまでに発売した端末についてもソフトウェアアップデートで対応させる方針。KDDI,ソフトバンクも対応の意向。
  • ドコモによると,GPS をオフにしている場合や iPhone ではこれまでどおり取得できないという。

 まあ政府では既定路線でしたし,位置情報の捜査での利用自体についてはある程度は仕方ないという感もありますが,こんな重大なことを総務省のガイドライン改訂だけで早速変えちゃうんですねえ。ノリノリですねえ。キャリア・メーカ側から法廷闘争どころか何の抵抗も見られず丸飲みしたことは,今までを考えれば予想通りとはいえ,それでもがっかりしました。
 日本において,通信の秘密やプライバシへの権力の介入は欧米と比べても比較的少ない印象がありますが,自由であるということの重要性が認識されているからではなく,単にこれまで為政者にそれを利用する発想や能力がなかっただけという,わかりやすい例でしょう。同時に,米国とは違い,企業には政府の方針に(たとえ形ばかりであろうとも)抵抗するような気骨はなく,また市民の側でも大多数の人は自らの自由の重要さについて考えてはいない,という実情が現れました。
 なお,あくまでも Android のみが対象となり,iPhone ではこれからもこっそりと位置情報を抜くことはできないようです。これは,AOSP をベースに各メーカが手を加える Android とは異なり,iPhone (iOS) ではキャリアの意向に基づいてシステムに手を加えることはできないというのが理由でしょう。不自由であることが却って自由の保護に役立つとは皮肉なことです。明治時代,不平等条約が改正されて治外法権が無くなれば日本で唯一表立って体制批判を行える存在である外国人知識人がいなくなってしまう,という理由から,民権派の間では不平等条約改正に反対する意見も根強かったそうですが,今の日本はまだそんなレベルなのでしょうか。
 また GPS をオフにしていれば位置情報は取得されないとのことですが,技術的な問題や政治的判断で今のところできない/やらないだけなのか,何か法的な判断に基づくものなのかはよくわかりません。たぶん前者だと思いますが。
 救いは,今のところ「義務」ではないことです。すなわち,キャリア以外から日本メーカ以外の端末を購入するのであれば,この問題を持たない Android 端末を今後も容易に入手可能でしょう。MVNO 普及のおかげで,日本の電波法規に適合した,キャリアとの契約によらない白ロムの選択肢が増えています。そもそも Android (と Google アカウント)自体がプライバシという面では問題が非常に多いのですが,アプリの対応 OS,価格や電波法規などから Android 端末を持たねばならない局面が多いのも事実です。そうした場合においては,技適取得済みのグローバルモデル,たとえば Nexus シリーズなどを使うことが,よりマシな(そしてより自由を求めているという意思表示になる)選択肢となるでしょう。

Twitter などを眺めているとこの件について誤解している人が多いようなので,補足情報。

  • 記事にあるとおり,令状はこれまで通り取る必要があります。充分な精査がされずこの仕組み自体有効に機能していないという指摘もありますが,それは制度の問題とは別の話。
  • 基地局ベースの位置情報はこれまでも本人に通知されることなく捜査に利用されています 1。ただし基地局情報と GPS データでは精度が全く違います 2。また,利用されていたという事実は利用することに問題がないという根拠にはならないという論点もあります。

Notes:

  1. 例えばこの記事 Listening:<通信事業者指針>改正へ 携帯位置情報を通知なく捜査利用 – 毎日新聞 – http://mainichi.jp/articles/20150525/org/00m/040/006000c
  2. 基地局による測位は数百メートル〜数キロメートルの精度と言われています。例えば秋葉原でいうとラジオセンターから TSUKUMO eX. までが300メートルくらいで,それが二次元に……いやそっちじゃなくて……広がっているのです。しかもそれは最も正確に測定できた場合の話です。一方でスマートフォンの A-GPS は,概ね10メートル程度までの誤差でトラックでき,空がよく見えて静止していればほぼぴったりになることもしばしばです。

Raspberry Pi + L-02C でバッチリ安定する多機能 LTE ルータをつくったメモ

 3大キャリアが横並びの料金・制度を維持している一方で,ドコモの回線網を利用する MVNO 業界はますます盛り上がりを見せています。各社とも特色あるプランを用意し,様々なニーズに応えられる便利かつわかりやすいシステムを発達させています。そしてそのどれもが3大キャリアの同等プランの数分の一の料金なのです。
 この春の契約見直しで,私は IIJmio のファミリーシェアプランを契約しました。音声通話オプションを付けて月額3520円,1ヶ月に10GBが利用でき,同一回線で SIM カードが3枚まで追加料金無しで利用できるというものです。10GBの高速通信容量の利用は回線ごとではなく SIM ごとに手軽にオン・オフすることができ,オフにすると最大200kbpsでの通信となります。スマートフォンならこんなものでも困りませんから,常時オフで使えば,スマートフォンでのデータ通信では容量が減らないことになります 1。これで,光回線と DTI の490円 SIM を置き換えることを狙いました。
 今回は,その IIJmio 回線で使う LTE ルータを Raspberry Pi + L-02C で仕立てたメモです。

全体像

  • Raspberry Pi をルータにする。回線は ドコモ LTE ネットワーク(MVNO : IIJmio)とし,L-02C で接続する。
  • RPi ルータには無線アクセスポイント機能を持たせず,市販のブロードバンドルータ(光回線で使っていたもの)を AP モードで運用,有線 LAN で RPi ルータに接続する。
  • apt-cacher-ng を導入する。
  • その他,BGM 再生機能,時報チャイム機能などを搭載する。

使ったもの

  • Raspberry Pi B 3500円 2
  • LG L-02C 2000円
  • システムトークス USB ハブ SUGOI HUB 4X AC アダプタ付き 2600円 バッファロー BSH4AE12 1600円(重要)
  • Transcend 16GB UHS-1 microSDHC カード 500円
  • テンキー 300円
  • アクティブスピーカ 500円
  • Raspberry Pi 用 USB-AC アダプタ 3 1000円
  • microUSB ケーブル 100円
  • 筐体(100均の箱・蝶番,ネジ) 600円

計:11100円
(価格は100の位までに四捨五入してあります)

 L-02C,USB ハブ,SD カードと筐体以外は実際には流用。後述しますが USB ハブの選択肢は非常に限られます。この機種を強く推奨します。

侮るなかれ熱暴走
 最初,こんな感じで使っていました。
DSCF2397
DSCF2405
 蓋を閉めて,すっきりしていいなあと満足していたのですが,なぜか止まってしまうことがあります。止まった状態でしばらく放置しても,SoC に電力は行っているようで,触ってみると熱を持っています。どうも熱暴走っぽい雰囲気です。SoC 温度のログを取ってみると,室温25度で60度近くまで行くようです。大した数字ではないようにも思いますが,初代 B で CPU が古い設計なので熱に弱いのかもしれません。熱で壊れたという話もちらほら聞くので,冷却は重要です。
 ファンをつけるというのが最も確実な対策ですが,ファンレスは男のロマンですので,なるべくファンレスの枠内でのエアフロー改善を目指しました。その結果,こんな感じになりました。
DSCF2416
DSCF2419
 はい,また100均です。前はもうちょっと精度の高いメッシュの小物入れも置いてあったのですが,近所3軒回ってなかったのでオシャレグッズコーナーにあったへなへなの小物入れで妥協しました。蝶番も100均で調達,ネジはホームセンターで購入した M3 の 8mm です。絶縁とホコリ除けのため,蓋側となる Raspberry Pi の下にはクリアフォルダから切り出したポリプロピレンのシートを敷いてあります。コンパクトさ重視のためエアフローは合理的とは言えませんが,効果はかなりあり,同条件で概ね43度以下で推移するようになりました。今のところハングアップもありません。夏場はどうなるかわかりませんが,50度を超えることはないでしょう。
 (16/5/4追記)ウワーだめだ。カーテンを開けたまま部屋のサーキュレータを止めて散歩に出かけて帰ってきたら春の陽気に誘われて意識不明の重体になっていました。室温はそれでも28度。残念ながら,部屋の隅に置く通信機器としては,来たるべき夏をファンレスで乗り切るのは難しそうです。とりあえず普段使っているBIGFAN 80Uを筐体の横に置いてみました。ファンコンスイッチを挟んで回転数を抑えてありますが冷える冷える。室温28度ですが32度で安定しています。ロマンの敗北は残念ですが,やむをえまい。次に秋葉原に行った時にでも静かそうで5V以下でも動きそうなファンを買ってきて筐体に組み付けたいと思います。

LTE 回線の仕様
 MVNO の LTE 回線には,プライベート IP アドレスが割り振られるものとグローバル IP アドレスが割り振られるものが存在しています 4。私が今回契約した IIJmio は前者です。プライベート IP アドレスはローカルエリアネットワーク内での居場所を指し示すものに過ぎず,インターネットの向こう側からこちらにアクセスすることはできません。したがって,LTE 回線を利用してサーバを公開したり,P2P ファイル交換を利用することはできません。逆に言えば,セキュリティについてはそれほど心配する必要はないでしょう。この記事はプライベート IP が割り当てられる回線を念頭に置いたものですのでご注意ください。グローバル IP が割り当てられる環境の場合,ファイアウォールやサーバ設定をより慎重に行い,ソフトウェアアップデートを欠かさず行う必要があります。

ハードウェアの仕様・問題
 Raspberry Pi は,誰もが忘れていますがあくまでも教育用のマイコンボードであり,常時稼動でバリバリ使う前提で作られているデバイスではありません。電源アダプタはノーブランド品を避け容量に余裕があるものを選択するだとか,SoC と LAN コントローラにヒートシンクをつけるだとかいった基本は抑えておきましょう。また,第一世代では USB 端子の出力電流が少なく,各ポート 100mA となっています 5。最大で 740mA 消費する 6L-02C はバスパワー駆動では全く足りないので,セルフパワーの USB ハブを用意する必要があります。B+/2B では設定の変更によって, 7,3B では,デフォルトで全ポート合計で最大 1.2A まで供給可能 8なので,一時的な使用であればバスパワーでも問題なさそうですが,後述のように安定して運用するためには USB ポートの電源を制御する機能が必須であり,B/B+/2B/3B の内蔵ハブともにその機能はないようですので,やはり SUGOI HUB を購入する必要が有ります。
 L-02C について,当初は問題が多かったようですが,最新ファームウェア V10e では安定しているようです 9。ただし,いくつか注意すべき点があります。
・初期設定では,始めに CD ドライブとして認識され,それを eject するとモデムとして改めて認識されるというわけのわからない仕様になっています。これは無効化できます(後述)。
・SIM カードの認識がシビアなようで,mini/micro/nano SIM にアダプタを噛ませた状態で挿入すると SIM を認識できません(インジケータが赤く点滅していたら,SIM を認識できていないということ) 10。これは厚みに起因するらしく,アダプタの「背」の部分を切り抜くことで解決します。

Raspberry Pi の準備
 OS として「Raspbian Jessie Lite」を使います。これは Raspbian から X 等を除いた最小版で,今回のように Raspberry Pi をデスクトップ用途でない目的に使用する場合に適しています。
 まず,Raspberry Pi Foundation 公式サイトから,Raspbian Lite のイメージをダウンロードします。
 zip ファイルを解凍のうえ,dd で SD カードに書き込みます。もし SD カードが /dev/sdc として認識されていれば,コマンドは以下のようになります。

$ sudo dd bs=1G if=Downloads/2016-03-18-raspbian-jessie.img of=/dev/sdc

 書き込み終えたら Raspberry Pi に挿入して起動し,ユーザ名 pi,パスワード raspberry でログインします。

raspi-config でもろもろの設定をする

$ sudo raspi-config

 ”Internationalization Options” および “Expand Filesystem”を実行,設定。Boot Options から Console Autologin を選択(後述するテンキーでの操作を可能とするため)。Advanced Options の SSH から SSH サーバ有効化。好みで Hostname や Memory Split 11も設定。
続きは SSH から。

ユーザ名を変更
 まあ好みの問題です。

$ sudo adduser hoge
$ sudo nano /etc/systemd/system/getty.target.wants/getty@tty1.service

 自動ログインするユーザを変更します。

ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM

となっている行の「pi」を新しく作ったユーザにします。

$ sudo gpasswd -a hoge adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi

 pi が入っているもろもろのグループに入っておきます。

$ sudo passwd

 su できたほうが便利なこともあるので,root のパスワードを設定して su できるようにします。

音が出るようにする
 Raspbian Lite では標準ではオーディオドライバが読み込まれていないので,これを読み込みます。

$ sudo modprobe snd-bcm2835
$ amixer sset PCM 100%
$ speaker-test

 音が出たら,起動時にカーネルモジュールを自動で読み込ませるようにします。

$ sudo nano /etc/modules

 末尾に以下の一行を追加。

snd-bcm2835

ルータ機能のセットアップ
L-02C のファームウェアアップデート,リセット,CD として認識される機能の無効化
 ファームウェアアップデートと端末リセットは Windows でやります。ドコモの製品ページに書いてあるとおりにやるだけです。
 次に CD として認識される機能を無効化します。AT コマンドを送ることで恒久的に 12無効化することが可能です。
 手順は以下を参照のこと。

L-02Cを最初からUSBモデムで認識させる/手動でAPN登録する – /dev/stkinosh

wvdial の設定,IP フォワーディング・IP マスカレード
 書こうと思ったのですが,こちらも既に素晴らしい記事が多くありますので紹介のみにとどめます。私が見つけた中で最も網羅的でかつわかりやすい記事は以下です 13

L-02CでLTEルータ作成 – /dev/stkinosh

ほぼ上のとおりにやりました。違うことをしたのは以下のみです。

  • usb_modeswitch は導入不要。
  • wvdial.conf で,
    Init3 AT+CGDCONT=1,"IP","iijmio.jp"

    を追加(フラッシュメモリに APN をあらかじめ書き込んでおいて使うのではなく,接続時に ID・パスワードと一緒に渡す)。元々の Init3 は Init4 に。

  • wvdial.conf で,/dev/ttyUSB2 ではなく /dev/serial/by-path/platform-bcm2708_usb-usb-[ここは環境によって違うはず].2-port0 を指定。こちらは(ttyUSB* と違い)物理的に同じ場所に挿される限り不変なので,L-02C を再起動した(抜いて挿し直した)場合にも Raspberry Pi の再起動が不要になる。
  • $ sudo vi /etc/network/interfaces
    iface eth0 inet manual

    となっているのを,

    auto eth0
    iface eth0 inet static
    address 192.168.1.1
    netmask 255.255.255.0

    などとし,固定 IP を指定する。

  • iptables の設定保持用に netfilter-persistent (iptables-perssstent) を導入。仕上がったら
    $ sudo netfilter-persistent save

    するだけで保存して次回起動時にも読み込んでくれる。

  • まあ念の為ということで ssh は 192.168.0.0./24 および 192.168.1.0/24,domain および bootp (dhcp) は 192.168.1.0/24 からのアクセスのみを許可するよう変更。グローバル IP が振ってくる回線の人は必須です。別の回線から当該回線の IP に nmap -Pn してみて出てこなければオーケー。このへんがわかりやすい→iptablesの設定方法|さくらインターネット公式サポートサイト
  • ディレクトリ,ログ,DNS サーバなどを自分の好みに変更。

ほか,以下のページも参考にしました。
格安SIM(MVNO)とRaspberry Pi(ラズベリーパイ)でモバイルルータを作った 〜初期設定から完成まで〜 – $yuzu->log();
Qaplaの覚書・メモ・備忘録・独言 Raspberry Pi をUSBモデムでインターネット接続
Berrbear: Raspberry piでUSBモバイルモデム
SORACOM Air が使える USB 3G/LTE モデム、WiFi ルーターのまとめ – bearmini’s blog
Raspberry PiをL-02C+IIJmioでつないでみた: EeePCの軌跡
Raspberry Pi 2で0SIMをL-02Cで使ってみた。
Raspberry Pi 2 Model BをSORACOM Airに接続してみました。 #soracom |
デジモノステーション2016年2月号付録の0SIMをRaspberry Piで試す | matoken’s meme

ルータ以外の機能のセットアップ
 ルータ以外の機能をセットアップします。apt-cacher-ng を導入する以外は以前書いた「Raspberry Pi ホームオートメーション計画(1)」とほぼ同じです 14。それぞれの機能は USB テンキーで操作できるようにします。

apt-cacher-ng
 Apt-Cacher Next Generation は,APT の deb ファイルをキャッシュしてくれるソフトウェアです。これを導入することによって,アップデートに伴うデータ通信を削減することができます。LAN 内に Debian 系で同じアーキテクチャ(i386 など)の同じディストリビューションが導入されたマシンが複数台ある場合に有用です。サーバにインストールしたうえでクライアントでプロキシの設定をするだけで利用できます。なお,場合によっては大量のデータをローカルに書き込みますので,SD カードの寿命を大きく削ることが予想されます。最初 USB メモリや USB HDD などに書き出すことも考えましたが,一度設定が完成したらオリジナルの(消えたら困る)データは蓄積されませんので 15,SD カード一本で行って壊れたら都度買い直して dd でイメージを書き戻すようにした方が手間を考えると低コストであると考え,とりあえずそれで様子を見ることにしました。

# aptitude install apt-cacher-ng

 次にポートを開けます。ローカルネットワークから,ポート3142への通信を許可します。上で紹介したページでの IP アドレスレンジ,rules の場合の例。

$ sudo iptables -I OPENNEW 4 -p tcp --dport 3142 -s 182.168.1.0/24 -j ACCEPT

 よくある凡ミスでパケットを全部 drop した後ろにルールを追加して反映されないというのがありますので気をつけてください 16。iptables は上から順番に逐次マッチングされて,最初に見つかった合致するルールだけが使われます。
 LAN 内のマシン全てに以下のファイルを作ります。

# vi /etc/apt/apt.conf.d/02proxy

中身はこんな感じで。

Acquire::http::Proxy "http://192.168.1.1:3142/";

 update のうえで何かインストールしてみて,/var/log/apt-cacher-ng/apt-cacher.log にきちんとログが残っていたらうまくいっています。http://192.168.1.1:3142/ にブラウザでアクセスすると,キャッシュのヒット率などを見てニヤニヤすることができます。
第315回 apt-cacher-ngを使ってAPT用キャッシュプロキシの構築:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

音楽再生
 次に ogg123 を導入します。この手の用途では mplayer がよく使われますが,多機能な一方 X に依存しているなどヘッドレス環境で使うにはあまり便利でないので,単機能でコンパクトなこちらのソフトを選択しました。

$ sudo aptitude install vorbis-tools

 たとえば,~/Music/Classical にある全ての ogg ファイルをシャッフルして無限ループさせる場合は以下のようにします。

$ ogg123 -r -z -q Music/Classical/*.ogg &

 mp3 ファイルを使用する場合は,mpg321 を使用します。ソフト名は mpg321 ですが,コマンドとしては mpg123 でもデフォルトでパスが通っています。逆に ogg321 はダメなので,ごっちゃにならないよう mpg123 として使うことをおすすめします。

$ sudo aptitude install mpg321
$ mpg123 -r -z -q Music/Classical/*.mp3 &

 これを後で alias に設定します。

チャイムを鳴らす
 部屋にいることが多い学生身分なので,だらだら過ごしてしまわないよう時報を鳴らすようにしています。私の設定は以下で,朝8時〜夜10時まで1時間ごとにチャイムが鳴ります。

$ crontab -e
0 8-22 * * * ogg123 -q [パス]/chime.ogg

なお,「crontab -e」しようとして「crontab -r」しちゃうというのは定番ネタですので,.bashrc に alias ‘crontab’=’crontab -i’ を加えておくのがおすすめです。
cron の設定ガイド

データ通信量を出す
 本当は「みおぽん API」を使おうと思ったのですが,この辺になるとそろそろめんどくさい短い人生の限りある時間を大切に使おうという気持ちが強まってきたので,/proc/net/dev を使って簡易的に済ませます。

$ grep eth0: /proc/net/dev | while read x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11; do echo $(((x2+x10) / 1024 / 1024)); done

 これで eth0 を通った上り・下りのデータ量の合算を表示できます。単位は MB です。後述のように LTE の接続が切れて ppp0 が消えてしまうことがあり,その時に累積が消えてしまうので,入口の ppp0 ではなく LAN への出口の eth0 を見ています。Raspberry Pi の自体の通信(ソフトウェアアップデートなど)は反映されませんが,このさい細かいことは気にしない。
 /proc/net/dev は再起動するとリセットされるので,電源を切るときはどこかに書きだしておく必要があります。/var/log/packetcount.log に書き出すとして,以下のようにすると合算して表示できます。

$ grep eth0: /proc/net/dev | while read x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11; do echo $((((x2+x10) / 1024 / 1024)+$(cat /var/log/packetcount.log))); done

 このまま実行するとファイルが存在せず何も挿入されず文法エラーになるので,/var/log/packetcount.log を作って 0 とだけ書いて保存しておいてください(雑

 これを毎月リセットするために,crontab を設定します。Raspberry Pi には RTC がなく,たとえば1日0時5分などとすると5分以内に NTP サーバとの通信がうまくいかなかった場合に実行されてしまいますので,余裕を持った時間指定にしておきます。

$ sudo crontab -e
1 10 1 * * echo '0' > /var/log/packetcount.log

ネットワークの転送量を調べる方法 – ぴょぴょぴょ? – Linuxとかプログラミングの覚え書き –

OpenJTalk で喋らせる

$ sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic htsengine libhtsengine-dev hts-voice-nitech-jp-atr503-m001

 オプションを引数で指定するのが必須だったり,wav ファイルとして出力されるのでそれを別途再生する必要があったりといろいろ煩雑なので,引数として文字列を渡せばそのまま喋ってくれるスクリプトを用意しておきます。なお,Raspbian のベースが Wheezy から Jessie に変わった関係で,OpenJTalk の使い方もやや変わっているのでお気をつけ下さい。

$ nano /usr/local/bin/ojsay
#!/bin/bash
TEMP=$HOME/ojsay.wav
echo $1 | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -ow $TEMP
aplay --quiet $TEMP
rm $TEMP
$ chmod +x ojsay
$ ojsay 誰かがヨーゼフ・Kを中傷したにちがいなかった。悪いこともしていないのに,ある朝,逮捕されたのだ。

 少し待たされて,読み上げられるはずです。むちゃくちゃお手軽ですね。処理に時間がかかるのと,一文が長くなると突然読み上げがやたら遅くなるというバグ?があるようなので,一度に喋らせるのは一言二言にしておくのがおすすめです。
他のコマンドの出力やウェブスクレイプイングと組み合わせれば,可能性は無限大です。

$ ojsay "$(date +"%B%d日 %I時%M分")"

 日時を読み上げ。

$ ojsay "現在のコア温度は $(echo $(($(cat /sys/class/thermal/thermal_zone0/temp)/1000)) | sed s/\.[0-9]+$//g)度 です"

 SoC の温度を読み上げ。

$ sudo aptitude install curl
$ ojsay "$(curl http://www.tenki.jp/forecast/3/16/4410/13101-daily.html 2> /dev/null | grep -e "wethreDrtalIiconText" | sed "-e s/<[^>]*>//g" "-e s/^ *\(.*\)\$/今日の天気は \1 です/" | head -n1)" | head -n1"

 天気を読み上げ。

$ ojsay "$(curl http://www.asahi.com/ 2> /dev/null | grep -A 1 "iref=comtop_6" | sed "-e s/<[^>]*>//g")"

朝日新聞社ウェブサイトの見出し読み上げ。(流石に結構待たされる)
RaspberryPiにOpenJTalkをインストールする – 試したこととか困ったこととか
Debian Jessie に OpenJtalk を入れてテキストを読み上げてみた – 残しときます(自分用)
Linux – シェルスクリプトで天気予報取得! – mk-mode BLOG

テンキーで操作できるようにする
 入力は USB テンキーから行います。最初はプログラマブルテンキー「NT-19UH2BK」を検討したのですが,金欠なので無駄をなくし環境負荷を軽減するために棚に転がっている普通のテンキーを有効活用することにしました。入力そのものは数字だとか記号だけですので alias でそれぞれにコマンドを割り当てます。まあ,今回の用途なら特に不足はありません。

とりあえず,こんな感じで割り当てました。

* 再起動
*** 停止
7 SoC 温度読み上げ
8 ニュース見出し読み上げ
9 音声出力オン
+ データ通信量読み上げ
+++ データ通信量リセット
4 天気予報読み上げ
5 日付読み上げ
6 音声出力オフ
1 再生開始1
2 再生開始2
3 再生停止
0 ping
00 L-02C 電源リセット(詳細は後述)
000 アップデート試行
000000 とてもつらい

以下を ~/.bashrc に追加します。

alias '*'='ojsay '再起動します'; if [ "$(grep eth0: /proc/net/dev | while read x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11; do echo $(((x2+x10) / 1024 / 1024)); done)" != "" ]; then sudo sh -c "echo "$(grep eth0: /proc/net/dev | while read x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11; do echo $((((x2+x10) / 1024 / 1024)+$(cat /var/log/packetcount.log))); done)" > /var/log/packetcount.log"; fi; sudo sh -c "shutdown -r now"'
alias '***'='ojsay '停止します'; if [ "$(grep eth0: /proc/net/dev | while read x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11; do echo $(((x2+x10) / 1024 / 1024)); done)" != "" ]; then sudo sh -c "echo "$(grep eth0: /proc/net/dev | while read x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11; do echo $((((x2+x10) / 1024 / 1024)+$(cat /var/log/packetcount.log))); done)" > /var/log/packetcount.log"; fi; sudo sh -c "shutdown -h now"'
alias '7'='ojsay "現在のコア温度は $(echo $(($(cat /sys/class/thermal/thermal_zone0/temp)/1000)) | sed s/\.[0-9]+$//g)度 です"'
alias '8'='ojsay "$(curl http://www.asahi.com/ 2> /dev/null | grep -A 1 "iref=comtop_6" | sed "-e s/<[^>]*>//g")"'
alias '9'='amixer sset PCM on'
alias '+'='ojsay "今月のデータ通信量は $(grep eth0: /proc/net/dev | while read x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11; do echo $((((x2+x10) / 1024 / 1024)+$(cat /var/log/packetcount.log))); done)メガバイト です"'
alias '+++'='ojsay "データ通信量の記録をリセットします"; sudo sh -c "echo '0' > /var/log/packetcount.log"; sudo sh -c "shutdown -r now"'
alias '4'='ojsay $(curl http://www.tenki.jp/forecast/[お住まいの地域の URL] 2> /dev/null | grep -e "wethreDrtalIiconText" | sed "-e s/<[^>]*>//g" "-e s/^ *\(.*\)\$/今日の天気は \1 です/" | head -n1)'
alias '5'='ojsay "$(date +%B%d日%I時%M分)"'
alias '6'='amixer sset PCM off'
alias '1'='ogg123 -r -z -q ~/Music/Jazz/*.ogg &'
alias '2'='ogg123 -r -z -q ~/Music/Classical/*.ogg &'
alias '3'='sudo sh -c "pkill -f 'ogg123'"'
alias '0'='ojsay "$(ping=$(echo "$(ping -c1 8.8.8.8)"|grep " 0% packet loss"); if [ "$ping" = "" ]; then echo "ネット接続に問題があります"; else echo "ネット接続は正常です"; fi)"'
alias '00'='sudo sh -c "checkppp0"'
alias '000'='sudo sh -c "aptitude update; sudo aptitude upgrade -y"'
alias '000000'='ojsay "とてもつらい"'

 このままだと sudo sh がパスワード入力待ちで止まってしまいますので,これらのパスワード入力を不要にします(雑

$ sudo visudo
hoge ALL=(ALL) NOPASSWD: /bin/sh

を追加。ま,今回の場合パスワード入力は自分のフールプルーフになればいいのでこれでよしとします。
 テンキーにシールを貼るなどして割り当てた機能を書いておくとわかりやすいです。

L-02C の自動再起動を実現する
 よし完成,めでたしめでたし……と思ったら,ときどき通信が切れて,L-02C の電源を一度切るまで(ポートから一度抜いて挿しなおすまで)使えなくなることがあることに気が付きました。どうも L-02C のファームウェアの安定性に何かしら問題があるようです。数分おきに ping を飛ばすなどして自動切断の回避を試みるなどしても 17,あまり効果はないようです。他は完璧なのに,ここだけはどうやってもうまくいきません。
MR-GM2運用テスト、とりあえず失敗・・・ | めざせ東京リーマンの千葉週末田舎暮らし
MR-GM2運用テスト、その後・・・|めざせ東京リーマンの千葉週末田舎暮らし ー太陽光発電の売電収入で別荘が買えるかー
格安simをパソコンで使えるようにする曲者デバイスL-02cを紹介(オススメするとはいわない)|投げて、捨てて、シンプルライフ

 残念ながら AT コマンドでハードウェアを再起動させる方法はない模様です。しかしまあ,要するに,一度電源を切ってやればよいのです。/sys/bus/usb/drivers/unbind や /sys/bus/usb/devices/*/power/control 18 19 20から電源を切れますし……と思ったら,できない。前者は認識はしなくなるけど電源は切れない。後者は存在すらしない。なんで。
 しばらくさまよい歩くと,「hub-ctrl.c」というイカしたツールを見つけました。これを使えば,USB ポートの電源をより手軽に制御できるとのことです。――自分の環境ではできませんでしたが。なんでも,lsusb -v してみて Hub Descriptor に「Per-port power switching」とあるものでしか電源制御はできないらしい。「No power switching」や「Ganged power switching」とあるものはそもそもそのための回路が入っていないとのこと。最初に購入した U2HS-T201SBK という USB ハブは,案の定というか「Ganged power switching」でした。なんてこった。名前からはできそうな雰囲気が漂っているんですけどね…..光学マウスを付けて試してみたら,(全てのポートに一斉に反映されるのではなく)特定の1ポートのみに反映され,ランプが消えました。これは行けるか? と L-02C につなぎ替えてみたら無理でした。USB ランプ(単に電力を取ってるだけでなんの制御回路もなし)をつないでいると p=0 にしても光ったままですから,電源自体は供給されたままのようです。手元にあった U2HS-T201SBK(バスパワー)および BSH5U03(セルフパワー)の2機種で同じ挙動。また,実機が手元にないのと情報が少ないのでなんともいえませんが,今回使用した B に加え B+/2B/3B の内蔵ハブもポート個別の電源制御はできないようです。
 じゃ「Per-port power switching」なハブってどんなのがあるのというと,マザーボード内蔵のものを除き殆ど無いんだそうな。まあ確かに USB ハブのポートを個別に制御しようという需要なんてあんまりないでしょうからねえ。動作報告のある現行品で唯一の選択肢が,「SUGOI HUB 4X (USB2-HUB4X)」というものらしい。なんとなく不安になる製品ページですが,ともかく,4つあるポートの内なぜか2つだけですがちゃんと電源を制御でき,USB ランプのような電源ラインしか使っていない機器もオンオフできるらしい。ということで購入。予算オーバーつらい。
 喜び勇んで /sys/bus/usb/ 方面を漁ってみたのですが,power/control がない。ああそうだった。調べてみると,Raspbian が採用している4.1系のカーネルではこの制御方法は廃止されているようです。unbind にデバイス ID を書き込むやり方は使えて,無事にオンオフできましたが,両方のポート一斉にしかできません 21。まあそれでも困りませんが,せっかく買ったので実力を出し切りたい。幸い,先述の hub-ctrl を試してみたところ今のカーネルでもそのまま使えましたので,これを採用することにしました。

$ wget http://www.gniibe.org/oitoite/ac-power-control-by-USB-hub/hub-ctrl.c
$ sudo aptitude install libusb-dev
$ gcc -o hub-ctrl hub-ctrl.c -lusb
$ chmod +x ./hub-ctrl
$ mv ./hub-ctrl /usr/bin/
$ sudo hub-ctrl -b 001 -d 004 -P 2 -p 0
$ sudo hub-ctrl -b 001 -d 004 -P 2 -p 1

 おー,いけるいける。lsusb して NEC Corp. HighSpeed Hub とあるものの Bus を -b, Device を -d,ポート番号(向かって左から1,2)を -P で指定しています 22。-p 0 でオフ,-p 1 でオン。これさえあればこっちのものです。
というわけで,

$ sudo vi /usr/local/bin/checkppp0
#!/bin/sh
pppalive=$( /sbin/ifconfig | grep "ppp0" ); if [ "$pppalive" = "" ]; then /usr/bin/hub-ctrl -b 001 -d 004 -P 2 -p 0; sleep 10; /usr/bin/hub-ctrl -b 001 -d 004 -P 2 -p 1; fi

 (crontab に一行で書こうと思ったけどなんかうまくいかなくて面倒くさくなってそのまま外部のスクリプトにしたというアレ)
 
 (16/9/11追記)追記し忘れていましたが,ハブを BSH4AE12 に交換して,1)ハブしか接続していなくても Device の番号がたまに変わるようになる,2)ポートのひとつひとつを選択して入切してやらないといけないっぽい?という仕様の違いがあったので,それに対応するために checkppp0 を修正しました。BSH4AE12 対応版は以下です。たぶん大丈夫と思いますがちゃんとチェックしてないのであんまり自信ない。

#!/bin/sh
pppalive=$( /sbin/ifconfig | grep "ppp0" )
if [ "$pppalive" = "" ]
        then
        HUB=`/usr/bin/lsusb -v 2>/dev/null | grep ^Bus | grep "Genesys Logic, Inc. USB-2.0 4-Port HUB"`
        BUS=`echo $HUB | awk '{print $2}'`
        DEV=`echo $HUB | awk '{print $4}' | sed -e "s/\(.*\)\:/\1/p;d"`
        for i in 1 2 3 4
        do
                /usr/local/bin/hub-ctrl -b $BUS -d $DEV -P $i -p 0
        done
        sleep 20
        for i in 1 2 3 4
        do
                /usr/local/bin/hub-ctrl -b $BUS -d $DEV -P $i -p 1
        done
fi

 
 ここまで何日もいじっていて,圏外(ランプ黄色),接続待機でのハングアップ?(ランプ白),接続再試行中のハングアップ?(ランプ青点滅)問わず通信ができなくなった時には確実にセッションも切れて(そしてそう認識されて) ppp0 が消えるらしいということがわかったので,単に ppp0 の存在確認をしています。ping を飛ばすのと違いネットワークに負担がかかりませんし,CPU も食いませんので,毎分だって実行できます。これによって,ダウンタイムを最小化でき,自宅回線としてストレス無く利用することができるようになります。15分の load average を見ても 0.1 を超えることはない(おおむね0.05〜0.07で推移)ようなので,更にチェックの頻度を上げるのもアリでしょう。
 (16/5/1追記)と書きましたが,ダメっぽいです。時々ひっそりと死んでいることがあります。理由は特定できていませんが,ログに出てないのでハードウェア側っぽく,熱は大丈夫なので電源周りっぽい雰囲気があります。2.4A対応アダプタ+ケーブルで試してもダメなので,本体の問題の模様 23。だとしたら,B+以降やポリヒューズ改造後の個体なら大丈夫かもしれません。そのへんはまた後で検討するとして,とりあえず毎分ではなく5分おきに実行するようにしてみたところ安定しています。
 (16/11/2追記)別ハードウェアで毎分の実行を試してみて気付きましたが,wvdial の自動再接続で事が済むような“正常な”接続断にまで L-02C 再起動で対応することが増えてしまうため,却ってダウンタイムが一気に増えてしまいます。やはりチェックのインターバルは数分程度はあったほうが良いようです。
 なお,今回は Raspberry Pi 本体にハブしか挿しておらず数字が変わらないのでベタ指定してますが,他のデバイスも挿している場合は,こちらを参考に lsusb から自動取得するようにするとよいでしょう 24
 
では,最後の敵をいざ倒さん。

$ sudo crontab -e
*/5 * * * * /usr/local/bin/checkppp0

 ふー,倒した。長かった。ともあれ,これでやっと RPi ルータが完全体になりました。

 (16/8/14追記)SUGOI HUB 4X が早くも故障してしまいました。享年4ヶ月という夭折です。改めてネットを眺めてみると,比較的ニッチな製品の割に故障報告が多く目に付きます。じっさい製品の値段もそう高くありませんし,回路は奢っていてもコンポーネントの質は高くないのかもしれません。修理をしても(これがまた販売店への持ち込み不可で最初にメールであれこれしないといけないとやたら煩雑なのですが,それはまた別の話……)また壊れてしまうかもしれません。そこで代替機種を調べてみることにしました。白羽の矢が立ったのが,「節電 USB ハブ」を謳うバッファロー BSH4AE06 です。とても小さい上,手にとってみると非常に軽く,おそらく中はスカスカでしょう。しかしその分,部品点数が少なく壊れにくいことが期待できます。この機種は既にディスコンになっており,後継機種として BSH4AE12 というものが出ています。型番や能書きを見る限り,中身は miniUSB 対応から microUSB 対応に修正された以外は同じものではないかと思われます。今はまだ BSH4AE06 の方が安いですが,まもなく入れ替わることになると思います。なお,USB 3.0 ハブにも目を向けると,電源制御に対応しているという報告のあるものがいくつもあります。 25ただし,セルフパワー対応のものはまだ値段がこなれていません。
 さて BSH4AE06 ですが,結論としては「当たり」でした。Per-port power switching ではなく ganged power switching ですが,先述のような,実際には電源制御できないのに(おそらくは設計上の不備によって)情報だけはそう渡していると思われるものではなく,「本物の」 ganged power switching ですので,ポートごとの電源制御はできませんが,ハブの全ての電源を一度にオンオフすることであれば可能です。lsusb すると「Genesys Logic, Inc. USB-2.0 4-Port HUB」というのがありますので,/usr/local/bin/checkppp0 を先述の要領で書き換えます。また,/etc/wvdial.conf のモデムのパスも書き換える必要があります。
 あと,この件に関する修正を加えるにあたって,この記事がものすごく役に立ちました。当然といえば当然ですが,何かするときに記録を細かく残すのは大切ですね。

 しばらく運用してみて大丈夫そうなら,完成です! おめでとう! 忘れずにバックアップしておきましょう。shutdown -h now したあとカードを別のマシンに刺して,わかりやすいファイル名で保存しておきます。圧縮をかけると未使用領域が縮んでナイス。

$ sudo sh -c "dd if=/dev/sdc | gzip -c > RPI-LTE-ROUTER-$(date "+%y-%m-%d").gz"

(/dev/sdc の部分は環境によって異なります)
 いやあ〜よかったよかった。
モーション検出でUSBライトのON・OFF
LinuxからUSB HUBの電源のON/OFFを制御してみる – memoメモ
電源制御型USBハブでUSBチューナーの見失い状態を解消する。(PX-W3U3、S3U2ほかUSBチューナー汎用): Vladiのブログ
IoTでアボカドの発芽促進とカビを防止する – Part2: BeagleBone Blackで植物育成LEDライトを制御する – Qiita
えびめも(2011-05-30)
GitHub – codazoda/hub-ctrl.c: Control USB power on a port by port basis on some USB hubs.

感想
 3,4年周回遅れなだけあり情報が多く,基本機能については OS 導入から DHCP で IP アドレスを貰ってネットに出られるようになるまでが1時間くらいで終わりました。が,そこからが長かった。ちょっとした問題を潰すために試行錯誤したり,問題の原因を探るために勉強しなおしたりで,期間で一週間以上,丸何日かを費やしました。この記事を書くにあたっても,調べなおしたり再現するか確かめたりしてさらに1日潰れました。いちおう2週間近く実用したうえでの記事公開ですが,まだ何か起こるかもしれないとヒヤヒヤです。しかし,市販のモバイルルータも常時稼動に対応するほどには安定してはいないらしく,データ通信ドングルに対応したルータもいまいち痒いところに手が届かないようですから,LTE 回線を自宅回線として使いたいのであれば,「Raspberry Pi で DIY する」というのがいまのところ最良の選択肢でしょう。ネットワークの復習を含めなかなか勉強になるので,時間に余裕があればやってみると面白いはずです。

4ヶ月使ってみての感想
 記事公開から4ヶ月ほど経ちました。しばらく光と併用していたので正味では2ヶ月くらいですが,中間報告をば。

  • 1ヶ月10GBに収めるためには1日あたり333MBまでの通信に収める必要があります。これはけっこう厳しいですが,ストリーミング系は禁止とし,漫然とウェブブラウジングすることもやめれば,特に問題ない範囲です。この負のインセンティブにより時間を有効に使えるようになるというメリットもあります(?) ブラウザを起動しない日を週に何日か取るようにすれば完璧です。土日は古今東西の名著を手にとったり近場を散歩したりして過ごしましょう。なんて健康的なんだ。
  • 通信速度はそれなりですが,LTE なので ping が速めで,体感としては割と快適です。テキストベースのサイトであれば光回線と違いがわかりませんし,画像の多いサイトでも少し引っかかる程度です。混雑する時間帯でも体感としては ADSL の遅いとき程度です。
  • 自動再接続のおかげで「使おうと思ったら繋がらない」ということはほとんどありませんが,回線が混雑する時間帯には複数のタブを同時に開くと読み込み中のまま止まったり接続がタイムアウトしたりすることがあり,その場合にはページを再読込する必要があります。
  • Linux ディストロのインストールディスクなど大きなファイルのダウンロードは困難です。通信速度が充分でも途中で失敗してしまうことが多いです。Wget などのダウンローダを使用すると多少改善しますが,それでも失敗が多いです。Bittorrent は“無駄”な通信が多いので容量制限のある回線では避けたほうが無難ですが,IIJmio では遮断されているようでそもそも使えません。ダウンロードに失敗するとその分のデータ容量が無駄となり痛いので,大きなファイルのダウンロードはなるべく避けましょう。なお,OS のアップデート程度であれば,回線が空いている時間帯であれば特に問題なくできます。
  • 空冷にしてからとても安定していますが,帰宅したらラズパイが落ちていたことが一度だけありました。電源か熱でしょうが,再現しないのでなんともいえません。思えば今使っている初代Bはもう4年くらい前に買ったブツですので,ハードウェアの変更も視野に入れています。

更新履歴

  • 16/05/01 接続確認の頻度が高すぎて動作が不安定になることがあった件を修正
  • 16/05/04 ファンレスの夢が破れた件について追記
  • 16/08/14 SUGOI HUB 4X がすごいすぐ壊れた話と BSH4AE06 への乗り換えについて追記
  • 16/09/08 4ヶ月使ってみての感想を追記

Notes:

  1. もっとも,高速通信オフ時は3日で366MBまでという制限があります。 通信規制はありますか? | IIJmio
  2. Raspberry Pi (1) B+ の現在の価格より
  3. SUGOI HUB 付属 AC アダプタの出力は 5V2A なので数値上は USB ハブから余裕を持って取れそうなのですが,なぜか正常動作しませんでした。気になりますが,面倒なので今回は調べません。
  4. 一般的には前者が多く,OCN 系や Biglobe 等はグローバル IP らしい。Interlink のように安価に固定 IP を提供しているところもあります。
  5. USB – Raspberry Pi Documentation
  6. マニュアル p.120
  7. Raspberry Piブログ : [コラム] Raspberry Pi Model B+でUSBの最大出力を1.2Aにグレードアップしよう, なお safe_mode_gpio=4 は古いバージョンでのオプションで,互換性のために書かれているだけのため,最近のバージョンを使っている場合は max_usb_current=1 だけで大丈夫です。
  8. Raspberry Pi • View topic – RPi 3 – Very poor wifi performance, 16/4/19 Raspberry Pi Foundation エンジニアの Dom 氏曰く,”1.2A is the default and max_usb_current has no effect on Pi3.”
  9. 価格.com – 『バージョンV10eで安定化』 docomo L-02C [レッド] のクチコミ掲示板
  10. L-02C SIM(UIM)カードが認識しなくて困っていたが解決のようです|ぽちびろの日々ツイート
  11. ディスプレイに繋いでも CUI のみで VRAM はほぼ使うことはないのでがっつり減らしてよい。その分,システムに割かれるメモリ容量を増やせる。ただ,最小値は16MBらしい。 RPiconfig – eLinux.org – http://elinux.org/RPiconfig
  12. 設定がフラッシュメモリに保存されます。
  13. さすがに LTE 回線を自宅回線にしようというニーズはまだ殆どないようで,安定しそうにない構成だったり,重要な情報が抜けていたり,中には明らかに問題のあることをしている記事も散見されますので,実際に作業を始める前に検討する必要があります。
  14. なお part2 は結局まだ書けていません。音声入力はやたら手間がかかる割にうまく行っても他の入力手段より実用上快適にはならないということがわかったので pending という名の放置中です。そのうちやる気と時間がある時にでも……
  15. 犯罪に巻き込まれたような場合にログが残ってなかったら困るな,という程度
  16. またやっちまった。
  17. 定期的に ping を飛ばす手順はこちらを参照のこと。 常時接続の維持 (PING コマンド)
  18. Controlling a USB power supply (on/off) with linux – Stack Overflow
  19. kernel – Turning off power to usb port. Or turn off power to entire usb subsystem – Unix & Linux Stack Exchange
  20. Power OFF and ON USB device in linux (ubuntu) – login: root
  21. 細かく指定しようとするとエラーが出る。
  22. そこに挿しているデバイスではなく,ハブを見ることに注意してください。
  23. Minecraft Pi もできたので,Bとはいえ改良後のリビジョンのはずなのですが……
  24. ただし,手数が増える分 CPU 負荷はやや増えるはずです。
  25. 詳しくないですが,USB HDD エンクロージャも USB 3.0 のものはどれも電源連動に対応していますし,規格上対応が必須になるなどしたのではないか? という気がします。