网上资料很多,但是完全符合的没找到,这里记录下一些差别。
1.ubuntu 10.04的内核是 2.6.32,我下载了2.6.27进行编译安装。在安装完modules和内核后,还有一步——制作initrd.img,很简单,在编译linux的根目录下执行以下命令
mkinitramfs 2.6.27 -o /boot/initrd.img-2.6.27
2.网上一般说手动修改grub.cfg来增加调试内核的启动项,在ubuntu里最好执行update-grub2命令来自动更新grub.cfg,然后手动修改,最后结果如下:
menuentry 'Ubuntu,Linux 2.6.27' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 519c3171-d107-4e1c-ba8a-c7b0fc71dc55
linux /boot/vmlinuz-2.6.27 root=UUID=519c3171-d107-4e1c-ba8a-c7b0fc71dc55 ro kgdboc=ttyS1,115200 kgdbwait quiet text
initrd /boot/initrd.img-2.6.27
}
红色部分是修改项
修改完grub后系统默认进入命令行模式。。。如果想切换到图形界面,执行/etc/init.d/gdm start
3.在启动项里和gdb中都要指定串口设备,网上一般是/dev/ttyS0,但是经过我实践,应该是/dev/ttyS1