7月 112017
 

僕は現在 SoftBank の回線で iPhone6 を使い続けていますが、 R-SIM10+ という SIM ロックのかかった iPhone を SIM フリーにしてくれる。と、いう、以前から評判になっていた SIM ゲタを購入してみました。
バルク品ですが、980yen だったので試してみた。と、いう感じですが;-)。

届いたのはこんな感じです。本当にバルクだぁ。パチモンではないのかな? とは思いつつ、購入したのは APM ショップ というところだったので、多分問題ないだろう。と、言う気持ちはありました;-)。

iPhone6 はまだ Softbank の SIM で動作しているので iPhone5 で試してみました。利用したのは DTI SIM。ちなみに現在 iPhone5 は奥さんが利用しております。

奥さんのネットワーク環境は、以前に僕が購入した(その後、詐取された) ZTE Blade Vec 4G に DTI SIM を入れて Wi-Fi ルータ化し iPhone5 でテザリングしている。と、いう状態です。ちなみに、彼女は Softbank のフィーチャーフォンも持っているので、都合三台持ち。と、いうことですね;-)。まぁ、僕がそのように仕向けている。とも言うんですがf(^^;;。

と、いうこと、でわざわざ iPhone5 に R-SIM10+ を使う必要は全くないんだけど、僕が試したくなってしまった。と、いうのが実情ですf(^^;;。

 
さてと。まずは iPhone5 に DTI SIM のプロファイルをダウンロードしてインストールするところから始めます。そして、早速 R-SIM10+ を試してみました。
上記 APN ショップの URL の手順に従い LTE の電波をオフにしたところで電源を入れつつ SIM カード共々接続します。
[JP SoftBank] -> [TMSI1.2G3G4G] -> [M2(IOS8-IOS9)] と、メニューに沿って進んでいきます。

3G の電波は比較的容易に拾いました。そして、通信も無事にできましたが、遅いですねぇ・・。

でもっていよいよ LTE をオンにするのですが、あたたた。いきなり圏外病の発生です。これが俗に言う圏外病というモノなのね。ということで docomo 謹製の MEDIAS LTE N-04D で復活させようとしたのだけど、ダメ。やり方が間違っていたのかな?
しょーがないので iPhone5 の LTE をオフにして SIM カードのみを抜き差ししていたら、あぁら。無事に復活。単なる偶然か? しかし、調べてみると iPhone 単体でも復活した。と、いう話はウェブ上で見受けられるし。

その後、再度 iPhone5 に DTI SIM && R-SIM10+ を指したら LTE を拾って通信ができるようになったのでヨシとしました。

購入した R-SIM10+ はバルクだったのですが、実際に LTE 接続して動作したので『一応問題なく動作した。』と、いうことになるのでホッとしております;-)。

 
次の日、奥さんに一日持ち歩いてもらいフィールドテストを実施してもらいました。ろくに詳しいことも説明せずに;-)。しかし、 16:00 頃メールが来て『使えないんだけど。圏外になっているんだけど。』と、いうことでシューリョー・・。

家に帰って色々情報を聞くも『使えないと意味がないので、今のまま二台持ちでも全然問題は無い。』と、いう、そっけない意見が出たので、結局 R-SIM10+ を利用したのは一日だけだったのであります・・。 orz
まぁ、確かにそのとおりではある。

 
なお、二回目の圏外病になった DTI SIM ですが iPhone5 単体で試したけど、やっぱりダメで SIM フリースマホである ZTE Blade Vec 4G の LTE をオフにして試してみたらいとも簡単に復活しました。圏外病を復活させるためには docomo のガラケーが必要だ。と、言われているようですが、 docomo の電波を拾う SIM フリーなスマートフォンでも LTE をオフにしていると大丈夫みたいですね。

ZTE Blade Vec 4G が特別なだけかもしれないですが。

 
と、いうことで、まぁ、ほぼ検証のためだけに購入した。と、言っても過言ではない R-SIM10+ ですが、わずか一日の短命に終わったのでありました・・。

圏外病の復活方法がわかっただけでもヨシとすべきか・・。

7月 082017
 

ハイレゾ楽曲を聴くために SONY Xperia Z5 Compact E5823 購入したのですが、こいつは SIM アンロック済みのワールドワイド版です。 SONY は早々と Android7 にバージョンアップする。と、アナウンスがあったのですが、キャリア向けのバージョンアップは確か、随分前にありました。僕の持っているヤツはようやっと Android7 が降ってきました。

ここまでは前回書いた Android7 が降ってきた。のエントリと一緒です。

僕が持っている香港版の Xperia Z5 Compact E5823 に Android7 が降ってきたのは 2017/05/25 頃。 UK 版より三ヶ月ほど遅かったのですが、スルスルっと Android7.1.1 が振ってきました。今回は早かった;-)。

早速バージョンアップしました。特に問題も無く 30 分くらいで完了しました。

