たかちゃん。

10月 122013
 

いやー。Nokia の Lumia620 な Windows Phone8 を購入してからほぼ毎日使い続けてみましたが、この辺りで完結編に行ってみたいと思います。今まで使い込んでみた感想を書いて、最後にどう?って結論に迫ってみます。

さて。 docomo から iPhone5s/c が発売されたのでこれでグググと LTE (Xi) がクローズアップされているんですが、まず docomo のネットワークと Lumia620 の電波的な相性について書いてみます。

 
1. 電波状況と繋がりやすさ
docomo の場合、LTE は 2.1GHz で、LTE の電波の入りが悪いところは 3G の 800Mhz 帯でカバーし、通信速度はとりあえず置いとていて、”電波の入り”の良さを強調しているように、社長の話の記事を読んだりしていると感じ取れます。
そー考えると、今のスマートフォンを MVNO を含めて docomo の回線で利用するには以下の方程式が成り立つと思います。

o. LTE は 2.1GHz 帯をカバーし、欲を言えば他の周波数帯もカバーしているものが良い
o. 800MHz 帯は主に 3G で利用することになるので 3G 800Mhz 帯に対応してないとお話にならない

これが docomo の回線を利用する上での鉄則ですね。では Lumia620 はどうかというと、以下になります。

o. LTE に対応してないないので問題外
o. ちなみに後継機の LTE 対応 Lumia625 も docomo の LTE の周波数帯には対応していない
o. Lumia620 は 3G のみの対応で周波数は 2.1GHz でのみ利用可能

と、いう状況。つまり docomo の回線を利用する上で田舎・山奥などは 800MHz の電波しか来ていないので Lumia620 は “圏外” になる可能性が非常に高い端末。と、いうことになります。これは実際に体験しました。圏外な状態が多いので実質的には使い物にならない。

LTE が利用できる SIM カードがある場合には無理して Lumia620 に入れるのではなく、 LTE 対応のケータイ・スマートフォンでテザリングを有効にして Lumia620 を接続したほうが圧倒的に良いと思われます。

まぁ、ここまでの話は Windows Phone8 というよりは docomo と Nokia Lumia620 の相性問題的な部分のお話ですね。

 
2.アプリケーション
次に Windows Phone8 のアプリの悲しい点について書いてみます。

まず、ブラウザからファイルがアップロードできないのには困ったチャンですね。とある SNS にブラウザ経由で写真をアップロードしようとしてもフォトアルバムにアクセスできません。 これは多分 Windows Phone8 の仕様なのでしょうなぁ。
なので、ファイルをアップロードするには SkyDrive などのクラウドを利用するしか手がなくて、 iPhone などで SkyDrive からダウンロードしてから iPhone5 のブラウザでアップロードするという、本末転倒な状態となります。
これは結構痛いですね。

あと、僕的には以下のアプりが欲しいのですが、無い状態で悲しい。

・ミイル
・DropBox (サードパーティ製の広告付きのヤツはある)

不便なアプリは以下かな。

・LINE (“タイムライン” は iOS と Android 版のみで WP8 版には実装されていない)
・Microsoft 謹製の YouTube アプリはデータが取得できない

などなど。
有名どころのアプリ、例えば Twitter とか Facebook などはベンダが出してない場合は Microsoft が出しているので、ベンダのアプリとそんなに違和感なく利用できます。 YouTube アプリもその一つなのですが、正しく動いていくれない。で、サードパーティの他のアプリをダウンロードすると広告が付いているので使いたく無い。みたいな感じでしょうかねぇ。

まぁ、良いアプリもたくさんあるんですが「じゃぁ、Windows Phone8 でないと使えないアプリってなにかあるの?」と、聞かれると「特にない。」と答えざるを得ない。と、いうか。あ、 Office があるか;-)。

 
3.総評
僕が購入した Nokia Lumia620 は SIM フリーでキャリア契約無しの 20,000yen の端末でした。日本では技適が通ってないので利用できません。国内での利用ではグレーですが、海外に行ったときに SIM を買ってきて docomo でローミング。みたいな方法が一般的かと思われます。それにしてもこの場合でも Wi-Fi・Bluetooth はダメなようですねぇ。

さて。もし仮に Lumia620 が日本で技適が取得できていたとして、docomo の MVNO で利用しても LTE が利用できなくて 2.1GHz の 3G にしか対応しないとなると、ちょっと前の Softbank よりも電波状況が悪い状態なのが今の docomo です。なので 3G で利用する電話の場合には 800MHz 帯に対応したものでないと意味が無いですね。

あと、docomo の LTE 2.1GHz 帯が(このエントリ執筆時点で)クソだとは言っても明らかに 3G よりは速いので一旦 LTE の体に慣れてしまった人にとっては 3G のみの端末ってのはちょっと苦痛を感じます。

 
Windows Phone8 は GUI とかデザイン・動作は中々良い感じです。しかし、日本で発売されていないってのが大きいのか、アプリの対応状況がイマイチ進んでない。ってのが素直な感想です。
例えば Nokia の地図アプリは日本の地図情報がまるで無いので google の地図を利用しているアプリをダウンロードして来るとかですね。
上に書いた部分もちょっとツライ点ではあります。

