fc2ブログ

2013年08月 の記事一覧

Debian sidでカーネル再構築

debianでのカーネル再構築の手順をいつも忘れるのでメモ。
2013/08/22現在のsid上で実行したときの手順。


■導入するパッケージ類

多分このあたりだと思われる。すでに色々と導入してあったので、どれが無いとダメなのかがよく分からない。
・libncurses5-dev(make menuconfigするなら必要、多分・・・)
・devscripts
・fakeroot
・quilt(修正する部分があったけど、gitとか使いたくなかったので)
・kernel-package(もしかしたら要らないかも)

makeやgccはすでに導入済みである前提。まぁ、何かエラーが出たら足りない分を導入すればよろしいかと。


■手順
今回はmake-kpkgではなく、make deb-pkgを使ってみることにした。違いが分からない。教えてエロい人。

1. ソースの取得と展開

作業ディレクトリを作成。自分が書き込めれば別にどこでも良い。
$ mkdir /usr/src/kernel

ソースを取得して展開。xzなる圧縮方式になってた。初めて見た。
$ sudo apt-get install linux-source-3.10
$ cd /usr/src/kernel
$ tar Jxvf /usr/src/linux-source-3.10.tar.xz
$ cd linux-source-3.10

必要ならpatchを当てる。RTにする必要なかったのに当ててしまった。
$ cp /usr/src/linux-patch-3.10-rt.patch.xz ./
$ xz -d linux-patch-3.10-rt.patch.xz
$ patch -p1 < linux-patch-3.10-rt.patch


2. ソースの変更

$ quilt new hoge.patch
$ quilt add <編集するファイル>
ここで編集する。変更内容は以下で確認できる。
$ quilt diff
編集が終了したら以下で変更を確定。
$ quilt refresh
この状態はpatchが当たった状態になっているため、必要ならpatchを外す。
$ quilt pop


3. ビルド準備

configはソース取得時に一緒に入っているので、それをコピーして使用。
$ cp /usr/src/linux-config-3.10/config.i386_none_486.xz ./
$ xz -d config.i386_none_486.xz
$ mv config.i386_none_486 .config
$ make oldconfig
設定変更したい場合は以下で変更。別にmake xconfigとかでもいいけど。menuconfigはscreenを使っていると表示が崩れることがあるので注意。
$ make menuconfig
Makefileの中のバージョン情報を編集する。別に何でもいいのだけど、debパッケージ名になるのでそれなりのものを付けておく。自分はhostnameを入れた以下の形にしている。ビルドする度に+nmuの数字を上げる。
$ vi Makefile
-----
EXTRAVERSION = +nmu1-hostname
-----
ここで自分のpatchを再び当てておく。
$ quilt push


4. ビルド

$ CONCURRENCY_LEVEL=$(getconf _NPROCESSORS_ONLN) \
DEBFULLNAME="Your Full Name Here" \
DEBMAIL="[email protected]" \
KDEB_PKGVERSION=3.10.7+nmu1-hostname \
fakeroot make deb-pkg 2>&1 | tee build.log

KDEB_PKGVERSIONは数字で始まらないとエラーになる。自分はMakefileの中に書かれているバージョンとEXTRAVERSIONを連結したものを使っている。これがdebパッケージのバージョンになる。パッケージ名とバージョンは異なるものにすることもできるが、紛らわしいので同じになるように指定する方が良いと思う。

あとは待つばかり。完了すると1つ上のディレクトリに
linux-image-3.10.7+nmu1-hostname-rt3_3.10.7+nmu1-hostname_i386.deb
linux-headers-3.10.7+nmu1-hostname-rt3_3.10.7+nmu1-hostname_i386.deb
linux-libc-dev_3.10.7+nmu1-hostname_i386.deb
などができる。インストールするがよろし。

条件付き確率

条件付き確率ってのにはいつも騙された気分になるのでマジメに考えてみた。授業とかで習った時にも同じことを考えたのかもしれない。今回はここに記しておこうと思う。