前回の Android6 から 7 にバージョンアップしたときよりも見た目の変化が少ないように感じるので、ほぼバグフィックスとかセキュリティーホールすぶしのバージョンアップなのでしょうなぁ。

無事に終わったあとのバージョンはこんな感じ。購入してからそろそろ一年が経つのですが、ズイズイとバージョンアップしてくれる SONY には感謝感謝です。やはりちゃんとしたメーカの Android 端末を買わないとダメだよなぁ。と痛感します;-)。

 
さてと。話はこれで終わったら面白くないし、前回のエントリではわざわざ Bluetooth イヤホンのお話を書いたので、それに関連するお話をちょっと書いてみます。

前のエントリにも書いた通り、僕の Xperia Z5 Compact E5823 には 64GB の MicroSD カードに 55GB 分、曲数にすると 280 曲程度入っています。なのにハイレゾ対応イヤホンではなく Bluetooth イヤホンで楽曲を聞いていたので、その恩恵が全く受けられていませんでした。

そんなこんなで久しぶりに『ケーブルが邪魔だけどね。』などと思いつつ SoftBank SELECTION SE-5000HR でハイレゾ楽曲を聞いたのですが。あれ?! 音がずいぶん良くなってない?

まぁ、今まで三ヶ月くらいほぼ毎日 Bluetooth イヤホンで通勤時に楽曲を聞いていたのを突然ハイレゾ対応イヤホンに変えたら、そりゃー音の違いが解って当然だよなぁ。などと思うのですが、ふつー、10 分程度聞いていると耳が慣れてしまうのに、今回はそんなことはなく、いつまで経っても良い音のまま耳に入って来るのであります。

ドンドン来ていないのに重低音がしっかり響き、高音は『あれ?こんな音してた?』って思えるほど聞こえるし、音の広がりがすごいし。人が聞こえない周波数まで音の広がりがある。と、いうより量子化ビット数分ちゃんと厚みのある(情報量のある)音になっている。ような気がするのであります。

 
何を言いたいのか?というと、 Android のバージョンアップでハイレゾ関連の音質良くなったりしてない? などと思った次第です。

Andoid6 -> 7 にバージョンアップしたときに音が良くなったかな?とも思えるのですが 7 -> 7.11 にバージョンアップしたときには特に変更がないように感じます。

しかし、ウェブで探してみても Xperia が Android7 になってハイレゾの音が良くなった。と、いう改版履歴は特に見当たらない。

もしかしたら、ただ単に気のせいなのか? f(^^;;

7月 072017
 

タイトルの「SoundPEATS Bluetooth 買ってみました。」と言っても、実はずいぶん前に購入したんですね。この次に書くエントリに必要になったので慌てて今更書いている。と、いう状態なんですけども、まぁ、懲りずに読んでやってくださいf(^^;;。

僕にとっては二個目の Bluetooth イヤホンです。一個目は Anker SoundBuds Sport NB10 を購入したのですが、これは主にランニング用で利用する目的でした。まぁ、会社への通勤時に利用しても良かったのですが、デザイン的にはランで利用するみたいなのと、音的に重低音が強い傾向があるので『じゃ、別のをもう一個買ってみっかねぇ。』と、いうことになったのであります。

そして、購入したのが SoundPEATS の Q11 という Bluetooth イヤホンです。まぁ、価格が安かった。と、いうのもあるのですけどね;-)。

このイヤホン日本製です。取扱説明書が日本語だし、電源ボタン長押しで起動すると「電源をオンにします。」 Bluetooth 機器、僕の場合は SONY Xperia Z5 Compact ですが、これに無事に接続すると「接続が完了しました。」と女性の声で喋ってくれます。

ピロロロロォーン。と音ではなく、声が聞こえるのであります。この辺りは『お。日本製だねぇ。』などと思えて来るのであります。
日本製かは分かりませんが、日本の会社が作った製品。ってことですねf(^^;;。

この Q11 を購入してそこはかとなく嬉しいのが、収納ケース付き。ってところですね。よくある巾着袋ではなく、ハードケースが付いてきます。これは大きさも手頃で中々良いです。ケースだけあと 2,3 個欲しい。などと思えるのであります;-)。

Q11 は aptX に対応しているので高音質って言えるのかな? Xperia Z5 Compact も aptX に対応しているので恩恵が受けられます。

 
さてと。音に付いてですが、僕の感覚的センスで書いてみますが、上にも書いた通り Anker SoundBuds Sport NB10 と比べると自然な音がしますね。重低音がドカドカこないので安心して聞いていられる。

あと、 Bluetooth イヤホンなので、ある程度の音質は捨てています。

僕の Xperia Z5 Compact には 64GB の MicroSD カードを利用して約 55GB 分、曲数にすると 280 曲程度のハイレゾ音源を入れていますが、これを Bluetooth イヤホンで聞くのは本末転倒だぁ。などと思って入るのですが、通勤時の電車の中で聞く Bluetooth イヤホンの利便性と音質をトレードオフしたら、どっちがえんじゃい? となってしまうのでありました・・。
僕的は SoftBank SELECTION SE-5000HR を含めて二つのイヤホンと一個のスピーカーを持っていますが・・。

 
このイヤホンは耳にひっかけて、ケーブルを後ろにまわして利用するようなのですが、僕には首の後ろにケーブルを通すという文化が無いので前で垂らしています;-)。

