zoukankan      html  css  js  c++  java
  • 简单搭建内核调试环境--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 以外的生成文件 (就是说保存你的所选项,其它还原)
  • 相关阅读:
    菜根谭#317
    菜根谭#316
    菜根谭#315
    菜根谭#314
    菜根谭#313
    菜根谭#312
    菜根谭#311
    菜根谭#310
    菜根谭#309
    Matlab xpC启动盘
  • 原文地址:https://www.cnblogs.com/heling/p/14160164.html
Copyright © 2011-2022 走看看