LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4141|回复: 30

请教:在ARM上移植Linux系统 和 在ARM上创建Linux系统?

[复制链接]
发表于 2006-9-20 16:45:30 | 显示全部楼层 |阅读模式
最近,再次拜读了youbest版主的大作——CLFS2.0原理分析,又结合Cross-Compiled Linux From Scratch - Version SVN-2.0.0-20060808-ARM一书的详细过程,觉得受益匪浅。自己也看了一些关于Linux系统的移植的文章,就有了一些疑问。

1。两种不同的方式,哪种更好?
在ARM上移植Linux系统,大体步骤是:移植Bootloader,Linux kernel移植,文件系统的移植。

在ARM上创建Linux系统,好像是先创建文件系统和安装必要的工具包,然后再去配置和编译内核。斗胆的问一句:这种方式做出的Linux系统能在ARM平台上跑起来么?

2。在ARM上创建Linux系统,因为针对ARM平台有好几个型号的处理器,而export CLFS_TARGET="arm-unknown-linux-gnu"对目标平台只是一个unknown,对后面的工作有影响么?

3。在ARM上创建Linux系统,到最后的时候才去配置和编译内核,在这一步才确定所用的处理器的具体型号,但再第六章已经完成了一些包的编译安装的工作,这有什么不妥么?这对整个创建的系统有影响么?

4。在ARM上创建Linux系统,有没有考虑在ARM目标平台上所使用的文件系统?一般ARM上都是flash的存储器。

5。在ARM上创建Linux系统,如果我想去装一个应用程序,是在第六章去编译安装么。
发表于 2006-9-20 17:30:24 | 显示全部楼层
1. ARM 速度快不快?如果快的话,我觉得本地编译更爽。

2.应该没关系,不过偶不清楚。。就好像 x86_64-unknown 一样,应该可以同时适应 emt64 和 amd64。

3. 应该没关系,是针对内核的。

4. 这个自己解决就好了吧。驱动选对就没问题了。

5.随时编译了。:)。
回复 支持 反对

使用道具 举报

发表于 2006-9-20 17:57:47 | 显示全部楼层
1.并不存在楼主所说的两种方式。前面的那些事情,是负责linux移植的人做的,那些人一般是芯片厂商雇的。如mizi之于samsung。他们移植完后,给客户的是整个针对他们芯片的内核代码以及文件系统。客户自己的配置都只是配配内核参数,如果客户自己做板子连其他硬件就写点驱动,然后编译几个应用程序。

2.没影响。虽然arm处理器型号多,但是他们的指令集是一样的,如samsung的跟atmel的,只要都是arm9,指令肯定一样。不同的只是芯片上带的资源不同,如有的芯片带3个时钟,有的带了2 个,这跟编译器或者编译参数无关。

3.没有不妥。应用层只能看到内核提供的系统调用,硬件(主要是资源)差异对它是透明的。

4.jffs2、yaffs
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-20 18:45:04 | 显示全部楼层
Post by 终极幻想
1. ARM 速度快不快?如果快的话,我觉得本地编译更爽。

2.应该没关系,不过偶不清楚。。就好像 x86_64-unknown 一样,应该可以同时适应 emt64 和 amd64。

3. 应该没关系,是针对内核的。

4. 这个自己解决就好了吧。驱动选对就没问题了。

5.随时编译了。:)。


非常感谢!

ARM速度不怎么快,不过flash和ram资源太少。

对4我还是不太明白,什么叫——驱动选对就没问题了?比如我想在ARM平台上采用JFFS2文件系统,我该如何去做哪?

大的方向比较清楚,具体的细节就搞不懂了。再次表示感谢!
回复 支持 反对

使用道具 举报

发表于 2006-9-20 18:48:54 | 显示全部楼层
具体的问 keenor 吧,我也不清楚,没用过。:)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-20 18:48:57 | 显示全部楼层
Post by keenor
1.并不存在楼主所说的两种方式。前面的那些事情,是负责linux移植的人做的,那些人一般是芯片厂商雇的。如mizi之于samsung。他们移植完后,给客户的是整个针对他们芯片的内核代码以及文件系统。客户自己的配置都只是配配内核参数,如果客户自己做板子连其他硬件就写点驱动,然后编译几个应用程序。

2.没影响。虽然arm处理器型号多,但是他们的指令集是一样的,如samsung的跟atmel的,只要都是arm9,指令肯定一样。不同的只是芯片上带的资源不同,如有的芯片带3个时钟,有的带了2 个,这跟编译器或者编译参数无关。

3.没有不妥。应用层只能看到内核提供的系统调用,硬件(主要是资源)差异对它是透明的。

4.jffs2、yaffs


非常感谢!

对于1,真的是这样的么?但的确是两种不同的方式啊!能不能再详细一些。

对于4,能否再详细说明一下。哦现在还是一头雾水。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-20 18:56:20 | 显示全部楼层
如果我要在ARM平台上装一种bootloader,该在什么时候装哪?
还是要单独移植,如:先移植好bootloader之后,然后把做好的clfs下载到目标平台上,再设置一些启动参数?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-20 19:10:07 | 显示全部楼层
Post by 终极幻想
具体的问 keenor 吧,我也不清楚,没用过。:)。


哦,呵呵,谦虚了吧,大名鼎鼎的终极幻想版主。

请问:你做过跨平台的clfs么?成功了么?

我刚才比较了一下Cross-Compiled Linux From Scratch - Version SVN-1.0.0rc4-20060827-PowerPC 和Cross-Compiled Linux From Scratch - Version SVN-2.0.0-20060808-ARM 。发现了几点不同。

SVN-1.0:先是Constructing a Temporary System,然后选择boot,然后 get your ${CLFS} directory copied over to your target machine。而且在第10章Installing Basic System Software,还安装了Yaboot package contains a PowerPC Boot Loader for machines。

请问:在此建立一个temporary system,是为了下载到目标平台上,然后就在目标平台上去做install basic system software么?

SVN-2.0: 先是Make the Cross-Compile Tools,然后就直接 Building the CLFS System,而且没有说明bootloader的安装。
回复 支持 反对

使用道具 举报

发表于 2006-9-20 19:19:47 | 显示全部楼层
LZ的问题似乎应该发在嵌入式Linux讨论区:http://www.linuxsir.cn/bbs/forumdisplay.php?f=85
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-20 19:26:23 | 显示全部楼层
Post by jarodwang
LZ的问题似乎应该发在嵌入式Linux讨论区:http://www.linuxsir.cn/bbs/forumdisplay.php?f=85


哦,是么?

小弟初来咋到,不懂规矩。我可以过去看看。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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