Skip to content


Linux 版 Steam

Linux 版 Steam が正式にローンチしたということで、とりあえず試してみました。

ネイティブに Linux が動いてる環境が手元にないので、今回は仮想マシン上に Ubuntu 環境を用意して Steam を動かすことに。

Steam 自体のインストールは特に問題なくインストール出来ました。 UI が英語になるくらいで、特に困ることなく Win/Mac 版と大差なく使える気がする。ローンチ時点のソフト数は、公式サイトを見る限り、結構揃ってる印象です。とりあえず自分の手持ちのなかでも既に10本対応してました。

Team Fortress 2 を動かそうと思ったんですが、さすがに仮想環境のビデオドライバでは無理があるようで、起動時に OpenGL の API が使えないよと怒られました。ということで、ひとまず初代 Counter-Strike で。

steam_for_linux

これくらいのゲームなら、仮想環境でもサクサク動きますね。ただ、ゲーム内でのマウス入力に問題があるようで、視点移動が正常に動かなかったです。多分これは VMware Tools の影響とかだと思いますけど。

しかし肝心の TF2 が動かなかったので、記念アイテムが入手できなかった……とはいえこれのためにネイティブ環境用意するのもなあ。ぐぬぬ…… USB メモリを使って Ubuntu 環境を構築してみるのもアリかなー。

Posted in Game.

Tagged with , .


謹賀新年

明けましておめでとうございます。

……4ヶ月ぶりくらいの更新ですね。
今年こそはもう少し更新を心掛けたいですが……というか毎年言ってるなコレ。そもそも数えたら去年6回しか更新してないじゃないですかやだー。

ということで、今年は7回以上は更新したいですね!(弱気)
とはいえ、一月中は仕事のほうが忙しそうなので、またしばらく更新が止まると思いますが。

ということで、本年もよろしくお願いいたします。
(よし、ぎりぎり1日のうちに書いたぞ)

Posted in Diary.


Feel6 を使って自宅を IPv6 Ready にしてみた その1

いつか試してみようと思っていたものの、全然手を付けていなかった自宅ネットワークの IPv6 対応をやってみることにしました。

今回はフリービットが提供している Feel6 を利用して IPv6 ネットワークへ接続します。
環境構築手順は以下のサイトが参考になりました。

Feel6でIPv6化をやる | guro_chanの日記

ともあれ、まずは Feel6 のアカウントを取得します。

FB Feel6接続サービス| お申し込み

そうすると 2001:03e0::/32 から固定で 48 ビットのプレフィックスが割り当てられる。 2 の 80 乗個…広大すぎる………。

次に DTCP クライアントを用意。今回は Ubuntu 12.04.1 LTS (64-bit) を利用しました。

DTCP クライアントは USAGI Project の成果物の中に含まれる dtcpc を利用します。
公式サイトからはうまくダウンロードできなかったので、適当なミラーからダウンロードすることに。

$ wget ftp://ftp.kddlabs.co.jp/IPv6/usagi/usagi/snap/kit/usagi-linux26-s20060918.tar.bz2
$ tar jxvf usagi-linux26-s20060918.tar.bz2

このまま dtcpc をビルドしようとすると stdio.h に定義されている getline() と衝突するようで、これを対処。
参考にしたサイトでは stdio.h 側に一時的に手を入れてますが、ソースを追いかけたところ、そんなに数が多くなかったので getline を適当な別名に変更することで対処しました。

また、このままだと dtcpc 実行時に “can not create tunnel” とエラーが出てダメでした。これについてググったところ、以下のサイトが参考になりました。

Ryo’s diary(2010-05-07)

調べていくと、レスポンス値計算がミスっているようで、原因はmd5.hのUINT4の定義と判明。

ということで調べると、 md5.h で

/* UINT4 defines a four byte word */
typedef unsigned long int UINT4;

と定義されてますが、今回は 64-bit 環境なので、ここが long int だと 8-byte になってしまいます (Linux は LP64) ので、

/* UINT4 defines a four byte word */
typedef unsigned int UINT4;

と修正。

ということで、上記修正の patch を置いておきます。

