鉴于自己制作根文件系统太麻烦了,所以想用buildroot管理uboot,kernel,另外还可以自动生产rootfs,于是花了两天研究了下buildroot的框架和使用,在自己的2440开发板上也跑起来了,故整理成文档,以便自己将来忘记的时候能参考下:

源码下载,我下载的是2018.02.3版本,官方下载地址:http://buildroot.org/downloads/

由于我是玩的JZ2440的板子,故我就以这个板子作为蓝本说明:

1.cd到buildroot根目录下。

2.首先查看当前buildroot支持哪些单板:

a.去configs/目录下直接查看。

b.在根目录下执行make list-defconfigs。

3. 由于我的板子是比较老的s3c2440的板子,于是只好我自己创建了,执行make menuconfig,一项一项的去设置:

a.Target options:

b.Build options:

暂时保持默认即可。

Toolchain:

Toolchain type                                         -------->  External toolchain                  #因为我使用自己安装的toolchain

Toolchain                                                 -------->  Custom toolchain                  #客户定制的工具链

Toolchain origin                                       -------->  Pre-installed toolchain           #事先安装的工具链

Toolchain path                                         -------->  ****/toolschain/4.4.3/              #填上自己工具链的绝对路径即可,注意这里只是到bin的上一级目录即可,比如我举例的,知道4.4.3目录

Toolchain prefix                                        --------> $(ARCH)-linux                        #工具链的前缀,一般就是arm-linux

External toolchain gcc version                 --------> 4.4.x                                        #gcc版本,跟实际保持一致即可

External toolchain kernel headers series --------> 4.15.x                                      #不清楚这个是干嘛的,但我选择跟将使用的kernel版本一致,我的kernel版本是4.15.1,这里后面编译的时候会报错,后面再说明。

External toolchain C library                      --------> glibc/eglibc                              #似乎一般都是用这个库

c.System configuration:

System hostname                                    --------> smdk2440                               #随便设置一个名称,不重要

System banner                                         --------> welcome to smdk2440            #设置一个欢迎词,当挂在上根文件系统之后就会打印这个字符串

[*]Enable root login with password           -------->                                                 #开启密码,这样在登录linux的时候就会出现询问密码的界面

Root password                                         -------->                                                 #设置一个密码

d.Kernel:

Kernel version                                          --------> Custom Git repository              #我的代码是在github上,所以我选择了这个

URL of custom repository                        -------->                                                  #填上github上的地址,这里有点说明,如果是开发阶段,肯定不希望每次修改都往girhub上推,那么这里就可以填上自己本地git仓库的绝对地址。

Custom repository version                       -------->                                                  #填上需要克隆的版本,就是用git log|less看到的那个哈希值,这样buildroot就会去克隆相应的linux版本,我猜测可以直接写成master也可以,这样不需要每次都是人为的修改                                                                                                                                              版本号,保证每次拉下来的都是最新的,这个还有待确认。

Kernel configuration                                 --------> Using a custom (def)config file  #kernel需要一个config文件,这里就是选择使用defconfig,这样下一个选择路径的选项就会出现

Configuration file path                              --------> $(TOPDIR)/board/arm/smdk2440/smdk2440_linux_defconfig)   #填上自己将使用的config文件,这个路径是自己创建的,保持buildroot规范

在linux下使用s3c2410_defconfig直接拷贝过来修改名字,如果后期linux的config还需要改动,那么就要将新的拷贝到这个目录下。

e.Filesystem images:

[*] jffs2 root filesystem                              -------->                                                  #我先使用jffs2吧,使用yaffs2编译的时候报错了,我不知道怎么修改。

f.Bootloaders:

跟kernel类似,不再重复介绍。

4. 经过上述操作就会在根目录下生产一个.config文件,然后make,这样buildroot就会根据相应的设置去编译uboot,kernel,以及自动制作rootfs。

经过漫长的下载,编译,最后生成的文件位于:output/images/下。

5.遇到的问题就是那个linux header跟linux不相符,因为Toolchain-> kernel headers series选的是4.15.x,而我的工具链是4.4.3,有一个宏不匹配,暂时不记得了,这篇帖子是写的第二次了,第一次弄丢了,博客园的草稿箱里也找不到了,真是奇怪。

