2012.Mar31

Perl Net::Pcap で pcap ファイルを見てみる

たばこを吸っていたら、ふと pcap ファイルを解析してみたくなったので調べてみました。
ちゃんとした人は、C で libpcap を直で叩くんでしょうけど、私はものぐさなので Perl で試してみます。
# いまどき Perl かよという声がする…

pcap ファイルを用意してみる

とりあえず、今回はパケットキャプチャが目的では無いので、適当に tcpdump でキャプチャします。

# tcpdump -i eth0 -n -s 0 -w moetora.pcap tcp port 80

別に 80/tcp に限定する必要はないのだけれど、なんとなく。
適当にキャプチャして終わらせます。

Net::Pcap をインストールしてみる

Net::Pcapをインストールしないと始まりません。
Gentoo だったら portage にあるので、そこからインストールしてみることにします。

# emerge -s pcap
*  dev-perl/Net-Pcap
      Latest version available: 0.160.0
      Latest version installed: [ Not Installed ]
      Size of files: 80 kB
      Homepage:      http://search.cpan.org/dist/Net-Pcap/
      Description:   Perl Net::Pcap - Perl binding to the LBL pcap
      License:       || ( Artistic GPL-1 GPL-2 GPL-3 )
# emerge dev-perl/Net-Pcap

メジャーなディストリビューションなら大概用意されていると思いますが、そうじゃなければ cpan からインストールしてください。

Net::Pcap を使ってみる

Net::Pcapを見ればわかりますが、とりあえず今回使うのは、

  • Net::Pcap::open_offline($filename, \$err)
  • Net::Pcap::loop($pcap_t, $cnt, \&callback_fn, $user_data)
  • Net::Pcap::close($pcap_t)

このへんです。
上から、「pcap ファイルを開いて」「パケットごとに読み込んで」「閉じる」ですかね。

とりあえず 1 パケット読み込んでみます。

 1 #!/usr/bin/perl
 2
 3 use warnings;
 4 use strict;
 5 use Net::Pcap;
 6
 7 if (scalar @ARGV != 1) {
 8     print STDERR "Usage: ./pcap.pl pcapfile\n";
 9 }
10
11 my $file = $ARGV[0];
12 my $err;
13 my $user_data = "TEST STRING\n";
14
15 # open pcap descriptor
16 my $pd = Net::Pcap::open_offline($file, \$err);
17 if (defined($err)) {
18     print STDERR "$err\n";
19     exit;
20 }
21
22 # analyze pcap (read 1 packet)
23 Net::Pcap::loop($pd, 1, \&print_header, $user_data);
24
25 # close pcap descriptor
26 Net::Pcap::close($pd);
27
28 sub print_header {
29     my ($user_data, $hdr, $pkt) = @_;
30
31     print $user_data;
32     print "Len   : $hdr->{'len'}\n";
33     print "Caplen: $hdr->{'caplen'}\n";
34     print "Time  : $hdr->{'tv_sec'} sec, $hdr->{'tv_usec'} usec\n";
35     return 0;
36 }

16行目で pcap ファイルを読み込んで、
23行目で 1 パケット読み込んで、それに関して、print_header サブルーチンを実行して、
26行目で pcap ファイルを閉じる。

print_header の中では、パケット全体の長さと、パケット部分の長さと、送受信時刻(タイムスタンプ)を表示させてます。

これを実行してみると、

./pcap.pl moetora.pcap
TEST STRING
Len   : 74
Caplen: 74
Time  : 1333185109 sec, 839719 usec

ほー、という感じです。

ちなみに、$user_data は今回はしょうもない目的に使ってますが、
ハッシュリファレンスとか渡して、パケット解析結果を返したりするのが普通の使い方なんでしょう。

もうちょっとNet::Pcap を使ってみる