二個目の Bluetooth イヤホンですが、最近はこれを主流に利用しているのでありました。

 

5月 182017
 

と、いうことで非常に簡単なエントリーですが、困っている人もたくさんいるのではないかと思うので書いておきます。あ。 ports-CURRENT を追いかけている人向けです。

Vmware ESXi 上で FreeBSD を動作させている人は ports から emulators/open-vm-tools/ もしくは emulators/open-vm-tools-nox11/ をインストールしているかと思われます。

これ、ずいぶん前から FreeBSD/amd64 10.3-RELEASE ではコンパイルが通らなくなっているんですよね・・。
lib/user/utilBacktrace.c の中でエラーが出ています。

FreeBSD な ML でも話題になっていますが、誰も相手にしてくれないようで・・。 orz

https://lists.freebsd.org/pipermail/freebsd-virtualization/2017-January/005186.html

けどもまぁ、一応、パッチを当てて FreebSD/amd64 でコンパイルが通るようにしたので、そのパッチをここに記載しておきます。
以下がパッチです。

--- lib/user/utilBacktrace.c.orig       2017-05-17 22:23:46.088791000 +0900
+++ lib/user/utilBacktrace.c    2017-05-17 22:23:53.932119000 +0900
@@ -54,7 +54,6 @@

 #ifdef VM_X86_64
 #   if defined(__GNUC__) && (!defined(USING_AUTOCONF) || defined(HAVE_UNWIND_H))
-#      define UTIL_BACKTRACE_USE_UNWIND
 #   endif
 #endif

 
これを patch-utilBacktrace.c という名で保存して emulators/open-vm-tools/files/ 辺りにでもほーりこんで make してみてください。

このパッチですが、注目点としてその上の行の ifdef VM_X86_64 の部分です。

実は手元に Vmware ESXi 上で動作する FreeBSD/i386 があるのですが、これでは無事に emulators/open-vm-tools-nox11/ のコンパイルが通りました。

ってことは、つまりはなんだい?

VM_X86_64 のとき(それはつまりはアーキテクチャが x86_64 のとき。と、いうことですね)に UTIL_BACKTRACE_USE_UNWIND が define されて lib/user/utilBacktrace.c をコンパイルすることになって、それがエラーになるのでコンパイルが通らない。と、いうことですね。

ならば UTIL_BACKTRACE_USE_UNWIND を define させなければ良いんじゃーねーのかい? FreeBSD/amd64 だからといってもデバッグ用のロジック(本当か? f(^^;)は FreeBSD/i386 にもないんだからいらねーだろ。って発想です;-)。

果たして、上記パッチを適用することにより FreeBSD/amd64 でも emulators/open-vm-tools-nox11/ のコンパイルが無事に通ったのでありました。

あ。コンパイルが通っただけでなく、利用もしていますが、今の所問題は出ていないです;-)。

 
すげー、お気楽なパッチですが、最新版の emulators/open-vm-tools-nox11/ が FreeBSD/amd64 に今すぐ必要・直ちに必要などという人は参考にしてみてください。

 
ずいぶん前からコンパイルが通ってないのだけど、まだまだ当分、直らないんだろうなぁ。などと思っております・・。

5月 102017
 

一個前のエントリは RPi ZERO で FreeBSD/arm 11.0-RELEASE が動いた。というお話でした。RPi 2/3/ZERO 上で動作する OS はディスプレーが無いので Zeroconf を動かして ssh hoge.local したいと思いますよね。

そして、以前のエントリで「Zeroconf 考察」というのを書いているのですが、デスクトップには Avahi をインストールして、サーバなどはより軽量な mDNSResponder をインストールすれば良いよ。などと書いているのですが、 mDNSResponder は core dump するなど、どうも動作があやすぃ・・。
なので、いっそのこと Avahi で統一したいモノだ。などと思っていたんですけども net/avahi-app/ は、サーバには不要なモノをインストールしすぎる。

そんなこんなで、もっと簡単にインストールできる軽量版の net/avahi-app/ の ports を作成しました。名前を avahi-app-small としていますが・・。
以下の URL にあるので、もし試してみたい。と、いう方がいましたらダウンロードしてみてください。

http://icmpv6.org/Prog/FreeBSD_ports/ports-avahi-app-small-20170510.tgz

インストールは以下の通り。

# cd /usr/ports/net/
# tar xvzfp ~/ports-avahi-app-small-20170510.tgz
# cd avahi-app-small/
# make install

 
フツーの ports をインストールするのとなんらかわりはありません。が、注意点が一点だけあります。クライアント側の ports である dns/nss_mdns/ を make install するより先に avahi-app-small をインストールしてください。

ではどの辺りが違うのか? 軽量なのか?

