1 简介 这个文档记录了用 kGDB 调试 Linux 内核的全过程,都是在前人工作基础上的一些总结。以下操作都是基于特定板子来进行,但是大部分都能应用于其他平台。...2 配置内核 2.1 基本配置 在内核配置文件 .config 中,需要打开如下选项: CONFIG_KGDB 加入KGDB支持 CONFIG_KGDB_SERIAL_CONSOLE 使KGDB通过串口与主机通信...2.3 启动参数 打开相应的选项后,需要配置 kernel 启动参数,使 KGDB 和内核能够找到正确的通信接口。...在其他板子上,若使用以太网口来和 KGDB 进行通信,则要把 kgdboc 换成 kgdboe(kgdb over ethernet) )。 配置完后,就可以正常编译,然后把内核下载到目标板上面。...则需要根据这一部分,修改串口驱动程序,若能正常进入 kgdb ,则忽略该节,直接进入下一节使用 KGDB 。
: kernel debugging with remote gdb [*] KGDB: kernel debugger ---> KGDB: use kgdb over the serial...在server的/usr/src/linux-xxx生成initrd.img文件(将下面的版本号都换成自己的) mkinitramfs -o initrd.img-xxx xxx # 以上命令一般在Ubuntu...cp System.map /boot/System.map-xxx-kgdb cp initrd.img /boot/initrd.img-xxx-kgdb 客户机修改设置开机启动项的grub配置文件...配置完后需要更新一下grub,让配置生效: 在ubuntu是用该命令更新: update-grub centos使用: grub2-mkconfig -o /boot/grub2/grub.cfg Grub...(我测试ttyS0不行,改成ttyS1可以了) 参考 http://blog.nsfocus.net/gdb-kgdb-debug-application/ 在VMware中用Kgdb调试linux内核
---- 前言 调试内核肯定不是什么轻松的事情, 这里是使用kgdb进行调试, 你理解的没错, 就是kernel版的gdb. ---- 虚拟机串口设置 首先克隆下已经重新编译内核的虚拟机 然后设置两者的串口...update-grub nokaslr, 禁止内核地址随机化, 具体内容请自行google: reboot 然后重启的时候, 就能够看到一行关于nokaslr的提示了. ---- 开始调试 然后开始测试一下kgdb...的调试, 目标机切换为root用户, 控制权限交给kgdb, 目标机进入假死状态: echo g > /proc/sysrq-trigger 开发机进入自编译内核目录 gdb ....目标机切换为root用户, 控制权限交给kgdb, 目标机进入假死状态: echo g > /proc/sysrq-trigger 开发机进入自编译内核目录 gdb .
KGDB是Linux内核的源代码级调试器,你可以使用GDB作为KGDB的前端,在我们熟悉且功能强大的GDB调试界面中调试内核。...使用KGDB需要两台机器,一台作为开发机,另一台是目标机器,要调试的内核在目标机器上运行。在开发机上使用gdb运行包含符号信息的vmlinux,然后通过指定网络地址和端口,连接到目标机器的KGDB。...我们也可以使用QEMU/KVM虚拟机作为目标机器,让待调试的内核运行在虚拟机中,然后在宿主机上运行gdb,连接到虚拟机中的KGDB。...-5506d28f-c9e7-46d4-a12e-42555d491eec' { menuentry 'Ubuntu, with Linux 5.4.106' --class ubuntu...在GRUB界面选择 Ubuntu 高级选项,选择第一项进去,就进入了新的内核。
本文旨在介绍下几种常见的调试方法gdb、crash、kgdb and kdb 以及dynamic debug....2.3 kgdb KGDB 适合深入的远程内核调试,而 KDB 更适合快速本地访问和简单问题的诊断。两者的使用依赖于具体的调试需求和环境设置。...kgdb的使用步骤如下: 2.3.1 准备内核 Kernel hacking ---> KGDB: kernel debugger ---> [*] KGDB: use kgdb...over the serial console [ ] KGDB: internal test suite [ ] KGDB_KDB: include kdb frontend for...kgdb [ ] KGDB over Ethernet 2.3.2 添加启动参数 kgdboc=ttyS0,115200 kgdbwait 2.3.3 调试机(host)上启动gdb作为前端
开发环境 Ubuntu20.04 系统自带的内核版本:5.4.0-42-generic kernel编译前的准备 在编译内核之前,有些准备工作需要进行。...因为我目前的开发环境是ubuntu 20.04,内核版本为5.4.0。而实验选择的下载版本,就是5.4.0。因为这样编译过程不容易出现bug(理论上其他内核版本也可以,具体问题后面分析)。 ...在后面的kgdb开发中,不管是开发机,还是目标机,都需要禁止内核地址随机化。禁止的方法,即修改grub配置文件。
回到正题linux内核调试用的kgdb,一种专门针对linux内核的调试工具,所谓的内核的调试,主要还是在嵌入式板卡上用的比较多,需要掌握一个概念交叉编译,这个是玩嵌入式的必备概念,通俗点讲,在主机电脑上将程序编译好...1.生成的调试库以及驱动ko文件都会比较大,所以准备的磁盘空间至少20G左右 2.需要让内核支持支持kgdb调试功能,需要打开配置开关,正常的编译内核用make menuconfig,进入kernel
一、 Ubuntu12-22通用,安装Xfce图形界面(由于ubuntu12的源已经失效,目前没法验证ubuntu12了,其他的ubuntu偶数版本我都验证过)参考https://learn.microsoft.com...执行apt-get install net-tools xrdp firefox xfonts-wqy -y)执行时如果不识别sysv-rc-conf (≥ubuntu18.04不支持sysv-rc-conf...,不用动源)vim /etc/apt/sources.list在软件源sources.list文件末尾添加如下文本deb http://mirrors.tencentyun.com/ubuntu/ trusty...执行systemctl enable xrdp)echo xfce4-session >~/.xsessionadduser xrdp ssl-cert(≥ubuntu18.04需要执行这句)service...(适用ubuntu18/20,不适用ubuntu22)add-apt-repository ppa:linuxuprising/libpng12apt updateapt install libpng12
之前学习了利用KGDB双机调试内核,这种方式需要在两个主机上,通过串口线进行连接,或者是通过VMware开启两个虚拟机进行调试,对机器要求相对高一些。...我先在centos7下面配置调试环境,但是centos7下没有qemu_system_x86等命令,所以需要重新编译qemu源码再进行安装,再加上各种依赖问题,于是转用ubuntu进行配置,过程简单了许多...环境 vmware创建ubuntu14.04 处理器设置多核、勾选虚拟化引擎、硬盘空间尽量大一点(20G+) Linux-3.10.0 编译源码 下载源码,配置编译选项。
image.png Ubuntu20.04linux内核(5.4.0版本)编译准备与实现过程-编译前准备(1) 切记:注意一点需要参照前一篇随笔,不然编译过程十有八九出问题。...开发环境 Ubuntu20.04(ubuntu-20.04.2-live-server-amd64.iso) 系统自带的内核版本:5.4.0-67-generic(上篇随笔的内核版本为5.4.0...这之后,可以执行命令“make menuconfig”,在图形界面中对.config文件进行配置,按默认的配置就行(kgdb也默认配置好了),直接选择load,选择保存退出即可。...不过,ubuntu 20.04默认情况下,开机是看不到grub界面的,也就无法选择进入新编译好的内核。所以,此时还得修改一个/etc/default/grub文件。
本文是关于如何在 Ubuntu 20.04下安装 Edge 浏览器的方法。...安装目的 目前在 VMware 虚拟机上安装了虚拟机 Ubuntu,使用时默认是火狐浏览器,而在 Windows 下,更多的则是使用 Edge 或 Chrome,因此有很多的收藏和记录在原本的 Edge...于是在 Ubuntu 上再次安装 Edge,并使用同步功能将标签等信息同步过来,这样在两个平台上使用浏览器就更方便了。
文章目录[隐藏] 配置静态ip上网 重启网卡 配置静态ip上网 20.04 # 先查看动态IP时的网络参数 ip addr # 修改配置文件,配置静态IP v...
efi 512-1024M swap 32G 物理内存大小的2倍 /usr 300G 尽可能大 /home 500G 尽可能大 tip: 我的电脑是一个固态加一个机械硬盘,windows用固态硬盘,ubuntu...安装好windows后,再安装ubuntu系统。安装ubuntu系统的时候,分区完成后,修改引导所在位置为:ubuntu的efi所在分区。
/ hirsute main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ hirsute-security.../ubuntu/ hirsute-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu...main restricted universe multiverse 更新软件库 $ apt update PS:更新ubuntu 其他版本的源,直接修改ubuntu 的版本代号即可,例如 21.04...在装libc6-dev时下列的软件包有不能满足的依赖关系: libc6-dev : 依赖: libc6 (= 2.23-0ubuntu3) 但是 2.23-0ubuntu10 正要被安装 E: 无法安装的软件包...我这里是 impish # /etc/apt/sources.list.bak deb http://cn.archive.ubuntu.com/ubuntu/ impish main restricted
systemd/system/docker.service.d sudo rm -rf /var/lib/docker 5.确定docker卸载完毕 docker --version 安装docker 更新ubuntu...curl \ software-properties-common 添加Docker官方GPG key curl -fsSL https://download.docker.com/linux/ubuntu...add - 设置Docker稳定版仓库 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu
Ubuntu 22.04 发布时间表 Ubuntu 22.04 稳定版计划于 2022 年 4 月 21 日发布。...新的固件更新程序应用程序 据 OMG 报道, Ubuntu 22.04 可能会有一个新的固件更新程序应用程序!Ubuntu ....新的安装程序与 Ubuntu 桌面风格无缝集成,从而使 Ubuntu 22.04 从一开始就具有更现代的外观和感觉。...获取 Ubuntu 22.04 LTS 警告:Ubuntu 22.04 仍在大力开发中。您不应该在生产机器或主系统上使用它。...https://cdimage.ubuntu.com/daily-live/current/ 如果您在备用机器上使用 Ubuntu 20.04 LTS 或 Ubuntu 21.10,您可以强制升级到开发分支
前言 本文重点介绍Ubuntu卸载软件的4种方法。他们分别是图形化界面的synaptic、自动解决依赖关系的apt-get,处理依赖关系更强大的aptitude,还有安装本地deb包的dpkg。...方法一: Ubuntu使用synaptic图形化界面管理软件 oucanrong@zcwyou:~$ sudo apt-get install synaptic -y 以下是使用Synaptic管理软件的教程...输入当前用户密码 右键选择安装或卸载等软件管理目标 方法二: Ubuntu使用apt-get卸载软件 apt会自动解决和安装模块的依赖关系,于Redat系统的yum命令类似,并且会查询软件仓库, 但不会安装本地的...删除软件包及配置文件 sudo apt-get remove xxx –purge 删除不再需要的软件包 sudo apt-get autoremove -y 注:aptitude 没有,它会自动解决这件事 方法三: Ubuntu...sudo aptitude clean 仅删除过期的包文件 sudo aptitude autoclean 利用apitude重装软件 sudo aptitude reinstall xxx 方法四: Ubuntu
ubuntu卸载软件方法 1.第一步,常规卸载 sudo apt-get purge 软件名 //卸载软件 2.第二步,清理一些不需要的文件 sudo apt-get autoremove
我的系统是XP SP3 + VMWARE WORKSTATION + UBUNTU 8.04桌面版 先在vmware中设置好ubuntu的设置(其实没什么好设置的,就添加新虚拟机,然后找到ubuntu,
之前由于种种原因,折腾了很多个Ubuntu系统,也换了好多个,重新安装了很多次系统,终于找到了当前这个能用的了。本以为万事大吉了,然而最近突然发现之前安装的没用的Ubuntu系统竟然还在我的磁盘中!...然而百度了一下发现并没有这样的教程,有的很多都是在win+ubuntu双系统下删除ubuntu以及grub。显然我们不需要删除grub,而且万一我们没有windows系统呢?...现在,如果要删除多余的ubuntu系统,我们只要搞清楚他的分区,然后格式化即可。最后在格式化之后,用update-grub命令更新下grub列表就好了。 (这个工具要小心使用。。。
领取专属 10元无门槛券
手把手带您无忧上云