さすがに pcap ヘッダを読んだだけだと刺されそうなので、もう少し遊んでみました。

 1 #!/usr/bin/perl
 2
 3 use warnings;
 4 use strict;
 5 use Net::Pcap;
 6
 7 my $ETHER_HDR_LEN = 14; # src: 6, dst: 6, type: 2
 8 my $IP_HDR_LEN    = 20;
 9 my $TCP_HDR_LEN   = 20 + 12; # option len = 12
10
11 if (scalar @ARGV != 1) {
12     print STDERR "Usage: ./pcap.pl pcapfile\n";
13 }
14
15 my $file = $ARGV[0];
16 my $err;
17 my $user_data = "TEST STRING\n";
18
19 # open pcap descriptor
20 my $pd = Net::Pcap::open_offline($file, \$err);
21 if (defined($err)) {
22     print STDERR "$err\n";
23     exit;
24 }
25
26 # analyze pcap
27 Net::Pcap::loop($pd, 1, \&print_header, $user_data);
28
29 # close pcap descriptor
30 Net::Pcap::close($pd);
31
32 sub print_header {
33     my ($user_data, $hdr, $pkt) = @_;
34
35     print $user_data;
36     print "Len   : $hdr->{'len'}\n";
37     print "Caplen: $hdr->{'caplen'}\n";
38     print "Time  : $hdr->{'tv_sec'} sec, $hdr->{'tv_usec'} usec\n";
39
40     my $eth_hdr = substr($pkt, 0, $ETHER_HDR_LEN);
41     my $ip_hdr  = substr($pkt, $ETHER_HDR_LEN, $IP_HDR_LEN);
42     my $tcp_hdr = substr($pkt, $ETHER_HDR_LEN + $IP_HDR_LEN, $TCP_HDR_LEN);
43     my $payload = substr($pkt, $ETHER_HDR_LEN + $IP_HDR_LEN + $TCP_HDR_LEN);
44
45     print $payload;
46 }

HTTPなパケットをひとつ捕まえて、それを読んでみました。
$TCP_HDR_LEN のオプション長などは別途 wireshark などで確認したものなので、すごく反則です。
ほんとはちゃんとひとつずつ読んでいって解析しないといけませんが、まあそんなやる気もそんなスペースもここにはありません。

で、これを実行してみると

TEST STRING
Len   : 737
Caplen: 737
Time  : 1333185109 sec, 858741 usec
GET / HTTP/1.1
Host: www.moetora.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive

もうちょっと、ふーんという感じになれました。

ちなみに、pcap ファイルのフォーマットについては、こちらなどで解説されておりました。
今回は、$pkt の中しかみてませんが、$hdr の中ももう少し楽しく読めそうです。

あとがき

こういうのは普通(の情報系の人)だったら、おそくとも大学4年の5月ぐらいには触れている話なんだろうな…

Posted in 未分類 | Leave a comment

2012.Feb11

Linux でリンクダウンを検知する方法

お酒を飲んでいたら、ふと NIC のリンクダウンを検知したくなったので調べてみました。
前提条件は、「自分で自分のリンクダウンに気づけること」です。
# なので、別のホストから監視というのはとりあえず却下ね。
# snmp もとりあえず対象外とします。

調べる前の知識も含めて、いろいろと挙げてみます。

cron で調べてみる (自動化できるけど残念)

毎分 ifconfig して、監視対象のデバイスがいなくなったらアラートを上げる方法をとりあえず思いつく。
が、まあ、いろいろと問題点を思いつくわけですよね。

  • 最大1分間は検知できない (cron が分単位なので)
  • おしゃれじゃない

あまりに安直すぎなのでこれはやめておきましょう。
まあシェルスクリプトだけで、大した知識もなく実装できるというはメリットでしょうけど…

ログを調べてみる (わりと残念)

link up/down のログが /var/log/messages などにでるのであれば、それをずっと tail -f して grep すればいいじゃんと思いつく。
が、これもやっぱり問題点がある。

  • /var/log/messages がローテートされるとめんどくさそう
  • link down/up がログファイルに出ないなら終わり
  • おしゃれじゃない

