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

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

---------------------

作者:zhou_chenz

来源:CSDN

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

版权声明:本文为博主原创文章,转载请附上博文链接!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POJ 1077 Eight

题意:经典的八数码3 3*3的格子,里面有1~8这8个数字,还有一个空格x,移动空格的位置,直到移到1~8按顺序排好,输出移动的序列。 解法:看到题果断写了个广搜……然后T了……百度了一下说广搜虽然慢了…

成都软件工程师python_为什么每个软件工程师都应该学习Python?

为什么要写一篇文章告诉大家去学习python?最受欢迎的编程语言不是JAVA么?的确,TIOBE指数显示JAVA依然是最受欢迎的编程语言,但是Python的崛起不可小觑,请看4月份最新的TIOBE指数其实从2016年起,Python就已经…

linux修改某个用户的数组,linux-shell编程1:变量和数组

Shell用户与系统内核之间交流平台Shell类型/bin/sh/bin/bash(系统默认bash)/bin/tcsh/bin/csh/etc/shells 放置当前系统可用shell为什么需要shell编程1.减少繁琐工作的重复进行,减少错误2.提高工作效率3.事态的批量化进行Bash特点功能1.查看命令历史(1000条)history…

erlang OTP中的四大behaviour fsm的例子

下面是一个fsm的例子,代码如下: 1 -module(code_lock2).2 3 -behaviour(gen_fsm).4 -export([start_link/1]).5 -export([button/1]).6 -export([init/1, locked/2, open/2]).7 -export([code_change/4, handle_event/3, handle_info/3, handle_sync_eve…

node python复用代码_python-代码复用(函数、lambda、递归、PyInstaller库)

一、函数1、函数定义def 函数名(参数列表):2、返回值 return返回值可以有多个,其实是返回一个tuple##多个返回值def sumDiff(x,y):return xy,x-yn1,n2 eval(input(输入两个数:))s,d sumDiff(n1,n2)print(和为{},差为{}.format(…

关于linux内核的有关叙述中,下列关于嵌入式Linux系统内核的叙述正确的是()。

听力原文: A $150 million project to replace all of the vertical suspension cables on the 100-year-old Manhattan Bridge will cause occasional weekend disruptions in subway service and require closings of the bikeway and some traffic lanes for par…

WebStorm 预览时把浏览器地址localhost 改成IP

最近在使用WebStorm时,预览网页时地址总是显示的 http://localhost:63342/... ,如果要调试其它设备感觉很不方法,此时肯定首先想到的亲爱的度娘,但是貌似没有真正很解决问题的(可能是我搜索方法不对)。最后…

通用即插即用监视器驱动下载_电脑设备驱动程序有问题,教你3招,快速修复...

驱动程序允许你的设备与Windows 10进行通信。计算机必须安装最新版本的驱动程序才能正常运行。设备驱动程序是一种特殊的软件程序,它控制连接到计算机的特定硬件设备,设备驱动程序对于计算机促进系统与所有已安装程序或应用程序之间的通信至关重要&#…

python在线投票系统讲解_在线投票系统功能分析

网上投票系统的功能一、功能概述(1)客户模块客户模块主要是添加投票项目信息,比如投票项目的题目,选项以及系统配置的要求。(2)新闻模块新闻模块主要是一些关于本系统的新闻信息,其中包括新闻显示和添加删除模块。(3)留言薄模块留言薄模块主要…

linux内存管理的主要概念是虚拟内存,你知道linux内存管理基础及方法?

描述一、基本概念(1)物理内存和虚拟内存物理内存:系统硬件提供的真实物理内存虚拟内存:利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为swap,swap类似于windows的虚拟内存。1、linux的内存管理采取的分页存取机制…

R plot图片背景设置为透明_R语言入门第十二讲:基础绘图(二)------plot与par函数(1)...

上一次给大家简单展示了plot函数的用法,以及par函数的使用。今天我们继续应用这两个函数,看看它的其他功能。下面这个图是数据的一部分[1]。我一直认为,作图简单,但关键是要知道数据在数据库中的格式,才能更好的应用到…

qqkey获取原理_【逆向】QQkey盗号木马原理分析

一、简介QQkey是一段字符串,通过这段字符串在没有QQ登录密码的前提下你依然能够在浏览器中对别人QQ空间、邮箱等应用进行随意访问和操作。现在市面上已经有很多使用易语言编写的盗号木马,专门盗取别人的QQkey,通过QQkey改绑关联了该邮箱的Ste…

visual studio 2015 搭建python开发环境,python入门到精通[三]

在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo,这里略带一句,其实就"学习python"而言,比较建议使用pycharm,pychar…

linux 用脚本建分区,脚本创建磁盘分区

首先最好添加一个空白的磁盘,以免对原数据产生破坏,若果不想添加磁盘也可以,用一个里面数据无关紧要的磁盘,当然前提是必须要对该磁盘内已有的分区进行清空,方法后面第三步会有1.先看脚本内容:[rootlocalho…

如何给打印机墨盒加墨

今天打印东西突然遇到问题了,显示墨盒黑色没墨了,网上一搜,整套的墨盒大几十,随手换了一个关键词 墨盒墨水 这下不到十块钱解决,正好锻炼下自己的动手能力(其实就是穷嘛。。。) 接下来就分享下动…

三轴加速度传感器和六轴惯性传感器_六轴传感器和三轴传感器的区别

六轴传感器和三轴传感器的区别重力重力传感器就是利用了其内部的由于加速度造成的晶体变形这个特性。由于这个变形会产生电压,只要计算出产生电压和所施加的加速度之间的关系,就可以将加速度转化成电压输出。当然,还有很多其它方法来制作加速…

全局莫兰指数_空间自相关 | 莫兰指数

空间自相关:是指一些变量在同一个分布区内的观测数据之间潜在的相互依赖性。其中,自相关中的“自”表示当你进行相关性观察统计量,是来源于不同对象的同一属性。Tobler(1970)曾指出“地理学第一定律:任何东西与别的东西之间都是相…

宏函数和函数的区别

转载自: http://www.ccidnet.com/2010/0709/2110463.shtml 1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型. 2. 宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值…

linux vi 排序命令,10 个你必须掌握的超酷 VI 命令技巧

摘要:大部分Linux开发者对vi命相当熟悉,可是遗憾的是,大部分开发者都只能掌握一些最常用的Linux vi命令,下面介绍的10个vi命令虽然很多不为人知,但是在实际应用中又能让你大大提高效率。在使用vi 编辑器时—无论是初次…

python微信机器人部署服务器_玩法收藏/云服务器/零基础微信机器人实践( Python )...

最近想做个微信机器人,主要是为了个人方便。在腾云阁发现这个教程,得到了一些启发。(修改转载已取得腾讯云授权)技术路径和实现思路首先编程语言使用了 Python , Python 语法简洁、第三方扩展丰富,也因为这里采用的微信消息框架 i…