ログ日記

作業ログと日記とメモ

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キーでデバッガの起動。

参考: Linuxカーネル・デバッガー内部


詳細は man kdb で結構詳しく書いてある。


只今コンパイル中...........後で書き直すかも。


で、コンパイル終わったけど有効にならない。etchだと手順が違うのかな?すぐ解決しそうだったらあとでやる。