ちなみに僕が持っている docomo の MEDIAS LTE N-04D は以下の周波数に対応しています。

o. GSM: 1900/1800/900 MHz
o. WCDMA: 2100/800 MHz (Band I/XIX)
o. LTE: 2100 MHz (Band I)

Nokia Lumia620 は以下の通り。

o. GSM: 1900/1800/900/850 MHz
o. WCDMA: 2100/1900/900/850 MHz (Band I/II/VIII/V)

850MHz 帯が Band19 だったら良かったんですけどねぇ。

と、いうことで、もし技適が通っていたと仮定した場合に docomo の MVNO で Lumia620 を利用するか? と聞かれれば「びみょー。」と答えざるを得ないのが今の現状でしょうか。

携帯・端末上で動作する OS が何であるかはともかく、 800MHz 帯の 3G に対応していない機種はちょっと無理っぽい。ってのが今回の結論なのであります。

新しく docomo から出た Xperia Z1 は docomo の LTE/3G の全周波数が利用できるので、一度使ってみたいなぁ。とはちょっと思います;-)。

10月 062013
 

色々なシーンにおいて利用していた ThinkPad X100e が起動しなくなってしまいました。購入したのが 2010/09/26 なのでちょうど三年で壊れてしまった。と、いうことになります。早いなぁ。

僕が購入した NotePC は ThinkPad535E が一番最初でそのあと MacBook も含めると九台の NotePC を購入しているのですが、「遅いっ!!」と感じて買い換えるまで壊れたことは一度も無かったので、そー考えると現役で壊れてしまった NotePC はこれが初めてです。

ThinkPad って堅牢なイメージがあるのだけど、やっぱり安物ではなく、ちゃんとしたのを買え。ってことなのでしょうなぁ。

 
この NotePC は FreeBSD で利用する分には suspend/resume をちゃんとしてくれていたので悲しいモノがあります。
あと、CPU は AMD だしグラフィックスは RADEON だったしねえ。

FreeBSD の 9.2-RELEASE が出る少し前に DRI 系の Mesa で 9.1.6 が利用できるようになったのでそれらの ports を make して RADEON でバリバリ使うぜーっ!! とか思って、 portmaster -D -a が完走してリブートしたら、その後、起動しなくなりました。

CPU 負荷かけすぎたのかなぁ?とか思い、一応分解してみました。

IMG_5893_RhinkPadX100e_Crash_2

症状は以下のような状況です。

・電源は生きているようです。バッテリにも充電されます。
・CPU ファンはゴワンゴワンと回ります。
・CPU 周りも熱くなっているので CPU 自体は多分動作しているんでしょう。
・しかし、ディスプレーには何も映らない。
・D-sub 15pin で外部出力も試したけど何も写らない。
・SSD・メモリその他のパーツも取り外したけど、やはり何も動かない。

と、いう感じで完全にマザーボードがいかれたっぽい。ってのが僕の結論です。

AMD の E-450 を利用しているので以前から熱暴走する感じはあった(FreeBSD の ACPI で熱暴走前に ACPI shutdown が走るけど)。 まあ、そのあおりを受けて他のパーツに影響が及んだのであろう。と、いうのが感想です。

IMG_5895_RhinkPadX100e_Crash_1

さて。新しい NotePC が必要なのですが、もう一回 AMD の CPU の NotePC にしてみようかと思っています;-)。すると多分 Acer のヤツになるだろうとは思うのですが。

 
壊れた ThinkPadX100e ですが、パーツ取りをとりあえず行う予定。

・CPU AMD E-450 (マザーボードからひっぺがす;-)
・メモリ DDR2 2GB x1 / 1GB x1
・Wi-Fi チップ Centrino Advanced-N+WiMAX 6250
・Bluetooth モジュール
・キーボード
・Intel 240MB SSD

このくらいかなぁ。どれか欲しい人います? ;-)。

9月 212013
 

自宅の無線 LAN 機器で 802.11n の 5GHz 帯を利用する機器が増えて来たので、 BB ルータ兼無線 AP ポイントを買い換えました。今まで利用していたのは Aterm WR8500N でした。こいつは有線 LAN が GbE で無線 LAN は 802.11n に対応しているんだけど 2.4GHz と 5GHz が同時に利用できないので、今回は同時利用可能なものを購入した。と、いう感じなのであります。

今回購入した Aterm PAWG600HP は一応新製品ですね。でもって 有線 LAN は RJ45 の GbE で無線側は 802.11n で 2.4GHz と 5GHz の同時利用可能。僕は今回同時利用可能な製品を初めて購入したのですが、 同一の SSID で 2.4GHz 帯と 5GHz 帯を利用できるのかと思っていたのですが、そんなことはなく、それぞれ SSID が変わるのですね。これを同時利用というのか? f(^^;;。

IMG_5660_WG600HP_1

後ろ側が今まで利用していた WR8500N で、手前が今回新しく購入した PAWG600HP です。

NEC 製品を連発で購入していますが、 Aterm には設定画面において「ポートマッピング設定」で TCP のプロトコル番号も転送できるのでそれが嬉しい点ですね。まぁ、今時 TCP のプロトコル番号 41 を転送する人も少ないと思いますが;-)。

