petalinux-config -c kernelをすると最初145個のTask(ダウンロードするライブラリ等)があり、会社のProxy経由だと108個とかがダウンロード出来ずにエラーとなりました。
解決方法
~.bashrcに大文字のHTTP_PROXY設定に追加して小文字のhttp_proxyなども設定する。
export HTTP_PROXY=http://proxy.example.co.jp:8080 export HTTPS_PROXY=http://proxy.example.co.jp:8080 export FTP_PROXY=http://proxy.example.co.jp:8080 export http_proxy=http://proxy.example.co.jp:8080 export https_proxy=http://proxy.example.co.jp:8080 export ftp_proxy=http://proxy.example.co.jp:8080
原因
PetaLinuxはdo_fetchが呼ばれたら、wgetでfetchしているみたいで、そのwgetは/プロキシ変数は小文字のhttp_proxyとhttps_proxyとno_proxyを見ています。 /etc/wgetrcには小文字でhttp_proxy等を設定していたのですが、PetaLinuxは/etc/wgetrcを使いませんでした。
~/.bashrcには大文字でProxy設定して、/etc/wgetrcには小文字でProxy設定して、/etc/apt/apt.confも設定して、~/.gitconfigも設定していて、個別でコンソールからwget、apt、git clone、pipなどがconnectedとなりファイルを取得してきているので、何が問題か分かりませんでした。
すると、ユーザーホームディレクトリ/PetaLinuxプロジェクトディレクトリ/build/tmp/hosttools/wgetがあり、シンボリックリンクで/tools/Xilinx/PetaLinux/components/yocto/buildtools/sysroots/x86_64-petalinux-linux/usr/bin/wgetを参照していました。 多分これが呼びだされ/etc/wgetrcを参照していないかもしれません。 何れにせよ、petalinux-config -c kernelをするとwgetを使うので、ログインユーザーレベルで小文字のhttps_proxy等の環境変数を用意しておく必要がありました。
わかれば簡単な解決方法ですがまる2日かかりました。
多分、/etc/wgetrcを~/wgetrcにコピー(やシンボリックリンク)しても良いのかもしれませんが上記で解決したので未検証です。
コメント