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になっているので,質感は意外にも高く,なんとなく指で撫でたくなる感じです。見た目にもお洒落な印象を受けます。ただ,この加工は角の削れや黒ずみが付き物ですので,使っている内にどうなるかは気になります。まあ,普通で言えばカバーぐらいの値段なので,汚れてきたら買い換えるという割り切りもできるといえばできますが。

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

Notes:

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

.go.jp, .lg.jp, .ed.jp, .or.jp からだけ検索




 .go.jp と .lg.jp と .ed.jp と .or.jp のみを対象に Google 検索するだけの検索ボックス。自分用。健康や栄養などスパムの多いテーマについて調べるときに便利かもしれないしそうでもないかもしれない。
 .ac.jp は学生のページが多いのでとりあえず除外。.or.jp もプロバイダ系などを除外。

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

 過去記事を見ていただければわかる通り,このブログでは,というか私は基本的に硬派な話しかしないのですが,これは言及せざるをえない。
 私イチオシの漫画,ハトポポコ『平成生まれ』が掲載誌「まんがタイムきららキャラット」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=$( 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 に一行で書こうと思ったけどなんかうまくいかなくて面倒くさくなってそのまま外部のスクリプトにしたというアレ)
 ここまで何日もいじっていて,圏外(ランプ黄色),接続待機でのハングアップ?(ランプ白),接続再試行中のハングアップ?(ランプ青点滅)問わず通信ができなくなった時には確実にセッションも切れて(そしてそう認識されて) ppp0 が消えるらしいということがわかったので,単に ppp0 の存在確認をしています。ping を飛ばすのと違いネットワークに負担がかかりませんし,CPU も食いませんので,毎分だって実行できます。これによって,ダウンタイムを最小化でき,自宅回線としてストレス無く利用することができるようになります。15分の load average を見ても 0.1 を超えることはない(おおむね0.05〜0.07で推移)ようなので,更にチェックの頻度を上げるのもアリでしょう。
 (16/5/1追記)と書きましたが,ダメっぽいです。時々ひっそりと死んでいることがあります。理由は特定できていませんが,ログに出てないのでハードウェア側っぽく,熱は大丈夫なので電源周りっぽい雰囲気があります。2.4A対応アダプタ+ケーブルで試してもダメなので,本体の問題の模様 23。だとしたら,B+以降やポリヒューズ改造後の個体なら大丈夫かもしれません。そのへんはまた後で検討するとして,とりあえず毎分ではなく5分おきに実行するようにしてみたところ安定しています。
 なお,今回は 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 する」というのがいまのところ最良の選択肢でしょう。ネットワークの復習を含めなかなか勉強になるので,時間に余裕があればやってみると面白いはずです。

更新履歴

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

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 のものはどれも電源連動に対応していますし,規格上対応が必須になるなどしたのではないか? という気がします。

社会不適合者の偉人たち

あるいは名も無き社会不適合者の自己弁護。

ディオゲネス(前412? – 前323)ディオゲネス
 古代ギリシアのシノペに生まれた哲学者。服もまとわずそのへんに転がっていた大きな甕の中でゴロゴロして暮らし,あらゆる知識を鼻で笑い,あらゆる慣習を放棄した。そして,しかめ面をした哲学者たちをからかって回った。ポリス(都市国家)への帰属意識の高かった時代にコスモポリタンを名乗り,自足することを目指すべき徳とし,何も所有しないことを勧め,実際に何も所有しなかった。
 プラトンはディオゲネスを評して「狂ったソクラテス」と言ったという。もちろん軽蔑する意図での発言ながら,なんと魅力あふれる二つ名であることか。この徹底した社会不適合っぷりながら市民には慕われていて,ディオゲネスが必要とするものがあれば何でも提供されたという。
・Russell, Bertrand “History of Western Philosophy” (Routledge, 2004) pp.221-223
16.生と死に向き合った哲学者たち – 7. 第二のソクラテス「酒瓶に住んだシノペのディオゲネス」
Diogenes of Sinope – Wikipedia, the free encyclopedia 2016/4/16
・京大西洋史辞典編纂会『新編西洋史辞典改訂増補』(東京創元社,改訂増補,1993) p.480(「ディオゲネス」)
 
