shuixingoo 发表于 2011-5-1 22:26:58

最佳交叉开发环境

最近打算编译Linux2.6.38的内核,不知道怎样的一个crosstool组合比较合适,忘老鸟指点,目前正在挣扎着用crosstool-ng做个工具链,希望得到帮助。

liuerji 发表于 2011-5-1 23:25:29

有自动下载的功能,不需要自己组合

shuixingoo 发表于 2011-5-2 10:13:58

回复【1楼】liuerji
有自动下载的功能,不需要自己组合
-----------------------------------------------------------------------

但是所用到的version还是要自己config的!我菜鸟!望细细指点!

superyongzhe 发表于 2011-5-2 10:36:22

用sourcery吧!

ggg12345 发表于 2011-5-2 17:50:39

安装个虚拟机会比较好吧

交叉最繁琐了,恨不得专门整台电脑只安个Ubuntu

shuixingoo 发表于 2011-5-2 21:53:40

回复【3楼】superyongzhe最后的骑士
用sourcery吧!
-----------------------------------------------------------------------

Codesourcery G++ 吗?结合Eclipse插件?你在用吗?给点经验。谢谢!

shuixingoo 发表于 2011-5-2 22:01:43

回复【4楼】ggg12345
安装个虚拟机会比较好吧
交叉最繁琐了,恨不得专门整台电脑只安个ubuntu
-----------------------------------------------------------------------
人存于世,生是为了让这个世界更美好,死是为了让这个世界更清静。呵呵!
安了虚拟机就不需要交叉编译了吗?
我不仅安了虚拟机,我也在实验室一天电脑上装了Centos。最后不都得解决交叉编译的事吗?
今天刚刚去逛了一下发现crosstool-ng 出了1.11.0版本了,做出的工具链可以编译Linux2.6.38的内核!
呵呵!
于是乎迫不及待把原来的版本干掉,重新装了1.11.0版本的,结果编译工具链从中午一直到现在都没编译完成,漫长的
等待,不知道要多少个小时才能完成,我还 ct-ng build.4 唉!再等会看看吧!



今天早上有结果了!杯具的提示我存储空间不够了!./emotion/em154.gif
今天又得重新来过!

sdecat 发表于 2011-5-2 23:03:50

直接在ARM的板子上装个Debian系统吧,这样就可以在板子上面用最新4.4或者4.5的gcc原生编译内核、uboot以及其他目标板的程序,不用搞什么交叉编译了。编译时间取决于ARM板子的实际性能。

shuixingoo 发表于 2011-5-3 10:53:07

回复【7楼】sdecat
直接在arm的板子上装个debian系统吧,这样就可以在板子上面用最新4.4或者4.5的gcc原生编译内核、uboot以及其他目标板的程序,不用搞什么交叉编译了。编译时间取决于arm板子的实际性能。
-----------------------------------------------------------------------

这也可以!sdecat不妨给大家详细介绍一下!能做个教程更好了!

heuyck 发表于 2011-5-3 11:23:38

回复【7楼】sdecat
直接在arm的板子上装个debian系统吧,这样就可以在板子上面用最新4.4或者4.5的gcc原生编译内核、uboot以及其他目标板的程序,不用搞什么交叉编译了。编译时间取决于arm板子的实际性能。
-----------------------------------------------------------------------

你这配置要求没有现有的开发板能达到。。。。
我曾想过在AT的9260上做个原生的GCC,不过虚拟机编译的时间及虚拟机与9260的配置差别让我打消了这念头。

------------------
我是用虚拟机安个LFS,启动比较快,占空间也小。
在win下面写代码看文档做备份,共享代码目录,用ssh执行makefile。
LFS用samba连接代码目录,脚本make完把程序拷到共享目录。
相当于linux只用到了gcc,其他工作都在winxp下干,VM虚拟机可以隐藏起来。

winxp下用cygwin据说很强大,可惜无论下载的crosstool还是自己编译的都不好用。
还是原生的linux最好,直接下载个现成的CROSSTOOL算了,自己编译比较困难。
PS:LFS很好很强大,想学linux的去做一遍,收获会很大。

