功率电感生产厂家
联系我们
热门搜索
点击排行
推荐阅读
猜猜你喜欢的
技术知识 您所在的位置: 首页 > 技术知识

使用BusyBox简化嵌入式Linux系统

来源:    作者:    发布时间:2015-11-01 06:17:37    浏览量:

BusyBox是很多标准Linux®工具的一个单个可执行实现。BusyBox包含了一些简单的工具,例如cat和echo,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet(不过它的选项比传统的版本要少);有些人将BusyBox称为Linux工具里的瑞士军刀。本文将探索BusyBox的目标,它是如何工作的,以及为什么它对于内存有限的环境来说是如此重要。

POSIX环境

尽管BusyBox的目标是提供一个相当完整的POSIX(可移植操作系统接口)环境,这是一个期望,而不是一种需求。这些工具虽然并不完整,但是它们提供了我们期望的主要功能。

BusyBox源代码树

BusyBox的源代码树组织得很好。这些工具都基于它们的用途进行了分类,并存储在单独的子目录中。例如,网络工具和守护进程(如httpd、ifconfig等)都在。/networking目录中;标准的模块工具(包括insmod、rmmod和lsmod)都在。/modutils目录中;编辑器(例如vi和流编辑器,如awk和sed)都在。/editors目录中。makefile配置、编译和安装所使用的各个文档都在这个目录树的根目录中。

清单5。编译默认的BusyBox配置

$cdbusybox-1。1。1

$makedefconfig

$make

$

结果是一个相当大的BusyBox映像,不过这只是开始使用它的最简单的方法。我们可以直接调用绕行电感这个新映像,这会产生一个简单的Help页面,里面包括当前配置的命令。要对这个映像进行测试,我们也可以对一个命令调用BusyBox来执行,如清单6所示。

清单6。展示BusyBox命令的执行和B模压电感器usyBox中的ashshell

$。/busyboxpwd

/usr/local/src/busybox-1。1。1

$。/busyboxash

/usr/local/src/busybox-1。1。1$pwd

/usr/local/src/busybox-1。1。1

/usr/local/src/busybox-1。1。1$exit

$

在这个例子中,我们调用了pwd(打印工作目录)命令,使用BusyBox进入了ashshell,并在ash中调用了pwd。

手工配置

如果您正在构建一个具有特殊需求的嵌入式设备,那就可以手工使用menuconfigmake目标来配置BusyBox的内容。如果您熟悉Linux内核的编译过程,就会注意到menuconfig与配置Linux内核的内容所使用的目标相同。实际上,它们都采用了相同的基于ncurses的应用程序。

使用手工配置,我们可以指定在最终的BusyBox映像中包含的命令。我们也可以对BusyBox环境进行配置,例如包括对NSA(美国国家安全代理)的安全增强Linux(SELinux),指定要使用的编译器(用来在嵌入式环境中进行交叉编译)以及BusyBox应该静态编译还是动态编译。图1给出了menuconfig的主界面。在这里我们应该可以看到可电感器图以为BusyBox配置的不同类型的应用程序(applet)。

图1。使用menuconfig配置BusyBox

多体系结构支持

可以简单地为BusyBox指定交叉编译器意味着我们可以为很多体系结构编译BusyBox。要为您的目标体系结构编译BusyBox,我们需要一个交叉编译器和一个已经为特定目标体系结构编译好的C一体成型电感库(uClibc或glibc)。

要手工配置BusyBox,请使用下面的命令:

清单7。手工配置BusyBox

$makemenuconfig

$make

$

这为我们提供了可以调用的BusyBox的二进制文件。下共模电感器一个步骤是围绕BusyBox构建一个环境,包括将标准Linux命令重定向到BusyBox二进制文件的符号链接。我们可以使用下面的命令简单地完成这个过程:

清单8。构建BusyBox环境

$makeinstall

$

默认情况下,这会创建一个新的本地子目录_install,其中包含了基本的Linux环境。在这个根目录中,您会找到一个链接到BusyBox的linuxrc程序。这个linuxrc程序在构建安装盘或急救盘(允许提前进行模块化的引导)时非常有用。同样是在这个根目录中,还有一个包含操作系统二进制文件的/sbin子目录。还有一个包含用户二进制文件的/bin目录。在构建软盘发行版或嵌入式初始RAM磁盘时,我们可以将这个_install目录迁移到目标环境中。我们还可以使用make程序的PREFIX选项将安装目录重定向到其他位置。例如,下面的代码就使用/tmp/newtarget根目录来安装这些符号链接,而不是使用。/_install目录:

清单9。将符号链接安装到另外一个目录中

$makePREFIX=/tmp/newtargetinstall

$

使用installmake目标创建的符号链接都来自于busybox。links文件。这个文件是在编译BusyBox时创建的,它包含了已经配置的命令清单。在执行install时,就会检查busybox。links文件确定要创建的符号链接。

  • 全天候监控首选 低照度摄像机全面解析标签:低照度 AGCON在 平安城市 项目、金融、文博、酒店、写字楼、住宅小区、平安村居、校园、港口、高速公路、街道等安防监控场合,对摄像机的性能要求越来越高,由于常规型摄像机难以满足24小时连续监控

  • ucos-ii应用在嵌入式智能视觉监控系统中1系统硬件平台设计 系统使用的主芯片是ADI公司Blackfin系列DSP中的BF533,这是一款专门面向视频应用的DSP,拥有丰富的外设接口和较好的系统扩展性。本系统利用BF533的PPI接口采集

  • 塑胶电晕机的故障塑胶电晕机的故障,主板保护,不能输出高压,主板上有IC:MC34066P、65826M、CD4049、MC14018、LM324N、CD4001、MC14018等;震荡对管是G30N60C3D这样的问题在论坛中很难帮上忙。你搞

  •