2013-02-20 109 views
2

我試圖在我的Tegra3 ARM CPU(cortex-a9)上安裝Ubuntu 11.04操作系統下的ATLAS庫(v3.10.1),但是我無法通過配置步驟.. 當我啓動該 「的./configure」 可執行我得到這個輸出如下:ATLAS on ARM配置失敗

make: `xconfig' is up to date. 
./xconfig -d s /home/ubuntu/Libraries/ATLAS/build/.././ -d b /home/ubuntu/Libraries/ATLAS/build -D c -DATL_ARM_HARDFP=1 -Ss ADdir /Libraries/ATLAS/build/ARMHARDFP -Si archdef 0 -Fa alg -mfloat-abi=hard 

OS configured as Linux (1) 

Assembly configured as GAS_ARM (7) 

Vector ISA Extension configured as NEON (10,1024) 

Architecture configured as ARMv7 (46) 

Bad CPU MHZ value=0, res='CPU MHZ=0 
' 

Clock rate configured as 0Mhz 

Maximum number of threads configured as 4 
Parallel make command configured as '$(MAKE) -j 4' 

Pointer width configured as 32 
Cannot detect CPU throttling. 
rm -f config1.out 
make atlas_run atldir=/home/ubuntu/Libraries/ATLAS/build exe=xprobe_comp redir=config1.out \ 
       args="-v 0 -o atlconf.txt -O 1 -A 46 -Si nof77 0 -V 1024 -Fa ic '-mfloat-abi=hard' -Fa sm '-mfloat-abi=hard' -Fa dm '-mfloat-abi=hard' -Fa sk '-mfloat-abi=hard' -Fa dk '-mfloat-abi=hard' -Fa xc '-mfloat-abi=hard' -Fa gc '-mfloat-abi=hard' -Fa if '-mfloat-abi=hard' -b 32 -d b /home/ubuntu/Libraries/ATLAS/build" 
make[1]: Entering directory `/home/ubuntu/Libraries/ATLAS/build' 
cd /home/ubuntu/Libraries/ATLAS/build ; ./xprobe_comp -v 0 -o atlconf.txt -O 1 -A 46 -Si nof77 0 -V 1024 -Fa ic '-mfloat-abi=hard' -Fa sm '-mfloat-abi=hard' -Fa dm '-mfloat-abi=hard' -Fa sk '-mfloat-abi=hard' -Fa dk '-mfloat-abi=hard' -Fa xc '-mfloat-abi=hard' -Fa gc '-mfloat-abi=hard' -Fa if '-mfloat-abi=hard' -b 32 -d b /home/ubuntu/Libraries/ATLAS/build > config1.out 
sh: Syntax error: EOF in backquote substitution 
sh: Syntax error: EOF in backquote substitution 
sh: Syntax error: EOF in backquote substitution 
/usr/bin/ld: error: /tmp/cck4AYUv.o uses VFP register arguments, xctest does not 
/usr/bin/ld: failed to merge target specific data of file /tmp/cck4AYUv.o 
collect2: ld returned 1 exit status 
make[2]: *** [IRunCComp] Error 1 
/usr/bin/ld: error: /tmp/ccuMjBW4.o uses VFP register arguments, xctest does not 
/usr/bin/ld: failed to merge target specific data of file /tmp/ccuMjBW4.o 
collect2: ld returned 1 exit status 
make[2]: *** [IRunCComp] Error 1 