ヘンリー・キャンベンディッシュ(1731 – 1810)197px-Cavendish_Henry_signature
 18世紀英国の化学者・物理学者で,科学者としての実績もさることながら,とにかくものすごい人間嫌いとして有名な人物。名門貴族の当主で大金持ちなのに人間嫌い。当世一流の碩学で知られ全国の知識人から広く尊敬を集めているのに人間嫌い。人間嫌いなので大学も中退。人間嫌いなので生涯独身。どれくらい人間嫌いなのかというと,人に話しかけられても返事すらしない。あまりに人間嫌いすぎて,存命中から注目を集め高い地位についていたにもかかわらずその人となりについての記録はあまり残っていない。特に女性が苦手で,自分の家のメイドと顔を合わせることも非常に嫌がる。たまーになにか言ったり,自ら認めた論文を発表したりする。財産にも名誉にも全く興味がなく,ただ研究することのみを人生の意義として,78年の長い生涯を通して発見の多くは発表しなかったために,多岐にわたる分野の膨大な発見をしたにもかかわらず科学史に与えた影響はそれほど大きくなかった。死後発見された遺稿を見て科学者たちは「これが生前に公開されていたら」と惜しんだという。
イギリスのエキセントリック科学者の雄:ヘンリー・キャベンディッシュの生涯(1731.10.10-1810.2.24) 2016/4/16
Henry Cavendish – History of Science 2016/4/16
ヘンリー・キャヴェンディッシュ – Wikipedia 2016/4/16
Henry Cavendish – NNDB 2016/4/16
どこでもサイエンス (31) 天才&変人キャベンディッシュ | マイナビニュース 2016/4/16

フリードリヒ・ニーチェ(1844 – 1900)177px-Nietzsche187a
 ニーチェは幼い頃とても内気な少年だったという。やがて伝統的価値観への挑戦を志すようになるが,依然として人間嫌いのままだった。『新編西洋史辞典改訂増補』では「孤独で狷介な性格」と書かれている。キリスト教(欧州における伝統的価値観)をルサンチマンとして攻撃した彼は,実のところ自分自身についてはルサンチマンの塊だったようで,彼の著作には自らがあまり認められないことに対する苛立ちのようなものが見え隠れする。苛立ちが頂点に達したのが『この人を見よ』で,自分がいかにエラくてスゴいのかが延々と書き連ねてある。これを書き上げた翌年にはとうとう狂気に飲み込まれてしまった。
 プライベートでも多難だったらしい。女性に対して非常に奥手でぎこちない一方,すぐ深く恋に落ちてしまう性格だったようで,生涯を通してさまざまな女性にまわりくどくてなんだかよくわからない手紙を書いてみたり,かと思ったら突然告白しては断られたりしている。恒吉(2002)はニーチェが惹かれた女性は「どちらかというと小柄で,繊細な感じの,しかも音楽好きのタイプ」が多かったと指摘しており,これもなんかなるほどねという感じである。最も深く恋に落ちた相手はルー・ザロメという当時21歳の女性だったと言われ,共通の友人であるパウル・レーと争ったうえ唐突に求婚し,すげなく断られて失恋している。この際の傷心は相当のものであったようで,自殺の意向まで仄めかしている。なお,この時のニーチェの年齢は38歳。いい年したオッサンが何やってんだか。また,ニーチェにはエリーザベトというブラコンの妹がいたが,だんだん差別主義に凝り固まり,ユダヤ人差別や保守的道徳観によってニーチェの研究や恋路をひたすら邪魔する存在となり,ニーチェのただでさえつらい人生を更につらくしていった。敬愛する兄を「取られる」ことに嫉妬したのだとも言われているが,なんにせよ,全くモテないのに勝手に恋に患うニーチェにとってはさらに妨害まで入るなんて本当に迷惑極まりない話である。そのうえエリーザベト自身はブラコンのくせにちゃっかり結婚してるし。あげく,ニーチェの没後はその思想をナチズムのために都合のいいように利用して,長らくニーチェに対する後世の評価を落とす原因となった。散々である。根拠のない伝説では,ニーチェは広場で鞭打たれる馬を見,駆け寄って涙をこぼしながら抱擁し,そのまま二度と正気に戻ることはなかったという。史実ではないにせよ,ニーチェの生涯をよく表している気がする。
・Russell, Bertrand “History of Western Philosophy” (Routledge, 2004) pp.687-697
恒吉良隆「ニーチェをめぐる女性たち:ニーチェの女性観の背景(I)」,文芸と思想,66,pp.85-53,2002
恒吉良隆「ニーチェをめぐる女性たち:ニーチェの女性観の背景(II)」,文芸と思想,67,pp.143-174,2003
・宗像恵/中岡成文編著『西洋哲学史〔近代編〕科学の形成と近代思想の展開』(ミネルヴァ書房,初版,1995) pp.275-283
・京大西洋史辞典編纂会『新編西洋史辞典改訂増補』(東京創元社,改訂増補,1993)p.552(「フリードリヒ・ニーチェ」)

