转载时请注明出处和作者联系方式:http://blog.csdn.net/mimepp
作者联系方式:YU TAO <yut616 at sohu dot com>
近来有朋友询问arm-elf-tools安装过程中出现错误的情况, 在这里做一个笔记.
如果你需要在无MMU的arm上, 运行uclinux, 那么你编译uclinux时需要的toolchain应该就是arm-elf-tools. 这个你可以从
http://www.uclinux.org/
选HTTP download,再选arm-elf-tools.
网站上是将arm版本的和m68K混和列在一行,
m68k-elf-20030314/arm-elf-20030314
直接下载"the ARM binaries"即可.
文件的大小为:
desktop:
~
$ ls arm
-
elf
-
tools
-
20030314
.sh
-
l
- rw - r -- r -- 1 root root 18406845 2003 - 03 - 14 arm - elf - tools - 20030314 .sh
- rw - r -- r -- 1 root root 18406845 2003 - 03 - 14 arm - elf - tools - 20030314 .sh
安装前,需要注意的一点是:
arm-elf-tools-xxx.sh是一个脚本后面带着压缩包的东西. 它需要利用tail 掠过前面的脚本然后通过管道将压缩包解压展开。
出错情况:
desktop:
~
$ sudo sh arm
-
elf
-
tools
-
20030314
.sh
tail: Warning: " +number " syntax is deprecated, please use " -n +number "
. / usr / local / arm - elf /
. / usr / local / arm - elf / bin /
. / usr / local / arm - elf / bin / nm
tar: Skipping to next header
gunzip: stdin: invalid compressed data -- format violated
tar: Error exit delayed from previous errors
tail: Warning: " +number " syntax is deprecated, please use " -n +number "
. / usr / local / arm - elf /
. / usr / local / arm - elf / bin /
. / usr / local / arm - elf / bin / nm
tar: Skipping to next header
gunzip: stdin: invalid compressed data -- format violated
tar: Error exit delayed from previous errors
可能的情况一:
检查文件大小是否正确, 错误的话, gunzip/tar会出错.
这个情况的可能性最大.
可能的情况二:
tail命令有错误, 脚本中有
tail
+
$
{SKIP}
$
{SCRIPT}
|
gunzip
|
tar xvf
-
方法1:
如果想不修改脚本文件, 可以用linux的命令别名来处理,如
desktop: ~ $ alias tail='tail -n'
然后继续 sudo sh arm - elf - tools - 20030314 .sh
方法2:
修改脚本文件, 直接加上参数"-n"