搜索
bottom↓
回复: 15

最佳交叉开发环境

[复制链接]

出0入0汤圆

发表于 2011-5-1 22:26:58 | 显示全部楼层 |阅读模式
最近打算编译Linux2.6.38的内核,不知道怎样的一个crosstool组合比较合适,忘老鸟指点,目前正在挣扎着用crosstool-ng做个工具链,希望得到帮助。

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2011-5-1 23:25:29 | 显示全部楼层
有自动下载的功能,不需要自己组合

出0入0汤圆

 楼主| 发表于 2011-5-2 10:13:58 | 显示全部楼层
回复【1楼】liuerji  
有自动下载的功能,不需要自己组合
-----------------------------------------------------------------------

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

出0入0汤圆

发表于 2011-5-2 10:36:22 | 显示全部楼层
用sourcery吧!

出0入0汤圆

发表于 2011-5-2 17:50:39 | 显示全部楼层
安装个虚拟机会比较好吧

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

出0入0汤圆

 楼主| 发表于 2011-5-2 21:53:40 | 显示全部楼层
回复【3楼】superyongzhe  最后的骑士
用sourcery吧!
-----------------------------------------------------------------------

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

出0入0汤圆

 楼主| 发表于 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 唉!再等会看看吧!



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

出0入0汤圆

发表于 2011-5-2 23:03:50 | 显示全部楼层
直接在ARM的板子上装个Debian系统吧,这样就可以在板子上面用最新4.4或者4.5的gcc原生编译内核、uboot以及其他目标板的程序,不用搞什么交叉编译了。编译时间取决于ARM板子的实际性能。

出0入0汤圆

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

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

出0入0汤圆

发表于 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的去做一遍,收获会很大。

出0入0汤圆

发表于 2011-5-3 11:28:28 | 显示全部楼层
试下用整栋楼的电脑来distcc 会很爽的, 编译 crosstool

出0入0汤圆

 楼主| 发表于 2011-5-3 11:32:31 | 显示全部楼层
回复【10楼】panjun10  
试下用整栋楼的电脑来distcc 会很爽的, 编译 crosstool
-----------------------------------------------------------------------

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

出0入0汤圆

发表于 2011-5-3 11:36:44 | 显示全部楼层
MARK

出0入0汤圆

 楼主| 发表于 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/

出0入0汤圆

发表于 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

出0入0汤圆

 楼主| 发表于 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)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 10:55

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表