开发者社区> 狗尾巴呢> 正文


简介: http://cc.bingj.com/cache.aspx?q=OpenEmbedded+clfs&d=4706495287069596&mkt=zh-CN&setlang=zh-CN&w=afp8GvZe7KNcRFBKF2kYXd8WwVn9MVkI CLFS stands for Cros...


CLFS stands for Cross Linux From Scratch, it's an offshoot of the LFS (Linux From Scratch) project. The goal of both LFS and CLFS is to provide instruction on how to build a Linux system, step by step, from source. In both projects, first a toolchain is built and then a bootable GNU/Linux operating system is built using that toolchain. CLFS differs from LFS in that CLFS builds a GNU/Linux system for an architecture different than the one doing the building. For example, if I have an x86 based computer on my desk that I want to use to build GNU/Linux for a PowerPC system I just bought off eBay, I'd use CLFS rather than LFS.

The methods described by CLFS are very similar to the methods used by OpenEmbedded orBuildroot, but each step is described and there's very little automation. You literally manually build, step by step from upstream source, a toolchain and then a functioning GNU/Linux system. Throughout the books there is information on all the different choices you are required to make. For example: if targeting an ARM processor, when building GCC, you have to choose which ARM version to target, like "armv7-a" for Cortex-A8.

The CLFS project has three different books: Standard, Embedded, and Sysroot. The Standard book is the most developed book and mostly targets people who want to build a cross-compiled system for a desktop computer system. The Embedded book (the one I work on) builds a minimal GNU/Linux system using uClibc targeted at embedded devices where resources may be constrained. The Sysroot book uses a different technique to accomplish similar goals as the Standard book. Both the Standard and Embedded books are under active development, Sysroot hasn't been updated in a while.

Where OpenEmbedded and Buildroot hide a lot of the complexity of building a cross compiled version of GNU/Linux, CLFS hides almost nothing. Think of CLFS as more of a learning experience rather than a quick way to build a cross system. A big advantage of CLFS over an automated system is that errors are usually easy to identify, since everything's done manually you stay at the terminal and you'll probably watch the configure scripts and compiler output. If something doesn't look right, you will have a much better idea of where the problem is, if not what the problem is.



  • buildroot whose main purpose is to build complete root file systems, hence the name. But once you have your toolchain with buildroot, part of it is installed in the root-to-be, so if you want to build a whole new root, you either have to save the existing one as a template and restore it later, or restart again from scratch. This is not convenient,
  • ptxdist, whose purpose is very similar to buildroot,
  • other projects (openembedded for example), which is again used to build complete root file systems.

crosstool-NG is really targetted at building toolchains, and only toolchains. It is then up to you to use it the way you want.

With crosstool-NG, you can learn precisely how each component is configured and built, so you can finely tweak the build steps should you need it.

crosstool-NG can build from generic, general purpose toolchains, to very specific and dedicated toolchains. Simply fill in specific values in the adequate options.


http://www.bitshrine.org/ltib/  这个是早期的版本,已经停止维护



sudo apt-get install -y libsdl-dev

yum search sdl
sudo yum install SDL-devel

qemu vl.c:1549:对‘timer_create’未定义的引用
export LDFLAGS=-lrt; ./configure --target-list=arm-softmmu --prefix=$HOME/local; make
make install

$ qemu-system-arm --version


uboot.part 拷贝
flashimg -s 64M -t nand -f nand.bin -p uboot.part -w boot,u-boot.bin -w kernel,uImage -w root,rootfs.jffs2 -z 512
qemu-system-arm -M mini2440 -serial stdio -mtdblock nand.bin -usbdevice mouse


使用 QEMU 创建虚拟机
sudo yum install glib2-devel
./configure --enable-kvm --enable-debug --enable-vnc
make -j8
find . -perm -1 -print



Linux scp命令
        scp全称为secure copy,即安全拷贝,是Linux下进行远程拷贝文件的命令。与其相似的命令是cp和rsync,cp只是在本机进行拷贝不能跨服务器,rsync比较占用资源,虽然会比scp快,但是在小文件众多的情况下,rsync会导致磁盘I/O非常高,而scp则可以进行跨服务器传输,并且传输时加密的,同时不会消耗多少系统资源。
979 0
Linux awk命令
        awk是一个强大的文本分析工具,其对数据分析并生成报告的能力非常强大。它的处理流程为:将文件逐行读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。         语法         awk [-F  field-separator]  'commands'  input-file(s)         其中,[-F  field-separator]为可选的指定域分隔符,不指定的话默认为空格;commands是需要执行的命令;input-file(s) 是待处理的文件。
807 0
从事研发20年 涉及桌面软件、嵌入式设备、C/S分层系统、B/S业务系统、互联网系统等等各类系统 语言涉及C/C++ .net系统 java系列 前端系列等等不同的类别 主控和主导了国家863项目,企业业务应用系统,自然语言翻译系统,数据库审计等系列的软件研发
阿里巴巴DevOps 最佳实践手册