Buildroot可以从Linux Kernel的官网(kernel.org)下载并编译内核,也可以使用用户自己的定制化内核。
使用官方内核

使用官方的内核构建系统非常简单,事实上,mini2440_defconfig就是采用官方的内核进行构建的。

make menuconfig --> Kernel --> KernelVersion中,你可以选择Latest Version也就是最新版本的内核进行构建(目前是4.5.4),也可以选择Customer Version也就是以前的稳定版进行构建。

一般会选择一个Customer Version的稳定版本。mini2440选择的是3.0.4这个比较旧的版本。

注意图2中的Defconfig name选项,这里填写了mini2440,这是因为mini2440实际上是在Linux官方的源代码树中被维护的,Linuxkernel官方的源代码里就有mini2440的配置文件,所以这里选上mini2440,内核编译时,会直接使用mini2440在Linux Kernel源码树中的配置文件进行编译。

Figure1  配置Linux Kernel的来源

Figure2 mini2440的官方内核版本配置参数

配置完成后,保存退出。直接make linux ,buildroot就能从Linux kernel官网下载编译你所需的内核就好。
构建定制化的内核

很多时候,我们需要持续维护和开发自己的Linux内核定制版本,而不是直接到官网下一个内核来用。像友善Tiny4412开发板提供的定制版Linux-3.5内核,经过了大量的补丁和修改,兼容Linux和Android两套系统,部分源代码也不公开,接下来就以tiny4412定制化的Linux-3.5内核为例,介绍如何在Buildroot中构建定制化的内核。

我使用的是linux-3.5-20151029.tgz这个官方提供的Linux 内核压缩包。构建步骤如下:

1.      在make menuconfig --> Kernel中,Kernel Version选择Custom Gitrepository,即采用git仓库来维护管理定制化的Linux Kernel源代码。当然,这个方法默认你懂得如何使用git工具。如果不想用git的方法来维护,你也可以选择Local Directory等方法,这样应该是用file的方法把Linux Kernl源代码cp到Buildroot中,具体可以自己尝试。

采用git仓库的方法,url of custome repository即git仓库的链接地址自然要选上,图中是我本地git仓库的地址,这个读者根据需要进行修改。

Version由你要构建的定制化Linux内核的git  tag号决定,我这里填master,则表示buildroot会去本地LinuxKernel的git仓库master分支取最新版本的源代码进行编译。

Configuration file path即Buildroot中保存的一份LinuxKernel配置文件的存放位置,因为Buidroot在上层可以在编译时把这份配置文件传递给Linux Kernel,Linux Kernel目录下的.config文件进行配置。一般这份配置文件我们都放在Buildroot的board/文件夹里面,tiny4412是arm架构的,因而需要在board/arm/文件夹下面创建tiny4412文件夹,然后将友善官方在Linux内核目录中保存的tiny4412_linux_defconfig这份配置文件存放在board/arm/tiny4412/文件夹下。编译的时候,Buildroot会去这里取配置文件,我们也可以在这里作为上层修改维护内核的配置。

Figure3 定制化Linux Kernel 的menuconfig --> Kernel配置

2.      尽然采用的是git仓库的方法管理定制化Linux Kernel的源代码,则需要在本地创建git仓库保存和管理真正的源代码。

a)       git  init--bare /mnt/sdb/git_repo/linux-3.5-tiny4412创建本地的git 仓库

b). 然后在一个空文件夹中,gitclone /mnt/sdb/git_repo/linux-3.5-tiny4412

c). 再把官方给的linux-3.5-20151029.tgz中的源代码,解压到空文件夹中

d). 然后git add –A ,gitcommit  -m ”add code”, git push origin master.

这样就可以把Linux Kernel源代码备份到本地的git 仓库中来维护,buildroot也可以在这里拿到Linux源代码

3.      修改配置文件和构建脚本。实际上Linux内核Config变量选项已经默认选上了,不需要修改了,如果你还要定制化一些配置选项,可以慢慢学习修改linux/linux.mk的构建脚本。

经过以上修改,make linux就能 编译构建你的定制化Linux内核了。

原文链接:https://blog.csdn.net/zhou_chenz/article/details/52348217