あと、最近は NTT の ONU にも Aterm OS (と、言って良いのか?)が利用されている機種もありますね。スゲーメジャーになった。と、いうことで安心して Aterm は利用できそうです。

 
さてさて。自宅の無線 LAN が 5GHz 帯を利用できるようになったので早速 iPhone5+iOS7 で通信テストをしてみました。

RBB のスピードテスト App を利用してみました。

IMG_5731_WG600HP_2

いやー。驚きの速さですね。 iPhone5 には隣の家の SSID も見えたりするので AP は多いと思うのですが、それにしても 5GHz 帯は利用する価値がありそうです。

・・・。

って、ちょっと待ってよ。 LAN 内の Gigabit Network で接続されている機器間の通信ならいざ知らず、大手町にあるサーバに対して 80Mbps も出るんかい? ボトルネックは NTT の B’Frets 回線網ではないんかい? などと思えて来ました。うちの B’Flets は 80Mbps も出るんかい? あやすぃー。みたいな;-)。

中々速い 5GHz 帯の AP が自宅にやって来た。と、いうお話なのであります。

それにしても余った WR8500N はどうしよう・・。

9月 102013
 

以前のエントリで「xmodmap と setxkbmap。」というのを書いているのですが、そのときに xmodmap -pke というコマンドを打ってみて、このコマンドが出力した情報をじっくりと眺めてみると何やら色々な設定があるようなので試してみることにしました。

色々な設定というのは、例えば NotePC において Fn キー + テンキー同時押しでボリューム調整を行う、であるとか画面の明るさを変更する、であるとか suspend/resume であるとかその辺りのことができるようなんですね。

IMG_5632_NotePC_Fn+10Key

通常この辺りの制御は ACPI のほうでやっていて、以前であれば、僕の場合、今回は ThinkPad X100e で試してみましたが、 acpi_ibm.ko というのを kldload して /usr/local/sbin/acpi_oem_exec.sh とかを作成して呪文のような文字列と数値を書いて devd に対応させる。というのが一般的だったんですけども。
まぁ、その辺りは man acpi_ibm してみて、その内容でスクリプトを書くんですけど、なんか大変そうで「動かなくてもいやー。」となっていたんですね。

今までは ACPI で制御していた Fn キー + テンキー同時押しの機能がどうやら xmodmap でできるらしいんですね。と、いうことで早速設定してみましょう。
まずは xmodmap -pke でどんなオプションが指定できるのかを探してみます。

$ xmodmap -pke | grep XF
keycode  63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab
keycode  67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
keycode  68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2
keycode  69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3
keycode  70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4
keycode  71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5
keycode  72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6
keycode  73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7
keycode  74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8
keycode  75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9
keycode  76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10
keycode  82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode
keycode  86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode
keycode  95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11
keycode  96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12
keycode 112 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab
keycode 214 = XF86Display NoSymbol XF86Display
keycode 215 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
keycode 216 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
keycode 217 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp

 
なるほど。この中にキーボード配列に合いそうな XF86 なオプションを ~/.xmodmaprc に記述していけば良いんですね。などということが解りました。

上にキーボードの写真を掲載しましたがちっこくて見えないですかねf(^^;;。それに合わせて今回 ThinkPad X100e に設定したのは以下の通り。

keycode 140 = XF86AudioStop
keycode 176 = XF86AudioRaiseVolume
keycode 174 = XF86AudioLowerVolume
!
keycode 162 = XF86AudioPlay
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
!
keycode 115 = XF86KbdBrightnessUp
keycode 109 = XF86KbdBrightnessDown

 
以前から Fn+F4 で suspend/resume は動作していたので今回は設定しません。

ボリュームの停止・大きく・小さくは動作しました。まぁ、KDE4 のパネルにボリュームウィジェットを表示しているのでそれで調整することも可能ですが、新たに Fn+ESC ・ Fn+F1 ・ Fn+F2 キーでできるようになった。と、いう感じでしょうか。

あと、音楽の曲飛ばし(Fn+F11)と戻り(Fn+F9)・停止と再生(Fn+F10)が動作しました。利用したソフトは gmplayer で 起動時に gmplayer *.mp3 とかして再生開始します。再生している最中に Fn+ キーを押すとそれが有効になりました。けど、考えてみると gmplayer のほうにも曲飛ばしとか停止のキーバインドはあるわけでして、無理して Fn+ キーに設定する必要は無いのかなぁ;-)。

XF86KbdBrightnessDown と XF86KbdBrightnessUp は動作しませんでした。と、いうか、Fn+ のキーがもう無いんですね。 xev で keycode を取得しようとしても取得できないキーが何個かありました。
現在、画面の明るさ変更については ACPI で行っています。 kldload acpi_ibm.ko すると acpi_ibm.0.lcd_brightness という sysctl mib が生えてきます。ここに値を設定してあげると画面の明るさが変わるのですが、shell スクリプトを書いてそれを実行することにより明るさを変えています。

