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 以外的生成文件 (就是说保存你的所选项,其它还原)
  • 相关阅读:
    Spring基础知识
    Hibernate基础知识
    Struts2基础知识
    在eclipse里头用checkstyle检查项目出现 File contains tab characters (this is the first instance)原因
    java后台获取cookie里面值得方法
    ckplayer 中的style.swf 中的 style.xml 中的修改方法
    java hql case when 的用法
    Windows下Mongodb安装及配置
    Mongodb中经常出现的错误(汇总)child process failed, exited with error number
    Mac 安装mongodb
  • 原文地址:https://www.cnblogs.com/heling/p/14160164.html
Copyright © 2011-2022 走看看