Buildroot构建指南——Linux内核相关推荐

  1. Buildroot构建指南--Overview

    使用Buildroot,让嵌入式Linux系统构建更加便捷.本文以Buildroot-2016.05的版本为基础来讲解,不同版本之间有细节差异,需要根据读者使用的版本自行调整. Buildroot是什 ...

  2. Buildroot构建指南——工具链

    Linux系统的交叉编译工具链用来将源代码变成bin文件或者库文件的一个软件.一般大家默认工具链等于gcc或者arm-linux-gcc,但是实际上,gcc只是工具链的编译器部分,不是全部,制作一个工 ...

  3. Buildroot构建指南——根文件系统(Rootfs)

    Buildroot的Rootfs构建流程有一个大框架,有些部分是Buildroot系统做好的,有些细节需要自己来实现,Rootfs也是Buildroot中最为复杂的部分. Rootfs的构建流程概述 ...

  4. 教你用 buildroot 构建根文件系统

    如果想要构建完整的根文件系统,大家一般都是使用buildroot,它不仅包含了 busybox 的功能,而且里面还集成了各种软件,需要什么软件就选择什么软件,不需要我们去移植. 嵌入式系统三大部分:b ...

  5. Buildroot 构建根文件系统(Jz2440)

    1. Buildroot 简介      Buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfig配置文件构成的.你可以和 ...

  6. 如何在Ubuntu/CentOS上安装Linux内核4.0

    如何在Ubuntu/CentOS上安装Linux内核4.0 大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为'Hurr durr I'm a sheep'的 ...

  7. linux内核 can总线,Linux Canbus调试笔记

    http://blog.csdn.net/flydream0/article/details/8161418 CAN总线在嵌入式Linux下驱动程序的实现 http://www.21ic.com/ap ...

  8. nano spi flash linux构建指南

    title: nano spi flash linux构建指南 前言 本文介绍Licheepi nano SPI Flash镜像的制作过程.主要为小白首次入门做讲解! 制作嵌入式linux系统主要分四 ...

  9. linux内核打印前有buildroot,buildroot-linux内核

    Buildroot可以从Linux Kernel的官网(kernel.org)下载并编译内核,也可以使用用户自己的定制化内核. 使用官方内核 使用官方的内核构建系统非常简单,事实上,mini2440_ ...

最新文章

  1. laravel mysql json_mysql – Laravel JSON where子句不区分大小写
  2. Acwing第 13 场周赛【未完结】
  3. pyrealsense2 sensor.get_supported_options()(获取当前sensor支持的参数)
  4. TCP首部报文段格式
  5. scanf 输入加逗号(或者不加逗号)出现的异常及解决方案
  6. 调研了32家银行,总结出了银行BI大数据平台建设的一套模式
  7. springboot 整合 mvc 配置外部静态资源
  8. 基于php网上书店存在问题及解决方案,基于PHP的网上书店系统设计与实现
  9. js定时刷新页面数据
  10. TC8:UDP_FIELDS_01-16
  11. css3图片放大缩小过度动画
  12. pip安装出现Script file ‘D:\ProgramData\Anaconda3\Scripts\pip-script.py‘ is not present.
  13. Windows 11 已修复 AMD CPU 性能问题
  14. HAL库和标准库的区别
  15. 夜神模拟器 版本下载
  16. matlab符号对象
  17. Flink CDC 将MySQL的数据写入Hudi实践
  18. 蓝牙BLE4.0-HM-10设备配对指南
  19. Mysql事务隔离机制
  20. 【oracle存储过程】-编写及调用常见问题

热门文章

  1. 干货总结:I2C总线详细要点
  2. HDLBits答案(2)_Verilog向量基础
  3. box2d 碰撞检测_(译)如何使用box2d来做碰撞检测(且仅用来做碰撞检测)
  4. java list 删除元素_Java面试题:List如何一边遍历,一边删除?
  5. oracle归档日志保留时间,Oracle 11g Data Guard 备库归档日志清理脚本(保留一周归档)...
  6. chrome remote desktop_无损音乐下载神器!洛雪音乐助手lx-music-desktop
  7. SSD浅层网络_目标检测SSD
  8. html文本框自动赋值,js给文本框赋值 value与innerHTML
  9. 常用的xshell用vi命令编辑文本
  10. UIImagePickerController和UIAlertController结合使用