01-09-2019 03:07 PM
I'm trying to generate sysroot using petalinux-build -s, and my build dies when trying to update git submodules in qemu:
fatal: clone of 'git://git.qemu.org/capstone.git' <long path deleted> failed
There's a good reason for this - my company's IT group has disabled any net access that is not https from the build machines.
I've downloaded the cache file (https://www.xilinx.com/member/forms/download/xef.html?filename=sstate-rel-v2018.3.tar.gz), and configured petalinux to use it (per https://www.xilinx.com/member/forms/download/xef.html?filename=sstate_rel_2018.3_README.tar.gz). A regular build (petalinux-build) works fine. But for whatever reason the qemu portion of the SDK build insists on trying to go to git.qemu.org.
How do I convince petalinux to stay local for everything? If necessary I'm happy to disable qemu altogether, as I'm running on real hardware and don't need emulation, but I'm concerned that this is just the first failure, and if qemu is disabled, something else will break the build.
01-09-2019 11:58 PM - edited 01-10-2019 07:49 AM
01-10-2019 07:44 AM
Please refer Yocto proxy settings. https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy
01-11-2019 08:49 AM
So I tried what's described in the GIT section of the referenced wiki page, with no success. I still get:
| fatal: unable to connect to git.qemu.org:
| git.qemu.org[0: 220.127.116.11]: errno=Connection timed out
And the build dies.
I also tried the BB NoNetwork option in the configuration to try and convince Bit Bake that everything was local in the SSTATE_CACHE location, but that failed immediately.
So how do I convince petalinux that it can't go to the network for anything?
01-22-2019 10:37 AM
Any resolution here? I am having the same issue. I do not want to setup PetaLinux to work behind a proxy. I just don't want QEMU. We don't use it... we don't need it. I'm not sure why it's only failing connecting to git.qemu.org, but I just want to disable it from the petalinux-build --sdk execution.
01-30-2019 01:59 AM - edited 01-30-2019 02:00 AM
Same issue here too. I am still having issues cloning those qemu repos even after setting the proxy env
Is it not possible to bypass all QEMU related stuff if you don't need it?
01-30-2019 07:42 AM
I'm still stymied. I've had to put this aside for the moment, but I'll be back to it eventually and still scratching my head. This kind of thing is making me want to go to a regular Yocto flow, and ditch petalinux altogether, but I'm not that good at Yocto, so would likely have to spend as much or more time figuring that out.
01-30-2019 07:51 AM
Yocto is not much better unfortunately. I have a fair amount of experience with these tools across platforms. What I recommend: build what you need and get out of their workflow.
There is no need for development systems to require 100GB for yocto or petalinux to rebuild everything all of the time. The best workflow is the one you put together for your project. I create clean and simple git repos where I check in a built rootfs and have ONE system with yocto/petalinux installed where I can build new opensource packages from if necessary.
These systems are overly bloated and complex and, like this QEMU situation, end up trying to build stuff you don't need and don't care about. And you find yourself trying to work around the tools errors rather than them doing what they are supposed to do which is simply our lives.
01-31-2019 02:43 AM
I guess that there can be many reasons for the QEMU related errors when working behind a corporate proxy.
Not finding a useful way of disabling QEMU inclusion from Petalinux, I focused on fixing my two main issues, which were:
For the first one, I changed my git configuration as:
git config --global url.http://git.qemu.or/git/capstone.git/.insteadOf git://git.qemu.org/capstone.git git config --global url.http://git.qemu.or/git/keycodemapdb.git/.insteadOf git://git.qemu.org/keycodemapdb.git
For the SSL issues:
git config --global http.sslVerify false git config --global https.sslVerify false
And I came up with the following .gitconfig (I also explicitly added my company proxies) :
[url "http://git.qemu.org/git/capstone.git"] insteadOf = git://git.qemu.org/capstone.git [url "http://git.qemu.org/git/keycodemapdb.git"] insteadOf = git://git.qemu.org/keycodemapdb.git [http] proxy = http://<my_company_proxy_server>:<port> sslverify = false [https] proxy = http://<my_company_proxy_server>:<port> sslverify = false
There are possibly more elegant ways, but this made me progress quickly and come up with the sdk.sh file