標準の net/avahi-app/ の ports は以下をインストールします。

Shared Libs required:
        libintl.so.8
        libglib-2.0.so.0
        libgobject-2.0.so.0
        libexpat.so.1
        libgdbm.so.4
        libdaemon.so.0
        libdbus-1.so.3

 
devel/glib20/ や devel/gobject-introspection/ は関連性でサーバには要らんモノ (cairo とか freetype2 とか python27 とその関連性の ports など)をドドドとインストールしてとてつもないことになるし sysutils/gnome_subr/ なんてのも要らんし・・。

僕が作成した avahi-app-small の ports をインストールすると以下がインストールされます。

Shared Libs required:
        libdbus-1.so.3
        libintl.so.8
        libdaemon.so.0
        libexpat.so.1

 
これだけです。 非常に軽量にインストールできます。 Avahi 自体は dbus を利用しているので dbus は必須になってしまいますが、これはまぁしょーがないか。
ports からインストールするとコンパイルのために色々インストールされますが、あとで pkg autoremove するか、コンパイルの時間がもったいない場合には packages からインストールしてください。

 
ports の Makefile では LIB_DEPENDS は最小限にして CONFIGURE_ARGS では不要なモノを色々 disable にしています。これだけでずいぶんと小さくなりました。
GNOME 必要ねーし。 Makefile の以下の行は何のためにあるんだぁ?

avahi-post-patch:
    :
        @${REINPLACE_CMD} -e 's|%%RC_SUBR%%|/etc/rc.subr| ; \
                s|%%GNOME_SUBR%%|${GNOME_SUBR}|' \
                ${WRKSRC}/initscript/freebsd/avahi-dnsconfd.sh.in \
                ${WRKSRC}/initscript/freebsd/avahi-daemon.sh.in
    :

 
files/patch-initscript_freebsd_avahi-daemon.sh.in には +. %%GNOME_SUBR%% なんて最初から書いてあるし・・。

と、いうことで要らんモノを削ぎ落としていったらすごい軽量な(それはつまりは、余計なモノをインストールしなくて済む。と、いうことで、動作的に軽くなった。と、いう意味ではない;-) Avahi がインストールできるようになりました。
試したのは avahi-daemon avahi-dnsconfd avahi-browse くらいですが、これだけ動けば、一応問題はないでしょ? f(^^;;。

あ。ports 的にはノラです;-)。gnome@freebsd.org (メンテナ) に連絡して「make config で余計なのインストールするのやめるように、選択できるようにしてくれよー。」って、ツッコミ入れるのはアリだと思うのですけどねぇ・・。

今回の ports はサーバと FreeBSD/arm で動作させるために作成した。と、言っても過言ではないですが、これで自宅のデスクトップとサーバは Linux も含めて全て Avahi になった。あ。macOS は別だぁ;-)。

5月 022017
 

ゴールデンウィークのお楽しみ用に Raspberry Pi を二個購入しました。一個は Raspberry Pi 3 Model B で、もう一個は Raspberry Pi ZERO です。二個合わせて 5,000yenちょっと出た程度。

正規代理店の 株式会社 ケイエスワイで購入しました。
5,000yen 以上だと送料無料だというので二個買ってしまった。と、いう話なんですけども。

これで Raspberry Pi は 2,3,ZERO と三つになりました。

左から RPi2 -> RPi3 (ハイレゾ音源ボード装着) -> RPi ZERO と並んでいます;-)。

Raspberry Pi 3 Model B は volumio2 で利用予定です。 オンボードの Wifi チップは FreeBSD では利用できませんが、Linux では利用できるので。ちなみに volumio2 でも利用可能です。おかげで USB な Wi-Fi が余ったので他の RPi に回せます。

今まで利用していた Raspberry Pi 2 Model B は 自宅で FreeBSD マシンとして動作させるべく FreeBSD/arm 11.0-RELEASE をインストールしました。以前このブログでもエントリを書いているのでサクっと動作します;-)。

ports のコンパイル環境も母艦側を FreeBSD/amd64 10.1-R から 11.1-R にバージョンアップして、 qemu 側も新たに FreeBSD/arm 11.0-R 用のを作成したのでコツコツと最新の ports-CURRENT を更新して行きたいと思います。

最近の FreeBSD/arm 11.0-R は pkg install が利用できるのでずいぶんと楽にはなりましたね。ただ、ちょっと古い。そんな場合は以下の URL を覗いてみてください;-)。

http://distfiles.icmpv6.org/freebsd:11:armv6:32/latest/All/

と、いうことで、今回のネタは Raspberry Pi ZERO についてです。

 
Raspberry Pi ZERO は値段が 600yen で非常に手頃な値段です。外部接続には電源供給用の MicroUSB と、USB 機器接続用の MicroUSB のポートがあります。ディスプレーは MiniHDMI ポート、これはちょっと痛かった・・。 MicroHDMI ポートだと Diginnos DG-D08IWBと互換があるので嬉しかったのですが・・。

