openwrt是基于debian

openwrt是基于debian,第1张

openwrt是基于debian原因如下

openWRTOpenWrt可以被描述为一个嵌入式的 Linux 发行版。(主流路由器固件有 dd-wrt,tomato,openwrt,padavan四类)对比一个单一的、静态的系统,OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。对于开发人员,OpenWrt 是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。开发背景当Linksys释放 WRT54G/GS 的源码后,网上出现了很多不同版本的固件(Firmware)去增强原有的功能。大多数的Firmware都是99%使用Linksys的源码,只有1%是加上去的,每一种Firmware都是针对特定的市场而设计,这样做有2个缺点,第一个是难以集合各版本Firmware的长处,第二个是这版本距离Linux正式发行版越来越远。OpenWrt 选择了另一条路,它从零开始,一点一点的把各软件加入进去,使其接近Linksys版Firmware的功能,而OpenWrt 的成功之处是它的文件系统是可写的,开发者无需在每一次修改后重新编译,令它更像一个小型的Linux 电脑系统。发展历程OpenWrt 项目由 2004 年 1 月开始, 第一个版本是基于Linksys提供的GPL源码及uclibc中的 buildroot 项目, 这个版本称为 “stable” 版, 在网上至今仍有很多项目使用这个版本, 较为有名Freifunk-Firmware和Sip@Home到了2005年初, 一些新的开发人员加入了这项目, 几个月后他们释出了第一个 “experimental” 版本, 这和以前版本不同的是, 这版本差不多完全舍弃了Linksys 的GPL源码, 使用了buildroot2作为核心技术, 将OpenWrt完全模块化,OpenWrt使用Linux正式发行的核心源码(2430),加上了一些补丁和网络驱动,开发队伍更为OpenWrt添加了许多免费的工具,可以直接把Image写入Flash (mtd)里面,设定无线功能和VLAN交换功能,这个版本名为“White Russian”,而10版本于2005年底公布。

batoceralinux基于buildroot。您可以将buildroot视为Linux发行版,同时维护基本软件包。但是,它是构建根文件系统(如固件)的工具。batoceralinux主要包括buildroot(仿真器)和配置上不可用的额外软件包。

关于buildroot的更多信息可以在这里找到: >

在 Buildroot 中,可以通过以下步骤判断配置好的包是否编译成功:

进入 Buildroot 的输出目录:

sh

Copy code

cd <path_to_buildroot>/output

查看对应包的编译状态:

sh

Copy code

ls -al packages/<package_name>/

如果包已经编译成功,会生成对应的可执行文件、库文件等。

3 运行测试:

如果包有提供测试用例,可以通过以下命令运行测试:

sh

Copy code

make <package_name>-test

如果测试通过,说明包已经编译成功。

4 运行示例程序:

如果包有提供示例程序,可以通过以下命令编译并运行示例程序:

sh

Copy code

make <package_name>-example

/output/target/usr/bin/<example_program>

如果示例程序能够正常运行,说明包已经编译成功。

总之,在 Buildroot 中,可以通过查看包的编译状态、运行测试、运行示例程序等方式来判断包是否编译成功。

你好,指定压缩包内核做头文件,再指定压缩包内核做编译源码,buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot menuconfig配置,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。

1确定buildroot中的mplayer的patch的命名规则,这个可以在

先去删除buildroot中的mplayer:

rm build_arm/MPlayer-10rc1/ -r

然后直接make,编译输出过程中就有对应信息:

[root@linux-41lh buildroot]$>make

Checking build system dependencies:

BUILDROOT_DL_DIR clean: Ok

CC clean: Ok

。。。。。。。。

rm -rf /root/buildroot/buildroot/project_build_arm/uclibc/buildroot-config

mkdir -p /root/buildroot/buildroot/project_build_arm/uclibc

cp -dpRf package/config/buildroot-config /root/buildroot/buildroot/project_build_arm/uclibc/buildroot-config

bzcat /root/buildroot/buildroot/dl/MPlayer-10rc1tarbz2 | tar -C /root/buildroot/buildroot/build_arm -xf –

toolchain/patch-kernelsh /root/buildroot/buildroot/build_arm/MPlayer-10rc1 package/mplayer/ mplayer-10rc1patch

Applying mplayer-10rc1-atmel3patch using plaintext:

patching file cfg-commonh

patching file cfg-mencoderh

patching file cfg-mplayerh

patching file configure

patching file libaf/af_formatc

patching file libavcodec/Makefile

patching file libavcodec/avr32/dsputil_avr32c

patching file libavcodec/avr32/fdctS

patching file libavcodec/avr32/h264idctS

patching file libavcodec/avr32/idctS

patching file libavcodec/avr32/mcS

patching file libavcodec/avr32/picoh

patching file libavcodec/bitstreamh

patching file libavcodec/dsputilc

