转载时请注明出处和作者联系方式: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
下载后, 最好是确认一下文件大小是否正确, 特别是你在别处下载好后,传到你的linux host PC的情况时.
安装前,需要注意的一点是:
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命令有警告, gunzip也有警告, tar出错.
可能的情况一:
检查文件大小是否正确, 错误的话, gunzip/tar会出错.
这个情况的可能性最大.
可能的情况二:
tail命令有错误, 脚本中有
tail
+
$
...
{SKIP}
$
...
{SCRIPT}
|
gunzip
|
tar xvf
-
警告中提示需要加一个"-n"参数.
方法1:
如果想不修改脚本文件, 可以用linux的命令别名来处理,如
desktop:
~
$ alias tail='tail -n'
然后继续
sudo sh arm
-
elf
-
tools
-
20030314
.sh
方法2:
修改脚本文件, 直接加上参数"-n"