ログファイルに出る/出ないはなんとかなるとしても、カーネル的イベントを結局文字列解釈にしてしまってるのがおしゃれじゃない。
そこに眼をつぶるにしても1番目の問題はやっぱりめんどうだなあ、という感じ。

inotify を使ってみる (失敗)

Linux だと、ファイルが更新されたかどうかを簡単に監視することができる。
デバイスの状況がファイルに書きだされるはずだから、それをつかってやれば監視できるじゃんと思って、やってみた。

# inotifywait -mrq /sys/class/net/eth0/carrier

が、、、down しても up しても何も出ない…
で、調べてみたところ… inotify は sysfs には非対応らしい。
割といい考えかと思ったのだが、「…。ですよねー…。」という感じでなにもできずに終わる
# /sys/class/net/eth0/carrier を毎分 cat するとかいうのは、結局 ifconfig の方法と変わらないので省略。

netlink を使ってみる (それなりにうまくいってる)

どうしようかと悩んでいたら、Linux には netlink なるものがあることを学習した。
カーネルとユーザランド間でやりとりするためのものらしく、link down/up ぐらいは検知できそうな気がしてきたので、作ってみた。
# man netlink とかman rtnetlink とか見ればなんとなくかけるよ。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <sys/types.h>
 4 #include <sys/socket.h>
 5 #include <asm/types.h>
 6 #include <linux/netlink.h>
 7 #include <linux/rtnetlink.h>
 8
 9 int main (int argv, char **argc) {
10     int fd;
11     int tmp;
12     int len;
13     char buf[4096];
14     struct nlmsghdr  *nh;
15
16     struct sockaddr_nl sa;
17     sa.nl_family = AF_NETLINK;
18     sa.nl_groups = RTMGRP_LINK;
19
20     fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
21     if (fd == -1) exit(EXIT_FAILURE);
22
23     tmp = bind(fd, (struct sockaddr *)&sa, sizeof(sa));
24     if (tmp == -1) exit(EXIT_FAILURE);
25
26     len = recv(fd, buf, sizeof(buf), 0);
27
28     for (nh = (struct nlmsghdr *) buf; NLMSG_OK(nh, len);
29             nh = NLMSG_NEXT(nh, len)) {
30         if (nh->nlmsg_type == NLMSG_DONE) break ;
31         if (nh->nlmsg_type == NLMSG_ERROR) break;
32
33         printf("link status change\n");
34     }
35
36     return 0;
37 }

これを動かしておけば、link down したときに link status change と表示することができた。
テストプログラムなので、down/up が1回あると終了してしまうが、適当に while いれるなり daemon にするなりすれば使えそう。
# サンプルコードなので、エラー処理は割と適当ね。
# あと、linux/rtnetlink.h は include しなくていい(諸事情による残骸だけど消すのが面倒だったので…)

が、いろいろ試してみたが、link down のときも link up のときも検知してしまうという問題がある。
rtnetlink の man みていろいろいじったりしてみたのたのだが、結局 down/up の区別は現時点ではわからずじまいだった…
# man page のバグに「この man ページは完成していない。」とか「この man ページは不完全である。」とか書かれてるし、そのせいだということにしよう。

まあ、down イベントを拾うことが大事なので、up を誤検知したとしてもとりあえずは許せると言えるかもしれない。
これはこれでおしゃれじゃないけど、カーネルイベントをカーネルから直接もらってる感があるから、許せなくはないし。

あとがき

それなりに書いた後で気づいたことをまとめておく。

  • ubuntu とかだと link down/up のときにポップアップでるわけだから、そのソースを読めばヒントもらえそう
  • 実はあきみちさんのブログにいろいろ書いてあった?

まあ、もうちょっといい方法を発見したら追記してみることにします。
# それにしても、ひさしぶりに技術よりのネタにできた気がする。

Posted in 未分類 | Leave a comment

2012.Jan14

2012年 冬のアニメ

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

今クールみるべきアニメ一覧の紹介から行きましょう。
今回は結構きびしめにつけて、みる数をしぼっておきたいと思います。

