为了账号安全,请及时绑定邮箱和手机立即绑定

ubuntu18.04下linux4.17内核调试环境搭建

标签:
C++


版本linux4.17 ubuntu18.04

先给系统至少80G内存

1。编译内核

先配置文件

make mrproper

make menuconfig

我这里需要的依赖有

 sudo apt install make cmake gcc g++ clang

 sudo apt-get install libncurses5-dev libncursesw5-dev

 sudo apt install ncurses-dev

 sudo apt-get install bison

 sudo apt-get install flex

 sudo apt-get install linux-libc-dev:amd64

 sudo apt-get install libssl-dev

然后窗口调大点

ubuntu18.04下linux4.17内核调试环境搭建

打开相关选项:(我看了下好像全默认开启)

https://blog.csdn.net/ztguang/article/details/52410562

ubuntu18.04下linux4.17内核调试环境搭建

ubuntu18.04下linux4.17内核调试环境搭建

 Kernel: arch/x86/boot/bzImage is ready  (#1)

FATAL: drivers/scsi/am53c974.o has no symtab?

scripts/Makefile.modpost:92: recipe for target '__modpost' failed

Makefile:972: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev

sudo apt install libelf-dev

换内核就先修改:

sudo gedit /etc/default/grub

注释第二行:

ubuntu18.04下linux4.17内核调试环境搭建

更新

sudo update-grub2

ubuntu18.04下linux4.17内核调试环境搭建

///////////////////////

拷贝被调试机上编译出来的vmlinux 到调试机上,与内核源码(是自己下载的内核源码这里是4.17)同级目录(内存足够多把编译生成的中间文件也可以一起拷贝)

然后

第一步建立串口通信

ubuntu18.04下linux4.17内核调试环境搭建

测试

ubuntu18.04下linux4.17内核调试环境搭建

开启调试环境

打开 /boot/grub/grub.cfg 文件,选择需要启动的内核版本,在尾部添kgdbwait kgdboc=ttyS0,115200

第一个菜单

ubuntu18.04下linux4.17内核调试环境搭建

对应

ubuntu18.04下linux4.17内核调试环境搭建

第二个菜单

ubuntu18.04下linux4.17内核调试环境搭建

对应

ubuntu18.04下linux4.17内核调试环境搭建

根据需要内核版本自定义设置

这里默认第一个菜单对一项

重启系统会断下

ubuntu18.04下linux4.17内核调试环境搭建

调试机

进入系统源码目录

gdb vmlinux

ubuntu18.04下linux4.17内核调试环境搭建

set remotebaud 115200 目前其实没有用

target remote /dev/ttyS0

还是有点问题 可能是符号也要拷贝吧

ubuntu18.04下linux4.17内核调试环境搭建

这里可能会有新内核启动不了的情况报cpu没有工作

ubuntu18.04下linux4.17内核调试环境搭建

我的做法是干掉原理的旧内核只要新内核,同时内核研究时一定要记得很定会有各种错。

个人觉得至少会有三个镜像。

第一个镜像是linux安装成功的镜像。防止编译,安装内核的各种错误。

第二个镜像。编译成功,或者直接是内核已经安装成功。 

第三个镜像搭建环境的镜像。

ubuntu18.04下linux4.17内核调试环境搭建

//////////////////////////////////////////////////////////

如果是不想开机就断下的话只要加上 kgdboc=ttyS0,115200

ubuntu18.04下linux4.17内核调试环境搭建

重启 root运行 echo g > /proc/sysrq-trigger

但是可能会报错误 说权限错误 重新设置下root密码就可以了 可以和原来密码一样

haidragon@ubuntu:~$ echo g > /proc/sys

sys/           sysrq-trigger  sysvipc/       

haidragon@ubuntu:~$ echo g > /proc/sys

sys/           sysrq-trigger  sysvipc/       

haidragon@ubuntu:~$ echo g > /proc/sys

sys/           sysrq-trigger  sysvipc/       

haidragon@ubuntu:~$ echo g > /proc/sysrq-trigger 

bash: /proc/sysrq-trigger: Permission denied

haidragon@ubuntu:~$ sudo echo g > /proc/sysrq-trigger 

bash: /proc/sysrq-trigger: Permission denied

haidragon@ubuntu:~$ su

Password: 

su: Authentication failure

haidragon@ubuntu:~$ sudo passwd root

Enter new UNIX password: 

Retype new UNIX password: 

passwd: password updated successfully

haidragon@ubuntu:~$ su

Password: 

root@ubuntu:/home/haidragon# echo g>/proc/sys

sys/           sysrq-trigger  sysvipc/       

root@ubuntu:/home/haidragon# echo g>/proc/sysrq-trigger 

root@ubuntu:/home/haidragon# 

root@ubuntu:/home/haidragon# 

运行后系统就会卡住

ubuntu18.04下linux4.17内核调试环境搭建

调试机运行gdb vmlinux

然后

set remotebaud 115200

target remote /dev/ttyS0

ubuntu18.04下linux4.17内核调试环境搭建

输入c运行

ubuntu18.04下linux4.17内核调试环境搭建

https://blog.csdn.net/ztguang/article/details/52410562

https://blog.csdn.net/u013470224/article/details/51314231

https://blog.csdn.net/swingwang/article/details/72331196

©著作权归作者所有:来自51CTO博客作者土匪猿的原创作品,如需转载,请注明出处,否则将追究法律责任


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消