debian etch に kdb を入れてlinuxカーネルデバッグ
どこかにメモったはず・・と思って検索しても全然見つからない。
で、色々探してローカルのmeadow使ってhowmでメモしてたことに気付いた。
今見ると結構な数のメモがある・・howmは便利だけどはてなの方が便利なので途中から切り替えたんだった。
# 追記 >>>>>
調べようと思って検索したら、なんかここがトップに出てくるようになってしまった。orz
で、どうやらkernel-patch-kdbは要らないようだ。(ただしman kdbのために入れるのはアリ)
make menuconfig で kernel hacking -> kernel debugging をオンにすれば kdb が使えるようになる。
ということで
make oldconfig make menuconfig # kernel debugging をオン make-kpkg --added-patches kdb --append-to-version "-6-686-kdb \ --revision=2.6.18.kdb --initrd kernel-image
とすればよい。バージョン等は適当に。
kdbを使っている状態では単純なコンソール上の操作しかしないだろうから、カーネルコンフィグメモ - より良い環境を求めて にあるようにオプションを減らしてコンパイルすると楽。
カーネルヘッダパッケージも同時に作成する場合は
make-kpkg --added-patches kdb --append-to-version "-6-686-kdb \ --revision=2.6.18.kdb --initrd kernel-image kernel-headers
ソースからコンパイルしたマシンでは不要だが、別のマシンに入れて開発を行う場合は必要。
# 終了 <<<<<
※ 以下は不要
で、メモの内容をetchで確認しつつコピー。
apt-get install linux-source-2.6.18 apt-get install kernel-patch-kdb cd /usr/src tar xvjf linux-source-2.6.18.tar.bz2 cd linux-source-2.6.18 cp /boot/config-2.6.18-6-686 .config make oldconfig echo "patch_the_kernel := YES" >> /etc/kernel-pkg.conf make-kpkg --added-patches kdb --append-to-version "-6-686-kdb \ --revision=2.6.18.kdb --initrd kernel-image dpkg -i ../linux-image-2.6.18-6-686-kdb_2.6.18.kdb_i386.deb reboot
デバッガのオン・オフは
echo 1 >/proc/sys/kernel/kdb echo 0 >/proc/sys/kernel/kdb
pauseキーでデバッガの起動。
詳細は man kdb で結構詳しく書いてある。
只今コンパイル中...........後で書き直すかも。