buildroot管理uboot+kernel+rootfs的更多相关文章

  1. 在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)

    版本:v1.2   Crifan Li 摘要 本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs.以及简介Linux中的已有的通 ...

  2. I.MX6 U-boot Kernel backlight setting

    /********************************************************************* * I.MX6 U-boot Kernel backlig ...

  3. buildroot--uboot&kernel&rootfs全编译工具

    参考: http://www.crifan.com/files/doc/docbook/buildroot_intro/release/html/buildroot_intro.html https: ...

  4. Android系统启动过程-uBoot+Kernel+Android

    摘要:本文是参考大量网上资源在结合自己查看源代码总结出来的,让自己同时也让大家加深对Android系统启动过程有一个更加深入的了解!再次强调,本文的大多数功劳应归功于那些原创者们,同时一些必要的参考链 ...

  5. Linux学习 :Uboot, Kernel, 根文件系统初步分析

    1.U-Boot启动内核的过程可以分为两个阶段: 1)第一阶段的功能 硬件设备初始化 加载U-Boot第二阶段代码到RAM空间 设置好栈 跳转到第二阶段代码入口 2)第二阶段的功能 初始化本阶段使用的 ...

  6. tiny210V2 Uboot kernel filesystem 烧写和启动

    1.sd启动 将u-boot镜像写入SD卡 将SD卡通过读卡器接上电脑(或直接插入笔记本卡槽),通过"cat /proc/partitions"找出SD卡对应的设备,我的设备节点是 ...

  7. am335x uboot, kernel 编译

    一.设置环境变量 // 写在家目录下面的 .bashrc 里面 export KERNEL_PATH=~/aplex/kernel3.2.0 // kernel 路径 export UBOOT_PAT ...

  8. linux下uboot kernel操作cpu寄存器

    大多数的内核里面都有会对GPIO的操作,而且内核里面对GPIO进行配置也很方便,要什么功能就配置成什么就可以了. 还有一些寄存器是内核没有配置到的,但是我们要操作怎么办,内核里面也定义了相关的接口函数 ...

  9. uboot kernel 博客

    https://blog.csdn.net/zqixiao_09/ https://home.cnblogs.com/u/lifexy/ https://blog.csdn.net/chenliang ...

随机推荐

  1. Spring _day01_下载、概述、监听器

    Spring:SE/EE开发的一站式框架. ​ .一站式框架:有EE开发的每一层解决方案. ​ . WEB层 :SpringMVC ​ . Service层 :Spring的Bean管理,Spring ...

  2. Angular cli 发布自定义组件

    建立工作空间 ng new Test --style=scss //Angular6.x及以下可以使用这个命令指定使用.scss样式表 ng new Test                      ...

  3. 活代码LINQ——04

    一.主模块代码: 'Fig.4.16:GradeBookTest.vb 'Create and manipulate a GradeBook object;illustrate validation ...

  4. 使用U盘为龙芯笔记本安装操作系统

    摘要:在没有光驱的情况下,可以使用dd命令或者ultraISO软件制作Linux安装U盘,方法适合龙芯和X86.AMD64的设备. 前段时间,由于开发需要,拿到了一部龙芯3A3000的笔记本.出厂的安 ...

  5. 第一次作业_ChenHong1998

    我的目标 学习到软件工程的实践过程 回想一下你初入大学时对软件工程专业的畅想 当初你是如何做出选择软件工程专业的决定的? 计算机是热门专业,软件工程专业好找工作 你认为过去两年中接触到的课程是否符合你 ...

  6. 173zrx个人简介

    码云链接:https://gitee.com/zhrx-617/codes/947dbs2fi5kw3jz8hc0ma74 效果图: 源代码: <html> <head> &l ...

  7. 移动端调试神器 whistle

    移动端h5页面嵌入的方式多种多样,普通的chrome真机调试功能有时就不能满足要求了. whistle通过设置wifi服务器代理的方式,可以抓包调试所有移动端请求的页面. whistle的github ...

  8. bottle模板中的替换

    line是模板中一行的内容,类似: {{x}}testinfo{{x+10}} x=10时,模板输出: 10testinfo20 x = 10 splits = re.split(r'\{\{(.*? ...

  9. java多态——基础

    多态 定义: 一个接口,多种实现,就是多种状态     价值: 特点:多态存在的特点,就是必须要有继承.覆盖.父类变量调用子类对象 场景: 首先检查父类中是否有该方法,如果没有,则编译错误:如果有,则 ...

  10. Openflow协议详解

    http://www.h3c.com/cn/d_201811/1131080_30005_0.htm# 1 OpenFlow背景 转发和控制分离是SDN网络的本质特点之一 .在SDN网络架构中,控制平 ...