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怎么判断配置好的包是否编译成功等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)