panjun10 发表于 2011-5-3 11:28:28

试下用整栋楼的电脑来distcc 会很爽的, 编译 crosstool

shuixingoo 发表于 2011-5-3 11:32:31

回复【10楼】panjun10
试下用整栋楼的电脑来distcc 会很爽的, 编译 crosstool
-----------------------------------------------------------------------

这个!!!给点技术细节!呵呵!

lm78l05 发表于 2011-5-3 11:36:44

MARK

shuixingoo 发表于 2011-5-3 12:30:15

回复【9楼】heuyck
回复【7楼】sdecat
直接在arm的板子上装个debian系统吧,这样就可以在板子上面用最新4.4或者4.5的gcc原生编译内核、uboot以及其他目标板的程序,不用搞什么交叉编译了。编译时间取决于arm板子的实际性能。
-----------------------------------------------------------------------
你这配置要求没有现有的开发板能达到。。。。
我曾想过在at的9260上做个原生的gcc,不过虚拟机编译的时间及虚拟机与9260的配置差别让我打消了这念头。
------------------
我是用虚拟机安个lfs,启动比较快,占空间也小。
在win下面写代码看文档做备份,共享代码目录,用ssh执行makefile。
lfs用samba连接代码目录,脚本make完把程序拷到共享目录。
相当于linux只用到了gcc,其他工......
-----------------------------------------------------------------------
好吧!既然LSF如此之随心所欲咱给个链接有兴趣的朋友可以去逛逛!
http://www.linuxfromscratch.org/lfs/view/6.4/

sdecat 发表于 2011-5-3 13:36:45

回复【9楼】heuyck
回复【7楼】sdecat
直接在arm的板子上装个debian系统吧,这样就可以在板子上面用最新4.4或者4.5的gcc原生编译内核、uboot以及其他目标板的程序,不用搞什么交叉编译了。编译时间取决于arm板子的实际性能。
-----------------------------------------------------------------------
你这配置要求没有现有的开发板能达到。。。。
我曾想过在at的9260上做个原生的gcc,不过虚拟机编译的时间及虚拟机与9260的配置差别让我打消了这念头。
------------------
我是用虚拟机安个lfs,启动比较快,占空间也小。
在win下面写代码看文档做备份,共享代码目录,用ssh执行makefile。
lfs用samba连接代码目录,脚本make完把程序拷到共享目录。
相当于linux只用到了gcc,其他工......
-----------------------------------------------------------------------
200MHz的9260的性能就不说了,要有原生编译价值的话,起码得ARM11级别以上的CPU,内存要256MB或者以上吧。还有,编译涉及大量写入操作,最有能配上硬盘,不然在只有2MB/S~3MB/S写入速度的nand flash和SD卡上会慢的无法接受的。 目前在800MHz主频512MB内存,配置硬盘的6410硬件环境,完整编译一个自身用的内核的话需要两个多小时,编译uboot需要8~10分钟,如果是增量编译的话会快很多。可以参考一下这个帖子:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4693365&bbs_page_no=1&bbs_id=1032

shuixingoo 发表于 2011-5-11 15:49:41

