たかちゃん。

7月 132017
 

systemctl ってのは Linux の新しいシステムの systemd 由来のコマンドですね(この辺りの言い回し、正しくないかも;-)。
つい最近になって CentOS7 を利用し始めたので /etc/init.d/hoge restart とかできなくなって驚いていたんですけども。

じゃぁ、/etc/init.d/ の下にあったのはどこに行ったのだ? と思い調べてみると /usr/lib/systemd/system/*.service というのがそのようですね。このファイルを利用して systemctl が start/stop をやってくれる。と、いうことのようです。

Linux のシェルは基本的に bash なので以下のファイルをダウンロードしてきて /etc/bash_completion.d/ の中に入れてあげると TAB キーで補完してくれるので幸せになれるようです。 bash 用の systemctl 補完用スクリプトですね。

https://raw.githubusercontent.com/terralinux/systemd/master/src/systemctl-bash-completion.sh

では、普段から tcsh を利用している人 (それはつまりは Linux が流行る前から UNIX をいじっていた人。と、いうことになるのかや?;-) や Linux でも tcsh をメインで利用している人はどうしたらえーねん? て、ことになるのですが、せっかくなので ~/.tcshrc に以下の設定を書いてみましょう。 (ウェブ上では多分切れているね・・orz。フル HD の全画面で表示してぇ・・。)

complete systemctl 'p/1/(start stop restart status reload enable disable kill ..etc..)/' 'n@*@`/bin/ls /usr/lib/systemd/system | grep service | sed -e "/:/d"`@'

 
tcsh には complete というコマンド(?)があるので、それで TAB の補完の設定ができます。

上記を ~/.tcshrc に書いて systemctl と打ったあと TAB を打つとまず start/stop などの文字列が表示され、その後 *.service をドドドと表示してくれることでしょう。途中の sshd.s で TAB キーを押しても補完してくれます。

これで tcsh をメインのシェルとして利用している人は幸せになれるのではないかと思われます;-)。

 
ところで、 FreeBSD の service も似たように TAB で表示したい。と、いう場合はどうするのか? 以下の設定をやはり ~/.tcshrc もしくは /root/.cshrc に書くと幸せになれます。

complete service 'n@*@`/bin/ls /etc/rc.d /usr/local/etc/rc.d | sed -e "/:/d"`@' 'p/2/(start stop restart onestart onestop onerestart)/'

 
FreeBSD の起動スクリプトは /etc/rc.d/ や /usr/local/etc/rc.d/ の中に入っているのでその中をごっそりと ls している。と、いうことになります。

bash の場合は専用のスクリプトを用意したりしますが tcsh の場合は強引に /bin/ls で実装している。と、いうことですなぁ。

 
tcsh が好きで好きで手放せない。もしくは bash なんて使ってらんねーぜ。けっ。はたまた zsh なんて遅くて使い物にならん。と、いう方は今後も多分ずっと tcsh を使い続けるかと思いますが、その場合 systemctl や service で TAB キーを使いたい方は是非お試しください;-)。
また、他のコマンドでも TAB を利用して補完したい場合には complete コマンド(?)で定義することができます。

 
2017/07/27 加筆
もう 20 年くらい tcsh 使っているけど、 tcsh を利用するときに complete な一覧が書かれているファイルがあるのね。知らなんだぁ。

o. FreeBSD の場合
/usr/share/examples/tcsh/complete.tcsh
/usr/src/contrib/tcsh/complete.tcsh

o. ubuntu の場合
/etc/complete.tcsh

これを ~/.tcshrc の中で source /usr/share/examples/tcsh/complete.tcsh とかすると色々なコマンドで TAB で補完してくれるので幸せになれます。
僕のは場合は mv cp ln など、二個目のパラメータを TAB キーで抽出できなかったので、一部変更して $HOME に置きました。

ubuntu の人が作ってくれたファイルのようです。感謝。 m(_ _)m。
加筆ここまで

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 リリースまで待ってから試してみてください;-)。