一文说透Linux编译特定内核版本的方法(ubuntu和树莓派)

更多内容在

在做开发的时候,我们可能会针对某个内核版本进行驱动的编写。这个时候就需要把版本编译到这个特定的内核版本。本文介绍ubuntu和树莓派两种环境系统的内核编译方式

Ubuntu:

已编译到5.9.0内核为例

1 将内核安装包和内核配置config放到虚拟机或PC机下

2 更新apt源,并安装编译所需的依赖包

3 解压5.9.0内核安装包,将解压的文件夹移动到/usr/src/路径下

4 执行编译内核

注:network support ——》wireless ——》主要是第一个要置y,表示build in,把cfg80211编进内核。如果要对wifi驱动进行开发的话,这个编译是必须的

在menuconfig界面选择load,加载刚才导入的.config文件,即是最终使用的配置,无需做另外的内核裁剪,exit退出后

5 执行make -j3进行编译

6 安装内核

7 修改默认启动的grub配置

树莓派

1 树莓派上以编译4.14.y内核版本为例,首先从树莓派官网上下载rapsi的image,从linux内核上下载4.14.y的内核代码

2 在本地电脑安装成功树莓派imager后,双击打开,选择要安装的树莓派原生系统,并将SD卡插入到电脑上。选择烧录到对应的SD卡中即可

3 烧录树莓派Img

4 启动树莓派,安装linux Kernel编译需要的工具并编译kernel

将上面通过imager制作的镜像SD卡插到树莓派卡槽中,启动树莓派,然后会在屏幕上面进行一些简单的安装,一直点next下一步即可。完成后,树莓派桌面系统正式安装完成。在树莓派桌面系统中,打开bash 终端。按以下命令安装编译tools以及下载内核并编译:

安装gcc8

sudo apt-get install gcc-8 g++-8

进入/usr/bin目录,删除连接到gcc-10 gcc++-10的软连接,然后重新建立新的软连接到gcc-8和g++-8

sudo rm -f gcc g++

sudo ln -s gcc-8 gcc

sudo ln -s gcc++-8 g++

执行gcc –version查看版本是否成功

5 把4.14的内核上传到linux文件夹

chmod -R 777 linux

cd linux

make bcmrpi3_defconfig

make -j4 Image modules dtbs

以上编译成功后,安装替换kernel到/boot

sudo make modules_install

sudo cp arch/arm64/boot/dts/broadcom/*.dtb /boot/

sudo cp arch/arm64/boot/dts/overlays/*.dtb* /boot/overlays/

sudo cp arch/arm64/boot/dts/overlays/README /boot/overlays/

sudo cp arch/arm64/boot/Image /boot/kernel8.img

重启系统,查看是否是编译的kernel版本

sudo reboot

uname -a

树莓派的官网也有对应的说明,链接如下

https://www.raspberrypi.com/documentation/computers/linux_kernel.html

最近更新

  1. TCP协议是安全的吗?

    2024-03-25 01:56:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-25 01:56:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-25 01:56:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-25 01:56:01       20 阅读

热门阅读

  1. P8665 [蓝桥杯 2018 省 A] 航班时间-洛谷

    2024-03-25 01:56:01       20 阅读
  2. Python学习笔记05

    2024-03-25 01:56:01       17 阅读
  3. 数理最适化笔记2

    2024-03-25 01:56:01       19 阅读
  4. Electron 原生 UI 元素集成实践

    2024-03-25 01:56:01       18 阅读
  5. 啊丢的刷题记录(洛谷题单数组篇)

    2024-03-25 01:56:01       22 阅读
  6. 【MySQL数据库】二级内容整理

    2024-03-25 01:56:01       22 阅读
  7. Node.js 命令行实战:从入门到精通

    2024-03-25 01:56:01       21 阅读
  8. 大数据分布式计算引擎用虚拟CPU的核心原因?

    2024-03-25 01:56:01       19 阅读
  9. 编译执行篇

    2024-03-25 01:56:01       20 阅读
  10. 试题 算法训练 P0703

    2024-03-25 01:56:01       21 阅读
  11. Day02

    2024-03-25 01:56:01       19 阅读
  12. 无人机图像识别与分析

    2024-03-25 01:56:01       16 阅读
  13. 学习笔记 | 微信小程序项目day07

    2024-03-25 01:56:01       19 阅读