crosstool-ng 无法获取 linux tarball
crosstool-ng cant fetch linux tarball
我正在尝试使用 crosstool-ng
构建工具链,我已经全部设置好,按照 http://crosstool-ng.org/#download_and_usage 中的描述选择了我的 cpu,我在我可以构建我的工具链的步骤。但是,当我输入 ct-ng build
时,它会因以下错误而取消:
$ 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/linux.sh@741]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@590]
[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/linux.sh@741]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@590]
[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~origand wrote a wrapper
/usr/bin/wget` 看起来像:
#!/bin/bash
/usr/bin/wget~orig --no-check-certificate
但这似乎也不起作用,我现在在 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
???它尝试使用它而不是我现在位于 /usr/bin/wget
的包装器(是的,我已经添加了 x 权限并尝试了它,来自 shell 的 wget http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.gz
(利用我的包装器脚本)现在工作正常...
好的,
由于使用多个 (9) 个参数调用 wget
,我修复了我的包装脚本(在 /usr/bin/wget
)看起来像:
#!/bin/bash
/usr/bin/wget~orig --no-check-certificate
这似乎可以成功下载 ct-ng
所需的源压缩包
您可以配置 ct-ng
以防止它下载源:
ct-ng menuconfig
- 转到
Path and misc options
- 在
*** Downloading ***
、select[*] Forbid downloads
- 退出...
当您尝试构建工具链 (ct-ng build
) 时,构建过程会要求您将手动下载的 tarball 放入 ~/src
.
只要检查 build.log
就知道需要什么 tarball。
您可以配置 ct-ng
以将额外参数传递给 wget
:
ct-ng 菜单配置
- 转到
Path and misc options
- 在
*** Downloading ***
中,在Connection timeout
选项下
- Select
(--passive-ftp --tries=3 -nc --progress=dot:binary...
- 添加
--no-check-certificate
- 退出
这是不安全的,但是它允许您放弃为其他答案中提到的 wget 创建包装脚本
我正在尝试使用 crosstool-ng
构建工具链,我已经全部设置好,按照 http://crosstool-ng.org/#download_and_usage 中的描述选择了我的 cpu,我在我可以构建我的工具链的步骤。但是,当我输入 ct-ng build
时,它会因以下错误而取消:
$ 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/linux.sh@741]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@590]
[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/linux.sh@741]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@590]
[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~origand wrote a wrapper
/usr/bin/wget` 看起来像:
#!/bin/bash
/usr/bin/wget~orig --no-check-certificate
但这似乎也不起作用,我现在在 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
???它尝试使用它而不是我现在位于 /usr/bin/wget
的包装器(是的,我已经添加了 x 权限并尝试了它,来自 shell 的 wget http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.gz
(利用我的包装器脚本)现在工作正常...
好的,
由于使用多个 (9) 个参数调用 wget
,我修复了我的包装脚本(在 /usr/bin/wget
)看起来像:
#!/bin/bash
/usr/bin/wget~orig --no-check-certificate
这似乎可以成功下载 ct-ng
您可以配置 ct-ng
以防止它下载源:
ct-ng menuconfig
- 转到
Path and misc options
- 在
*** Downloading ***
、select[*] Forbid downloads
- 退出...
当您尝试构建工具链 (ct-ng build
) 时,构建过程会要求您将手动下载的 tarball 放入 ~/src
.
只要检查 build.log
就知道需要什么 tarball。
您可以配置 ct-ng
以将额外参数传递给 wget
:
ct-ng 菜单配置
- 转到
Path and misc options
- 在
*** Downloading ***
中,在Connection timeout
选项下 - Select
(--passive-ftp --tries=3 -nc --progress=dot:binary...
- 添加
--no-check-certificate
- 退出
这是不安全的,但是它允许您放弃为其他答案中提到的 wget 创建包装脚本