次の2つの問題を考える。

[問題1]隣の家には子供が2人いる。上の子は女の子という話を聞いた。もう1人が男の子である確率を求めよ。
[問題2]隣の家には子供が2人いる。1人は女の子という話を聞いた。もう1人が男の子である確率を求めよ。

なお、どちらの問題にも
 「ただし、出生は独立の事象であるものとし、出生の男女比率は1:1であるものとする。」
という前提を付ける。日本語は変かもしれないが、要するに男の子、女の子が生まれる確率は等しいという前提だ。

並べてあるからすぐに違いに気付けるけど、単独で出されたら間違える可能性大だな。
答えは
[問題1]1/2
[問題2]2/3
となる。

順番に考えてみよう。


■問題1

「出生は独立の事象」なので、上の子が女の子であろうとなかろうと、下の子の性別には影響しない。
なので、下の子が男の子である確率は「出生の男女比率は1:1」から1/2と求まる。


■問題2

この問題では2人の子供のうち一方が女の子であることが条件として与えられている。この条件下で所望の確率を求めるという、いわゆる条件付き確率の問題だ。ベイズの定理を使って解くのが一般的だと思われる。しかし、単純に考えれば当たり前であることを示すためにここでは数式を使わずに説明する。

「2人の子供のうち一方が女の子である」というのがどんな状況かを考えると、次の3パターンとなる。
・上の子:女の子、下の子:男の子
・上の子:男の子、下の子:女の子
・上の子:女の子、下の子:女の子
この中で「もう1人が男の子」であるのは2パターン。
なので、求める確率は 2/3となる。


これらの問題は「1人は女の子」と「上の子は女の子」という違いしかない。しかし、条件の付け方によってこちらが知っている情報が異なるので、知っている部分の影響で確率が変わってくるというわけだ。


・・・いや、やっぱり何度考えても納得できんな・・・。そもそも「確率」っていう概念の理解が必要かもしれない。


一般的なコイン投げの問題も同様に考えられる。そういえば、昔コイン投げの例で同じようなことを考えたような・・・。

まぁこれで、引っ越したときに隣に2人の子供がいると聞いて、
・1人は女の子であるのを見かけた。
・1人は女の子であり、お姉ちゃんであると聞いた。
とい2パターンにおいてもう1人の性別を予測することができるようになるわけだ。
(゚⊿゚)イラネ

Walker Art Center

昨日の話だけど、Walker Art Centerという美術館に行ってきた。
というのも、毎週木曜日の17:00〜21:00と毎月第1土曜日が入館無料なのだ。もうすぐミネアポリスを去るわけだし、どこにも行かずというのはもったいないので行くことにした。あ、大分前に湖に行ったか。

Walker Art Centerは、Downtown Westからさらに南西方向に行ったところにあるLowry Hillにある。Hennepin Ave.沿いにあるので分かりやすい。UMN(ミネソタ大)からだとやや遠い。自転車で30分程度かかる。昨日はやや暑くて、到着した頃にはお尻が汗で湿っていた。

【続きを読む】

Japanese Bistoro

最近、UMNのキャンパス周辺で工事が激しく進んでいる。夏にしか工事ができないから、ということらしい。
加えて、East Bank内にLRTのGreen Lineが開通するらしい(9月から?)ので、この周辺で工事しているということのようだ。先月にはLRTの架線が敷設され、すでに通電状態にある。

新しいLRTはWashington Ave SEを通っているのだが、この道路沿いに新しいお店がいくつか作られている。その中の1つにHaiku Japanese Bistoroというのがあるので激写。

IMG_20130811_091559, originally uploaded by pman0214.



ググってみると、どうやらMississippi川の向こう側とSt. Paulにお店があるようだ。もしかしたら川向こうのお店が移動してきたのかもしれない。

まだオープンしてないみたい。多分9月オープンかな。9月には別の場所に引っ越すので、自分が行くチャンスはあるのか?ま、自分のいる建物からはそこまで遠くないから、機会があれば試してみるかな。