今回は HDMI への出力を諦め、シリアルコンソールを利用しました。

そもそも RPi ZERO には GPIO ピンがなくて穴が空いているだけです。なのでシリアルコンソール用のピンをハンダで付けてあげる必要があります。

まず、ピンの手配ですが、昔利用していた PC のサウンドカードから 3 本ほど調達しました。下の写真のような感じ。

うまく固定もしたのでこれを穴の中に通します。ハンダ付けはしません。ちょっとななめにすると接触するのでハンダ付けしなくとも利用できました。

OS は FreeBSD/arm 11.0-RELEASE をチョイス。イメージは以下を利用しました。

FreeBSD-11.0-RELEASE-arm-armv6-RPI-B.img.xz

ちなみに RPi2 では以下のイメージを利用します。

FreeBSD-11.0-RELEASE-arm-armv6-RPI2.img.xz

RPI2 のイメージも RPi ZERO で試しまたがブートしませんでした。

RPI-B なイメージを MicroSD に dd し SD カードを差し込んで電源オンっ!! 無事に起動したのであります。

起動時の情報は以下になります。

dmesg
sysctl -a

僕は MIcroUSB -> USB 変換ケーブルで USB Wi-Fi や USB NIC を付けてネットワークリーチャブルにしたあとリモートからの SSH と NFS で作業を実施。環境構築が完了したのでありました。

そーそー。 RPi ZERO の ports/packages は FreeBSD/arm 11.0-RELEASE RPI2 の環境で作成したものがそのまま動作しました。 RPi2 と ZERO ではブート用イメージファイルが違うので ports/packages も違うのかな?などと思ったのですが、どちらも 32bit なバイナリで、同一のものが動作します。幸せなことです;-)。

と、いうことで特に問題もなく RPi ZERO は FreeBSD/arm が動作しました。

 
値段が 600yen で、約 5cm ほどの最小の FreeBSD 環境が整った。と、いうことですね。ゴールデンウィークの暇つぶしにピッタリなおもちゃです;-)。

4月 262017
 

ハイレゾ楽曲を聴くために SONY Xperia Z5 Compact E5823 購入したのですが、こいつは SIM アンロック済みのワールドワイド版です。 SONY は早々と Android7 にバージョンアップする。と、アナウンスがあったのですが、キャリア向けのバージョンアップは確か、随分前にありました。僕の持っているヤツはようやっと Android7 が降ってきました。

下記の URL で確認すると、Customized UK 版は今年の三月に、アップデートがあったようです。僕のやつは Customized HK なので香港版だったようです。香港版が今回やってきた。と、いう感じですね。

https://xpericheck.com/device/E5823

ちなみに、自分の Xperia Z5 Compact E5823 がどこ向けなのか確認する方法は、以下に電話します。

*#*#7378423#*#*#*

表示されたメニューから [Service info] -> [Software info] と進み [Customization Version] を確認すると良いです。僕のは 1298-7299 でした。

 
バージョンアップは 30 分程度で完了し、以下のようになりました。

さてと。 Android7 になってどの辺りが変わったか? と言われれば、あまり良くわかりません。ただ、デグレードした点で気がついた点は以下の二つ。普段から良く使う機能だけに、非常に不便です・・。 orz

1).ボリューム調整がおおざっぱになった
Android5 の場合、例えば 0 から 100 までが 20 きざみだったとしたら Android7 は10 きざみになった感じ。一個のメモリで音量の幅が大きくなったので、中間の大きさが出せなくなった。

2).データ使用の画面が貧弱になった
Android5 は右肩上がりの折れ線グラフ的な表示だったのに Android7 は横方向への棒グラフになった。そして、どのアプリがどのくらい LTE のデータ量を利用しているか表示してくれなくなった。

以上不便な点を二つ。

あと、電話をかけるアプリが変わって使いにくくなったけど、格安 SIM を入れていて通話はしないのであまりインパクトはないかな。

 
と、いうことで、僕の持っている Xperia Z5 Compact はまだまだ現役で利用可能な状態です;-)。

4月 052017
 

FreeBSD の ports CURRENT を追いかけていると svn update したあとに portmaster -D -a するクセが付いているのでそれをやってバシバシ最新の ports/pkg を利用しているんだけど・・。

だいたい、時期を同じくして portmaster -D -a してのバージョンアップと Xming の利用が一緒になり、前のエントリの中で『Xming では mozc で日本語入力ができない。』などと書いていたのですが、なんとっ!! よくよく調べてみると GTK-3.0 を利用しているアプリの日本語入力ができなくなっていることがわかった。

KDE 系のアプリは Xming 経由や、素の Xorg 上では日本語入力ができるけど GTK-3.0 なアプリが日本語入力できなくなっていた。

最近は GTK-2.0 から 3.0 への過渡期で、僕の場合は GNOME3 は使ってないんだけど emacs や firefox は GTK-3.0 を明示的に指定して ports のコンパイルをしているし xfce4-terminal も default で GTK-3.0 を利用するようになっている。

