跳转到目录 点这里
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 以外的生成文件 (就是说保存你的所选项,其它还原)