陆陆续续接触Yocto有一年多时间了,有多家的SOC厂商使用Yocto。但是越使用,就越觉得这个工具设计的很别扭。
1. 下载资源麻烦
国内访问GitHub本身就比较麻烦,但是Yocto的很多资源都在国外服务器,光是下载资源,就要折腾掉半条命。
2. 编译耗时
同样是编译kernel,如果单独编译kernel,与在yocto中编译kernel相比,时间上要快非常多。
3. 临时修改麻烦
如果提取kernel单独编译,想修改哪个文件就修改哪个文件,但是如果在yocto中编译文件,需要先devtool modify,然后才能在临时的路径里面去修改代码。新手往往不知道这个坑,首先是找到源代码就非常麻烦,然后在源代码里面修改,发现修改过后会容易丢失,不被保存。或者是使用patch的方式,但是每次patch及其麻烦。
4. 逻辑混乱
Yocto有很多变量。比如我需要编译core-image-minimal,以及core-image-weston,但是这两个image具体差异在哪里,没有一个统一的文件去说明,Yocto的意思是他们不是中央集权,所以各个地方的配置都有权限修改自己的模块是否编译,但是这样就导致一个问题,到底一个模块在哪里使能他编译的,在哪里未使能他编译,都是问题。没有一个单独的文件,可以比较出哪些文件被配置了,哪些文件没有被配置
5. 裁减困难
尝试做裁减,但是发现很困难,从开源群里面听到大家的意见是,Yocto适合做加法,不适合做减法。但是往往我们只能在原厂释放的资料上面做减法,做加法也没有资料,所以系统裁减也很难,没有make menuconfig这样的配置,可以自己把自己用不到的内容删除掉。