1. 下载内核源代码
首先进入CM官网与小米2S相关的页面:
http://wiki.cyanogenmod.org/w/Aries_Info
在页面中可以找到Kernel后面的链接:
http://www.github.com/cyanogenmod/android_kernel_xiaomi_aries
单击该链接进入github下载页面,可以通过git clone下载,也可以直接下载zip压缩版本。
2. 编译内核源代码
进入下载后的目录,将MakeFile中的两行修改为:
ARCH ?= arm
CROSS_COMPILE ?= arm-none-linux-gnueabi-
如果未安装交叉编译器请安装交叉编译器。
之后执行以下命令:
make cyanogen_aries_defconfig
make
编译过程可能会遇到如下问题,给出了解决方式,但不知是否有潜在bug。
(1)报错:
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_probe':解决方法:
drivers/mmc/host/msm_sdcc.c:5516:19: warning: 'sup_voltages' may be used uninitialized in this function [-Wuninitialized]
在drivers/mmc/host/msm_sdcc.c文件5517行后面(在使用sup_voltages之前)添加:
sup_voltages = devm_kzalloc(dev, sup_volt_len / sizeof(*sup_voltages) * sizeof(*sup_voltages), GFP_KERNEL);(2)报错:
drivers/mmc/host/msm_sdcc.c: In function 'msmsdcc_probe':drivers/mmc/host/msm_sdcc.c:5556:24: warning: 'clk_table' may be used uninitialized in this function [-Wuninitialized]解决方法:
在drivers/mmc/host/msm_sdcc.c文件5517行后面(在使用clk_table之前)添加:
clk_table = devm_kzalloc(dev, clk_table_len / sizeof(*clk_table) * sizeof(*clk_table), GFP_KERNEL);(3)报错:
drivers/staging/prima/CORE/HDD/src/wlan_hdd_main.c: In function 'wlan_hdd_scan_abort':drivers/staging/prima/CORE/HDD/src/wlan_hdd_main.c:7201:9: warning: 'status' may be used uninitialized in this function [-Wuninitialized]解决方法:
将drivers/staging/prima/CORE/HDD/src/wlan_hdd_main.c文件7201行(status定义所在行)修改为:
int status = VOS_STATUS_SUCCESS;