简单搭建内核调试环境--2 bzImages

 跳转到目录 点这里 

bzImages 和 vmlinux 都是内核编译完成生成的二进制文件

bzImages 是 去掉了一些中间信息且压缩过的。

vmlinux 是服务于 gdb 调试的,它带有一些调试需要的符号信息。

vmlinux  配了调试选项后是不能直接用grub引导的,会报魔数校验失败

 这些都先不用管了,知道这些就可以了。

 pacman -Ss  flex bison  要安装上词法分析 语法分析命令

 https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.8.tar.xz [最新版本]

 http://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.18.tar.xz  [当前iso镜像包含版本]

    下载编译前要了说明几个内核选项,这些选项对后面的工作有影响。

      1)对调试有影响的选项

#关闭这个选项,如果不关闭 b start_kernel 断点打不上。 gdb调试时可以 hb start_kernel,eclipse时断不住
Processor type and features-->Randomize the address of the kernel image(KASLR),
选上 Kernel hacking  ---> Compile-time checks and compiler options  --->Compile the kernel with debug info #必须全部选上
选上 Kernel hacking  ---> Compile-time checks and compiler options  #全部选上
选上 Kernel hacking  ---> Generic Kernel Debugging Instruments  --->  KGDB: kernel debugger  ---> #全部选上

       2)对于光盘安装内存文件系统有影响的选项 

   65536 这个数可自定义的,但要与制作 initramfs.img 时设置的 大小要一致。 
            2.1.1)Device Drivers  --->[*] Block devices  ---><*>   RAM block device support
               (16)    Default number of RAM disks
               (65536) Default RAM disk size (kbytes)
               [附]65536是 64M这个数字是设置内核启动时文件系统大小,在制作内存文件系统时要与这个数字保持一致
            2.1.2)General setup  --->[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
               [附]开启 RAM disks支持

        3)对于VMware 下面硬盘的使用有影响的选项 这几个都选上 否则制会报错

           grub2界面之后,系统控制台开始打印信息表示内核文件己执行 ,没选上这个会报不能 挂截 目录错误

  Linux Kernel Configuration -> Device Drivers -> SCSI device support - > SCSI disk support 
  Linux Kernel Configuration  -> Device Drivers -> SCSI device support -> SCSI low-level drivers  -> BusLogic SCSI support 
  Linux Kernel Configuration  -> Device Drivers  -> Fusion MPT device support   -> Fusion MPT (base + ScsiHost) drivers

        4)关于虚拟机网卡驱动选项,默认就可以了不用改内核选项。但是要在虚拟机上指定网卡类型

#在windows 打开 对应虚拟机 manjaro.vmx 文件
#加入一句 ethernet0 表示虚拟机的第一张网卡 e1000表示英特尔的一种网卡型号,内核默认是有这个型号的驱动的。
ethernet0.virtualDev = "e1000"

         下面讲一下几个命令 解压后进入解压目录执行

#生成 .config 及Makefile  ARCH=x86_64 指定处理器类型 
#执行完这个命令会弹出一个交互界面,[*]编进[]不编进[M]以模块编进 尖括号<>不能选M
#保存退出很会生成一个配置文件和对应的Makefile选项
make ARCH=x86_64 menuconfig 
#正式开始编译,完成生即得到bzImage
make ARCH=x86_64 
make mrproper#清除所有生成文件(还原到解压前状态)
make clean# 清除除了.config 及Makefile 以外的生成文件 (就是说保存你的所选项,其它还原)
原文地址:https://www.cnblogs.com/heling/p/14160164.html