关闭

Buildroot构建指南——Linux内核

标签: buildrootMakefilelinux kernel嵌入式git
3530人阅读 评论(0) 收藏 举报
分类:

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 KernelLinux 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内核了。

0
1
查看评论

buildroot认知

什么是buildroot Buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器...
  • xixihaha331
  • xixihaha331
  • 2017-03-16 11:14
  • 1146

使用buildroot搭建linux文件系统

(文件系统搭建,强烈建议直接用buildroot,官网上有使用教程非常详细buildroot官网) 文件系统通常要包含很多第三方软件,比如busybox,tslib,qt,vim,交叉编译工具等,为了避免繁杂的移植工作。buildroot应运而生。通过menuconfig配置我们需要的功能,不...
  • MetalSeed
  • MetalSeed
  • 2015-05-01 22:58
  • 8714

buildroot的使用简介

buildroot简介 1 Buildroot at a glance 2下载 3目录说明 使用 1 平台配置 2 Toolchains in Buildroot 21 external toolthain 22 Buildroot toolchain 3 Root filesystem in Bu...
  • flfihpv259
  • flfihpv259
  • 2016-07-22 17:57
  • 3313

linux buildroot 配置

# # Automatically generated make config: don't edit # Buildroot 2011.02-dirty Configuration # Tue Jun 28 10:07:00 2016 # BR2_HAVE_DOT_CONFIG=...
  • lbaihao
  • lbaihao
  • 2016-11-19 21:54
  • 1400

buildroot使用详解

buildroot使用详解  卧似长剑  2016-11-13  原文 为什么要使用buildroot? (文件系统搭建,强烈建议直接用buildroot,官网[http://buildroot.uclibc.org/]上有使用教程非常...
  • d_xueliang
  • d_xueliang
  • 2017-06-27 21:16
  • 265

Buildroot构建指南--快速上手与实用技巧

Buildroot官方全英文使用手册的链接是https://buildroot.org/downloads/manual/manual.html,需要知道每一个细节的朋友,可以仔细查阅,这篇文章只是我自己从中提炼出来的一下快速上手的技巧。 如何在现有项目加入自己的APP Buildroot从零开始...
  • zhou_chenz
  • zhou_chenz
  • 2016-08-27 16:20
  • 10497

Buildroot构建指南——工具链

Linux系统的交叉编译工具链用来将源代码变成bin文件或者库文件的一个软件。一般大家默认工具链等于gcc或者arm-linux-gcc,但是实际上,gcc只是工具链的编译器部分,不是全部,制作一个工具链的原材料,除了gcc,还需要linux内核,libc库等一系列的软件包。所谓万事开头难,如何在B...
  • zhou_chenz
  • zhou_chenz
  • 2016-08-28 15:50
  • 4850

使用buildroot来编译文件系统

使用buildroot来编译文件系统 2015-1-9  用buildroot来制作文件系统很方便,编译出来的文件系统是直接可用的,不用添加脚本等麻烦的工作,很多的库和app都可以 直接添加到文件系统里边,如常用的udhcpc,tftp等.本文以以ZYNQ 7010为例,制作一个ram...
  • luoqindong
  • luoqindong
  • 2015-01-15 10:30
  • 6886

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

Buildroot构建指南——根文件系统(Rootfs) Buildroot的Rootfs构建流程有一个大框架,有些部分是Buildroot系统做好的,有些细节需要自己来实现,Rootfs也是Buildroot中最为复杂的部分。
  • zhou_chenz
  • zhou_chenz
  • 2016-08-29 23:38
  • 5456

Buildroot 编译器配置

buildroot编译时需要先make personal-config-files,然后make。 make personal-config-files执行完后会在.config中生成临时的配置共buildroot使用。    1)在buildroot的configs文...
  • seucbh
  • seucbh
  • 2014-01-10 15:24
  • 1603
    个人资料
    • 访问:47800次
    • 积分:668
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:0篇
    • 译文:0篇
    • 评论:6条
    最新评论