と、いうことで今更ながら GTK-2.0 の IM 周りの設定を見直してもショウガない。 xfce4-terminal などは ldd で確認すると libgtk-3.so.0 を利用しているしね。
と、いうことで GTK-3.0 の日本語入力の設定の見直しです。

あ。 GTK-3.0 のアプリで日本語が入力できなくなったのは 03/31 に svn update して portmaster -D -a してからですね。その前まではちゃんと日本語が打てていました。

 
GTK-3.0 の設定はインストールすると、以下のディレクトリに散りばめられます。

・/usr/local/lib/gtk-3.0/3.0.0/
・/usr/local/etc/gtk-3.0/
・$HOME/.config/gtk-3.0/

この中に IM に関する設定ファイルが必要なります。

ちなみに GTK-2.0 の場合には日本語入力するためのファイルは以下になります。

・/usr/local/etc/gtk-2.0/gtk.immodules

このフアイルのおかげで、環境変数に以下を設定した場合に GTK アプリで日本語入力ができるようになります。

export QT_IM_MODULE=xim
export GTK_IM_MODULE=xim
export XMODIFIERS=@im=fcitx

exec mozc start
exec fcitx

 
僕の場合は QT_IM_MODULE を設定して KDE アプリで xim を利用し、 GTK_IM_MODULE も同様で、日本語入力には fcitx を mozc 経由で利用しています。

今回は GTK-3.0 のアプリについてですが、 GTK-2.0 の頃には /usr/local/etc/gtk-2.0/gtk.immodules があったのですが /usr/local/etc/gtk-3.0/ の下にはそんなファイルがありません。

なので作ってあげる必要があります。その場合、以下のコマンドを打ちます。

# cd /usr/local/etc/gtk-3.0/
# gtk-query-immodules-3.0 > gtk.immodules

 
さてと。準備完了。では xfce4-terminal を起動して Shift+SPACE を押してと。あれま。ダメだ・・。
と、いうことで上記の設定ファイルを用意してもダメなようです。

しょーがないので GTK-3.0 のドキュメントを読んでみることにしましょう。

https://developer.gnome.org/gtk3/unstable/gtk-running.html

上記の URL に書かれている説明では immodules の設定ファイルは immodules.cache という名になっているようです。では先程作成したファイルを mv して名前を変更して再度トライ。

しかし、ダメなようです。あれま・・。

上記のドキュメントを読むと直接ほーりむようなことが書いてあるので ports がフアイルをインストールしたディレクトリに直接用意してみることにします。

# cd /usr/local/lib/gtk-3.0/3.0.0/
# gtk-query-immodules-3.0 > immodules.cache

 
これで再度 xfce4-terminal を起動して Shift+SPACE を押してみます。おぉっ!! 今度は無事に fcitx の画面が表示されて日本語が打てるようになりました。メデタシメデタシ。

と、いうことは ports のバグっぽいので、今後バージョンアップされたときには直ることでしようなぁ。 ちなみに 03/31 の ports でインストールされた GTK-3.0 のバージョンは gtk3-3.18.8_4 です。
次にバージョンアップするとしたら gtk3-3.18.8_5 かな? 😉

 
GTK-3.0 のアプリで日本語が今まで打てていたのに急に打てなくなった。と、いう方は上記のように試してみてください。

4月 032017
 

遅ればせながら感が強いのですが、 Xming という Windows アプリを使ってみました。それについて、気付いた点を 2,3 書いてみたいと思います。

普段は会社でも FreeBSD+Xorg 環境なのですが、会社でフル HD なディスプレーが支給されて『わーいっ。X の画面も広くなるぞぉ。』などと思っていたのですが D-SUB 15pin のディスプレーカードと VESA では 1920×1080 の画面が表示できない。と、いうのを知ってアングリ・・。 orz

xrandr しても 1920×1080 が表示されないし、 xorg.conf に Modeline 書いてもダメだし。で、色々悪あがきしましたが、FreeBSD で 1920×1080 な画面を利用するのは諦めました。
新しい PC を買ってもらえれば解決すると思うんですが・・。

 
と、いうことで Windows10 から X のアプリを表示させるために Xming の利用を開始した。と、いうことなんですけども、色々ウェブで探してみると以下のようなものを拾ってくると OK らしい。と、いうことが解りました。

・Xming-6-9-0-31-setup.exe
・Xming-mesa-6-9-0-31-setup.exe
・Xming-fonts-7-7-0-10-setup.exe

以下の URL からダウンロード可能です。

https://ja.osdn.net/projects/sfnet_xming/releases/

mesa 版を利用すると OpenGL が使えるのかな? 好みでどうぞ。

あと、PuTTY が必要なようなんだけど、必要なモノは以下のようです。

・putty.exe
・plink.exe

URL も一応書いておきます。

http://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

が、今回は PuTTY は利用しません。 OpenSSH-Win64 を利用します。

・OpenSSH-Win64.zip

以下の URL からダウンロードします。

