顯示具有 Linux hanking tool 標籤的文章。 顯示所有文章
顯示具有 Linux hanking tool 標籤的文章。 顯示所有文章

2009年3月9日 星期一

Debugging Linux Kernel Without KGDB Patch (Qemu + GDB)

Debugging Linux Kernel Without KGDB Patch (Qemu + GDB)

Here

KGDB老弄不起來,先拿GDB擋著用

2009年2月10日 星期二

安裝 qemu 與 kqemu

安裝 qemu 與 kqemu 於 xubuntu810

安裝圖形介面:
aptitude install qemu qemu-launcher qemubuilder qemuctl

啟動qemu: qemu-launcher
************************************

安裝(console):
1. aptitude qemu
2. aptitude kqemu-source (會在 /usr/src/kqemu-xxx)

編譯kqemu:
1. 準備 kernel source code (2.6.28.xxx)
2. 編譯好該 kernel
( 用新的kernel開機 )
3. # cd /usr/src
4. # tar xvf kqemu.tar
5. # cd /usr/src/modules/kqemu
6. # cp /boot/config kernel-source目錄下/.config
7. # make scripts
8. # ./configure
9. # make && make install

掛载 kqemu:
1. # modprobe kqemu
2. # chmod 666 /dev/kqemu

/-------------------------------------
1. 安裝
# sudo aptitude install module-assistant
2. 然後利用module-assistant編譯出kqemu的kernel module並且安裝到系統中
# sudo module-assistant auto-install kqemu-source
3. 最後載入模組並建立裝置節點
# sudo modprobe kqemu major=250
# sudo mknod /dev/kqemu c 250 0
# sudo chmod 666 /dev/kqemu
/-------------------------------------

設定環境qemu:
1. # qemu-img create linux.img 15G (or 15000M)

啟動qemu :
1. # qemu -hda /路徑/linux.img -cdrom /路徑/linux.iso -boot d -m 1024

啟動qemu+kqemu
1. # qemu -kernel-kqemu -hda /路徑/linux.img -cdrom /路徑/linux.iso -boot d -m 1024 (記憶體size)
( hda 可以是SATA的硬碟 )
( cdrom可以不是指實體的cdrom,可以直接指向硬碟裡的iso檔 )

安裝好後,以後啟動:
# qemu -kernel-kqemu -hda /路徑/linux.img -boot c -m 1024

網路設定:
裝好後就能上網了 XD

ref:
Here
Here
Here
Here
Here
Here
(-----感謝Ryan提供-----)
Here
Here
Here

kdb debug

kdb debug

準備:
1. kernel 2.6.28.4
2. kdb-v4.4-2.6.28-common-1.bz2
kdb-v4.4-2.6.28-x86-1.bz2

加入patch:
1. # patch -p1 < kdb-v4.4-2.6.28-common-1.bz2
2. # patch -p1 < kdb-v4.4-2.6.28-x86-1.bz2

make menuconfig設定:
1. 進入kernel hacking
2. 勾選:Compiler the kernel with frame pointers
Buile-in Kernel Debugger support
KDB off by default

全部compiler完成後,重新開機,(選剛剛編的kernel)
1. # echo "1" >/proc/sys/kernel/kdb (開啟 kdb)
2. 押下鍵盤的「Pause/Break」就能work了

p.s:
目前只有在桌機用VM下可以正常work,(Fedora 8, Xubuntu804)
筆電上,不是當機,就是一直出現「小於」這符號

ref :
Here
Here
Here
Here
/*nice*/