这两天在搞内核编译准备上qemu走一走,搞了四天了终于是让编译程序走动了,那么编译内核的话有这么几步走,
一、准备
准备的材料有,系统、内核源码、32位兼容库以及其他需求库
- 系统,系统我用的Ubuntu18.04 64位
- 安装适应版本的gcc,我用的是Linaro GCC 7.5-2019.12
- 内核linux kernel,官网上下linux-4.9.21;linux-5.4.11,我就用了最新的两版来试水,有点挑战
- 32位兼容库,需求库
二、编译
编译只需要三步走
生成.config这一步在4和5版本上貌似不是很需要(暂时还没弄明白)
配置linux内核
进入linux -*.*.*(“*.*.*”,代表版本号;linux -*.*.*代表路径)
sudo make ./menuconfig
linux -*.*.*$cp arch/arm/vexpress_defconfig ./.config
第一步,make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
第二步 ,进入配置界面进行配置
第三步,make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig(-j指使用电脑的几个cpu来同时编译)(第五版编译时长长达2小时)
最终完成查看生成了vmlinux
除去环境和需求库的问题最奇葩的莫过于第一步会显示:Your display is too small to run Menuconfig!
解决办法,在编译终端的菜单栏