ubuntu上编译Linux内核步骤
一、虚拟机的准备
1.下载Ubuntu镜像
Enterprise Open Source and Linux | Ubuntu
在最左边Ubuntu Desktop处点22.04LTS下载iso文件
2.在VMware上创建新的虚拟机
Ubuntu 20.04 虚拟机安装教程_柯基@的博客-CSDN博客_虚拟机安装ubuntu20.04
特别注意: 在"指定磁盘容量"这一步把"最大磁盘大小"设置为50G
如果忘记了或者已经设为默认的20G, 后续编译可能出现文件系统空间不足的情况
这种情况的解决办法: 首先在终端中输入如下命令查看文件系统的空间大小
df -h
如果提示文件系统空间不足而编译失败, 则会有一行的"已用%"为100%(或者百分比最大且容量最大的那一行, 如图应该是/dev/sda3而不是/dev/sr0)。记住这一行的名字。
关闭虚拟机,在""虚拟机设置"中,点击"硬盘",点击"扩展磁盘容量",设置为合适的大小.但是这个操作并不能扩展文件系统的大小,需要进一步设置。
开启虚拟机,在终端中输入如下命令安装分区管理工具gparted。
sudo apt-get install gparted
再输入属下命令启动gparted
sudo gparted
在这个页面中,找到刚才记住的那一行(如果没记住的话, 就是"文件系统"这一列为"ext4"的这一行). 点击这一行,右键,选择"调整大小/移动"
可以拖动上边的的条形框或者输入新大小来扩展
然后再输入命令查看文件系统的空间,就会发现不是100%了,这样就可以重新编译了
二、下载内核和必要的依赖
1.下载内核并解压
The Linux Kernel Archivesd
使用Ubuntu自带的火狐浏览器,点击最大的黄框下载. 或者找到你需要的版本
下载完后, 将其移动到/home/username/这个路径下, 将其解压
tar -xavf linux-5.19.8.tar.xz
2.替换源
输入如下命令, 在打开的文本编辑器将所有内容删除.
sudo gedit /etc/apt/sources.list
在https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/这个网站上找到对应版本的镜像源,将内容复制到文本编辑器中。记得保存
3.下载依赖
逐步输入如下命令
sudo apt-get update
sudo apt-get install make
sudo apt-get install gcc g++
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install libncurses-dev
sudo apt-get install build-essential
sudo apt-get install kernel-package
sudo apt-get install libssl-dev
sudo apt-get install libc6-dev
sudo apt-get install bin86
sudo apt-get install qttools5-dev
sudo apt-get install libelf-dev
三、编译并安装内核
1.查看当前内核版本
uname -r
2.清理之前编译的结果
每次重新编译,都要做这一步再重新开始
sudo make mrproper
sudo make clean
3.内核配置
进入刚才解压的文件夹, 输入如下命令进入配置
sudo make menuconfig
注意, 如果窗口不够大, 这个页面是打不开的, 会报错, 必须先把窗口调大! 安装VMware tools或者在Ubuntu的设置→显示器→分辨率中调大
进入此页面后可以根据需要进行修改,这里保持默认,(这里只能用键盘操作),Exit然后Yes即可.
然后输入进一步修改配置(非必须, 但因为每个人配置不同, 跳过有可能编译失败)
sudo gedit .config
按Ctrl+F, 搜索 CONFIG_SYSTEM_TRUSTED_KEYS和CONFIG_SYSTEM_REVOCATION_KEYS, 删除这两条引号中的内容(而不包括引号). 记得保存
4.编译内核
这一步需要一两个小时甚至更久,完成后最后几行如果没有提示有错误,就是成功
可以分别编译
sudo make bzImage -j4 //20min左右
sudo make modules -j4 //2h左右
也可以一步到位
sudo make -j4
"-j4"是指定4个线程进行编程, 加快速度, 可以改成"-j8"等, 也可以不加
5.安装
sudo make modules_install
sudo make install //将自动修改GRUB配置文件
6.重启测试
sudo reboot
uname -r
重启后, 查看当前内核版本, 如更新为下载的新内核版本, 成功
ubuntu上编译Linux内核步骤相关推荐
- Mac上编译Linux内核时找不到ncurses
Mac上编译Linux内核时找不到ncurses 前言 Linux源码零零散散看了一些,东西太多.今天突然有兴趣想去编译一下Linux内核,就去网上找了一些资料,由于我是用的Mac,然后并没有找到好的 ...
- 教你在Ubuntu上安装Linux内核6.1
终于来了!你现在可以在你的Ubuntu Linux电脑上,或者在基于Ubuntu的发行版上安装最新.最棒的Linux 6.1内核系列了.下面是方法! 作为最新的稳定内核系列,Linux 6.1,也将是 ...
- Ubuntu中编译linux内核后使用make menuconfig报错的解决办法
第一次在Ubuntu中编译完内核使用make menuconfig时出现如下错误 topeet@ubuntu:~/iMX6UL/linux-2.6-imx-rel_imx_4.1.15_1.2.0_g ...
- Redhat7.2上编译Linux内核源码
下载linux源码包:https://git.kernel.org/pub/scm/virt/kvm/kvm.git/snapshot/kvm-4.17-1.tar.gz (这是包含kvm开发版本的l ...
- 编译linux内核步骤
1.安装内核 如果内核已经安装(/usr/src/目录有linux子目录),跳过 如果没有安装,在光驱中放入linux安装光盘,找到kernel-source-2.xx.xx.rpm文件(xx代表数字 ...
- ubuntu下编译linux内核
http://hi.baidu.com/lcplj123/item/d47fc1d6000b554efb5768aa not kaopu!!! 当遇到gaving up waiting for roo ...
- 64位ubuntu 12.04编译linux内核提示mkimage command not found
今天心血来潮,想编译以下linux内核来玩玩.一开始编译x86的版本,遇到了openssl/opensslv.h文件缺失的问题,经过一番折腾,顺利解决(解决过程请参见我的另外一篇博客"lin ...
- 编译安装linux内核步骤
编译安装linux内核步骤: 一.获取内核源码 源码网址:www.kernel.org 二.解压内核源码 首先以root帐号登录,然后进入/usr/src子目录.如果用户在安装Linux时,安装了内核 ...
- 如何在Ubuntu/CentOS上安装Linux内核4.0
如何在Ubuntu/CentOS上安装Linux内核4.0 大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为'Hurr durr I'm a sheep'的 ...
最新文章
- 安卓蓝牙键盘按键映射_双层按键功能自定义:魔蛋68蓝牙双模机械键盘体验
- Android开发之通过反射获取全局的application
- C++---肿瘤面积
- 洛谷 1297 [国家集训队]单选错位——期望
- 是谁榨干了 Android 设备的电量和流量?!| 极客头条
- CentOS查看硬件情况
- 欢迎加入我们的架构师社群
- QCA9377驱动调试
- linux pt远程下载,Linux下使用Transmission下载BT/PT(无需Gnome)
- 第一章	HTML基础
- Cyclone IV代FPGA的可编程逻辑资源
- 视频剪辑技巧,视频旋转/翻转视频最简单的操作
- Flask 和 requests 搭建一个简单的API服务
- 【Linux】僵尸进程(Z状态)和孤儿进程
- 删除微信文件服务器,局域网微信存储空间怎么清理
- Spring Boot Jar包运行指定配置文件
- linux命令总结-ls
- 2022-05-18 牛客网每日选择题--前端
- 杀手机器人的漫长过程继续
- WannaCry是什么 如何发起攻击
热门文章
- Unity游戏开发官方入门教程:飞机大战(二)——创建飞船对象
- Microsoft WiFi与Skype WiFi有什么不同?
- Linux安装、使用Sleuth kit/Autopsy(分析磁盘映像和恢复文件的开源取证工具)
- ce修改服务器的数据,ce修改游戏服务器数据库
- 凸包算法理解——基于MATLAB代码
- Python七天作业
- 仲恺农业工程学院计算机专业怎么样,仲恺农业工程学院好就业吗?附学校就业率最高的专业名单...
- easyExcel 实现简单的读写操作
- 实现多行显示省略号和兼容的解决办法
- 你的IoT数据究竟该“何去何从”?