配置适合树莓派的linux内核(对内核的配置,编译,并将编译好的内核挂载到树莓派上)(面试)(在linux文件系统认知之前)

前言:来到这里,我们正式学习linux的内核的配置和编译。

一、首先我们先来了解一下树莓派等芯片带操作系统的启动过程
1.1 X86、Intel、windows等设备的启动过程
启动过程:电源- > BIOS -> windows内核 -> C,D盘的启动 -> 程序的启动(例如QQ的启动)

1.2 嵌入式产品(树莓派、mini2440、mini6410、nanopi、海思、RK(瑞芯微) )的启动过程
启动过程:电源 -> BootLoader (引导操作系统启动) -> linux内核 -> 文件系统(根据功能性来组织文件夹,带访问权限)-> 实实在在的嵌入式产品的启动(例如KTV点歌机)

1.3 安卓操作系统的启动过程
启动过程:电源 -> fastBoot/Bootloader/ -> linux内核 -> 文件系统 -> 虚拟机 -> HOME应用程序 -> 点击某图标打开某app

1.4 C51STM32(裸机,不带操作系统)的开发流程
不带操作系统的裸机开发是C语言直接操控底层寄存器实现相关业务。
业务流程型的裸机代码:
例如:遥控灯:while(1)
垃圾桶:WemosD1 LOOP(函数)
恩智浦智能车:stm32

以上内容虽然是偏向概念,但是在面试的时候也可以跟别人聊,可以增加你对嵌入式设备的了解

二、树莓派linux源码目录树的分析
linux内核源代码目录树结构详解

2.1 首先我们先来聊一下linux内核
linux内核大约由1.3w个C文件组成,1100w行代码左右
linux是开源的,免费的,linux开源社区由其工作者和爱好者共同进行维护

linux是一个开源的,支持多架构多平台代码(可以说是非常的牛逼的)
可以执行是非常高的

但是linux内核编译出来一般就是几M,一般是4M左右

因为是支持多平台多架构,所以在编译之前是需要进行配置的,配置成适合的目标平台来用

例如:ARM架构
海思,友善之臂,RK,树莓派,nanopi

X86架构

PowerPC
MIPS

三、树莓派linux源码的配置
首先我们先来了解一个问题:为什么要对linux内核进行配置呢?
答案:我们都知道驱动代码编写完后, 驱动代码的编译需要一个提前编译好的内核,那么进行内核的编译就必须要进行配置,配置的最终目标会生成.config文件,该文件指导Makefile去把有用的东西组织成内核。

3.0 交叉编译工具链的安装
由于我之前已经安装了交叉编译工具链所以省去了这一个步骤,如果没安装的参考前面交叉编译工具链的获得的博文

3.0.1 树莓派linux内核源码的下载
树莓派linux内核源码的下载网址
然后在下图黄色框内选择对应的版本下载,我的树莓派的版本是4.14.98-v7+,所以我选择的下载版本是4.14.y,最好下载到windows跟linux的共享文件夹里,这样在虚拟机里直接从共享文件夹里拷贝出来即可,然后cp /mnt/hgfs/sharefromwindows/linux-rpi-4.14.y /home/lhb/SYSTEM,然后将其解压
在这里插入图片描述

配置内核源码的三种方式

一般我们购买了芯片,厂家都会配linux内核源码,比如说我们买了树莓派,厂家就会向我们提供树莓派linux内核源码

配置config(以下的所有操作都是用到方式一这种cp厂家的config)

linux源码中有很多工程:
树莓派1的工程是bcmrpi_defconfig;
树莓派2跟3的工程是bcm2709_defconfig;

3.1 方式一
使用厂家提供的config进行配置(即 cp 厂家.config .config

查找厂家的config指令:find -name *_defconfig
在这里插入图片描述
在这里插入图片描述
然后在终端执行以下指令

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig

这个命令的作用就是获取bcm2709_defconfig的配置到config中来

除了以上的方式,我们也可以用最传统的方式:cp arch/arm/configs/bcm2709_defconfig .config

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值