エリック・サティ(1866 – 1925)
168px-Erik_Satie_en_1909
 学校生活に馴染めずに名門パリ音楽院を中退し,長じてからはクラシック音楽の伝統を徹底して問いなおした異端児サティ。やはりというか,私生活でも変人だったようで,作曲家でなく「音響測定家」などと名乗っていたとか,信者が自分しかいない宗教を立ち上げて細かい設定まで考えていたとか,いつでも決まってスーツを着て山高帽をかぶりこうもり傘を携えていて死後アパートからは大量の傘が出てきたとか,そういう奇妙なエピソードには事欠かない。自らの編み出した「家具の音楽」に耳を傾ける聴衆に「お喋りを続けるんだ! 歩け,聴くんじゃない!」と叫んだサティは,自らの作品に取ってつけたようなナンセンスでしばしば猥雑な歌詞をつけるのが趣味だったようで,とにかくスノビーな価値観をいかに冒涜できるかに心血を注いでいたとしか思えない。音楽家にしては珍しく若い頃の浮いた話は残っておらず,27歳になってシュザンヌ・ヴァラドンという女性と交際を始めるものの,たった半年で振られている。その後は生涯独り身を貫いた。つらい。キャンベンディッシュのように自分の世界の中にしか興味がないのかといえばそうでもなく,政治活動や後進との交流にも積極的に取り組んでいたりするし,いい年してナンセンスなバカ映画に出演してはしゃいだりもしている。もう社会に適合できなくてもいいじゃないか,金も名誉も愛だっていらねえじゃねえかと思わせる,自由で愉快な生き様。
有田英也「音楽とテクスト――エリック・サティの音楽論をめぐる一考察――」 http://www.seijo.ac.jp/graduate/gslit/orig/journal/europe/pdf/seur-11-02.pdf
Erik Satie – Music Academy Online 2016/4/16
Erik Satie – Wikipedia, the free encyclopedia 2016/4/16
Erik Satie: a life less ordinary | Music | The Guardian 2016/4/16

フランツ・カフカ(1883 – 1924)
Kafka_portrait
 ここまでに紹介した他の4人とは違い,公務員として立派に社会に溶け込んでいた真っ当な人物である。ただし,自ら認めた作品は聴衆の前で好んで朗読するかと思えば,未発表の原稿は死後全て焼却するよう友人に遺言するなど,自意識過剰な完璧主義が透けて見え,また発言からは,人生について一貫して悲観的,虚無的であったことがわかる。やはりどちらかというとこっち寄りの人物だったようである。しかしその一方で,結婚こそしなかったもののいつでも誰かしら自らを愛してくれる女性に恵まれていて(このリア充め!),仕事にも熱心で,人当たりの良い人物だったという評価が残っている。そのためか,ユダヤ教の聖者のように仕立てあげられたり,逆に女たらしの野心家だったと言われたりと,人物像が一定しない。個人的には,悲観主義的で繊細ながら確固とした思想と,フレンドリーかつ謙虚な性格の持ち主であり,内に大きなエネルギーを秘めつつも現実的なところで妥協することを心得ている人物だったのだろうと思う。大学時代,本当は哲学に興味があったが,父の反対で断念。妥協の結果としてあまり気の進まない法律を学びつつ,芸術関係の講義を受けたり哲学の話をしたりして過ごす。そんなわけで成績はあまり良くなく,なんとか卒業できたという感じだったようだ。卒業後は政府の傷害保険局に勤務。有能な職員として出世は重ねたが,いわゆる普通の公務員としての生活を送った。しかしそのおかげで,安定した生活を維持しつつ自分の時間を多く取ることができ,執筆活動に精力的に取り組むことができた。また,彼の作品に登場する不条理なシステムのモデルはオーストリア・ハンガリー帝国末期の官僚制にあるというのはよく指摘されていることであるし,『流刑地にて』など,傷害保険局職員としての業務内容が色濃く反映されている傑作もある。もしカフカが現実に折り合いをつけて平凡な職業を選んでいなかったら,あの歴史に名を残す作品群は生まれていなかったかもしれない。
 ……あれ,おかしいな? 社会に適合したほうがいいみたいな結論になってしまった?
The Kafka Project | Biography | Kafka’s Life (1883-1924) 2016/4/16
フランツ・カフカ – Wikipedia 2016/4/16
Franz Kafka – Wikiquote 2016/4/16
第二十三話 フランツ・カフカの光と影 – 歴史ぱびりよん 2016/4/16

Firefox のマウスホイールでのスクロール量を増やす

ブラウザだけスクロール量を増やしたい。IMWheel みたいなのもあるけど,めんどくさ大げさな気がする。そんな時に。

1, about:config を開く

2, “mousewheel.system” で絞り込み

3, “mousewheel.system_scroll_override_on_root_content.enabled” を false から true にする(Windows ではデフォルトで true らしい)

4, “mousewheel.system_scroll_override_on_root_content.vertical.factor” をデフォルトの 200 より大きい任意の値,たとえば400にする

5, 横スクロールも増やしたい場合は,”mousewheel.system_scroll_override_on_root_content.horizontal.factor” の値を同様に変更する。

