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
版权声明:本文为博主原创文章,转载请附上博文链接!
linux内核打印前有buildroot,buildroot-linux内核相关推荐
- linux中目录前 表示什么意思,linux的命令行前面的root@linux~ #中的每个部分代表什么意思?...
首先这个属于Linux中的$PS1的变量,你可以通过 echo $PS1查看你当前的变量值. 默认的PS1变量值是 [\u@\h \W]\$,每个参数的含义 "root":表示当前 ...
- linux内核打印前有buildroot,[教程]使用buildroot完全自定义自己的embedded linux系统(nand)...
编译环境: ubuntu 12.04(x86_64) 目标环境: 1) linux-3.4内核 2) buildroot 2013-02 3)系统运行在nand上 固件制作步骤说明: 步骤一:创建自己 ...
- linux只提取前两个目录名,Linux技巧:介绍从目录路径获取文件名和目录前缀的方法...
使用 dirname 命令获取路径名的目录部分 在 Linux 中,可以使用 dirname 命令获取路径名的目录部分,不包含路径名最后的文件名. 查看 man dirname 的说明如下: dirn ...
- linux只提取前两个目录名,Linux 文件和目录操作命令(17个)
文件和目录操作命令(17个) 1ls ls命令的作用是以不同的方式,查看(列出)目录内的内容. [功能说明]:list directory contents [语法格式]:ls [OPTION]... ...
- linux打补丁前如何备份,关于Linux下给文件打补丁
在linux下给文件打补丁,需要用到命令diff和patch,下面就分别介绍这两个命令,并演示一个例子. 一.diff命令 diff命令用于比较两个文件或目录的差异,可以结合重定向命令把差异记录下来, ...
- linux禁用打印切换服务命令行,linux下启用或禁用打印机的打印操作
启用或禁用打印机的打印操作 1.enable 和 disable 命令 enable 和 disable 命令控制打印机打印还是停止打印打印队列中的请求.当您禁用打印机时,打印机将停止打印队列中的请求 ...
- buildroot:Linux平台构建嵌入式Linux系统的框架
buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfig配置文件构成的.你可以和编译Linux内核一样,通过buildro ...
- 第3章 Linux内核调试手段之内核打印
开始 前面说的话 在我写代码的生涯里,我看到过很多大神炫耀自己的调试手段,也看到很多大神写过非常厉害的代码,我认为,相比于写代码,调试更加重要,而那些能在写代码的时候就加入了自己的调试信息的,就更加厉 ...
- buildroot arm linux,Buildroot 构建文件系统
简介 Buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfig配置文件构成的.你可以和编译Linux内核一样,通过buil ...
最新文章
- 安卓系列七(广播机制)
- 我的车模我做主 - 精美的车模作品
- Python统计网站访问日志log中的IP信息,并排序。。
- 【.NET Core项目实战-统一认证平台】第五章 网关篇-自定义缓存Redis
- 使用Zeigarnik效应来学习编码更快
- php高德地图坐标在多边形,多边形的绘制和编辑
- word2vec中的数学模型
- winlogon病毒清除
- 单例模式-序列号生成器
- 4.6 数值分析: P阶收敛的迭代法
- 快速入门丨篇四:如何进行运动控制器与触摸屏通讯?
- 谷歌放弃了IE6/The Google phasing out support for IE6.0
- resultful规范使用
- termux安装docker
- C++ constants
- java debug调试怎么用?
- 【NOIp普及组 2009】分数线划定
- 微信群影视机器人登录使用教程
- html制作一个动态仪表盘,用Excel做一个动态仪表盘,会这个绝对是大神
- Windows11 查找本地服务方式
热门文章
- 微信小程序 WXBizDataCrypt 解密 报错
- mybatisplus坑 insert标签insert into select无参数问题
- MySQL Incorrect string value: 有可能是字符串长度不够了
- poi excel文档生成与读取
- POJ 1276 完全背包
- spring初始化bean时执行某些方法完成特定的初始化操作
- Windows系统环境下Solr之Java实战(三)使用solrJ管理索引库
- grep, egrep, fgrep笔记
- Windows修改注册表按键映射
- struts中文问题,struts国际化问题的终极解决方案