あとは参考にしたサイトと同じ手順でビルド&インストール。

$ cd usagi
$ make prepare TARGET=linux26
$ cd usagi/libnetlink/
$ ./configure
$ make
$ cd ../dtcp
$ ./configure --prefix=/usr/local
$ make
$ sudo make install

早速接続してみる。

$ sudo dtcpc -u [USERNAME] -t network -n eth0 dtcp.feel6.jp
DTCP Account Password > [PASSWORD]
$ ifconfig eth0
(略)
          inet6アドレス: 2001:3e0:xxxx::1/64 範囲:グローバル

繋がったっぽい。

早速テスト。 Google の IPv6 サイトへ ping してみる。

$ ping6 ipv6.google.com
PING ipv6.google.com(2404:6800:4005:c00::93) 56 data bytes
64 bytes from 2404:6800:4005:c00::93: icmp_seq=1 ttl=51 time=65.1 ms
64 bytes from 2404:6800:4005:c00::93: icmp_seq=2 ttl=51 time=67.5 ms
64 bytes from 2404:6800:4005:c00::93: icmp_seq=3 ttl=51 time=64.5 ms
64 bytes from 2404:6800:4005:c00::93: icmp_seq=4 ttl=51 time=66.9 ms
^C
--- ipv6.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 64.517/66.033/67.527/1.266 ms

おお、問題なく通信できている模様。

あとはこの IPv6 接続できたマシンを中継して、自宅 LAN 内の各端末から IPv6 接続できるようにするわけですが、久々に長文書いたら疲れたのでまたそのうちに。

まあ、参考にしたサイトを見れば問題なく出来ると思いますが……。

Posted in Network.

Tagged with , .


Cygwin – child_info_fork::abort: address space needed

なんか今日から突然、稀に Cygwin のプロセスが child_info_fork::abort: address space needed といったエラーメッセージを吐いて正常に動かない問題が……。タイミング的に恐らく Windows Update の影響な気がするけど。

たぶん Cygwin の fork() 問題と同じような理由なんだろうなーということで、同じ対処法を試してみました。

Cygwin 関連のプロセスはすべて終了してる状態で、 Windows コマンドプロンプトを(アクセス権の状態によっては管理者モードで)開いて

> cd C:\cygwin\bin
> ash
$ rebaseall

を実行。 rebase パッケージがインストールされていない場合は、別途インストールが必要です。

とりあえず今回はこれで復活。

Cygwin を使う上でよくある問題なので、いつもググってましたが折角なので blog で書いておくことに。(久しく更新してなかったしな……)

Posted in Computer, Development.

Tagged with .


Redmine 1.4 で動かなくなったプラグインへ patch した

先日 Redmine を 1.3 系から 1.4 系にアップグレードしたときに、一部プラグインが正常に動かなくなってしまった。

1.4 がリリースされてから暫く経っていたので、大体のプラグインは 1.4 対応版がリリースされていたものの、利用していた

  • redmine_issue_extensions
  • redmine_http_auth

の2つについては、特に 1.4 対応版がリリースされている様子なし。

ということで、1.4 対応されたプラグインの修正点を参考に、 1.4 系で動くように修正してみました。

redmine_issue_extensions/config/routes.rb

ActionController::Routing::Routes.draw do |map|
  map.connect 'issue_extensions_settings/:action', :controller => 'issue_extensions_settings'
end

redmine_http_auth/config/routes.rb

ActionController::Routing::Routes.draw do |map|
  map.httpauthlogin 'httpauth-login', :controller => 'welcome'

  map.httpauthselfregister 'httpauth-selfregister/:action',
    :controller => 'registration', :action => 'autoregistration_form'

  map.connect 'httpauth-login/:action', :controller => 'httpauth-login'
  map.connect 'httpauth-selfregister/:action', :controller => 'httpauth-selfregister'
end

ちなみに自分は Ruby は多少触ったことがあるものの、 Redmine プラグインも Rails も全然知らない人なので、本当にこれで合ってるのかはわからない……とりあえず手元の環境では、これで動くようになった…ような?

Posted in Development, Programming.

Tagged with .