調べてみると,なんだか似たようなオプションがいろいろある上スクロール量ではなく加速度を上げるというアプローチもあってややこしいけど,ともかく自分の場合は上の設定だけで期待した通りの挙動になった。
Chromium (Chrome) では,ブラウザ本体の設定ではできないらしく,たとえば「Chromium Wheel Smooth Scroller」などのアドオンを導入する必要があるらしい。

参照:
Gecko:Mouse Wheel Scrolling – MozillaWiki
Can anyone explain mousewheel.default.delta_multiplier? • mozillaZine Forums
xorg – How to change my mouse wheel scroll rate? – Ask Ubuntu
29.0.1 Mouse Wheel : firefox

ThinkPad T61 に Debian 8 + xfce をインストールしたメモ

 ジャンクの ThinkPad T61 を買ったので Debian 8 + xfce セットアップのメモ。

1, まず普通にインストール

2, sources.list 編集

# nano /etc/apt/sources.list

cdrom: 行をコメントアウト。
contib/non-free が必要な場合、ついでに追加。

3, 最低限使うソフトをインストール

# aptitude update
# aptitude install sudo vim keepassx arandr xfce4-whiskermenu-plugin icedove icedove-l10n-ja zotero-standalone xul-ext-zotero

4, 自分をグループ sudo に入れる

# gpasswd -a hoge sudo

一度ログアウトするまで反映されない。

5, ユーザに戻って ~/ をデフォルト(英語)に

$ LANG=C xdg-user-dirs-update --force

6, トラックポイントでのスクロールを有効化

$ sudo vi /usr/share/X11/xorg.conf.d/20-thinkpad.conf

以下をコピペ。

 Section "InputClass"
     Identifier "Trackpoint Wheel Emulation"
     MatchProduct       "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|ThinkPad Compact USB Keyboard with TrackPoint|USB Trackpoint pointing device"
     MatchDevicePath    "/dev/input/event*"
     Option             "EmulateWheel"          "true"
     Option             "EmulateWheelButton"    "2"
     Option             "Emulate3Buttons"       "false"
     Option             "XAxisMapping"          "6 7"
     Option             "YAxisMapping"          "4 5"
 EndSection

もうちょっと詳しい話は Debian 公式 Wiki の当該項目を参照のこと

7, xfce の設定
– 標準からパネル1削除、パネル2を画面下端へ。
– ワークスペースを1つに。
– 標準メニューボタン、ワークスペーススイッチャー、アクションボタンを削除。
– Whisker Menu とシステム負荷モニターを追加。
– 合成処理有効化ほか、環境や気分に合わせ設定。
– 初回ログアウト時には確認画面の「次回ログインのためセッションを保存する」のチェックを外す。

8, Mozc の設定
 なにやら難しくてよくわからない理由により標準では一部の設定項目が変更できません。仕様の違いが原因のため、バグとしては扱われていません。なので何年も前からこの状態ですし、修正する予定もないようです。ワークアラウンドとしては、いったん uim-mozc を削除したうえで mozc-utils-gui を起動し設定を行えば問題なし。

$ sudo aptitude remove uim-mozc

句読点変更、サジェスト自動表示・リアルタイム変換を無効化したうえで

$ sudo aptitude install uim-mozc

9, CapsLock を Ctrl に
「設定>セッションと起動>自動開始アプリケーション」から「setxkbmap -option “ctrl:nocaps”」を追加。
液晶が見にくく感じる場合は、このとき「xgamma -gamma X.X」も追加してガンマ値を下げるなどしておくと良いかもしれません。バックライトが黄ばんでいる古いマシンでは -bgamma を上げるのもおすすめ。

10, 画面ロックを xscreensaver から light-locker に変更
先日の記事参照のこと。

11, 完了
やったぜ。

 T シリーズは初めてなのですが,なかなかいいですねコレ。X をそのまま引き伸ばした感じで,X 独特の“秘密基地感”のようなもの(伝われ)が出ています。その一方で画面が物理的に広々として見やすく,キーボードも無理がありません。スピーカもステレオで,ついつい用もなく音楽をかけてしまいます。それでいて「小脇に抱える」ことができる程度のフットプリント・軽さ・薄さを保っており,モバイルマシンならではのわくわく感(伝われ)が損なわれていません。Core2 Duo T7100 1.8GHz + GM965 Express のモデルなので性能は大したこと無いはずなのですが,インタフェースにゆとりがあるためか,体感としてはなかなか快適です。リース落ちが一気に出たようでかなり安かった(PC-NET で3千円)ので,買った翌週にも秋葉原に寄って実家用にもう一台確保してしまいました。
 
参照:
製品の概要 – ThinkPad T61, T61p – Lenovo Support (JP)
Hothotレビュー レノボ「ThinkPad T61」レビュー ~Santa Rosaとワイド液晶で強化