その他に何かできないのかな?などと思ったのは外部ディスプレーの切り替えとか。 xmodmap 的に何かパラメータはあるのかな?と思ったのですが特に無いようなので諦めました。
ではどうするか?というと、KDE4 では KDE システム設定の中に「ディスプレーとモニタ」という項目があってここから LCD か外部ディスプレーにするか変更ができるのでそれでやることにしました。なので X の再起動とかは必要ありません。調べてないんだけどこの辺りは xrandr が面倒見ているのかな?

 
と、いうことで、以前は ACPI のほうで設定していた内容がいとも簡単にできるようになったのは良いことですね。ただ、本当にその設定が必要か? 聞かれれば「特には困っていない。」のであまり必要ではないんですけどねf(^^;。キーボードに書いてあるのでそれに合わせてキーをマッピングしてみた。と、いうのが素直な感想で。けど、簡単に設定可能なものは一応設定して見ましょう。という内容のエントリなのであります;-)。

9月 082013
 

前回のエントリでは自分で購入した Socket754 の Sempron3100+ を掲載しました。サーバで利用するために Cool’n’Quiet に対応しているモノを買い直したので手元に二つあったんですけどもね。

でもって今回登場するのは Socket754 の Athlon64 です。僕自身が Socket754 を利用していたときは Sempron しか利用していなくて、 Athlon64 は Socket939 から利用し始めているんですね。

で、Socket754 の Sempron は持っているので、コレクションとして Athlon64 を手元に置いときたいなぁ。と思いオークションとか捜すのですが、手頃な価格で中々無いのと、そもそも Socket754 の Athlon64 というのは全体的に少ないのではないのかなぁ? などと思ったのであります。

なんとか手に入れたのがこんな感じ。

CPU クロック(と、いうかモデルナンバ)は 3200+ なのでコア的には Palermo になりますね。

Socket754_Athlon64_1

こちらが裏側です。

Socket754_Athlon64_2

ふーむ。 Socket754 の Athlon64 だぁ;-)。

実際には利用したことが無い CPU なので思い込みはあまり無いのですが、なんとかようやっと手元に置くことができた。と、いう点では嬉しい一品です;-)。

 
Socket754 は 130nm のプロセスツールで作られた Paris コアと、前回と今回で掲載した 90nm プロセスツールで作られた Palermo コアの二つがあるんですよね。 Paris コアは Sempron だけですが、機会があればまた手に入れてみたいと思います。

さてと。 Socket754 は Sempron と Athlon64 だけではないんですね。それは次回に;-)。

9月 042013
 

夏休みを利用してインドに旅行に行ってきました。その時に利用した携帯電話についてちょっと書いてみたいと思います。

がっ!! 僕は SIM フリーな NOKIA の Lumia620 を持っているのですが、こいつは MicroSIM で、事前に情報を調べてみたのですが、利用しませんでした。と、いうことで今回は Wi-Fi についてちょっと書きます。

持っていった携帯電話は SoftBank の iPhone5 と docomo の SP-mode から mopera U を利用して通信を行う NOKIA Lumia620 です。これらの機器を利用して飛行場やホテル、街中の Wi-Fi ポイントにアクセスして利用しました。

まず、成田空港から飛び立ち、トランジットで上海の浦東空港に立ち寄りますが、降りた瞬間に電源をオンにして機内モードもオンで Wi-Fi もオンにします。飛行場で Wi-Fi を利用したのは上海の浦東空港とインドのデリー空港の二か所でした。で、どちらも無料の Wi-Fi ポイントが利用できるんですね。あ。当然成田空港でも利用できますが;-)。

アクセスポイントに接続すると認証画面が出てきます。フツーにパスワード無しでログインできるのかと思いきや、以下の手順で利用可能な状態となります。

1. ユーザ登録用ウェブページにアクセス
2. 電話番号とメールアドレスを登録
3. すると電話番号に SMS でパスワードが飛んでくる
4. 飛んできたパスワードを利用してログイン
5. ログイン後は利用可能

をいをい。海外用の SIM 無いし、機内モードだし。と、いうことで実質的にパスワードを受信することができないんですね。あたたた。

IMG_5573_Wi-Fi_1

どーしたもんかいのぉ。などと悩んでいて、いよいよ docomo の海外ローミングサービスである WORLD WING を NOKIA の Lumia620 で利用しようかと思い機内モードをオフにして地元のネットワークに接続したところで SMS が二つ飛んできました(@_o)。

一個は docomo からで「WORLD WING を利用するにはローミングをオンにしろ。」とのことでした。あれ?すると、ローミングをオンにしない間は WORLD WING の料金は発生しないということかい? でもって docomo から飛んで来た SMS は案内なのでどうやら無料らしい。

で、もう一通はと言うと、先ほど Wi-Fi で登録したアカウントのパスワードが飛んできました(@_o)。あれ!?

IMG_5574_Wi-Fi_2

