记一次linux内核编译

仅作记录,小白萌新,大佬勿喷


环境

ubutun 20.04

VMware Pro 15.5

Linux内核版本 5.6.14

过程

    复制内核压缩包到/usr/src/并解压

sudo cp linux-5.6.14.tar.xz /usr/src/

sudo tar -xvJf linux-5.6.14.tar.xz

        尝试make,根据提示安装所需组件

sudo apt install make

sudo apt-get install libncurses5-dev libncursesw5-dev

sudo apt install flex

sudo apt install gcc

sudo apt install bison

sudo apt insatll vim

    开始设置menuconfig

sudo make menuconfig

    保存之后开始make

sudo make -j8

    出现错误


记一次linux内核编译_第1张图片

调整虚拟机相关设置后重新执行make,报错

(此处我重装虚拟机,执行上面的指令后出现了新的错误


记一次linux内核编译_第2张图片

解决方法:

sudo apt-get install libssl-dev

再次make,等待


记一次linux内核编译_第3张图片

在此处停顿,稍等片刻,会继续运行。


记一次linux内核编译_第4张图片

运行完成,用时约一小时。

sudo make modules_install

sudo make install

完成后,已经把内核源码编译成内核镜像,并且拷贝到了引导目录下。


建立虚拟盘,如果版本号后面跟的有其他东西的话也要加上

sudo update-initramfs -c -k 5.6.14

修改grub.cfg

grub.cfg在/boot/grub/目录下

复制一段,修改斜体加粗部分,保存退出。

menuentry 'Ubuntu, with Linux 5.4.0-31-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-31-generic-advanced-52fda4f0-9dea-4033-bb65-8d41e475565b' {

                recordfail

                load_video

                gfxmode $linux_gfx_mode

                insmod gzio

                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi

                insmod part_msdos

                insmod ext2

                set root='hd0,msdos5'

                if [ x$feature_platform_search_hint = xy ]; then

                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  52fda4f0-9dea-4033-bb65-8d41e475565b

                else

                  search --no-floppy --fs-uuid --set=root 52fda4f0-9dea-4033-bb65-8d41e475565b

                fi

                echo    'Loading Linux 5.4.0-31-generic ...'

                linux  /boot/vmlinuz-5.4.0-31-generic root=UUID=52fda4f0-9dea-4033-bb65-8d41e475565b ro find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US quiet

                echo    'Loading initial ramdisk ...'

                initrd  /boot/initrd.img-5.4.0-31-generic

        }

重启


记一次linux内核编译_第5张图片

直接选择resume


如果不修改grub.cfg,可以修改/etc/default/grub


记一次linux内核编译_第6张图片

将GRUB_TIMEOUT注释掉

保存退出

执行

sudo update-grub

重启,按esc,进入高级选项,可以选择内核。

参考资料

https://blog.csdn.net/qq_41911710/article/details/102823579

https://blog.csdn.net/qq_38428855/article/details/102854322

https://www.jianshu.com/p/98fe46eec942

https://blog.csdn.net/ibless/article/details/82349507

你可能感兴趣的:(记一次linux内核编译)