如何在Ubuntu上下载,编译,安装,卸载完整内核源码
1.电脑环境准备:Windows笔记本电脑,本人运行Windows 10 Pro, 64-bit系统安装VMware 本人安装的是VMware® Workstation 16 Pro在https://ubuntu.com/#download下载Ubuntu desktop,本人下载的是20.04 LTS在VMware里面安装Ubuntu linux 操作系统在第一次加载Ubuntu时,遇到点小麻烦
1.电脑环境准备:
- Windows笔记本电脑,本人运行Windows 10 Pro, 64-bit系统
- 安装VMware 本人安装的是VMware® Workstation 16 Pro
- 在https://ubuntu.com/#download下载Ubuntu desktop,本人下载的是20.04 LTS
- 在VMware里面安装Ubuntu linux 操作系统
在第一次加载Ubuntu时,遇到点小麻烦,VMware在加载Ubuntu的过程中,在安装open-vm-tool时卡住不动,无法继续,Baidu一下,用下列方法解决:
VMware的快速安装,会现在目标文件夹中生成一个autoinst.iso文件,通过这个文件来进行快速安装,系统安装完成后,会产生一个操作,安装vm-tools。就是这个操作,让系统无法打开或者卡主很久很久。
要解决这个问题,需要做如下步骤:
1.创建完成后把“创建后开启此虚拟机”的对勾去掉,先不要安装系统。
2.在设置的ubuntu安装目录中先把虚拟光驱加载的自动安装文件找到autoinst.iso,然后删除。(只能是自定义安装)
3.安装完系统后,vmware-tools是默认没有安装的,需要自己安装。
- Ubuntu 在第一次启动时,会加载很多软件和插件,需要耐心等待,或者跳过,后续再安装。
2.安装编译环境:
- 设置ubuntu软件更新的下载服务器,因为默认的服务器可能会导致下载软件速度很慢,甚至无法下载。我们可以设置ubuntu软件更新服务器地址。
方法1:在ubuntu桌面打开Software&Updates -> Ubuntu Software->Download from 选择Others...->Choose a Download Server -> China -> mirror.aliyun.com(或者其他)->Close
方法2: $ sudo vim /etc/apt/sources.list 更改其中的服务器地址。
- 下载编译所需软件 $sudo apt-get install gcc make libncurses5-dev libssl-dev build-essential openssl bison flex libelf-dev libelf-devel elfutils-libelf-devel
3.下载源码:
- (可选)检查当前内核源码$ uname -a
- 查看源内的内核源码类表$ apt-cache search linux-source
- 下载安装所需的内核源码 $ sudo apt-get install linux-source-5.4.0。安装完成后,在/usr/src/ 目录下会出现两个新文件,一个为linux-source-5.4.0文件夹,另外一个为 linux-source-5.4.0.tar.bz2
- 进入/usr/src 文件夹内,解压到$ tar jxvf -f linux-source-5.4.0.tar.bz2
4.编译源码:
- $ cd /usr/src/linux-source-5.4.0
- $ sudo su
- $ make mrproper 删除所有的编译生成文件、内核配置文件(.config文件)和各种备份文件, 几乎只在第一次执行内核编译前才用这条命令。
- $ make clean 删除大多数的编译生成文件,但是会保留内核的配置文件.config,还有足够的编译支持来建立扩展模块。所以你若只想删除前一次编译过程的残留数据,只需执行make clean命令。
- $ make oldconfig 现有的内核设置文件基础上建立一个新的设置文件,只会向用户提供有关新内核特性的问题,在新内核升级的过程 中,make oldconfig非常有用,用户将现有的配置文件.config复制到新内核的源码中,执行make oldconfig,此时,用户只需要回答那些针对新增特性的问题。或者$ make menuconfig。
- $ make bzImage -j16 编译内核。或者$ make 相当于make bzImage加make modules,加-j 16 意思启动16个线程编译。 成功会提示:Kernel: arch/x86/boot/bzImage is ready (#1) 可在/usr/src/linux-source-5.4.0/arch/x86/boot/中找bzImage
- $ make modules 生成相应的模块
5.安装内核:
1. $ make modules_install 将相应的模块拷贝到对应的目录下
2. $ make install 该命令的作用是将.config,vmlinuz,initrd.img,System.map文件到/boot/目录、更新grub,检查/boot/grub/grub.cfg,menuentry中,5.4.124的内核版本已生成。3. 配置启动项$ sudo vim /etc/default/grub, 将GRUB_TIMEOUT = 0 改为GRUB_TIMEOUT = -1,下次启动Ubuntu,bootload会提示选择哪一版内核进行启动。4. $ reboot后,可选择新生成的内核进行加载启动后,再次检查内核版本, 为5.4.124,成功运行
6. 删除内核
- 查看当前安装的内核 $ dpkg --get-selections | grep linux
- $ apt-get remove linux-source-5.4.0或者$ apt-get purge linux-source-5.4.0, 移除后启动选项中还会有卸载的内核选项。
- $ update-grub 更新grub这样在系统启动的时候就不会有卸载掉的内核了这样就彻底的卸载了问题。
- $ dpkg --get-selections|grep linux 有时候这个命令找不到刚才安装的内核
- $ rm –rf *5.4.124* 删除boot下面和要删除的内核版本相关的文件
- $ update-grub
到此,整个内核编译,安装,卸载流程全部完成。
更多推荐
所有评论(0)