buildroot制作功能齐全的根文件系统

buildroot制作文件系统

PageTitleMetaDescriptionDateApprovededitor
创建buildroot制作文件系统2019/10/15孙小草

背景

从 busybox 开始一步一步的构建根文件系统适合学习、了解根文件系统的组成,但是不适合做产品(主要是自己构建的话会有很多不完善、没有注意到的细节)。buildroot 会帮我们处理好各种细节地方,是我们的根文件系统更加的合理、有效。因此大家在做产品的时候推荐大家使用 buildroot 来构建自己的根文件系统。它不仅包含了 busybox 的功能,而且里面还集成了各种软件,需要什么软件就选择什么软件,不需要我们去移植。

开发平台

  1. Zynq7020核心板
  2. Ubuntu18.04.3

移植流程

  1. 配置ubuntu环境

    sudo dpkg --add-architecture i386
    sudo apt-get update
    sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386
    sudo apt-get install lib32ncurses5 ​
    sudo apt-get install lib32z1
    
  2. 下载交叉编译工具

    1. 不可使用apt install所安装的编译工具链,需手动下载
    2. 下载地址:https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/
    3. 本文下载的是gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf.tar.xz
  3. 下载buildroot

    1. 下载地址:https://buildroot.org/download.html
    2. 本文下载的是buildroot-2019.02.7.tar.bz2
  4. 制作根文件系统

    1. 解压
    tar -xvf gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf.tar.xz
    tar -jxvf buildroot-2019.02.7.tar.bz2
    
    1. 配置
    cd buildroot-2019.02.7
    sudo make zynq_zed_defconfig
    sudo make menuconfig
    
    进入配置界面
    Toolchain --->
        Toolchain type () --->
            (X)External toolchain
        Toolchain () --->
            (X)Custom toolchain
        Toolchain origin () --->
            (X)Pre-installed toolchain
        ()Toolchain path  /* 前文下载的交叉编译工具链路径, 例:│/home/win_share/buildroot/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf*/
        ($(ARCH)-linux-gnueabihf)Toolchain prefix
        External toolchain gcc version(7.x) ---> /* 交叉编译工具链版本 在上述路径执行 ./arm-linux-gnueabihf-gcc -v 查看*/
        External toolchain kernel headers series (3.10.x) ---> /* 编译工具链的内核版本 查看文件:交叉编译工具链路径\gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf\arm-linux-gnueabihf\libc\usr\include\linux\version.h 
        #define LINUX_VERSION_CODE 264707 
        264707 换算成16进制为40A03, 版本号即为4.10.03
        */    
        External toolchain C library (glibc/eglibc) --->
        [*] Toolchain has SSP support?                       
        [*] Toolchain has RPC support?                              
        [*] Toolchain has C++ support?   
    System configuration --->
        () System hostname /* 系统名称 自行设定 */
        () System banner /* 自行设定 */
        [*] Enable root login with password                    
        (123456) Root password /* 密码 */
    Kernel --->
        [ ] Linux Kernel  /* 取消选中 */
    Target packages  ---> 
        Networking applications  ---> 
            [*] dropbear  /* 提供ssh服务 */
    Filesystem images  ---> 
        [*] ubi image containing an ubifs root filesystem            
        (0x20000) physical eraseblock size                           
        (512) sub-page size                                          
        [ ]   Use custom config file                                
        ()    Additional ubinize options                            
         -*- ubifs root filesystem                                   
        (0x1f000) logical eraseblock size                           
        (0x800) minimum I/O unit size                                
        (2048) maximum logical eraseblock count
    Bootloaders  --->
        [ ] U-Boot /* 取消选中 */
    
    1. 编译
    sudo make all 
    
    编译过程会下载各种插件,如发现下载速度过慢,可根据提示,使用网页下载,将压缩包放至 buildroot 源码目录下的 dl 文件夹中, dl 文件夹专用用于存放下载下来的源码。
    编译完成后,会在buildroot-2019.02.6/output/images 下生成根文件系统
    rootfs.tar为压缩包,可解压后进行网络挂在测试根文件系统,也可进行修改,使用mkfs.ubifs工具制作根文件系统;
    root.ubifs为镜像文件,可直接下载测试
    

注:

  1. vsftpd服务需要手动修改配置文件
  2. 命令提示符显示当前完整路径:
修改环境变量PS1,vi编辑/etc/profile文件在最后加上一行语句:
(1)命令行提示符完全显示完整的工作目录名称:
     export PS1=[\u@\h $PWD]$ '
(2)命令行提示符只列出最后一个目录:
     export PS1=[\u@\h \W]$’
(3)命令行提示符显示完整工作目录,当前用户目录会以 ~代替:
     export PS1=[\u@\h \w]$’
修改完成后,执行: source /etc/profile 使配置生效即可。
命令释义:
	\u 显示当前用户账号
	\h 显示当前主机名
	\W 只显示当前路径最后一个目录
	\w 显示当前绝对路径(当前用户目录会以 ~代替)
	$PWD 显示当前全路径
	\$ 显示命令行’$'或者’#'符号
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值