https://github.com/PowerShell/Win32-OpenSSH/releases

OpenSSH-Win64 は展開してからフォルダをとりあえずデスクトップに置いておきます。そして Xming と Xming-fonts をインストールします。

インストールが終わったら C:\Program Files (x86)\Xming\ の中にデスクトップの OpenSSH-Win64\ssh.exe を入れてあげると準備が整います。

使い方については様々なサイトで書かれているのでここでは書きませんが、一点だけ。 Xlaunch を起動して次々に画面を遷移していきますが、以下にたどり着きます。

上のキャプチャにもありますが、Using SSH (ssh.exe) にチェックを入れれば良いです。
色々試しましたが plink.exe ってのは機能的には ssh.exe と一緒なのですね。 DOS のコマンドプロンプトから plink.exe を利用すると ssh ログインできるのね。普段 PuTTY 使ってないので知らなかったです。ぼく。

 
さてと。ここから、僕はハマッたのですが、ちょっと書いておきます。

・Hyper-V をインストールしていると Xming は ssh できねくね?

ssh.exe 単体で FreeBSD にログインしようとすると無事にログインできるのですが Xming から ssh.exe を実行すると、ログインできないのであります。最初は plink.exe で試していたのだけど、上記のキャプチャのように ssh.exe でも大丈夫みたいだったので試したのですが、Xming が利用できない状態でした。

僕は Windows10 64bit の環境で FreeBSD を起動するために Hyper-V をインストールしていたんだけど、画面の描写が遅いので、今回サクっと Hyper-V を削除しました。

その後はサクっと Xming が動作し、 X アプリもガンガン飛んでくるようになりました。

Hyper-V をインストールすると、ネットワークインターフェースが bridge になってしまうので『Hyper-V が怪しいなぁ。』などと、メドは付けていたのですが、実際に Hyper-V を削除して試してみると無事に接続できたので、やはり。と、いう感じでしょうか。

たまたま、僕の環境だけなのかも知れませんが、 Xming が ssh 接続できない人は Hyper-V インストールしていたりしませんか?

 
さてと。 X アプリが飛んでくるようになったけど、キーがおかしくね? Ctrl キー使えないじゃーん。などと思ってしばらく難儀していたのですが、あ。僕の環境では Xkeymacs を利用していたわ。

と、いうことで Xkeymacs を OFF にすると無事に動作するようになりました。

・Xkeymacs をオフにすると Ctrl キーが利用できるようになる。

と、いうことで、無事に Windows10 上で X のアプリが利用できるようになったのでありました。一安心です;-)。

あぁ。mozic 使えないですね。例えば Firefox では日本語入力できない。emacs の場合は mozc.el を利用しているので日本語入力できます。

まぁ、この辺りはしょーがないのかなぁ。

と、いうことで Xming のの使い方について、書いてみました。実際に使ってみると中々良い感じです。タスクバーとかも欲しくなってしまう;-)。

 
さてと。話は変わるのですが、同じ Windows 上の環境と、いうことで Windows on bash の話を最後に書いてこのエントリを終了します。

Anniversary Update で Bash on Windows が提供されて bash が利用できるようになりました。しかし、 ssh した先で日本語を表示などすると悲惨な状況だっんですけどね。しかし 2017/04/11 から提供される Creators Update では正しく日本語が表示できるようになりました。これは嬉しい。

僕の場合は Windows Insider Previrew で 04/01 に Creators Update が降ってきたのですが、これで試したらもーバッチリな bash になっていました;-)。

皆さんも是非試してみてください。もしくは Creators Update リリースまで待ってから試してみてください;-)。

3月 112017
 

僕が持っている ThinkPad e145 は FreeBSD がインストールされていて、 suspend/resume するんだけど、resume 時、それはつまり目覚めたとき、パカっとフタを明けたときに default gateway が消えていたりして、ネットワーク的にはちょっと問題があったんですね。
まぁ、目覚めたあとにいつも route add していたんですけども。

そんなこんなで、resume 後に route add が必要なわけ、挙動をいよいよ調査してみることにしたんですね。

僕の FreeBSD の環境は以下です。

・FreeBSD/amd64 10.1-RELEASE
・ネットワーク環境は USB 接続の run0 -> wlan0

OS はまたもっと面白いことになってます。カーネル は 10.1-RELEASE でユーザランドが 10.3-RELEASE です。やってはいけない環境で動かしている。と、いうことですね。どうしてこんな環境で動かしているかについてはあとで少しお話します。

今の話題は resume 後に routing テーブルが消えている点についてですね。話を元に戻しましょう。

 
suspend して、その後 resume したときに起き上がってきた FreeBSD の動作ですが、だいたい以下のようになっているようです。

0. 実は suspend 時に USB デバイスが全部抜去される
1. resume 後に USB を認識してデバイスが接続される
2. resume 後に /etc/rc.resume が動く
3. devd が色々良きに計らってくれる (僕の環境では webcamd の再起動と pccard_ether のすーたと)
4. 自分で記述したスクリプトの動作
5. /etc/rc.resume の終了

