arm-linux-gcc4.4.3编译busybox-1.25.0

发布者:快乐的成长最新更新时间:2023-05-10 来源: elecfans关键字:编译 手机看文章 扫描二维码
随时随地手机看文章

系统环境:

1、操作系统:Ubuntu16.04

2、交叉编译工具链:arm-linux-gcc4.4.3

3、busybox源码包:busybox-1.25.0

 

一、修改Makefile配置

首先解压源码包:

tar -jxvf busybox-1.25.0.tar.bz2

进入busybox-1.25.0目录,修改Makefile文件如下:

ARCH ?= arm

CROSS_COMPILE ?= arm-linux-

二、修改配置文件

make menuconfig

选择Busybox Settings--->Build Options--->,选择[*] Build Busybox as a static binary(no shared libs)

三、编译

make

出现如下错误:

miscutils/nandwrite.c: In function 'nandwrite_main':
miscutils/nandwrite.c:151: error: 'MTD_FILE_MODE_RAW' undeclared (first use in this function)
miscutils/nandwrite.c:151: error: (Each undeclared identifier is reported only once
miscutils/nandwrite.c:151: error: for each function it appears in.)
scripts/Makefile.build:197: recipe for target 'miscutils/nandwrite.o' failed
make[1]: *** [miscutils/nandwrite.o] Error 1
Makefile:742: recipe for target 'miscutils' failed
make: *** [miscutils] Error 2

解决办法:

MTD_FILE_MODE_RAW在/usr/include/mtd/mtd-abi.h中定义,直接在nandwrite.c中包含编译仍无法通过。将/usr/include/mtd/mtd-abi.h拷贝到busybox的include文件中,然后包含该头文件:

#include "libbb.h"
#include "mtd-abi.h"
#include

编译可以通过。

继续make,出现如下错误:

util-linux/blkdiscard.c: In function 'blkdiscard_main':
util-linux/blkdiscard.c:72: error: 'BLKSECDISCARD' undeclared (first use in this function)
util-linux/blkdiscard.c:72: error: (Each undeclared identifier is reported only once
util-linux/blkdiscard.c:72: error: for each function it appears in.)
scripts/Makefile.build:197: recipe for target 'util-linux/blkdiscard.o' failed
make[1]: *** [util-linux/blkdiscard.o] Error 1
Makefile:742: recipe for target 'util-linux' failed
make: *** [util-linux] Error 2

解决办法:

BLKSECDISCARD在/usr/include/linux/fs.h中定义,方法如上所述,将/usr/include/linux/fs.h拷贝到busybox的include文件中,然后修改blkdiscard.c中头文件包含:

修改:#include

#include "fs.h"

继续make,编译通过,但是在链接的时候出现问题:

networking/lib.a(nslookup.o): In function `print_host':
nslookup.c:(.text.print_host+0x44): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
debianutils/lib.a(mktemp.o): In function `mktemp_main':
mktemp.c:(.text.mktemp_main+0x98): warning: the use of `mktemp' is dangerous, better use `mkstemp'
networking/lib.a(ipcalc.o): In function `ipcalc_main':
ipcalc.c:(.text.ipcalc_main+0x25c): warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
libbb/lib.a(inet_common.o): In function `INET_resolve':
inet_common.c:(.text.INET_resolve+0x60): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
networking/lib.a(inetd.o): In function `reread_config_file':
inetd.c:(.text.reread_config_file+0x230): warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
networking/lib.a(netstat.o): In function `ip_port_str':
netstat.c:(.text.ip_port_str+0x50): warning: Using 'getservbyport' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
util-linux/lib.a(nsenter.o): In function `nsenter_main':
nsenter.c:(.text.nsenter_main+0x1b0): undefined reference to `setns'
collect2: ld returned 1 exit status
Note: if build needs additional libraries, put them in CONFIG_EXTRA_LDLIBS.
Example: CONFIG_EXTRA_LDLIBS="pthread dl tirpc audit pam"
Makefile:717: recipe for target 'busybox_unstripped' failed
make: *** [busybox_unstripped] Error 1 

解决办法:

make menuconfig

Linux System Utilities--->nsenter,去掉该选项,重新编译make,又出现如下错误:

networking/lib.a(nslookup.o): In function `print_host':
nslookup.c:(.text.print_host+0x44): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
debianutils/lib.a(mktemp.o): In function `mktemp_main':
mktemp.c:(.text.mktemp_main+0x98): warning: the use of `mktemp' is dangerous, better use `mkstemp'
networking/lib.a(ipcalc.o): In function `ipcalc_main':
ipcalc.c:(.text.ipcalc_main+0x25c): warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
libbb/lib.a(inet_common.o): In function `INET_resolve':
inet_common.c:(.text.INET_resolve+0x60): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
networking/lib.a(inetd.o): In function `reread_config_file':
inetd.c:(.text.reread_config_file+0x230): warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
networking/lib.a(netstat.o): In function `ip_port_str':
netstat.c:(.text.ip_port_str+0x50): warning: Using 'getservbyport' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
coreutils/lib.a(sync.o): In function `sync_main':
sync.c:(.text.sync_main+0x7c): undefined reference to `syncfs'
collect2: ld returned 1 exit status
Note: if build needs additional libraries, put them in CONFIG_EXTRA_LDLIBS.
Example: CONFIG_EXTRA_LDLIBS="pthread dl tirpc audit pam"
Makefile:717: recipe for target 'busybox_unstripped' failed
make: *** [busybox_unstripped] Error 1

解决办法:

make menuconfig

Coreutils--->sync选项去掉,重新make编译通过,生成了busybox可执行文件。

具体选项是什么意思还不太清楚,需要进一步理解。


关键字:编译 引用地址:arm-linux-gcc4.4.3编译busybox-1.25.0

上一篇:arm-linux-gcc4.4.3编译s3c2410平台linux内核
下一篇:PLL,FCLK、HCLK、PCLK,AHB/APB (S3C2410)

推荐阅读最新更新时间:2024-11-09 10:41