前クールからの継続組

  • 未来日記
    ストーリー的にはやっぱり一番おもしろいんじゃなかろうか。
    原作読めよという話だけど。
  • ギルティクラウン
    この前の放送で最終回でいいんじゃないかと思ったけど、どうやらまだ続くらしい。
  • ペルソナ4
    基本的に安定していて、たまに昨日みたいな神回がある。ギャグ回が多いけど。
  • ラストエグザイル 銀翼のファム
    淡々と見続ける。
  • 灼眼のシャナIII
    原作読んでないし、正直話をおっかけてられないけど、ここまで来たし継続。

と、そもそも継続が5本もある時点で大変なわけです。(そういや、ちはやふるは切った)
では、新作いってみましょう。

期待度高めの新作

  • 偽物語
    当然みる。ずっと八九寺回だったらいいのに。
  • あの夏で待ってる
    長井龍雪だし、これはみないといけない。
  • 戦姫絶唱シンフォギア
    期待してなかったけど、これはおもしろそう。
    第1話で響が転んで幼女を地面に叩きつけたにもかかわらず、特にケアされなかったのがツボだった。
  • ミルキィホームズ 第2幕
    いろいろひどいから、観ないといけない。ちなみに、小衣ちゃん派です。
    どうでもいいけど、地下鉄(千代田線)の広告で大々的に宣伝するのはやめたほうがいいと思う。
  • 輪廻のラグランジェ
    まるっ!
  • Another
    第1話を見た限りではそこそこおもしろそう。

まあ観るよねという新作

切られた新作

  • モーレツ宇宙海賊(パイレーツ)
    他のクールでやってたら観るんだけど、今クールは観るものが多すぎるので落選。
  • 男子高校生の日常
    おもしろいんだけど、同じく、多すぎるので落選。
  • キルミーベイベー
    放送前は期待してたんだけど、いろいろひどかった。OPなんか、完全にやっつけだし。。。
  • ハイスクールDxD
    おっぱいアニメ。が、第1話を見た限りだとそれ以外に面白みなさそうなので切る。
    だいたい地上波のおっぱいなんて意味ないし…

まとめてみると、今期は16本まで絞れました。
多すぎんだよ、、、今期。

Posted in 未分類 | Leave a comment

2011.Dec31

お世話になったお酒

今年もお世話になりました、ということで記念にもろもろアップロード。

オフィシャルカリラのカスクストレングス。
薄めハイボールにして、きのこの天ぷらとあわせてみたところ、なかなかいけました。
すっきり系のドライなスモーキーさと海の香りはなんにでも合います。
ごちそうさまでした。

少し浮気して、トロワ・リビエールのラム。
半年以上前に飲んだものですが、たしかカスクストレングスで50度ぐらいあったような。
丁寧に熟成されて丸くなっていますが、アグリコールラムということでちゃんとサトウキビの風味が楽しめました。
ごちそうさまでした。

SMWSのグレンモーレンジ。
アスターなどに通じるココナッツパウダーっぽい甘い香りが印象的でした。
やっぱりSMWSのグレンモーレンジは外さないね。
ごちそうさまでした。

シグナトリーのクライヌリッシュ1992。
お手軽ウイスキーを探していたところ、4000円ぐらいで売っているのを見つけたので即買いした一本です。
46度に加水されているので、クライヌリッシュ特有のねっとり感はあまり感じられず残念でしたが、
そのぶんフレッシュなフルーツ香を楽しむことができました。
ごちそうさまでした。

ブラックアダーのグレンリベット1975。
やっぱりグレンリベットはグレンリベットの味がする。
ごちそうさまでした。

ブラックアダーのベンリアック。
飲みごたえがしっかりしていて、南国系フルーツの甘い香りも漂ってくる一本。
おいしいのですが、樽というか木の香りが強くついてしまっていて、少し飲み飽きてしまうのが難点ではありました。
ごちそうさまでした。

ブラックアダーのアムルット。
アムルットは何種類もでてますが、おそらくこれが最初にリリースされたものだったかと思います。
インドのウイスキーですが、はちみつ系の甘みとリフィルシェリー(だと思う)の上手な熟成によりスペイサイドモルト的な上品さをもっています。
ヘビーピート版とか下手なことせずに、こっちの方向で育ってほしいなあと思う蒸留所です。
ごちそうさまでした。

アードベッグアリゲーター。
ヘビーチャーした樽で作られた今年のアードベッグコミッティー向けボトル。
バニラやチョコレートの甘ーい香りが漂ってくる暖色系のアードベッグでございました。
ごちそうさまでした。

GMの蒸留所ラベルボトル、マッカラン。
4000円ぐらいで買えたのですが、コストパフォーマンス的には今年一番のボトルだったかも。
キャラメルを思わせる少し焦げた感じの香りと、素晴らしいシェリー熟成により誕生したなめらかでほっとする甘み。
このシリーズが毎度すぐに売り切れてしまうというのも納得の一本でした。(オフィシャルよりもちろんうまいよ)
ごちそうさまでした。

グレンドロナック 1990。
ペドロヒメネスのファーストシェリー樽熟成で、こってこてに茶色いウイスキー。
チョコレートシロップのような甘い香りで、お味のほうもしっかりシェリーが聞いていて口の中がトロトロになります。
ごちそうさまでした。

1957年のヴィンテージマデイラ。
震災復興キャンペーンとやらで、普段3万円台のものなのに、なぜか1万円ちょっとで変えてしまった謎のマデイラワインでございます。
が、謎だろうがなんだろうが、1957年のお酒を飲めるだけで十分すぎるほど幸せです。
さすがに落ち着いたお酒ではありますが、なかなかフレッシュな甘酸っぱさを感じることもできました。
ごちそうさまでした。

Posted in 未分類 | Leave a comment

2011.Dec30

Nevernote on Gentoo

半年ぐらい前に Evernote を使い始めましたのですが、よさげな Linux クライアントもないので大して活用できていませんでした。
が、年末になって少し時間ができたので、もう一度調べてみたところ Nevernote なるものがあるご様子。

layman の使い方も覚えられたので、とりあえず Gentoo での使い方をまとめてみますかね。

まず、nevernote は通常の portage には存在していません(本日現在)。
が、ぐぐってみると、Getoo Portage Overlaysがヒット。
overlay: scrillとあるので、scrill overlay にそれとなくご用意されていることがわかります。