Unable to find usable compiler for ICC; abortingMake sure compilers are in your path, and specify good compilers to configure 
(see INSTALL.txt or 'configure --help' for details)make[1]: *** [atlas_run] Error 1 
make[1]: Leaving directory `/home/ubuntu/Libraries/ATLAS/build' 
make: *** [IRun_comp] Error 2 
ERROR 512 IN SYSCMND: 'make IRun_comp args="-v 0 -o atlconf.txt -O 1 -A 46 -Si nof77 0 -V 1024 -Fa ic '-mfloat-abi=hard' -Fa sm '-mfloat-abi=hard' -Fa dm '-mfloat-abi=hard' -Fa sk '-mfloat-abi=hard' -Fa dk '-mfloat-abi=hard' -Fa xc '-mfloat-abi=hard' -Fa gc '-mfloat-abi=hard' -Fa if '-mfloat-abi=hard' -b 32"' 
mkdir src bin tune interfaces 
mkdir: cannot create directory `src': File exists 
mkdir: cannot create directory `bin': File exists 
mkdir: cannot create directory `tune': File exists 
mkdir: cannot create directory `interfaces': File exists 
make: *** [make_subdirs] Error 1 
make -f Make.top startup 
make[1]: Entering directory `/home/ubuntu/Libraries/ATLAS/build' 
Make.top:1: Make.inc: No such file or directory 
Make.top:325: warning: overriding commands for target `/AtlasTest' 
Make.top:76: warning: ignoring old commands for target `/AtlasTest' 
make[1]: *** No rule to make target `Make.inc'. Stop. 
make[1]: Leaving directory `/home/ubuntu/Libraries/ATLAS/build' 
make: *** [startup] Error 2 
mv: cannot stat `lib/Makefile': No such file or directory 
.././configure: 450: cannot create lib/Makefile: Directory nonexistent 
.././configure: 451: cannot create lib/Makefile: Directory nonexistent 
.././configure: 452: cannot create lib/Makefile: Directory nonexistent 
.././configure: 453: cannot create lib/Makefile: Directory nonexistent 
.././configure: 509: cannot create lib/Makefile: Directory nonexistent 
DONE configure 

所以,我有三個問題:

第一:爲什麼「壞CPU MHZ值= 0,RES ='CPU MHZ = 0「?我確切地說,所有核心的CPU節制設置爲0(我檢查了/ sys/devices/system/cpu/cpu */cpufreq/throttle文件)。有沒有辦法將ARM cpu的時鐘頻率作爲參數傳遞?

第二:爲什麼「sh:語法錯誤:EOF反向引用替換」?

第三:「無法找到可用的ICC編譯器; abortingMake ..」有沒有辦法說./configure可執行文件不尋找ICC?因爲我試圖在ARM上構建ATLAS,所以ICC不可用。

在此先感謝您的幫助!

Guix

回答

2

ATLAS的配置環境打破了ARM,一般不是很容錯:

  • 首先它試圖通過在/ proc/cpuinfo中grepping(它從不以確定系統性能除了一些人類可讀的信息轉儲之外,它們都是用於其他目的的)你可以通過在configure命令行中指定一個頻率來覆蓋它:-m <MHz>
  • 然後它探測電源管理是否被啓用 - 如果是,它會再次釋放。看不到配置選項,但如果您在CONFIG/src/backend/archinfo_linux.c中使ProbeThrottle()返回0,則它會超過該選項。
  • 幾年前,某些Cortex-A8平臺似乎已經完成了一些工作,CONFIG/src/atlcomp.txt中的默認設置爲ARMv7的編譯器標誌包括-mfloat-abi=softfp,這時您會遇到這種情況。將其更改爲「硬」,實際上它將用於現代ARM Linux發行版。
  • 語法錯誤是由於試圖在/opt/bin/opt/sbin中查找編譯器而不處理錯誤而產生的。

通過上述解決方法,我沒有看到任何ICC錯誤,並且在崩潰和刻錄之前構建得到了一個相當的位。

總之,爲了在ARM上正常工作,需要一些移植工作。也許你可以先發送錯誤報告給他們的開發者郵件列表?

+0

http://www.vesperix.com/arm/index.html可能是一個潛在的替代資源。 – unixsmurf 2013-02-20 23:50:12

+0

感謝您的回答,我會嘗試這些技巧並讓您知道。 – user2092113 2013-02-21 08:06:15

+0

我試過你的詭計(-m選項,-mfloat-abi = hard已經完成),但輸出與之前完全一樣。這裏是我的cmd行:'../configure -D c -m = 1300 -DATL_ARM_HARDFP = 1 -Ss ADdir =/libraries/ATLAS/build/ARMHARDFP -Si archdef 0 -Fa alg -mfloat-abi = hard' – user2092113 2013-02-21 11:00:41