NXP

yocto-4.9.88 python出错解决

2019-07-12 12:38发布

编译nxp的4.9.88版本的Yocto工程时,出了一个错误,耽搁了我两天,试了各种原因,解决方式记录于下
ERROR: pango-1.40.6-r0 do_package: Error executing a python function in exec_python_func() autogenerated:
记录了以上第一条错误
看样子是由于python,导致编译qtbase-5.9.4+gitAUTOINC+0d9208cecb-r0出错
看到yocto编译手册
在这里插入图片描述要求的python最低版本是3.4
在ubuntu下查看了一下
python --version
版本是2.7
ls /usr/bin/python*
在这里插入图片描述
发现自己的python版本有2.7及3.5
系统默认指定的是2.7
在这里插入图片描述
那么修改默认指定
echo alias python=python3 >> /home/cc/.bashrc
source /home/cc/.bashrc //cc是我的ubuntu用户名
再python --version看一下
发现已经切换成3.5了
在这里插入图片描述
然后继续yocto的编译
python切换版本参考的是别人的一篇博客:https://blog.csdn.net/wangguchao/article/details/82151372 而事实是按照上述这种方式,继续编译的结果仍然是出错
在这里插入图片描述
在/usr/bin目录下,python的软链接指向的仍然是python2.7 sudo rm python
sudo ln -s python3.5 python
ls python -l
在这里插入图片描述
现在软链接是改过来了,出错怕了,重启ubuntu,然后接着编译yocto试试 在配置repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-rocko -m imx-4.9.88-2.0.0_ga.xml
时出错
在这里插入图片描述看来这里就和python3.5不兼容了 回故一下repo的得来,正规途径应该是下面这样
sudo curl https://storage.googleapis.com/git-repo-downloads/repo > /home/cc/yocto/bin/repo
要从google获取
由于上不了谷歌,我的repo是借鉴网上别人的方法
sudo curl http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo > /home/cc/yocto/bin/repo
可能是由于这个repo是2011/9月份的,太老了
后来发现
sudo curl https://storage.googleapis.com/git-repo-downloads/repo > /home/cc/yocto/bin/repo
其实这句命令就可以执行并下载到repo,简直无语
为什么会走这么多弯路,百度里面看到不能访问谷歌,就以为这句命令是执行不了的; 折腾了这么久,那么来试试效果吧
新的问题又来了
在这里插入图片描述居然说python3不支持 又来看手册了
https://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#required-git-tar-and-python-versions
这个手册是我这几天一直参考的在线手册
在这里插入图片描述这份手册是对于2.6的yocto发行版实用的 里面说的ubuntu环境是16.04,python版本是3.4以上
我还专门把ubuntu14升级成ubuntu16来编译yocto
再看i.MX_Yocto_Project_User’s_Guide_linux.pdf
在这里插入图片描述
这里很清晰的写到我要编译的4.9.88是基于yocto project2.4的
两份手册没有对应上,所以问题百出
那接下来要干的事情就是下载yocto2.4发行版的手册,然后重新配置ubuntu环境,再来一次痛苦的实验了