まぁ、こんな感じですが、問題は 5. ですかね。

suspend で USB 機器が外されたということはつまりは wlan0 が無くなった。と、いうことなので、これで routing テーブルは全て消えます。
その後 resume して USB 機器が接続され wlan0 が認識され、wpa_supplicant が動き出してネットワークインターフェースには IP アドレスが付加されるようになります。

じゃぁ /etc/rc.resume の中で route add すりゃいんじゃね?

とか思うんですが /etc/rc.resume 内で route add してもそのときはまだ wlan0 に IP アドレスが付く前なので意味無いんですよね。

じゃぁ /etc/rc.resume の中で route add する前に sleep 30 とかすりゃいんじゃね?

とか、次に思いますよね。ところがっ!! /et/rc.resume はちょっとおかしな動作をしていて、 /etc/rc.resume が動作し終わったあとに wlan0 に IP アドレスが付加されるようです。

なので /etc/rc.resume の中で

sleep 30
route add default 192.168.1.1
route add -inet6 default fe80::1

 

などと書いても全く意味ない状態です。では、どうするか?と、いうと、上記の部分をスクリプト、例えば /usr/local/bin/routeadd.sh などとして準備します。
/etc/rc.resume には以下のように書きます。

/usr/bin/logger -t $subsystem route add default.
/usr/local/bin/routeadd.sh &

 

ここで注意しなければならないのは、スクリプトを記載したあと、最後に “&” を付けてバックグラウンドで処理させる必要があります。
動作的には /etc/rc.resume の実行後に wlan0 に IP アドレスが付くので /etc/rc.resume が実行中に sleep 30 してもまるで意味なくて route add されない状態です。なので “&” を書いてバックグラウンドに飛ばして、バックグラウンドのスクリプトが sleep 30 している間に /etc/rc.resume が終了して wlan0 に IP アドレスが付いたあと、 sleep 30 が終わり route add されるようにしないとダメなのであります。

この現象は USB NIC を利用しているからかもしれません。
動作的に resume 後に routing デーブルが消えていて、毎回、自分で route add 打つのが困難な人は上記のようにすれば良いのではないかと思います。

 
で、もう一個のネタを簡単に。

上のほうにも書きましたが、僕の ThinkPad e145 上で動作している FreeBSD はカーネル は 10.1-RELEASE でユーザランドが 10.3-RELEASE です。これ、FreeBSD の動作保証対象外の構成らしいですね。カーネルは新しく、ユーザランドが古い場合には問題ないらしいですが・・。

どうしてこんな環境で動かしているかというと ThinkPad を使っている人は 10.2-RELEASE 以降、suspend して resume したら LCD の明るさが最大になってしまい変更できなくなってしまったんですね。
10.1-RELEASE までだと Fn7,8 などで明るさが変更できた。 acpi_ibm や acpi_video がなくとも変更ができた。しかし、10.2-RELEASE 以降では Fn7,8 ボタンが効かなくなって、acpi_ibm の dev.acpi_ibm.0.lcd_brightness も有効にならなくて acpi_viode の hw.acpi.video.lcd0.brightness も使えなくなった。
resume 後に明るさを変えることができなくなったので、僕はいつまでもカーネルは 10.1-RELEASE を使い続けている。と、いうことです。

あと、別の手段としては ports から sysutils/acpi_call/ をインストールして ACPI のパラメータを表示したり変更したりできるようですが \_SB_.PCI0.VGA.LCD._BCM なパラメータなどをいじったりするなど、ちょっと試してみましたがダメでした。

acpi_call のコマンドイメージをちょっと書いておきます。使うには kldload acpi_call.ko する必要があります。

# acpi_call -vp '\_SB_.PCI0.VGA.LCD._BCM' -o i -i 50
Path: \_SB_.PCI0.VGA.LCD._BCM
Number of arguments: 1
Argument 1 type: Integer
Argument 1 value: 50
Status: 0
Result: 1

 
acpidump -d の結果を確認すると _BCM ってのが “Brightness Control Method” らしいです。他にも _BCL ってのがあって、こいつは “Brightness Control Levels” らしいです。
acpi_call で _BCM の値を 50 に変更してあげる。ってのが上記のコマンドと、その結果です。
しかし、値は反映されない・・。 orz

 
ThinkPad でも Nvidia のグラフィックスカードを利用しているヤツは Nvidia のツールで画面の明るさを変えられたり Intel の場合は graphics/intel-backlight/ などで画面の明るさを変えられるらしいです。
僕の ThinkPad e145 は Radeon のチップなので・・。orz

多分 10.2-RELEASE 以降で ACPI 周りに変更が入ったのでしょうなぁ。

ThinkPad e145 は BIOS モードと UEFI モードの両方で 11.0-RELEASE で試しましたが画面の明るさは変えることができませんでした・・。

と、いうことでももうしばらく、ってか、壊れるまで? 10.1-RELEASE の利用は続きそうです・・。