如何编译lineage不支持的机型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何编译lineage不支持的机型相关的知识,希望对你有一定的参考价值。
首先整理相应的机型MK文件
device文件,android_device_$your-device-namekernel文件,android_kernel_$your-device-name
vendor文件,android_vendor_$your-device-name
收集或者制作或者修改,完成,你的机型文件后
同步下载lineage的源码:
清华镜像源,打开看教程(同步出错有问题就百度,一般都有答案,系统最好在Linux和他的各种分支中选择>经常用Windows-觉得Mac很反人类-不过开发商好像很喜欢-可能是苹果给出的条件太好-没人能拒绝,我觉得Ubuntu不错,也很喜欢Deepin-适合新手-国内维护挺不错的)
然后整理MK文件:
也可以点这里,去官网找一下相关机型或品牌文件作为参考
比如我的手机是ZUK EDGE
## ZUK EDGE# 我的机型代号-z2x,这个是开发用的代号;
# 我的内部机型-z2151,这个是从官方下载开源部分需要的型号;
# ZUK特殊部分其他机型不一定会有一般就是三个:device、kernel、vendor(非必有)
# < 类型 name="仓库名" path="文件路径" />
< android
name="lineage"
path="~/bin/lineage" />
< device
name="android_device_zuk_z2"
path="$android/device/zuk/z2x" />
< device
name="android_device_zuk_msm8996-common"
path="$android/device/zuk/msm8996-common" /> #ZUK特殊部分
< kernel
name="android_kernel_zuk_msm8996"
path="$android/kernel/zuk/msm8996" /> #这个命名比较特别,打包开发的
<!-- 附加部分,vendor一般有生成脚本或者需要额外编写 -->
< vendor
name="android_vendor_z2x"
path="$android/vendor/zuk/z2x" />
< vendor
name="android_vendor_msm8996-common"
path="$android/vendor/zuk/msm8996-common" /> #ZUK特殊部分
#end
######错误部分,可以查阅,帮助理解,最好跳过,跳过
把上面的文件解包放置到相应文件夹下
device文件,android_device_$your-device-name
kernel文件,android_kernel_$your-device-name
vendor文件,android_vendor_$your-device-name"_"对应是一个文件夹分层,比如device就是在“android源码“文件夹下(看你怎么起名字,就是清华网站中提示你的“WORKING_DIRECTORY”文件夹,可以是‘android’、‘lineage’等等)的device文件夹下,你的机子品牌文件夹下,你的机型里(比如我的手机是ZUK EDGE-我是穷逼,没钱换机,我的相应机型代号就是z2x-根据代号搞开发,内部机型z2151-根据内部型号找官方开源代码,以下示例)
示例:
device:android_device_zuk_z2x
仓库文件就在:~/bin/lineageOS/device/zuk/z2x
kernel:android_kernel_zuk_msm8996 #为什么这个忽然变成msm8996了呢,哈哈|
仓库文件就在:~/bin/lineageOS/kernel/zuk/msm8996 #因为机型特别
vendor:android_vendor_zuk_z2x #一般是不提供这个仓库部分的,
#会有比如“extract-files.sh”等脚本
#需要连接你的手机,生成这些文件
以上引号部分是由百度自动保存编写错误部分
最后是编译:
source build/envsetup.shlunch lineage_z2x-userdebug #这条命令去查看机型文件夹下的 lineage_*.mk文件,把z2x换成你的
cd device/zuk/z2x #这条应该是你的机型文件夹,和下一条命令看情况找找你的vendor扩展脚本
./extract-files.sh #这个看情况,找找你的脚本
croot #返回lineage根目录
make -j8 #开始编译ROM,后面的 -j* 是线程,看你的CPU而定
#看输出log,编译完成ROM在out文件夹下
这样就完成了:
看似简单,实则简单,但是肯定会出错,因为你是在学习,好好学,好好问问,学会用百度,别跟个愣头B一样,张嘴就是:我是小白,这个怎么弄,我不会啊,你教教我呗,这个什么意思;崽种不会自己学
# 好了,结束,加油
参考技术A 一、准备需要用到的东西我已经帮大家全部准备好了,有我自己亲手制作的第三方库 ,在源码的根目录下建立个3rdparty文件夹,把文件解压进去就可以了。
解压好之后,要将3rdparty/bin文件夹添加到系统目录,这样才能让程序找到这些第三方库的dll。
然后是Visual Studio 2012,因为我的第三方库都是VS2012环境下编译的,所以用其他版本VS的请自行编译。
最后是CUDA和MKL了,MKL是可选的,大家可以去Intel官方申请,如果不用cpu模式的话其实也无所谓,在第三方库包中我还提供了openblas的库文件。
二、编译
编译非常简单,分为以下几步:
1、双击两个c++文件,和caffe_pb2.py这个python使用的文件。
2、打开./build/MSVC/MainBuilder.sln,打开之后切换编译模式至Release X64模式。如果打开之后显示加载失败,可能你的CUDA版本和我的不一致,我的是CUDA 6.5版,这时就要用记事本打开./build/MSVC/MainBuilder.vcxproj,搜索CUDA 6.5,把这个6.5换成你自己的CUDA版本,就可以正常打开了。
3、右键点击左边的MainCaller项目,选择属性,在C/C++选项卡中,把附加包含目录中的cuda include目录改成你自己的;在链接器选项卡中,,把附加库目录中的cuda library目录也改成你自己的。
4、点上边工具栏中的绿色三角编译吧。
如果要用matlab wrapper来提取特征、观察训练好的权重的话呢,只需要把matcaffe项目里面的cuda、matlab目录修改成你自己的,然后编译,你就能从matlab/caffe文件夹里面找到一个叫caffe.mexw64的文件啦。
python的wrapper类似,把pycaffe项目里的目录改成你自己的,就能在python/caffe文件夹中生成_caffe.pyd的python dll文件。
方舟编译器明天开源!20多款机型已适配支持
特大好消息
方舟编译器开源准备就绪
8月31日,show you the code!
粉粉们的欢呼声在哪里
举起你们的小手手让花花看到
以上是关于如何编译lineage不支持的机型的主要内容,如果未能解决你的问题,请参考以下文章
iOS 15 要来了!UI 焕然一新,分屏显示,iPhone 7以下机型不支持
linux如何查看编译器支持的C++版本(支持C++11支持C++14支持C++17支持C++20)(编译时不指定g++版本,默认使用老版本编译)
linux如何查看编译器支持的C++版本(支持C++11支持C++14支持C++17支持C++20)(编译时不指定g++版本,默认使用老版本编译)