cm11for xt897(motorola pthoton q) 編譯記錄


主機:Ubuntu14.04 64bit


首先是下載.

解壓出來之後是個.repo 文件夾.

此時應該執行 repo sync 同步檢驗完成就可以了.

但是我在學校時試了好多次都沒下載成.以爲是網速問題,回到家有寬帶還是不行.直到看到個網友做了個腳本:

#!/bin/bash

# FIXME: 只允許同時一個repo運行

kill_prog() {
# 用ps找出所有的repo, 然後kill掉
PID=`ps aux |grep python|grep [r]epo |awk '{print $2}'`
[[ -n $PID ]] && kill $PID
}

start_sync() {
repo sync &
}

restart_sync() {
kill_prog
start_sync
}

# 如果網絡流量在retry_delay時間內小於min_speed, 則認爲repo sync已經卡住了

min_speed="50"
retry_delay=600
((counter=0))
((n_retries=0))

restart_sync


while [[ 1 ]]; do
# 用ifstat檢測網速
speed=`ifstat 1 1 | tail -n 1 | awk '{print $1}'`
result=$(echo "$speed < $min_speed" | bc)
if [[ $result == "1" ]]; then
((counter++))
else
((counter=0))
fi
if ((counter > retry_delay)); then
((counter=0))
echo "netspeed low. restart!"
((n_retries++))
restart_sync
fi
done

echo "completed with $n_retries retries"

需要先apt-get install ifstat 軟件


下載完成後先按官方教程build一遍.

首先先把自己平時用的交叉編譯鏈從PATH刪掉,避免衝突. 

PATH變量裏有sdk 

如果遇到breakfast xt897 時找不到device xt897

把下面幾個git clone 到 device/motorola/目錄下

https://github.com/CyanogenMod/android_device_motorola_qcom-common

https://github.com/CyanogenMod/android_device_motorola_moto_msm8960

https://github.com/CyanogenMod/android_device_motorola_xt897


 編譯時提示缺少庫.查看xt897 目錄下extract-files.sh 文件,發現最終調用到了 device/motorola/qcom-common/extract-files.sh 腳本.

看註釋可以知道這是moto msm8960 芯片系列產品通用的腳本,而且setup-makefiles.sh 沒有調用成功.

補丁如下

diff extract-files.sh extract-files.sh.bak 
58c58
< export COMMON_DEVICE=qcom-common
---
> #export COMMON_DEVICE=qcom-common

還有60行

COMMON_BASE=../../../vendor/$VENDOR/$COMMON_DEVICE/proprietary

----------------------------------

問題:external/iproute2/tc/q_prio.c:60:8: error: 'struct tc_prio_qopt' has no member named 'enable_flow'
external/iproute2/tc/q_prio.c:64:8: error: 'struct tc_prio_qopt' has no member named 'enable_flow'
答:cd vendor/cm
./get-prebuilts

...
還遇到過空間不夠,內存不夠等問題.這些網上比較好找就不貼了

重新執行 extract-files.sh 腳本,很多庫無法adb pull出來.

連本機都沒有的庫說明根本沒有用到嘛. 於是在common-proprietary-files.txt 裏註釋掉就好了.


其實整個編譯過程對不熟悉的人看着是非常頭疼的.那些編譯腳本跳來跳去 而且不像Makefile那樣有 Enter ... directory  ; leving xx directory 等提示.

好在錯誤不多 .而且每個文件夾都有個 *.mk 

發佈了30 篇原創文章 · 獲贊 21 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章