patching file libavcodec/h264c

patching file libavutil/commonh

patching file libavutil/internalh

patching file libfaad2/commonh

patching file libmpcodecs/ad_libmadc

patching file libswscale/pico-avr32h

patching file libswscale/swscale_internalh

patching file libswscale/yuv2rgbc

patching file libswscale/yuv2rgb_avr32c

patching file libvo/vo_fbdev2c

patching file versionsh

Applying mplayer-10rc1-indexpatch using plaintext:

patching file stream/stream_dvbc

touch /root/buildroot/buildroot/build_arm/MPlayer-10rc1/unpacked

(cd /root/buildroot/buildroot/build_arm/MPlayer-10rc1; rm -rf configcache;

说明patch名字符合 mplayer-10rc1patch 即可。

所以,把自己patch改名符合条件的:mplayer-10rc1_vbr_fixedMadpatch

2把patch拷贝到对应文件夹下:

拷贝mplayer-10rc1_vbr_fixedMadpatch到 package/mplayer/ 下面。

这样,make的时候,就会自动找到该patch,并执行它:

。。。。。。。。

rm -rf /root/buildroot/buildroot/project_build_arm/uclibc/buildroot-config

mkdir -p /root/buildroot/buildroot/project_build_arm/uclibc

cp -dpRf package/config/buildroot-config /root/buildroot/buildroot/project_build_arm/uclibc/buildroot-config

bzcat /root/buildroot/buildroot/dl/MPlayer-10rc1tarbz2 | tar -C /root/buildroot/buildroot/build_arm -xf –

toolchain/patch-kernelsh /root/buildroot/buildroot/build_arm/MPlayer-10rc1 package/mplayer/ mplayer-10rc1patch

。。。。

Applying mplayer-10rc1-indexpatch using plaintext:

patching file stream/stream_dvbc

Applying mplayer-10rc1_vbr_fixedMadpatch using plaintext:

patching file libmpcodecs/ad_hwmpac

patching file libmpcodecs/ad_libmadc

patching file libmpcodecs/ad_mp3libc

patching file libmpdemux/demux_audioc

patching file libmpdemux/mp3_hdrc

patching file libmpdemux/mp3_hdrh

patching file libmpdemux/muxer_mpegc

touch /root/buildroot/buildroot/build_arm/MPlayer-10rc1/unpacked

(cd /root/buildroot/buildroot/build_arm/MPlayer-10rc1; rm -rf configcache;

PATH="/root/buildroot/buildroot/toolchain_build_arm/bin:/root/buildroot/buildroot/build_arm/staging_dir/bin:/root/buildroot/buildroot/build_arm/staging_dir/usr/bin:/usr/lib/mpi/gcc/openmpi/bin:/usr/local/bin:/usr/bin:/sbin:/usr/sbin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/root/buildroot/buildroot/build_arm/staging_dir/include:/root/buildroot/buildroot/build_arm/staging_dir/usr/include:/root/buildroot/buildroot/build_arm/staging_dir/usr/bin" AR="/root/buildroot/buildroot/build_arm/staging_dir/usr/bin/arm-linux-uclibc-ar" 。。。。。。。。

另外要说明一点是,为了确保你的patch正常工作了,你要保证出来的patch,是用-p1去使用的。

因为,buildroot中就是去根据

package/mplayer/mplayermk

中的要求,调用toolchain/patch-kernelsh去应用patch的,而toolchain/patch-kernelsh里面,是用-p1的:

简答:

gcc可以运行在arm-linux下。

gcc,可以在arm平台上运行。

详解:

gcc,一般指的是,pc版,x86的平台,

用于嵌入式系统,比如arm的cpu,linux的系统下,是:

本来,一直就可以的,

而且有专门的属于:

交叉编译

简答说就是:

在你的pc端,x86的cpu上,制作出一个交叉编译器

一般叫做arm-linux-gcc

用此arm-linux-gcc去编译你的程序

编译出来的程序,可以运行在嵌入式开发板,比如arm的linux下

极其详尽的解释:

我刚写个教程,你去看就知道了:

交叉编译详解

交叉编译详解

此教程的主要内容包括:

了什么是交叉编译

为何要有交叉编译

什么是工具链

什么是交叉工具链

交叉编译器的名字的命名规则:包括你这里所说的arm-linux-gcc的含义

如何获得交叉编译器

制作交叉编译器的各种工具:简介了常见的crosstool-ng,buildroot,crosstool等等工具

使用已有的交叉编译器和自己手动编译交叉编译器之间的对比

交叉编译方面的心得和注意事项

等你看完了后,建议用crosstool-ng,或者是buildroot去自己编译一个arm-linux的gcc。

以上就是关于openwrt是基于debian全部的内容,包括:openwrt是基于debian、batocera.linux体系结构、buildroot怎么判断配置好的包是否编译成功等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10081928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存