经过反复测试,以下方法也不能解决错误问题,目前只能按照github上的小米内核源码官方wiki进行编译,真心郁闷,希望有高人指点指点,谢谢。
以下是wiki地址:
https://github.com/MiCode/Xiaomi_Kernel_OpenSource/wiki
编译软件环境搭建:----依次执行下面#后面的语句,没有就安装
o Gnu C 3.2 # gcc --version |
o Gnu make 3.80 # make --version |
o util-linux 2.10o # fdformat --version |
o module-init-tools 0.9.10 # depmod -V |
o e2fsprogs 1.41.4 # e2fsck -V |
o jfsutils 1.1.3 # fsck.jfs -V |
o reiserfsprogs 3.6.3 # reiserfsck -V |
o xfsprogs 2.6.0 # xfs_db -V |
o squashfs-tools 4.0 # mksquashfs -version |
o btrfs-progs 0.18 # btrfsck |
o pcmciautils 004 # pccardctl -V |
o quota-tools 3.09 # quota -V |
o PPP 2.4.0 # pppd --version |
o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version |
o nfs-utils 1.0.5 # showmount --version |
o procps 3.2.0 # ps --version |
o oprofile 0.9 # oprofiled --version |
o udev 081 # udevd --version |
o grub 0.93 # grub --version || grub-install --version |
o mcelog 0.6 # mcelog --version |
o iptables 1.4.2 # iptables -V
make menuconfig提示'make menuconfig' requires the ncurses libraries. 解决办法:
sudo apt-get install libncurses5-dev
安装完毕之后再运行make menuconfig就可以了。
注意:本人开发环境是在ubuntu14.04进行的。
出现如下问题主要是交叉编译工具安装不正确,最终解决方法是重新安装交叉编译工具:
安装arm-linux-androideabi-gcc, arm-linux-androideabi-g++ // 安卓平台由于某些需求需要将开源库移植到Android下.所以需要该编译器
#: sudo apt-get install gcc-arm-linux-androideabi
然后重新:
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-linux-androideabi-
cd xiaomi_kernel #(这个是小米内核源码目录)
make clean
make menuconfig
make
——————————————————————————————————————————————
如下方法不能彻底解决问题,大家不要用了。
——————————————————————————————————————————————
在编译小米内核源码时,经常会遇到类似XXX.h : 没有文件或目录 的错误,具体错误原因应该跟交叉编译工具有关,原因未明白。可以采取如下方法解决:
例子:
缺少部分文件arch/arm/mach-msm/smd_init_dt.c:24:25: fatal error: smd_private.h: No such file or directory解决办法:
打开android/system/kernel/arch/arm/mach-msm/smd_init_dt.c
找到
修改为
修改完后继续make , 如果出其他类型的错误,请如下执行:
1: make clean
2: make
参考如下文章:
转载:http://cache.baiducontent.com/c?m=9d78d513d99001fe02fa940f5e5688711925df306d8dc7140fc3933e84652b1e0639f4bb56634f52c4c40c7006db5e5d9aab6a29711421c78ccffc5ddccbc46e38895723706b914062820de88b182a9b66d618feae6afaa7a062d2b9d2a48a00009644050dd1add44753489c2fad4f67f4a6ef4d115914baee3472ff2f743e9f5543a1478eba743159&p=8349dc0d92904ead08e2977e0d0591&newp=882a9645d68818c304be9b7c594c81231610db2151d0d001298ffe0cc4241a1a1a3aecbf26271306d0c37a6106ac425fe9f13172360234f1f689df08d2ecce7e64d14b68&user=baidu&fm=sc&query=arch/arm/mach-msm/smd_init_dt.c&qid=dff23c750003ecc0&p1=1
很多人都知道LG有个开源计划,但是一直都没人发这个的编译流程,这几天论坛没有什么新东西,发点上来供感兴趣的参考下,楼主也菜鸟来的,好多也不懂,希 望大家共同学习,水平烂,所以错误之处期望各位大大指正。需要注意的是,目前G3没有解锁bl,所以这个暂时没什么用。。 本教程也适用于其他lg机型比如G2等
正题开始:
首先要准备64位的ubuntu系统,如果不会安装你还不会ubuntu相关的知识,请暂时不要尝试了
楼主用的是linux mint 17 可能多少和ubuntu界面不一样,因为mint是基于ubuntu的,所以流程是一样的。
本教程用64位系统来做演示。
首先安装一些依赖包
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-6-jdk openjdk-6-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
接下来是同步cm11的代码,官方给的说明是同步AOSP,楼主觉得用CM11省事点,以后还有别的用处。
创建同步需要的目录
mkdir -p ~/bin
mkdir -p ~/android/system
下载repo
设置下bin的环境变量 这里对ubuntu来说应该没啥用。
编辑 ~/.profile
底部增加如下代码
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/binPATH"
fi
初始化同步列表
开始同步
耐心等待同步完成。同步完大概10多个G
下载lg开源计划内核源码
https://www.lg.com/global/suppor ... pes=ALL&search=D855
在输入框输入你的机型,本贴用d855举例
点击后面的source下载,大概130M左右
解压LGD855_Kitkat_V10a_Kernel.zip,得到LGD855_Kitkat_V10a_Kernel.tar.gz,再将LGD855_Kitkat_V10a_Kernel.tar.gz解压到~/android/system/
cd ~/android/system/kernel
export PATH=$PATH:tools/lz4demo
make ARCH=arm CROSS_COMPILE=../prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin/arm-eabi- g3-lgu-perf_defconfig zImage -j4
这几条命令 在下载好的官方内核里有说明文件
耐心等待编译完成
==================================================================================================
下面是编译遇到的一些错误,我大概流水账的记录下,希望给真正动手人的一点帮助
==================================================================================================
做本教程的时候遇到一些错误 我弄一点就编译一点
缺少部分文件arch/arm/mach-msm/smd_init_dt.c:24:25: fatal error: smd_private.h: No such file or directory解决办法:
打开android/system/kernel/arch/arm/mach-msm/smd_init_dt.c
找到
修改为
缺少部分文件sound/soc/msm/qdsp6v2/rtac.c:28:21: fatal error: q6voice.h: No such file or directory
打开sound/soc/msm/qdsp6v2/rtac.c
找到
修改为:
缺少部分文件 drivers/misc/tspdrv/tspdrv.c:42:20: fatal error: tspdrv.h: No such file or directory
打开drivers/misc/tspdrv/tspdrv.c
找到
修改为
此文件还有其他类似的修改地方 我就一起标准了吧
#include <ImmVibeSPI.c>改为#include "ImmVibeSPI.c"
#include <tspdrvOutputDataHandler.c>
#ifdef CONFIG_HIGH_RES_TIMERS
#include <VibeOSKernelLinuxHRTime.c>
#else
#include <VibeOSKernelLinuxTime.c>
#endif
改为
#include "tspdrvOutputDataHandler.c"
#ifdef CONFIG_HIGH_RES_TIMERS
#include "VibeOSKernelLinuxHRTime.c"
#else
#include "VibeOSKernelLinuxTime.c"
#endif
缺少部分文件:
include/linux/nfc/pn547_lge_hwadapter.h:9:47: fatal error: ../../arch/arm/mach-msm/clock-rpm.h: No such file or directory
找到
#include "../../arch/arm/mach-msm/clock-rpm.h"
修改为:
#include "../../../arch/arm/mach-msm/clock-rpm.h"
cp: "/home/piaoxue99/android/system/kernel/firmware/synaptics/g3_kr/PLG298-F004.img" 与"firmware/synaptics/g3_kr/PLG298-F004.img" 为同一文件
文件:android/system/kernel/firmware/Makefile
找到
quiet_cmd_copy = COPY $@
cmd_copy = cp $(srctree)/$@ $@
修改为:
#quiet_cmd_copy = COPY $@
#cmd_copy = cp $(srctree)/$@ $@
解决完这些就编译完了,生成文件在kernel/arch/arm/boot/zImage
下一期教程,搭配机型ramdisk.gz 打包到ramdisk.gz(没准什么时候出教程。。G2区还留了一堆尾巴。。)
如果你已经搞懂ramdisk.gz 可以直接用xiao1u大大的工具直接打包bootimg
分享到:
相关推荐
小米mix3内核的编译过程心得
3. 小米开源 Redmi K30 Pro 内核源码 http://t.cn/A6Z974Oj Redmi K30 Pro 的预装系统为 MIUI 11(基于 Android Q),随着内核源码的发布,开发者和愿意折腾的用户能够充分利用硬件的潜力,相信市场上也会很快...
本文收集了编译android内核源码大部分error,亲自试过,都能找到相对应的解决方法
Linux内核源码编译安装指导,相当滴全面
ubuntu11.04上编译omap3530内核存在问题解决方法.使用的是天漠公司的sbc8100开发板
linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核编译2.6.39linux内核...
在Ubuntu上下载、编译和安装Android最新内核源代码
Ubuntu64位编译Android源码出错解决办法
linux内核源码编译的入门技术.pdf linux内核源码编译的入门技术.pdf
Ubuntu-32位机安装编译Android2.3源码及内核,启动模拟器器,及生成SDK等。及编译过程中遇见相关问题解决
Linux内核源码包的安装及编译,内核源码包下载地址: http://www.kernel.org/ 注意:必须与当前使用内核版本完全相同。
WRK 是微软于 2006 年针对教育和学术界开放的 Windows 内核的部分源码, WRK(Windows Research Kernel)也就是 Windows 研究内核, 在 WRK 中不仅仅只提供了 Windows 内核模块的部分代码,其还提供了编译工具, 也...
进入上面的网址下载所需要编译的Linux内核,我选择了最新4.19.0版的内核,下载后为压缩包。(*请先保证网络正常) 2、存放 创建一个专属的文件夹,存放该压缩包。 二、编译部分 1、解压缩 如下图所示,并保证要进入...
本代码是温度传感器的代码,代码是编译进内核的,与编译成模块的代码有稍微区别,可以对比学习,本人已经验证完全通过。
linux内核编译linux内核编译linux内核编译linux内核编译linux内核编译linux内核编译
iptables 源码包安装,编译linux内核
如果要编译其他驱动,请去掉AP配置以后重新编译内核. 如果使用厂家的给内核源码重新配置,请在配置时注意一下几点: 1,Location: │ -> Device Drivers │ -> Network device support │ -> Wireless LAN ...
win 7 64上编译 Hadoop 2.7.3 源码 的真实经历。
最新编译的linux内核
自己动手编译Linux内核 自己动手编译Linux内核 整理了一下Linux内核编译的方法,原始内核版本为Linux-2.4.20.8,新内核版本为Linux-2.4.22,其它内核版本编译方法类似。