基于S3C2440A处理器和3G模块实现视频采集程序的设计
随着网络技术和嵌入式技术的迅猛发展,通过网络来实现视频监控已经得到了广泛的应用,3G网络以其高带宽使得传输流畅的视频信息成为可能,本文在采用3G技术的基础上设计了一款基于嵌入式Linux的无线终端,在数据处理部分采用了Linux的Netfilter架构,通过挂载钩子函数来实现数据包在内核态的获取及高效转发,并且通过在Linux内核开辟一片缓冲区,解决了视频服务器与3G模块拨号延时而造成的速率不匹配的问题,减少了数据丢包。配合Netfilter用户态管理工具iptables的使用,可实现包过滤防火墙,及NAT等功能,从而便于本系统对流经其数据包的管理。 另一方面对嵌入式Linux的视频采集程序的设计进行了详细的介绍,并将其实际应
[单片机]
基于S<font color='red'>3</font>C2440A处理器和<font color='red'>3</font>G模块实现视频采集程序的设计
【新品预告】Dkam系列3D相机新成员报到
知微传感(Zhisensor)即将推出Dkam系列高精度工业3D相机全新升级产品--D132。新型号相机升级RGB镜头、光机以及整机结构,可靠性更高,可广泛应用于拆码垛、上下料、路径规划、焊接定位、工业检测等工业场景,具有机身轻巧、安装简便、性价比高等优点。   Zhisensor DKAM   此次推出的全新升级产品D132,与此前已发布的Dkam系列3D相机产品原理相同,均采用知微传感自主研发的MEMS微振镜,配合红外激光光源,实现结构光条纹投射,再由高速CMOS捕捉物体表面条纹畸变,相机内部解析畸变,最终解算出物体的三维信息。 结构光成像原理   基本特征 Dkam系列高精度工业3D相机-D132 D132
[机器人]
揭秘三星量产的3nm GAA 技术
6月30日上午三星电子宣布, 基于3nm全环绕栅极(Gate-All-AroundT,简称 GAA)制程工艺节点的芯片已经开始初步生产。 三星电子首次实现GAA“多桥-通道场效应晶体管”(简称: MBCFET™ Multi-Bridge-Channel FET)应用打破了FinFET技术的性能限制,通过降低工作电压水平来提高能耗比,同时还通过增加驱动电流增强芯片性能。 三星首先将纳米片晶体管应用于高性能、低功耗计算领域的半导体芯片,并计划将其扩大至移动处理器领域。 三星电子Foundry业务部总经理崔时荣表示:一直以来,三星电子不断将新一代工艺技术应用于生产制造中。例如:三星的第一个High-K Metal Gate
[半导体设计/制造]
揭秘三星量产的<font color='red'>3</font>nm GAA 技术
基于WINCE6.0+S3C2443的camera驱动
1 watchdog的作用及工作原理 1.1 watchdog的作用 在嵌入式控制系统运行时收到外部干扰或者系统错误,这时候程序就有可能出现“跑飞”,从而导致整个系统瘫痪。为了防止这种现象的发生,在对系统稳定性要求较高的场合往往要加入看门狗(watchdog)电路或者开启集成在CPU中的watchdog timer(看门狗定时器)。Watchdog的作用就是当系统“跑飞”而进入死循环的时候,可以复位系统,让系统继续重新运行。 1.2 watchdog的工作原理 watchdog原理上就是一个定时器,定时器timer对时钟进行计数,当定时器溢出时,产生复位信号,使得整个系统复位。其基本原理为:设本系统程序完整运行一周期的时间是t
[单片机]
基于WINCE6.0+S<font color='red'>3</font>C2443的camera驱动
嘿,这里有测量小型封装芯片温度的4个方法~
测量小型封装的运算放大器或类似器件芯片温度的最佳办法是什么?测量结温或芯片温度的方法有几种,某些方法较优。今天小编给大家介绍了 4 种方法。 测量小型封装的运算放大器或类似器件芯片温度的最佳办法是什么?测量结温或芯片温度的方法有几种,某些方法较优。今天小编给大家介绍了 4 种方法。 01. 使用经典结温方程 下面给出的是经典结温方程: TJ = TA + PDϑJA 结温 TJ 等于环境温度 TA 加上器件功耗 PD 与器件热阻 θJA 的乘积。根据我的经验,这种计算相当保守,得到的结温大约比实际结温高出 30%~50%,具体情况取决于制造商。 02. 使用热电偶 对于较大型封装来说,这种测量方法较为准
[测试测量]
华域汽车:4D成像毫米波雷达已实现小批量供货
6月20日,华域汽车在投资者互动平台回应投资者关于“公司的4D成像毫米波雷达截止目前是什么进展”的提问时表示,华域汽车电子分公司自主研发的4D成像毫米波雷达产品已实现对友道智途等商用车智驾客户的小批量供货。 华域汽车还指出,公司及相关所属企业正在推进线控转向系统、线控制动系统等产品的平台预研、样件开发等工作。 公开资料显示,华域汽车主要业务范围包括汽车等交通运输车辆和工程机械的零部件及其总成的设计、研发和销售等,华域汽车主要业务涵盖汽车内外饰件、金属成型和模具、功能件、电子电器件、热加工件、新能源等,各类主要产品均具有较高国内市场占有率。 据了解,华域汽车已形成较为完善的国内外产业布局,具备产业集群优势。截至2021年
[汽车电子]
巧用 STM32CubeIDE 之编译警告
1.前言 编译警告对于工程师们来说,是再常见不过的东西了。对于严谨的工程师们,任何 warning 都是不会忽视的。 2.巧妙使用 warning 在 STM32CubeIDE 中可以通过warning(甚至 error)的方式来通知工程师,使得一些容易遗漏的配置得到重视。 例如,在释放参考代码给客户时,希望客户注意到里面的项目名称和项目版本,那么我们可以在代码中,通过“#error ”来强调必须要修改的信息,通过“#warning”来备注需要注意的信息。具体代码如图 1: 这样,当客户编译工程时,会出现 error 和 warning,见图 2,只有将“#error”和 “#warning”两行分别注释掉,才会分别消除这
[单片机]
巧用 STM32CubeIDE 之<font color='red'>编译</font>警告
AT89S8252单片机实现接触式IC卡读写控制的设计
从上高中开始,我们学校用的餐卡就为接触式的IC卡,在校园里还分布着很多的IC卡电话,上大学以后学校使用的校园一卡通,为非接触式是射频式IC卡,因此对IC卡有了兴趣,在学习单片机的过程中,了解到单片机可以实现IC卡的读写控制,在参考有关资料的基础上,学习的利用单片机实现接触式的IC卡读写控制。 主要器件: 1、 AT89S8252单片机芯片,此芯片具有SPI接口,可以用来读写IC卡芯片。 2、 使用与SPI接口兼容的串行数据接口的IC卡芯片AT45D041A,支持在系统重编程,可用于数字语音、图像和数据的存储。 试验流程图: 试验电路图: 试验程序代码: //ICRdWr.h程序 #ifndef _ICRDWR_H //
[单片机]
AT89S8<font color='red'>25</font>2单片机实现接触式IC卡读写控制的设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved