目录

下载BusyBox

修改makefile

添加中文支持

编译busybox


下载BusyBox

BusyBox 可以在其官网下载到,官网地址为:https://busybox.net

打开官网后直接点击左边的Download Source按钮下载

接下来在Ubuntu系统中创建一个文件夹用于存放根文件系统

在linux/nfs目录中创建rootfs文件夹,以后生成的根文件系统就存放在在这个文件夹中,然后linux开发板启动时通过网络从这个目录中下载根文件系统。

接下来在linux/IMX6ULL文件夹中创建一个tool文件夹,用于存放下载好的BusyBox软件。

通过FTP工具将下载好的busybox软件复制到tool文件夹中。

使用tar -vxjf busybox-1.29.0.tar.bz2 命令解压文件

解压完成后进入busybox-1.29.0文件夹中

修改makefile

在busybox-1.29.0文件夹中打开Makefile文件

将环境变量ARCH 设置为arm

接下来设置编译器路径

找到gcc编译器的路径

这里gcc编译器的路径为

/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

输入编译器arm-linux-gnueabihf所在的绝对路径,保存退出Makefile文件。

添加中文支持

打开  libbb/printable_string.c 文件

注释掉31行和32行代码

接着将45行  if (c < ' ' || c >= 0x7f) 改为 if( c < ‘ ’)

保存退出,接着打开vi libbb/unicode.c

修改1022行代码将   *d++ = (c >= ' ' && c < 0x7f) ? c : '?';

改为                *d++ = ( c >= ' ') ? c : '?';

将1031行if (c < ' ' || c >= 0x7f) 改为 if(c < ' ')

修改完成后保存退出。

配置busybox

使用make menuconfig 命令打开图形化配置界面

进入

-> Settings

-> Build static binary (no shared libs)

要确保Build static binary (no shared libs) 这一项不能选中。

继续在当前页面下寻找 vi-style line editing commands 选项

使用键盘上的y键选中

按esc键返回上一层,继续寻找

-> Linux Module Utilities

-> Simplified modutils

按键盘上的n键,取消选中Simplified modutils

按exc键返回上一层目录

依次选择

-> Linux System Utilities

-> mdev (16 kb)

确保mdev(16 kb)和下面紧挨着的5项全部选中。

按esc键返回上层目录,依次选择

-> Settings

-> Support Unicode

-> Check $LC_ALL, $LC_CTYPE and $LANG environment variables

按y键选中Support Unicode 和 Check $LC_ALL, $LC_CTYPE and $LANG environment variables 选项

图形化界面到这里就配置完了,按esc键退出并保存配置好的文件。

编译busybox

接下来就可以编译busybox了,需要将编译后的文件存放在rootfs文件夹中。

在输入make命令时要指定生成文件的存放路径

使用COFIG_PREFIX 来指定生成的文件存放路径,输入完命令行按回车键开始编译busybox。

编译完成后结果如下

这时候就可以在rootfs目录中查看生成的文件了

接下来还需要向根文件系统中添加lib库文件。

下一篇:Linux学习笔记---使用BusyBox创建根文件系统(二)

Linux学习笔记---使用BusyBox创建根文件系统(一)相关推荐

  1. Linux学习笔记---使用BusyBox创建根文件系统(四)

    目录 软件运行测试 设置程序为后台运行 设置开机自启动 外网连接测试 软件运行测试 进入到rootfs文件夹中新建一个drivers文件夹,用于存放编写的软件. 新建hello.c文件 输入以下代码 ...

  2. Linux学习笔记---使用BusyBox创建根文件系统(三)

    目录 创建/etc/init.d/rcS 文件 创建/etc/fstab 文件 创建/etc/inittab 文件 创建/etc/init.d/rcS 文件 通过nfs加载根文件系统成功后,在串口终端 ...

  3. Linux学习笔记---使用BusyBox创建根文件系统(二)

    目录 向 rootfs 的"/lib "目录添加库文件 向 rootfs 的usr/lib 目录添加库文件 创建其他文件夹 根文件系统初步测试 向 rootfs 的"/l ...

  4. I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之根文件系统挂载

    经过前面的移植,新版BSP的uboot和kernel已经能够在tqimx6q开发板上运行了,接下来我们来挂载文件系统. DTB整理 前面的文章中提到,新版BSP的DTB管理感觉不是太好,在之前移植的B ...

  5. 移植Linux-3.4.2过程学习笔记2——无法挂载根文件系统

    此时内核已经可以打印串口信息了,目前的问题是无法挂载根文件系统. 搜索分区名,查看是在哪里定义的: grep "\"Boot\ Agent\"" * -nR 得 ...

  6. Linux学习笔记:mkdir创建文件夹

    文件夹,即目录,在linux中使用mkdir创建. 语法:mkdir dir_name 通过 mkdir 命令可以实现在指定位置创建以 dir_name(指定的文件名)命名的文件夹或目录.要创建文件夹 ...

  7. Linux学习笔记-调用pthead_create创建线程

    调用pthead_create pthread_t handle; pthread_create(&handle, // 线程句柄 NULL, // 忽略 Thread_Main, // 线程 ...

  8. linux给数据库重命名,Linux学习笔记:mv移动或文件重命名

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 语法:mv 源文件 目标文件 视mv命令中 ...

  9. Linux学习笔记---记一次rootfs根文件系统下载时掉进的大坑

    俗话说要想技术好,踩坑少不了.技术的好坏和踩坑的多少基本是成正比的.这次就大大的提升了一次技术(大大的踩了一次坑).废话少说,直奔主题. 最近入手了一块正点原子的IMX6ULL开发板,跟着视频教程和开 ...

最新文章

  1. time.h中的相关计时函数time,localtime,clock等详解
  2. 贪污经费,撤销院士称号!
  3. 用程序消除一道概率题的二义性
  4. nginx conf 文件
  5. jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)
  6. 大家好,换博客了,希望大家多多关注
  7. 60-150-044-使用-Sink-Flink自定义RetractStreamTableSink
  8. python科学坐标系绘制分析_Python电子教案9-1-科学计算和可视化.ppt
  9. CentOS系统性能工具 sar 示例!
  10. 八种常用排序算法参考
  11. 北京/苏州内推 | 微软亚洲互联网工程院招聘NLP算法工程师(可实习)
  12. python修改像素
  13. webim--web端即时通讯的实现
  14. 2021年危险化学品生产单位安全生产管理人员新版试题及危险化学品生产单位安全生产管理人员考试总结
  15. EXCEL表格使用VBA编程设置绘图区尺寸
  16. 软件开发的能力体系及锻炼
  17. kettle优化之提高MySQL读写速度
  18. 使用video.js播放手机本地视频
  19. ios删除字符串第一位_iOS “字符串” 的几种常见的截取方法(随时更新)
  20. 第 09 章 基于特征匹配的英文印刷字符识别 MATLAB深度学习实战案例

热门文章

  1. tigerVNC的简单使用教程(CentOS 自带VNC包的远程桌面连接)
  2. 关于QQ非会员发图限制
  3. CakePHP中文手册【翻译】
  4. nginx 模块讲解
  5. Delphi XE10.1 引用计数
  6. iOS开发--AVFoundation自定义相机
  7. PHP网络操作函数汇总
  8. android实操--练习2
  9. 使用JavaScript弹出Confirm对话框
  10. 毕设问题小记——No Dialect mapping for JDBC type:-1错误