と、いうことで浦東空港とデリー空港で Wi-Fi を利用する場合の手順はもうお分かりですね;-)。ちょっと書いておきます。

1. 携帯電話を機内モードをオンにしてキャリアとの接続を断つ
2. Wi-Fi をオンにして無料 Wi-Fi に接続してユーザ登録する
3. 機内モードをオフにしてしばらく待ち海外キャリアに接続する
4. SMS が飛んできたところですかさず読む
5. 機内モードをただちにオンにする
6. SMS で届いたパスワードを入力して Wi-Fi を利用する

今回は docomo の回線で上記のようにしました。八月最終週に海外に行ったので、九月に入って八月の請求を見ても特に海外で課金されている様子はありませんでした。

と、いうことで SIM フリーな携帯端末だからこういうワザが利用できるのかもしれませんが、もしかしたら SIM ロックの端末でも同じ動作かもしれません。

ミソは『ローミングオフ状態で SMS が届く』ところでしょうか。

 
それにしても海外の通信キャリアに接続していないと Wi-Fi が利用出来ない飛行場のサービスにも問題はあるような気がしますが、上記の手順で一応 Wi-Fi が利用できたのでヨシとしておきましょう;-)。

 
あ。ここに書いてある内容をそのままやってみて、万が一高い通信料金などが請求されても筆者は一切責任は持ちませんので自己責任でお願いします。

 
そもそも、日本国内では技適を取得していない NOKIA の Lumia620 はネタ的には中々書きづらい部分があるのですが、海外においてはおおっぴらに利用できてその内容について色々書けるのが嬉しいですねぇ。

一番良いのはインドでプリペイド SIM を買ってきて docomo でローミングってのが、記事を書くのには良いんですけどね;-)。

8月 192013
 

以前のエントリで「ibus-mozc を使う。」というのを書いているのですが、このときは mozc を ibus 経由で利用します。と、いうネタが基本でしたが「僕はかな入力の人なので、かな入力時の “ー” 問題ががあります。」と書いています。

その時は xmodmap で以下の設定を行うことにより回避していました。詳細についてはリンク先のエントリを読んでみてください。

keycode 133 = bar bar bar bar

 
しかし、最近の ports-current を利用していて、とあるタイミングから USB キーボードを抜き差しすると上記 xmodmap の設定がチャラになって(消えて)しまう事象に悩んでいたのであります。

色々調べてみると xorg.conf の設定で hal を利用していた場合に原因があることが解ってきました。以下に事象を箇条書きにしてみます。

o. USB キーボード利用時に(USB KVM などで)キーボードの抜き差しを行なったあとに利用すると xmodmap の設定が消えている
o. USB キーボードを X が hal 経由で認識しているときにその問題が発生する
o. hal はどうやら setxkbmap を利用して xmodmap の設定を飛ばしてしまうようだ
o. USB キーボードを認識したところで xmodmap を実行すると再度キーバインドが有効になる

と、いうような状況。

そもそも mozc をかな入力で利用していない人にとっては “\” (バックスラッシュ)を “|” (バー)に割り当てる必要は全く無いわけでして、なのでこの問題に遭遇することは無いと思われます。

 
と、いうことで、ここからはどうしてもキーバインドを変更したい人にとっては重要な内容になるのであります。
そして、ある程度原因が特定できたので、ここから先は xmodmap と setxkbmap の対比について見ていくことにしましょう。

上記 xmodmap の設定において “\” の keycode は 133 です。これは xev(1) でキーを調べたり xmodmap -pke コマンドで、現在 133 に何が割り当てられているか確認すれば良いので比較的容易に調べられます。まぁ、昔からある枯れた確認方法ですしね。

それにしても xmodmap で指定した設定が setxkbmap のどれに対応するのか解らない。 hal を利用していて Ctrl と CAPS Lock を入れ替える場合には以下の設定を /usr/local/etc/hal/fdi/policy/10-keyboard-jp106.fdi 辺りによく書いています。

<merge key="input.x11_options.XkbOptions" type="string"> ctrl:nocaps</merge>

 
で、 setxkbmap もこの形式を引きずっているようで、オプションパラメータが合えば受け付けるんでないかなぁ。

$ setxkbmap -option bar:nobackslash

 
上記コマンドのオプションの法則をまるて理解してなくて実行しているんですが、これでは backslash が bar に置き換わりませんでした。もーしょうがないので色々調べることにします。

xmodmap は xev で値を確認したり -pke オプションで表示された情報に従って動作していることが解ります。なのに setxkbmap ってどうやって設定するのぉ?って。調べていくと /usr/local/share/X11/xkb/ 内のファイルを各種参照していることが解ってきました。でもって以下のコマンドで参照しているファイルが確認できそうです。

$ setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "xfree86+aliases(qwerty)"       };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete+japan"        };
        xkb_symbols   { include "pc+jp" };
        xkb_geometry  { include "pc(pc104)"     };
};

 
上記の結果で確認する必要があるのが xkb_keycodes と xkb_symbols です。

