編譯適配小米2S的CM Linux核心原始碼及問題解決
阿新 • • 發佈:2019-01-07
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;