Debugging Linux Kernel Without KGDB Patch (Qemu + GDB)
Here
KGDB老弄不起來,先拿GDB擋著用
2009年3月9日 星期一
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
安裝圖形介面:
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
準備:
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
訂閱:
文章 (Atom)