xkb_keycodes は xfree86 だね。ってことはファイル的には /usr/local/share/X11/xkb/keycodes/xfree86 になります。 xmodmap では keycode の 133 の値を変更したかったので 133 で grep してみるとっ!! おーーっ!! <AE13> = 133; って行が見つかりました。

でもって xkb_symbols を見るとと今度はファイル的には /usr/local/share/X11/xkb/symbols/jp を参照していると思われます。

なるほどー。これで xmodmap と setxkbmap との関連性がそこはかとなく解ってきたような気がします。
しかし、それにしても setxkbmap -option に指定する記述方法がいまいち解りません。しょうがないので直接設定ファイルを変更してしまうことにしましょう。

あ。ちなみに setxkbmap -option に指定した形式は 上記 hal の 10-keyboard-jp106.fdi に input.x11_options.XkbOptions に設定してあげるだけで良いみたいなんですけどね。形式が解れば直接設定ファイルを変更する必要は無いんですけども。

と、いうことで /usr/local/share/X11/xkb/symbols/jp のファイルを以下のように変更してあげます。変更する項目は先程確認して <AE13> だということが解っていますね。

//  key <AE13> { [ backslash, bar       ] };
    key <AE13> { [ bar, bar   ] };
        :
//  key <AE13> { [ backslash, bar       ] };
    key <AE13> { [ bar, bar   ] };

 

<AE13> の項目は全部で二つあったので両方とも直しました。あとはマシンを再起動して X が起動したあとにログインして USB キーボードを抜き差しして動作確認を行い xmodmap で指定していた値が変わらなくなったことを確認します。

 
今回はたまたま mozc のかな入力のキーバインド変更のための設定変更でしたが、通常 CAPS Lock と Ctrl キーの変更などはウェブ上にゴロゴロしていますよね。そーじゃないちょっと変わったキーの変更を hal 経由の場合に継続的に持続する場合についての探し方などについてまとめてみました。

多分、他のキーについても上記の方法で行けるのでは無いかと思われます。

それにしても setxkbmap -option の記述方法知りたいなぁ。オプションに指定する方法などを知っている方いましたら教えて頂ければと思います;-)。

8月 182013
 

ずいぶん前、それは多分 pgp2.6 辺りが流行っていたころだと記憶していた頃に聞いた話ですが、フランスでは民間人の暗号化された情報のやりとりは禁止されている。ってことらしいですが、それが本当の話か、はたまた全然間違いだったのか? というのは確認してないので定かではないのですが、そんな話を耳にしたことがあります。

最近の出来事としてはマルウェアだかトロイの木馬だかで情報がごっそり、特定のサーバに送られてしまう。なんて話も聞きますが、FreeBSD は安心さー。みたいな感じで。あぁ、確かに利用者数からしても Linux や Solaris よりは圧倒的に少ないとは思うのですけどね。それでも Mac OSX でも最近はちらほらと話は聞くので、 ID やパスワードを書いたテキストファイルをデスクトップに置いといてもちょっとアレですね。

と、いうことで、そーいう重要なファイルなどは暗号化して持っていることにしましょう。と、いうのが今回のエントリの趣旨です。

利用するのは openssl で暗号化形式は des3。 パスワードとか住所とか書かれているファイルを普段は暗号化して持っていましょう。って感じでちょっとスクリプトを書いてみました。

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin/:/usr/local/bin
export PATH

desfile=`echo "${HOME}/.data/Encryption_txt.des3"`
orgfile=`echo "${HOME}/.data/Encryption_txt"`
oldfile=`echo "${HOME}/.data/Encryption_txt~"`

case $1 in
'-d' )
    if [ -f $orgfile ]; then
	openssl des3 -salt -in $orgfile -out $desfile
	if [ -f $oldfile ]; then
	    /bin/rm -f $oldfile
	fi
	if [ -f $desfile ]; then
	    /bin/rm -f $orgfile
	fi
    else
        echo "$orgfile is not found.";echo ""
    fi

    ;;
'-u' )
    if [ -f $desfile ]; then
	openssl des3 -d -salt -in $desfile > $orgfile
    else
	echo "$desfile is not found.";echo ""
    fi
    ;;
* )
    echo "usage : Encryption.sh { -d(des) | -u(undess) }"
    ;;
esac

exit 1;

 
こんな感じでどうでしょうかねぇ?

色々人に見られたくない情報が書かれたファイルは ${HOME}/.data/Encryption_txt というヤツです。
上記のスクリプトを例えば Encryption.sh という名で保存してオプションに -d を指定すると openssl des3 で暗号化するためにパススレーズを二回入力します。

Encryption_txt と、いうファイルは ${HOME}/.data/Encryption_txt.des3 という名で保存されます。その時、 emacs で編集していれば ${HOME}/.data/Encryption_txt~ ファイルは削除します。

解凍するときは -u オプションを指定してパスフレーズを入れると解凍されます。

これで個人情報はそこそこ守れるかな?

あとは逆に、辞書攻撃しかけて des3 の強度と CPU パワーの確認。なんてのにも使えそうです;-)。

まぁ、気休めかもしれませんが、ベタなテキストファイルで持っているよりは『安心』と、いうことで。

