2017-01-26 8 views
3

Я пытаюсь построить цепочку инструментов с помощью crosstool-ng, я все это установил, выбрал свой процессор, как описано в http://crosstool-ng.org/#download_and_usage, и я нахожусь на том этапе, где я могу построить свою инструментальную цепочку , Когда я вхожу ct-ng build однако, он отменяет со следующей ошибкой:crosstool-ng can not fetch linux tarball

$ ct-ng build 
[INFO ] Performing some trivial sanity checks 
[INFO ] Build started 20170126.135517 
[INFO ] Building environment variables 
[EXTRA] Preparing working directories 
[EXTRA] Installing user-supplied crosstool-NG configuration 
[EXTRA] ================================================================= 
[EXTRA] Dumping internal crosstool-NG configuration 
[EXTRA] Building a toolchain for: 
[EXTRA]  build = x86_64-pc-linux-gnu 
[EXTRA]  host = x86_64-pc-linux-gnu 
[EXTRA]  target = powerpc-e500v2-linux-gnuspe 
[EXTRA] Dumping internal crosstool-NG configuration: done in 0.09s (at 00:02) 
[INFO ] ================================================================= 
[INFO ] Retrieving needed toolchain components' tarballs 
[EXTRA] Retrieving 'linux-4.3' 
[ERROR] 
[ERROR] >> 
[ERROR] >> Build failed in step 'Retrieving needed toolchain components' tarballs' 
[ERROR] >>  called in step '(top-level)' 
[ERROR] >> 
[ERROR] >> Error happened in: do_kernel_get[scripts/build/kernel/[email protected]] 
[ERROR] >>  called from: main[scripts/[email protected]] 
[ERROR] >> 
[ERROR] >> For more info on this error, look at the file: 'build.log' 
[ERROR] >> There is a list of known issues, some with workarounds, in: 
[ERROR] >>  '/usr/local/share/doc/crosstool-ng/crosstool-ng-1.22.0/B - Known issues.txt' 
[ERROR] 
[ERROR] (elapsed: 0:31.10) 
[00:31]/make: *** [build] Error 1 

В build.log я получаю следующее:

[EXTRA] Retrieving 'linux-4.3' 
... 
... 
... 
[DEBUG] Not at this location: "http://www.kernel.org/pub/linux/kernel/v4.x/longterm/v4.3/linux-4.3.zip" 
[DEBUG] Trying 'http://www.kernel.org/pub/linux/kernel/v4.x/longterm/linux-4.3.zip' 
[DEBUG] ==> Executing: 'wget' '--passive-ftp' '--tries=3' '-nc' '--... 
[DEBUG] Not at this location: "http://www.kernel.org/pub/linux/kernel/v4.x/longterm/linux-4.3" 
[ERROR] 
[ERROR] >> 
[ERROR] >> Build failed in step 'Retrieving needed toolchain components' tarballs' 
[ERROR] >>  called in step '(top-level)' 
[ERROR] >> 
[ERROR] >> Error happened in: do_kernel_get[scripts/build/kernel/[email protected]] 
[ERROR] >>  called from: main[scripts/[email protected]] 
[ERROR] >> 
[ERROR] >> For more info on this error, look at the file: 'build.log' 
[ERROR] >> There is a list of known issues, some with workarounds, in: 
[ERROR] >>  '/usr/local/share/doc/crosstool-ng/crosstool-ng-1.22.0/B - Known issues.txt' 
[ERROR] 
[ERROR] (elapsed: 0:31.10) 

Я понимаю, что это не в состоянии извлечь ядро, есть способ, которым я можете загрузить его вручную и рассказать скрипт, где находится tarball?

Хорошо, я понял, что wget http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.gz потерпит неудачу, но wget --no-check-certificate http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.gz будет работать, чтобы загрузить tarball только через прокси. Так я скопировал /usr/bin/wget в/USR/binwget ~ ориг and wrote a wrapper/USR/BIN/wget`, который выглядит как:

#!/bin/bash 

/usr/bin/wget~orig --no-check-certificate $1 

, но это не похоже на работу либо, теперь я получаю следующее в build.log:

[DEBUG] ==> Executing: 'wget' '--passive-ftp' '--tries=3' '-nc' '--progress=dot:binary' '-T' '10' '-O' '/home/ron/src/toolchain/work/.build/tarballs/linux-4.3.tar.xz.tmp-dl' 'http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.xz' 
[ALL ] wget~orig: missing URL 
[ALL ] Usage: wget~orig [OPTION]... [URL]... 
[ALL ] 
[ALL ] Try `wget~orig --help' for more options. 
[DEBUG] Not at this location: "http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.xz" 
[DEBUG] Trying 'http://www.kernel.org/pub/linux/kernel/v4.x/longterm/v4.3/linux-4.3.tar.xz' 
[DEBUG] ==> Executing: 'wget' '--passive-ftp' '--tries=3' '-nc' '--progress=dot:binary' '-T' '10' '-O' '/home/ron/src/toolchain/work/.build/tarballs/linux-4.3.tar.xz.tmp-dl' 'http://www.kernel.org/pub/linux/kernel/v4.x/longterm/v4.3/linux-4.3.tar.xz' 
[ALL ] wget~orig: missing URL 
[ALL ] Usage: wget~orig [OPTION]... [URL]... 

Как это автомагический знает, что мой первоначальный wget двоичным теперь называется wget~orig ??? Andit пытается использовать это вместо моей обертки, которая теперь находится на /usr/bin/wget (да, я добавил разрешения x и попробовал это тоже, wget http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.gz из оболочки (используя мой сценарий оболочки) теперь отлично работает ...

ответ

1

Хорошо,

с wget вызывается с Muliple (9) аргументов, я исправил мой обертку скрипт (в /usr/bin/wget) выглядеть следующим образом:

#!/bin/bash 

/usr/bin/wget~orig --no-check-certificate $1 $2 $3 $4 $5 $6 $7 $8 $9 

Это, кажется, работает успешно, чтобы загрузить исходные тарболы необходимые по ct-ng

0

Вы можете настроить ct-ng для предотвращения его загрузки источников:

ct-ng menuconfig 
  • Перейти к Path and misc options
  • В *** Downloading *** выберите [*] Forbid downloads
  • Выход ...

Когда ты попробуйте построить свою инструментальную цепочку (ct-ng build) процесс сборки ожидает, что вы поместите вручную загруженные tarballs в ~/src.

Просто осмотрите build.log, чтобы узнать, какие tarballs нужны.