筆者について - No Unix, No Life
とある元大学院生の UNIX 系日記。FreeBSDを通じてOSSに囁かな貢献を。 FreeBSD ports contributor やってます。 たまにクソパッチ投げます。申し訳ありません。
For non Japanese native people:
If you are interested in my articles, please leave comments. I will do my best to give you articles in English.
メンテナンスしている FreeBSD Ports 一覧
その他作っているもの
2013-07-23 rbenv on FreeBSD [長年日記]
■ FreeBSD で rbenv を使って複数のバージョンの Ruby を共存させる
rbenvのインストールという記事を見て rbenv は2013年1月2日に、ruby-build は2013年1月14日に ports に登録されているので、そっちを使えば github から clone するより rbenv, ruby-build 自体のバージョンを一元管理できて楽だよ、というだけの記事です。
# portinstall rbenv ruby-build
または
# make -C /usr/ports/devel/rbenv install ; make -C /usr/ports/devel/ruby-build install
でインストール。インストール直後は rbenv コマンドを引数なしで実行するとエラーになるので rbenv init - を実行します。
$ rbenv /usr/local/libexec/rbenv---version: line 17: cd: /home/meta/.rbenv: No such file or directory $ rbenv init - $ rbenv rbenv 0.4.0 Usage: rbenv <command> [<args>]
後はの2番以降と同じです。
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
試しに Ruby 2.0 をインストール。
$ rbenv install 2.0.0-p195 && rbenv rehash $ rbenv versions * system (set by /home/meta/.rbenv/version) 2.0.0-p195
これで rbenv が使えるようになりました。あとは Linux や OSX で使うときと同じです。
2013-07-14 ThinkPad Compact Bluetooth Keyboard with TrackPoint を個人輸入して FreeBSD で使ってみた [長年日記]
■ ThinkPad Compact Bluetooth Keyboard を個人輸入して FreeBSD で使ってみた
話題の ThinkPad Compact Bluetooth Keyboard を個人輸入してみたのでレポートします。
購入の経緯
このキーボード、Compact Bluetooth Keyboardに関する中の人発言まとめにまとめられているように、5月10日にレノボ・ジャパンの広報アカウントが触れて以来、もう少しお待ちください、もう少しお待ちください、未発表の製品については一切お答え出来ません、と1ヶ月半も待たされてやっと正式に発表された商品です。
長々と待たされてやっと日本国内でも発表されたかと思えば、14,175円という米国の2倍近い価格だったのと、「もう少しお待ちください」の一辺倒で1ヶ月以上も待たせるレノボ・ジャパンの姿勢に不信感があったこともあり、米レノボから個人輸入することにしました。
輸入代行業者を通して米レノボから購入することに
US English 配列のものを輸入代行業者 JISA を通して購入し、 以下のような内訳になりました。
今回使ったのは輸入代行業者の転送サービスで、米国内のショッピングサイトで購入するときに住所を輸入代行業者の所在地を入力して注文し、業者に購入した商品と日本の住所を伝えると業者が米国から日本に向けて再発送してくれるというシステムです。
- キーボード本体
- $57.59
- 米国内の税金
- $5.18
- 米国から日本への送料
- $24.00
- 輸入代行手数料
- $10.00
- 計
- $96.77
合計 $96.77 で、ざっと1ドル100円で計算しても日本で買うよりも安く済みました。ただし、レノボ・ジャパンで購入する際にクーポンが出ていることもあるようなので、クーポン適用の国内価格とはいい勝負みたいです。
注文してから到着までは以下のようなスケジュールで、だいたい2週間くらいといったところでした。香港から米国へ行って日本へ戻ってくるという、太平洋を2回越える地球半周の長旅です。米国から成田空港到着までは結構早かったように思います。
- 7月1日 注文
- 7月2日 香港から米国へ向けて発送
- 7月8日 米国の輸入代行業者に到着
- 7月10日 輸入代行業者から日本へ向けて発送
- 7月12日 成田空港に到着・通関
- 7月14日 自宅にて受け取り
技適マークはしっかりついていた
受け取ったので開封して動作確認しました。使ってみての感想は他にもレビューしている方がたくさんいるのでそちらに譲るとして、輸入した無線機器が日本国内で使えるかどうかが懸念事項だったので、裏返して技適マークを確認しました。
↓ありました。画像右下の丸いゴム足の上の部分に、技適マークがあることを確認しました。単にハードウェア的に全世界で共通というだけではなく、各国の認証マークのついたシールも含めて世界共通製品のようです。米レノボから輸入した ThinkPad Compact Bluetooth Keyboard with TrackPoint は日本国内でも問題なく使用出来ます。
FreeBSD で使ってみる
FreeBSD での使用は FreeBSD で Apple Wireless Keyboard を使うと同様にして何の問題もなくペアリングに成功しました。トラックポイントも同時に認識されて問題なく使えています。
ファンクションキーは噂通り反転仕様で、ファンクションキーとして動作させるためには Fn キーとの同時押しが必要です。 Fn + ESC での FnLk は OS 側でドライバをインストールする必要があるようで、FreeBSD では今のところ機能しません。
総評
ThinkPad Compact Bluetooth Keyboard with TrackPoint は米レノボで販売されているものにも、技適マークがついていて日本国内で合法的に使えるので、時間が許すのであれば輸入代行業者を通して米国から購入するのがお勧めです。もっと安い代行業者もあるかもしれません。
取扱説明書も多国語仕様でした。
2013-07-11 TigerVNC 1.3.0 リリース [長年日記]
■ TigerVNC 1.3.0 リリース
去る2013年7月8日、TigerVNC 1.3.0 がリリースされました。1.2.0 のリリースから1年4ヶ月ぶりとなるリリースです。
tigervnc-announce@ メーリングリストに流れたアナウンスによると、多数の修正と新機能が加えられていて、以下が主なものようです。
- 完全なマルチヘッドのサポート
- Xvnc におけるキーボードサポートの改善
- Java・ネイティブ両方のビューアで Listen モードが復活
- SSH トンネリングが Unix とJava ビューアで復活
- フルスクリーンモードで edge/bump scrolling (カーソルを画面端に持っていってスクロール) 機能が追加
- ビューアが設定を保存可能になった
- Java ビューアでフルスクリーンサポートの改善
- ビューアのサイズを変更すると動的にサーバ側の画面セッションサイズも動的に追従するようになった
- Java ビューアの性能向上
特に嬉しいのは7番目の、画面セッションのサイズがクライアントの大きさに追従するようになった点ではないでしょうか。 これまでも Xvnc サーバは xrandr による動的な画面サイズの変更に対応していましたが、xrandr コマンドや GUI フロントエンドなどを使用して手動で画面サイズを変更する必要がありました。
今回 dynamic resizing 機能が追加されたことにより、クライアント・サーバ共に TigerVNC 1.3.0 以降であれば vncviewer のウィンドウサイズを変更するだけでサーバ側の画面サイズも追従するので、仮想マシンのゲスト OS 感覚でリモートの画面を操作できて便利です。
FreeBSD版の net/tigervnc は7月中にアップデートを提供する予定です。すんなり移植出来ればもっと早く提供できるかもしれません。もうしばらくお待ちください。
2013-06-30 Lenovo USB 2.0 Ethernet Adapter を FreeBSD で使う [長年日記]
■ Lenovo USB 2.0 Ethernet Adapter を FreeBSD で使う
Thinkpad X1 Carbon などの有線 LAN ポートのない機種で Ethernet に接続するために使う Lenovo USB 2.0 Ethernet Adapter が FreeBSD で使えなかったので対応しました。
USB 機器の場合は、得てしてドライバは既に存在して、カーネルにベンダー ID を追加するだけで動くようになることが多いので usbconfig でプロダクト ID と ベンダー ID を特定して検索。
# usbconfig ugen0.2: <product 0x7203 vendor 0x17ef> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (200mA)
すると、NetBSD では既に使用可能になっていることがわかったので「この機種 FreeBSD では使えないんだけど NetBSD では 使えるのでなんとかならないー?」的な感じで、プロダクト&ベンダー ID を添えて PR。
中の人がすぐにパッチを作ってくれたので、これを適用したカーネルで起動してみて、Lenovo USB 2.0 Ethernet Adapter を介してネットワークに繋がることを確認。「くれたパッチで動いたよー」と返事して、無事にコミットされました。
r252185 で修正されて、コミットから1週間後の7月3日くらいに STABLE ブランチにもマージされるみたいです。
2013-06-21 Remmina 1.0.0 [長年日記]
■ RDPクライアント Remmina の FreeBSD port を 1.0.0 にアップデート
net/freerdp を 1.0.2 にアップデートしたら動かなくなってしまった Remmina を 1.0.0 にアップデートしました。
Remmina 本体と各プロトコル用プラグインをアップデートし、新しいプラグイン2つ(NX, GNOME Keyring)が追加されました。
freebsd-ports メーリングリストで随分つつかれていたので、無事コミットまで漕ぎ着けてホッとしました。
- make failed for net/remmina-plugin-rdp
- net/remmina-plugin-rdp is broken by net/freerdp
- Updates to net/remmina?
いろんな人に Thanks for your effort and work! とか appreciate とか Big thanks! とかお礼を頂いているものの、細かい修正がまだ結構あってパッチが続々送られてきてるのでぼちぼち処理していきます。外国人に日本語でお礼を言われるのは嬉しいものですね。
ふと portscout を見ると、 担当している ports が随分増えたなーと。
2013-06-20 FreeBSD 9.1 以降では WITH_NEW_XORG がデフォルトになる [長年日記]
■ FreeBSD 9.1 以降では WITH_NEW_XORG がデフォルトになる
先日 FreeBSD の ports tree に収録されいる X に大きなアップデートがありましたが、これに関連して 9.1 以降ではデフォルトの X のバージョンが変わるらしいです。すでに 9.1-RELEASE は出ていますが、ベースシステムと ports は分離しているので、ports の方が 9.2 のリリースまでには変更されるようです。
これまで新しいバージョンの X を使うためには WITH_NEW_XORG=yes を /etc/make.conf に記述する必要があったところが、新しいほうがデフォルトになって、古い方を使うには WITHOUT_NEW_XORG=yes と書くようになります。
実際に xorg-server-1.12.4 を使ってみていますが VT switching (Ctrl+Alt+F1による仮想端末の切替)ができなかったり、ときどき刺さったりして、Intel の GPU 上ではまだ安定性に問題があるような気がします。VT switching ができないというのは地味に困る…。
ちなみに先日 xorg-server-1.12.4 に対応させた net/tigervnc ですが FreeBSD Ports に入っている中では唯一の XRandR 対応の VNC サーバということもあり結構ユーザが多いようで、活発に PR が飛んできています。ありがたい。
関連ページ
- Orz部屋 - モバイルノート3号機:
- 現行のIntel/KMS実装では、VT-switchできないという問題は残る
- Intel_GPU - FreeBSD Wiki
- The VT switching code is not implemented (yet).
2013-06-18 シェルスクリプトで小数の大小比較を行う [長年日記]
■ シェルスクリプトで小数の大小比較を行うには bc を使う
単に自分が知って便利だったものの覚え書き。
シェルスクリプトで整数の大小比較を行うには通常 /bin/[ (testコマンド) または同名のシェルの内部コマンドを使って、以下のようにすると思います。
$ [ 2 -gt 1 ] && echo "2 is greater than 1"
test コマンドでは小数の大小比較はできないのでどうするのかというと、数値計算コマンドの bc を使ったら要件を満たすことができそうです。bc に不等号での大小比較表現を与えてやると、その結果が1または0で標準入力に返ってきます。trueのときが1で、falseのときが0です。
$ bc 33.4 > 1 1
↓イコール付きの表現でもOKです。
$ bc 33.4 >= 33.4 1
↓bc は対話的に入力を処理するので、シェルスクリプトから使うときには表現を標準入力から与えてやります。
$ echo "9800 > 33.4" | bc 1
↓標準入力から表現を与える代わりに -e オプションで与えることもできます。
$ bc -e "9800 < 33.4" 0
これだけだと、引数で与えた表現を処理したあとに標準入力からの入力を待ってしまうので -e quit をつけてやれば1回処理を実行したあとにプロセスが終了します。
$ bc -e "9800 < 33.4" -e quit 0
最後に if 文と [ コマンドを合わせて使うには、bc コマンドの出力が1と等しいかどうかを比べてやればいいのでこんな感じ。上下好みな方で。あとは数字を変数に置き換えたり。
if [ "$(bc -e "9800 > 33.4" -e quit)" -eq 1 ]; then echo "9800 is greater than 33.4" fi
if [ "$(echo "9800 > 33.4" | bc)" -eq 1 ]; then echo "9800 is greater than 33.4" fi
Σ meta [中ボタン+トラックポイント上下によるスクロール機能は FreeBSD でも正常に機能することを確認しました。 Th..]