今天编译终于完成!编译环境是CentOS5.6用Virtualbox跑在Win7上!
使用到的工具有:
.
|-- automake
|   |-- autoconf-2.68.tar.bz2
|   `-- automake-1.11.1.tar.bz2
|-- crosstool-ng
|   |-- 000-internals_fix_stripping_yet_once_again.patch
|   |-- crosstool-ng-1.11.0.tar.bz2
|   `-- crosstool-ng-1.11.1.tar.bz2
|-- linux-2.6.38.tar.bz2
`-- toolchains
    |-- autoconf-2.65.tar.bz2
    |-- automake-1.11.1.tar.bz2
    |-- binutils-2.16.1.tar.bz2
    |-- binutils-2.20.1.tar.bz2
    |-- binutils-2.21.tar.bz2
    |-- dmalloc-5.5.2.tgz
    |-- duma_2_5_15.tar.gz
    |-- ecj-latest.jar
    |-- eglibc-2_12.tar.bz2
    |-- eglibc-linuxthreads-2_12.tar.bz2
    |-- eglibc-localedef-2_12.tar.bz2
    |-- eglibc-ports-2_12.tar.bz2
    |-- expat-2.0.1.tar.gz
    |-- gcc-3.4.4.tar.bz2
    |-- gcc-4.4.6.tar.bz2
    |-- gdb-6.4.tar.bz2
    |-- gdb-6.8.tar.bz2
    |-- gdb-7.2.tar.bz2
    |-- glibc-2.3.3.tar.bz2
    |-- glibc-2.9.tar.bz2
    |-- glibc-linuxthreads-2.3.3.tar.bz2
    |-- glibc-linuxthreads-2.3.5.tar.bz2
    |-- glibc-ports-2.9.tar.bz2
    |-- glibc-ports-2.9.tar.gz
    |-- gmp-4.3.2.tar.bz2
    |-- gmp-5.0.1.tar.bz2
    |-- libelf-0.8.13.tar.gz
    |-- libtool-2.2.6b.tar.gz
    |-- linux-2.6.38.4.tar.bz2
    |-- linux-2.6.38.tar.bz2
    |-- ltrace_0.5.3.orig.tar.gz
    |-- m4-1.4.13.tar.bz2
    |-- make-3.81.tar.bz2
    |-- mpfr-3.0.1.tar.bz2
    |-- ncurses-5.7.tar.gz
    |-- ncurses-5.9.tar.gz
    |-- ppl-0.11.2.tar.bz2
    `-- strace-4.6.tar.xz

当然,我是在探索着这些源码包的组合,低版本的包可以不用的,你要是自己想做一个这样的工具没必要下载那么多版本
的gcc等等。
关于crosstool-ng工具的安装,建议自己google一下,会有很多这样的帖子告诉你怎么安装。
安装好crosstool-ng工具后,要进行一些环境变量的配置:
我把ct-ng工具安装在了/home/spring/crosstool-ng-1.11.1(可以根据自己的情况调整)
       echo "PATH=$PATH:/home/spring/crosstool-ng-1.11.1/bin" >> ~/.bashrc
然后使环境变量生效
       source ~/.bashrc 或者 . ~/.bashrc
现在就可以在PATH变量中找得到你的ct-ng工具了。可以通过命令:ct-ng help 查看是否安装配置成功!如果成功congratulations!
接下来你可以使用ct-ng配置好的一些样例在/home/spring/crosstool-ng-1.11.1/lib/ct-ng-1.11.1/samples下
如果要做ARM-Linux的工具链
你可以 cp /home/spring/crosstool-ng-1.11.1/lib/ct-ng-1.11.1/samples/arm-unknown-linux-gnueabi/crosstool.config
/home/spring/crosstool-ng-1.11.1/.config 然后在这个基础上做些简单的修改以适合自己的环境。
然后是完成配置:ct-ng menuconfig
需要根据自己的硬件平台做些相应的更改。
走完这些过程,你即将看到自己的工具链喽!呵呵: ct-ng build 如果你的cpu是多核的支持多线程
你也可以: ct-ng build.2 或者 ct-ng build.4 或者更多线程以加快你的编译速度,但是这样会写乱你的build.log
对你在这个过程中除错造成一点点困扰!
之后,去看看电影啥的等吧!我在这个过程中经历了太多的报错和困扰!如果有朋友也有这些困扰,把你的错误报告发上来
我们一起讨论学习!
下面把我的配置文件和得到的结果给大家共享,希望你能成功!
x-tools的目录树ourdev_639074SUWJBE.txt(文件大小:336K) (原文件名:tree.txt)
config配置文件ourdev_639075MOHCS0.txt(文件大小:11K) (原文件名:config.txt)
页: [1]
查看完整版本: 最佳交叉开发环境