もし、上記スクリプトを利用して大切な情報がどうか(ファイル自体が消えたり、あっという間に解読されたとかその他諸々)なっても僕は一切責任を持ちませんので自己責任でお願いします。

ちなみに動作的には FreeBSD と Mac OSX で確認しています。僕は Linux はデスクトップでは利用してないので;-)。

8月 152013
 

このサイトのドメインは running-dog.net ですが、DDoS 攻撃を受けました。そのときに取れた情報をちょっとまとめてみましたのでここに公開してみたいと思います。

まず、第一にですが、running-dog.net はさくらのレンタルサーバ上にあります。 このサービスはそれなりに制約があって、その範囲内で DDoS 対応するのですが、以下に制約についてまとめてみました。

・root 権限は無いため全てを .htaccess で行う必要がある
・ログは一日一回前日分が 00:05 頃に蓄積される
・ssh ログインはできるので Jail の ps -ef とか ファイル名変更などは行える

こんな感じで DDoS に対応した。と、いう感じです。

では今回の DDoS について色々情報が取れたので順番に見ていくことにしましょう。

1. DDoS の時間帯

開始時間: 2013/08/13 22:42 に第一発目
収束時間: 2013/08/14 04:40 ころ
完全終了: 2013/08/14 07:21 ころ

夜中から始まって、僕が DDoS を受けているのに気がついたのは 23:00 頃です。そこから色々対応して行きました。と、いってもそんなに色々できませんけど;-)。

ちなみに DDoS 受けている時はウェブの表示はしてくれません。 さくらインターネット側で特定のプログラムが負荷をかけていると Server Error (Code:500) を返すようにしています。

 
2. DDoS 対応第一弾
まず、DDoS は WordPress の wp-login.php に対して大量のアクセスを行う。ってことでした。 Jail 環境下のさくらのレンタルサーバでは ps(1) ではいまいち解らないのですが、ロードアベレージが 15 とかまで上がっているので「何かあるな。」と、言う状態です。

まずは少ない情報ながらも index.php を index.html (現在メンテナンス中)に差し替えます。そして wp-login.php も名前変更して Not Found (Code:404) を返すようにしてあげます。 wp-login.php は MySQL へアクセスするので、その負荷を軽減しました。

第一段はここまで。時間的には 13 日 23:45 くらいでしょうか。apache のログは 00:05 ごろに蓄積されるはずなので続きはそのログを見てから。

 
3. DDoS 対応第二弾
風呂に入ってさっぱりした後、13 日分のログが蓄積されたようなのでいよいよログを解析してみます。あとでまとめた情報を公開しますが大体 2,500 箇所くらいからアクセスがあるようですね。分間 20 アクセスくらいでしょうか。少ないように感じますが、レンタルサーバなのでサーバ負荷はドドドと上がります。

アクセス元が 2,500 箇所もあるのでもうアドレスでの Deny from 制御は諦めました。で、ログを眺めていたら User-Agent が固定的だということに気付いたので、それでブロックすることにしました。まずは .htaccess に以下の設定投入です。

SetEnvIf User-Agent "Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0" STOP_Access
order allow,deny
allow from all
deny from env=STOP_Access

 

これで Forbidden (Core:403) が返るようになったはず。まぁ、今回はこれでヨシとしましょう。ちなみにこの設定を入れていると Windows を使っている人で Firefox19 を利用している人は(今でも)僕のサイトは閲覧できないのではないかなぁ。と思います。 ESR 系か Firefox23 にバージョンアップしましょう;-)。

この設定を入れたので wp-login.php が MySQL にアクセスすることはなくなったので名前変更していたファイルをもとに戻して index.php も設定して実質的にサイトは復活しました。復活したのは大体 14 日 00:13 頃です。

 
4. ログの解析結果
さてさて。今回は貴重なログが取れました。ログを解析した結果をちょっと見て行きましょう。まぁ、 root 権限が無いサーバなのでその他の情報とか取れないんですけどね。

・DDoS の時間は 2013/08/13 22:42 から 14 日 04:40:38 までだとして約 6 時間
・DDoS 攻撃の回数は 18,832 回
・DDoS の攻撃元 2,451 箇所

このサイトはついこの間 Movable Type から WordPress に変更したばかりです。 Movable Type はエントリ投稿時に全ての html を生成する静的コンテンツなのですが、 WordPress は php でデータベースアクセスしてコンテンツを出力する動的コンテンツなので DDoS には弱いですね。

さてさて、今回は 2,451 箇所から攻撃を受けましたが、一番多かったのは以下の二つから。

101 dynamic.vdc.vn
129 200.13.91.183-ftth.cmcti.vn

左側が回数で右側がドメインです。ベトナムですね。

もう一つ情報を。日本のドメインからもアクセスがありました。以下になります。ログには FQDN が残りましたが、今回は省いています。