次の手順で overlay portage を利用します。

  1. layman インストール
  2. # emerge layman
  3. layman リストを確認
  4. # layman -L
    * DuPol                     [Git       ] (git://git.o.g.o/user/DuPol.git, ht...)
    * OSSDL                     [Git       ] (git://github.com/wmark/ossdl-overl...)
    * ROKO__                    [Git       ] (git://github.com/sandikata/ROKO__....)
    ...
    * scrill                    [Git       ] (git://github.com/Scrill/scrill-ove...)

    ちゃんと scrill があるので、今回の追加は簡単そうです。

  5. scrill overlay を追加して、念の為更新
  6. # layman -a scrill
    # layman -S
  7. /etc/make.conf に portage を追加
  8. # vi /etc/make.conf
    PORTDIR_OVERLAY="/var/lib/layman/scrill"

    scrill portage は /var/lib/layman/scrill に置かれるので、それを追加。

ここまでで overlay の準備は OK。

で、あとは nevernote をインストールするだけでした。
マスクされてるけど、まあ、それはいつもの手順で、/etc/portage/package.keywords に書いてあげれば大丈夫。

# emerge nevernote

これで完了。
クラウド生活が始まりますね。

Posted in 未分類 | 1 Comment

2011.Oct22

2011年秋アニメ

不定期連載ですが、半年ぶりにやってみますか。
とりあえず、仕事も忙しくなってきたので、優先順位をつけつついきましょう。

  • 絶対に見ておかないといけませんよね
  • Fate/Zero
    初回1時間スペシャルなどなど、やっぱり力入ってますわな。
    見ておかないといかんでしょう。
    イリヤがかわいい。
  • た・ま・ゆ・ら -hitotose-
    OVAから地上波に進出。
    ARIAスタッフ再集合というだけあって、なごみ感が半端ない。
    金曜の夜に1週間の疲れをそっと癒してくれる超優秀作品(まあ、その時間飲んでて家にいないけど)。
    楓がかわいい。けど、ほかもみんなかわいい。
  • WORKING’!!
    作品うんぬんもさることながら、2話では小学生登場だったりサービス満載な本作。
    ゆるいアニメを見ておかないと心が疲れきってしまうので、ここにランクインさせておきます。
    山田がかわいい。が、アスミスももちろんかわいい。
  • ギルティクラウン
    中二病ぷんぷんなタイトルですが、中身はしっかり。
    Production I.G だし、ノイタミナのオリジナル枠だし、外してこないでしょう。
    当然絵もしっかりしてました。
    まだ特にかわいいキャラは登場なし。いのりの服はエロい。
  • ペルソナ4
    「カッ」ってしたくなるアニメ。
    うん、「カッ」ってしたくなる、そう、したくなる。
    クマがかわいい。(どっから声出してんだ、山口勝平)
  • 人として、基本、見ておきますよね
    • 僕は友達が少ない
      外さないラノベ枠。
      伊藤かな恵にエロゲ朗読させるなどなどTBSのくせに割とサービスがいい。
      そして、電波女と青春男あたりから続く唇の色合いとかが妙にどきっとする。誰の神業かしらんけど。
      長田有希子がかわいい。
    • 未来日記
      ストーリーしっかりしてる(はず)だし、内容は間違いないでしょう。
      由乃がかわいい。ゆのという名前は、だいたいかわいくなるようになってるらしい。
    • LAST EXILE -銀翼のファム-
      8年ぶりの LAST EXILE。
      これも外さないだろうし、そういう意味では「絶対見ておく」ほうにランクアップさせてもいいかも。
      第0話の特番で、沢城がでてこなかったのが不満だけど、そのあたりは大人の事情もあるんだろう。
      そういや今季は花澤さん登場少ないなあと思ってたら、これにはしっかり登場してる。
      ちなみに、特に萌えるキャラなし。ここは残念。
    • 侵略!? イカ娘
      第2期でゲソ。
      イカ娘がかわいい。
    • 境界線上のホライゾン
      1話、2話のあたりはぽかーんなストーリだったけど、3話で持ち直してきた。
      キャラが多いせいもあってか(つか覚えきれねえよ)、声優陣はやたら豪華。鼻血でるぐらい豪華。
      三要(CV: 清水愛)がかわいい。こういうキャラには清水愛しかない。
    • 灼眼のシャナ Final
      1話を見逃したせいもあるんだろうけど、「え、こんなに話進んでたの!?」が本音。
      2期もそれなりに見てたはずだけど、まったくわからんことになってた。。。
      まあ、見続けますかね。
      もちろんヘカテーがかわいい。
  • 時間があればぐらい
    • マケン姫
      めんどくさいからリンクもいいや。
      適当にぐぐってください。
    • 真剣で私に恋しなさい!!
      これもいいや。
      とりあえずエロゲ枠。
    • ましろ色シンフォニー
      同じくエロゲ枠。
      どうでもいいけど、エロゲ枠なら、ヨスガノソラぐらいがんばってほしい。
    • ベン・トー
      リンクぐらいは貼ってみるか。
      そもそもこういうネタで電波つかっていいんだろうか。
      もちろん化ける可能性もなくないので見ることにします。
    • ちはやふる
      原作は名作なのですが、時間の関係でとりあえずここにランクイン。
    • UN-GO
      1話完結のオムニバス、という意味でここに。
      ノイタミナ枠でもあり、悪い作品ではなく質は高い。
      が、それだけで上に登れるほどの世界ではないのだよ。

    各ジャンル(絶対とか、時間があればとか)の中の順位は特に意味ないです。
    が、見返してみると、それなりにいいアニメが上に来ているようなきがしないでもないですね。

    今季は境界線上のホライゾンのあたりに評価の割れ目があります。
    少なくともイカ娘より上を見ておけば、楽しいアニメライフはおくれるはずです。

    ぼやき

    今季のそれなりの充実っぷりをみていると、昨季のだめっぷりがみえてきますね。。。
    まよチキ、うさぎドロップ、猫神やおよろず、神様ドォルズ(詩緒)、BLOOD-C(最終話)あたりがよかったぐらいですか。
    バカテス、神様のメモ帳、クロワーゼあたりは期待したほどではなかったですし。
    ダンタリアンは、、、、沢城だけでもってた、、、が、それはそれで痛々しかった気もします。。。

    Posted in 未分類 | Leave a comment

    2011.Oct11

    Microsoft Arc Keyboard on Gentoo

    モテるパソコン環境を目指して、Microsoft Arc Keyboard を買ってみました。
    が、私が構築したカーネルだと、、

    $ tail -f /var/log/messages
    Oct 12 00:42:16 Linkwood kernel: [ 120.113452] hub 1-1:1.0: port 5 not reset yet, waiting 10ms
    Oct 12 00:42:16 Linkwood kernel: [ 120.175355] usb 1-1.5: reset full speed USB device number 3 using ehci_hcd
    Oct 12 00:42:16 Linkwood kernel: [ 120.186323] hub 1-1:1.0: port 5 not reset yet, waiting 10ms
    Oct 12 00:42:16 Linkwood kernel: [ 120.262934] usb 1-1.5: link qh1-3008/ffff8802257a6080 start 0 [1/3 us]
    Oct 12 00:42:16 Linkwood kernel: [ 120.263554] usb 1-1.5: link qh4-0601/ffff8802257a6800 start 0 [1/2 us]
    Oct 12 00:42:16 Linkwood kernel: [ 120.263568] usb 1-1.5: unlink qh4-0601/ffff8802257a6800 start 0 [1/2 us]
    Oct 12 00:42:16 Linkwood kernel: [ 120.263594] usb 1-1.5: unlink qh1-3008/ffff8802257a6080 start 0 [1/3 us]

    こんな感じのログを出しまくった(毎秒5行ずつぐらい)挙句、

    • キーが入力できたりできなかったりする
    • 入力できたかと思えば、同じキーが20個ぐらい連続で入力される
    • USBポートのあたりから、小さいけどピーピーという高周波音がする

    という状況でまったく使い物になりませんでした。

    で、いろいろ調べた挙句、どうやら次を有効にしたカーネル作ればいいらしいと発見。

    Device Drivers ->
      USB support ->
        EHCI HCD (USB 2.0) support ->
          [*] Improved Transaction Translator scheduling

    実際に有効にして再構築してみると、、、見事問題解消!

    ちゃんと調べてみるもんですね。
    # ついでに、USB 3.0 も有効にしておきました。

    Posted in 未分類 | Leave a comment

    2011.Oct10

    ibus-mozc on Gentoo

    自宅 PC に Gentoo いれて ibus 使おうとしたら少しはハマったので、メモ。
    ハマった現象としては、

    • なぜか「半角/全角 (Zenkaku_Hankaku)」キーで ibus の on/off ができない

    というもの。

    xev でみてもちゃんと Zenkaku_Hankaku と認識されているし、
    同じく on/off キーとして設定している Ctrl+Space では正しく on/off できる。
    ダメもとで ibus を emerge しなおしてもやはり同じ症状になってしまう。。。

    うーん、正直もう手詰まりかと思っていたところ、
    http://forums.gentoo.org/viewtopic-t-854525.html
    こんなのを発見。

    こちらを参考に、

    1. ibus-setup して「詳細」タブの「システムキーボードレイアウトを使用する」のチェックを解除
    2. ibus-daemon を終了 ($ killall ibus-daemon)
    3. ibus-daemon を再度起動 ($ ibus-daemon -d -x)
    4. ibus-setup して先ほどの「システムキーボードレイアウトを使用する」にチェック

    としたところ、ちゃんと Zenkaku_Hankaku で on/off できるようになりました。

    Posted in 未分類 | Leave a comment

    2011.Jun13

    ウイスキーフロート


    ウイスキーフロートを初めて作ってみました。

    以前、ノージンググラスでやろうとして、あえなく失敗しましたが、タンブラーなら簡単でした。
    要は水面近くからウイスキーを注げばいいわけですよ(当たり前)。

    ちなみに、フロートしたのはバルブレア1997。
    濃いめの水割り(氷入り)がいいね、これ。
    水割りにしても鼻に心地よいナッツ香が残ります。
    ピート香は少し穏やかになるかな。
    # グレンモーレンジで薄めの水割りにした感じ?

    Posted in 未分類 | Leave a comment

    2011.Jun11

    オフィシャル ラフロイグ カスクストレングス 10年 バッチ2


    買って3ヶ月ぐらい経ちますが、載せてなかったので載せておきます。
    オフィシャルラフロイグのカスクストレングス バッチ2。
    58.3度と非常に飲みごたえのあるラフロイグです。

    色: 濃い黄金色
    香り: 甘くまったりしたバニラシロップ、山火事、強いヨード香、鼻の奥を刺激する海風と展開されていく
    味: 飲み口は甘くオイリー、初めはラフロイグらしくないと思うが口の中で煙玉がじわじわ爆発し、口から鼻に海藻の香りが立ち上る。

    口で爆発するという表現はタリスカーによく使われますが、あちらが胡椒系のドライな爆発だとすると、こちらは魚介系の湿った爆発。

    おそらく樽を強めにチャーしているので、まず甘みが出てきます。
    後からはじけてくる感じが、通常のドライなラフロイグとは一線を画しているこのバッチ2です。
    どちらかというと、通常版ではなく、クォーターカスクのカスクストレングスという印象でしょうか。

    まだお店によっては在庫があるみたいですし、値段も5,000円前後とそこまで高くありません。
    これは、ぜひ1本手にいておきたい酒ですね。

    P.S.
    ちなみに、ウイスキーマガジンライブでバッチ1も飲みましたが、
    あちらは通常版ラフロイグのカスクストレングスという印象でした。
    ドライなほうが好きな人はバッチ1のほうが合うかもしれません。

    オフィシャル バルブレア 1997


    ウイスキーマガジンライブで心地よい香りに魅せられたので、ついに仕入れてしまいました。
    オフィシャル バルブレア1997 43度です。
    # どうでもいいけど、ボトルがずんぐりむっくりで、箱がでかい。。。(13cm四方ぐらい。。。)

    色: 若干薄めの琥珀色
    香り: まずはメロンとバナナ、ピーチといったフルーツの甘い香りがグラスから広がってくる、それを引き締める牧草っぽいピート香。夏の牧場で深呼吸した爽快感。
    味: 味わい自体は軽いが少しねっとり感があり舌ざわりはよく、飲んだ直後はナッツクリームの印象がありふんわり甘い。後味のピートがきちんと苦みを残してくれて複雑さもある。

    口の中でぎゅーっと展開していくというモルトではなく、あくまでライトボディですが、香りと余韻がすばらしい。
    いや、逆にライトだからこそ、それぞれの香りをちゃんと楽しるのかもしれません。
    飲み込んだ直後から立ち上ってくるナッツペーストの印象を、この価格帯(4,000円)で楽しめるのは秀逸です。
    # バランタインの7つのキーモルトの内、香りの筆頭として使われているようです。

    ちなみに、ハイランドモルトのせいか、香りは緑の牧草地や森をイメージさせ、ピート香もあるせいか若干白州を思わせます。
    ハイボールにすると炭酸に負けそうですが、氷を2~3個いれたハーフロックにしてみるとこの夏に清涼感を与えてくれそうです。
    今年はこれでがんばろう。

    Posted in 未分類 | Leave a comment