2 .rev.home.ne.jp
2 .kanagawa.ocn.ne.jp
3 .dy.bbexcite.jp
3 .nagoya1.commufa.jp
3 .ap.plala.or.jp
3 .au-net.ne.jp
3 .zaq.ne.jp
5 .ap.yournet.ne.jp
6 .t-com.ne.jp
6 .nagasaki.ocn.ne.jp
12 .ppp11.odn.ad.jp

上記 ISP さんで、連絡頂ければ正確な FQDN をお教えしますよ;-)。 上記の 11 個の PC は BotNet に取り込まれている。と、いうことですね。

 
5. 最終的な対応策
やはり .htaccess でしか対応できないので、以下のようにしました。

<files wp-login.php>
    order deny,allow
    deny  from all
    allow from 192.168.1.1
    allow from 172.16.10.0/27
#   allow from 3ffe:210:fc42::/48
</files>

 
さくらのレンタルサーバは IPv6 には対応してないので IPv6 の設定の記述するとサーバエラーになります。

DDoS 攻撃のログを見てもログインしてアカウントを取得するようなログは残ってなかったのでただ単にサービス妨害にしか見えなかったのですが、それにしてもこのサイトのサービスを妨害してどうなるんだぁ?と思うのですけどね。
って話は横道にそれましたが wp-login.php はアクセスするのはほぼ僕だけなので、僕が利用するグローバルアドレス以外からのアクセスは止めることにしました。

httpd の負荷の軽減ではなく httpd から接続する MySQL の負荷の軽減を目標としています。
User-Agent の Firefox19 ですが、自分が 19 を利用するようになったときに考えてみたいと思います。もしくは再度 DDoS が来て User-Agent が変わっていたらそれに合わせて変更したいと思います;-)。

 
しかし、どうして running-dog.net が DDoS 受けるんだろうねぇ? それが不思議でしょうがないですが、僕に恨みを持っている人のシワザとか?;-)。

root 権限があればもっと色々できるとは思いますが、それにしても今回は貴重な体験をさせて頂きました;-)。
そして、こんなエントリ書いたら再度攻撃受けるかな? f(^^;;。

8月 132013
 

僕は Firefox というのはドドドとバージョンが激しく上がっていくヤツではなく ESR 版を利用しているのですが FreeBSD の ports 的に言うと www/firefox-esr になるわけですけども。

現在の最新の ports-current では firefox-esr-17.0.8,1 と、いうバージョンが利用できます。しかし、確か 17.0.8 になったときだと記憶しているのですが、メニューなどの日本語表示ができなくなってしまいました。でもって、僕は firefox の起動時には bing.com を表示しているのですが、これがあーた。英語サイトを default で表示してくれるようになったりと、言語環境がぶっ壊れチックになってしまったんですね。

いつも Firefox をインストールするときは以下をインストールします。あ。 potrs 的情報ですけども。

・www/firefox-esr
・www/firefox-esr-i18n
・www/xpi-quick-locale-switcher

日本語言語パックとアドオンの Quick Locale Switcher も合わせてインストールしているのにどうして日本語で表示してくれないのだ?と悩むのであります。

そもそも以下の事象が現れています。

1.アドオンメニューのアドオン一覧に「言語パック」メニューが表示されない。
2.拡張機能の項目の中に ports からインストールしたはずの Quick Locale Switcher が表示されない。

どもう見てもこれはおかしい。ってんで色々調べたのですが「アドオンメニュー」の「アドオン入手」から Quick Locale Switcher 1.7.8.8 をインストールすると表示されるようにはなってメニューにも[言語を変更]ってのが現れるんだけど、しかし、日本語表示できない。

で、色々調べた結果「アドオン入手」から入手したアドオン(拡張機能)は

$HOME/.mozilla/firefox/乱数.default/extensions/

にインストールされるんですね。かたや ports からインストールしたヤツは

/usr/local/lib/xpi/

にインストールされます。 で更に調査を進め、色々な firefox のオプションとか指定して試すんですけども、あれー?! ってことは Firefox は /usr/local/lib/xpi/ を参照してないんではないの? という結論に達しました。

と、言うことで ports からインストールした言語パックと Quick Locale Switcher を symlink してあげることにしました。

$ cd ~/.mozilla/firefox/乱数.default/extensions/
$ ln -s /usr/local/lib/xpi/langpack-ja@firefox.mozilla.org ./
$ ln -s /usr/local/lib/xpi/\{25A1388B-6B18-46c3-BEBA-A81915D0DE8F\} ./

 
上の symlinkは 日本語言語パック、下の symlink は UUID ですが Quick Locale Switcher になります。そのまま symlink しました。

あとは Firefox を再起動して各種設定を見なおして完了です。アドオンマネージャにも「言語パック」とか、 ports からインストールした Quick Locale Switche が表示されるようになった(今のところはバージョンでどっちからインストールしたかの判断は付きます)ので一見落着。

20130813_firefox_01

と、いうことでこの作業を行なったおかげで無事に Firefox の日本語表示が復活しました。
しかし、 /usr/local/lib/xpi/ は信用したらアカン。と、いうことかな? 今後はこの symlink をずっと残すことになるかもしれませんが、それはこのエントリを読んだ方の好きにして頂ければと思います;-)。