CM 出错解决
来源:互联网 发布:mac 选项卡切换快捷键 编辑:程序博客网 时间:2024/05/01 21:45
参考页面:
在下载和编译之前,检查是否符合条件:1. Setting up a linux build environment
2. Downloading and Building
1). Linux 或者 Mac 系统 。 如果在Windows 上使用虚拟机,则需要至少16G 的RAM/SWAP 和 30G 的 磁盘。
2). 编译2.3 及以上要64位系统。 (head -n 1 /etc/issue 我使用的 Ubutnu 12.04.4 LTS )
3). 30G 磁盘-- single build ; 100G 磁盘 --full build ( 我的 可用空间有140G)
4). Python 2.6-2.7 (Ubutnu 自带 2.7.3)
5). GNU Make 3.8.1 - 3.8.2 (目前还没有)
6). JDK 7 -- 用来编译最新的 AOSP (我的 jdk6 7 都有了)
JDK 6 -- Gingerbread(2.3.x) 到 KitKat(4.4)
JDK 5 -- 2.3 以下
7). Git 1.7 或更新
--------------------------------------------------------------------------------------------------------------------------------
1) 安装JDK :
sun jdk :http://www.oracle.com/technetwork/java/javase/archive-139210.html
2) 安装 需要的包(12.04)
<span style="word-wrap: break-word; font-size: 14px;"><span class="pln" style="word-wrap: break-word;"> <span style="word-wrap: break-word;"><span style="word-wrap: break-word; color: rgb(0, 102, 0);">$ sudo apt</span></span></span><span style="word-wrap: break-word;"><span style="word-wrap: break-word; color: rgb(0, 102, 0);"><span class="pun" style="word-wrap: break-word;">-</span><span class="kwd" style="word-wrap: break-word;">get</span><span class="pln" style="word-wrap: break-word;"> install git gnupg flex bison gperf build</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">essential </span><span class="pun" style="word-wrap: break-word;">\</span><span class="pln" style="word-wrap: break-word;"> zip curl libc6</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">dev libncurses5</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">dev</span><span class="pun" style="word-wrap: break-word;">:</span><span class="pln" style="word-wrap: break-word;">i386 x11proto</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">core</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">dev </span><span class="pun" style="word-wrap: break-word;">\</span><span class="pln" style="word-wrap: break-word;"> libx11</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">dev</span><span class="pun" style="word-wrap: break-word;">:</span><span class="pln" style="word-wrap: break-word;">i386 libreadline6</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">dev</span><span class="pun" style="word-wrap: break-word;">:</span><span class="pln" style="word-wrap: break-word;">i386 libgl1</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">mesa</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">glx</span><span class="pun" style="word-wrap: break-word;">:</span><span class="pln" style="word-wrap: break-word;">i386 </span><span class="pun" style="word-wrap: break-word;">\</span><span class="pln" style="word-wrap: break-word;"> libgl1</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">mesa</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">dev g</span><span class="pun" style="word-wrap: break-word;">++-</span><span class="pln" style="word-wrap: break-word;">multilib mingw32 tofrodos </span><span class="pun" style="word-wrap: break-word;">\</span><span class="pln" style="word-wrap: break-word;"> python</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">markdown libxml2</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">utils xsltproc zlib1g</span><span class="pun" style="word-wrap: break-word;">-</span><span class="pln" style="word-wrap: break-word;">dev</span><span class="pun" style="word-wrap: break-word;">:</span><span class="pln" style="word-wrap: break-word;">i386</span></span></span></span>
<span style="word-wrap: break-word; font-size: 14px;"><span class="pln" style="word-wrap: break-word;"><span style="word-wrap: break-word;"><span style="word-wrap: break-word; color: rgb(0, 102, 0);"><span style="word-wrap: break-word; background-color: rgb(247, 247, 247);"> $</span><span style="word-wrap: break-word;"> sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so</span></span></span></span></span>
插上小米后: lsusb 下面右一行 Bus 001 Device 005: ID 18d1:9025 Google Inc.
<span style="word-wrap: break-word; font-size: 14px;"><span style="word-wrap: break-word;"><span class="kwd" style="word-wrap: break-word; color: rgb(0, 0, 136);"></span></span></span><p style="word-wrap: break-word; margin-top: 5px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px;"><span style="word-wrap: break-word; font-size: 14px;"><span style="word-wrap: break-word;"> $ sudo touch /etc/udev/rules.d/51-android-rules </span></span></p><p style="word-wrap: break-word; margin-top: 5px; margin-bottom: 5px; padding-top: 0px; padding-bottom: 0px;"><span style="word-wrap: break-word; font-size: 14px;"><span style="word-wrap: break-word;"> $ sudo gedit /etc/udev/rules.d/51-android-rules</span></span></p>
添加 :
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="9025", MODE="0600", OWNER="hanly"
4) 设置ccache (加快编译速度尤其是 有多个编译时)
在 .bashrc 中添加
<span style="word-wrap: break-word; font-size: 14px;"><span style="word-wrap: break-word; color: rgb(0, 102, 0);"><span style="word-wrap: break-word;"><span class="kwd" style="word-wrap: break-word;"> $ export</span><span class="pln" style="word-wrap: break-word;"> USE_CCACHE</span><span class="pun" style="word-wrap: break-word;">=</span><span class="lit" style="word-wrap: break-word;">1</span></span></span></span>
--------
5 下载源码:
要安装有 repo
<span style="word-wrap: break-word;"><span style="word-wrap: break-word; color: rgb(0, 102, 0);"><span class="pln" style="word-wrap: break-word;">$ mkdir </span><span class="pun" style="word-wrap: break-word;">~</span><span class="str" style="word-wrap: break-word;">/bin$ PATH=~/</span><span class="pln" style="word-wrap: break-word;">bin</span><span class="pun" style="word-wrap: break-word;">:</span><span class="pln" style="word-wrap: break-word;">$PATH ;这个最好是加入到~/.bashrc 中,然后重新开一个终端</span></span></span>
<span class="pln" style="word-wrap: break-word;"><span style="word-wrap: break-word; color: rgb(0, 102, 0); font-size: 13px;"><span style="word-wrap: break-word;">$ </span></span><span style="word-wrap: break-word; font-size: 18px; color: rgb(204, 0, 0);"><span style="word-wrap: break-word;">[错误1]</span></span><span style="word-wrap: break-word; font-size: 13px; color: rgb(0, 102, 0);"><strong>curl http</strong></span></span><span style="word-wrap: break-word; font-size: 13px; color: rgb(0, 102, 0);"><strong><span class="pun" style="word-wrap: break-word;">:</span><span class="com" style="word-wrap: break-word;">//commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo ;【20140508】这个又可以了</span></strong></span><span class="pln" style="word-wrap: break-word; font-size: 13px; font-weight: bold; color: rgb(0, 102, 0);"> $ chmod a</span><span class="pun" style="word-wrap: break-word; font-size: 13px; font-weight: bold; color: rgb(0, 102, 0);">+</span><span class="pln" style="word-wrap: break-word; font-size: 13px; font-weight: bold; color: rgb(0, 102, 0);">x </span><span class="pun" style="word-wrap: break-word; font-size: 13px; font-weight: bold; color: rgb(0, 102, 0);">~</span><span class="str" style="word-wrap: break-word; font-size: 13px; font-weight: bold; color: rgb(0, 102, 0);">/bin/</span><span class="pln" style="word-wrap: break-word; font-size: 13px; font-weight: bold; color: rgb(0, 102, 0);">repo</span>
[错误1] :
curl 那条行不通,报错 0curl: (7) couldn't connect to host
解法一: 参考: http://www.miui.com/thread-1540431-1-1.html
然后执行
<span class="pln" style="word-wrap: break-word; color: rgb(0, 0, 0);">$ </span><span style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: 'Microsoft YaHei', Tahoma, Helvetica, SimSun, sans-serif; font-size: 14px; line-height: 21px;">curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo</span><span class="com" style="word-wrap: break-word; color: rgb(136, 0, 0);"></span><span class="pln" style="word-wrap: break-word; color: rgb(0, 0, 0);"> $ chmod a</span><span class="pun" style="word-wrap: break-word; color: rgb(102, 102, 0);">+</span><span class="pln" style="word-wrap: break-word; color: rgb(0, 0, 0);">x </span><span class="pun" style="word-wrap: break-word; color: rgb(102, 102, 0);">~</span><span class="str" style="word-wrap: break-word; color: rgb(0, 136, 0);">/bin/</span><span class="pln" style="word-wrap: break-word; color: rgb(0, 0, 0);">repo</span>解法二 : https://code.google.com/p/git-repo/wiki/Source?tm=4
<span class="pln" style="word-wrap: break-word;"> <span style="word-wrap: break-word;"><span style="word-wrap: break-word; color: rgb(0, 102, 0);">$ git clone https</span></span></span><span style="word-wrap: break-word;"><span style="word-wrap: break-word; color: rgb(0, 102, 0);"><span class="pun" style="word-wrap: break-word;">:</span><span class="com" style="word-wrap: break-word;">//gerrit.googlesource.com/git-repo ~/bin/git-repo</span></span></span>
<span class="com" style="word-wrap: break-word;"><span style="word-wrap: break-word;"><span style="word-wrap: break-word; color: rgb(0, 102, 0);"> $ cp ~/bin/git-repo/repo ~/bin/repo</span></span></span>
--------- 参考 :link - ----------
6. 下载源码 :
<span class="pln" style="word-wrap: break-word;"><span style="word-wrap: break-word;"><span style="word-wrap: break-word; color: rgb(0, 102, 0);">$ mkdir -p ~/android/system</span></span></span><span class="pln" style="word-wrap: break-word;"> </span>
$ cd ~/android/system/ ; 先不要执行下面的 $ [错误2]repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0 ;
<span class="pln" style="word-wrap: break-word;">$ </span><span class="pln" style="word-wrap: break-word;"><span style="word-wrap: break-word; color: rgb(0, 102, 0);">repo sync</span></span>
[错误2] :
在这个地方纠结了2天,最后是看到这个帖子,受到启发 link
具体的解决方法是: 使用 https 初始化 repo
1. 直接使用 https 初始化,如下,然后看 修改 manifest.xml 文件
$ repo init -u https://github.com/CyanogenMod/android.git -b cm-11.0
2. 如果已经使用 如下语句 初始化,并下载了部分代码,可以修改 manifest.xml 文件和 manifests.git/config 文件 后再 repo sync
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
修改:
然后检查并修改 .repo/manifest.xml :
fetch="https://android.googlesource.com"
review="android-review.googlesource.com" />
<remote name="github"
fetch="https://github.com"
review="review.cyanogenmod.org" />
<remote name="private"
fetch="ssh://git@github.com" />
<default revision="refs/heads/cm-11.0"
remote="github"
sync-c="true"
sync-j="4" />
如果是用第二种初始化方法,还需要将 .repo/manifests.git/config 中的git:改成https:
然后再 repo sync 就很顺畅了, 另外还可一加参数,-j10 ,即同时开10个线程下载。
---------------------------------------------------------------------------------------------------------------------------------
下面是之前遇到的一些错误,如果 可以同步代码就不用看了。
1. android.googlesource.com
Initializing project platform/cts ...
error: Failed to connect to 2404:6800:4005:c00::52:Network is unreachable while accessinghttps://android.googlesource.com/platform/cts.git/info/refs
Fetching projects: 1% (5/456) error: The requested URL returned error: 406 while accessing https://android.googlesource.com/platform/cts.git/info/refs
fatal: HTTP request failed
error: Cannot fetch platform/cts
ping android.googlesource.com 得到 ip 加入到hosts (sudo gedit /etc/hosts )
74.125.128.82 android.googlesource.com
2 . 这个不算错误,因为源码比较大,而中途不知到会出现什么网络问题一部小心就断了, 所以可以写个脚本使失败的时候自动重新执行。
#!/bin/bash
echo " ************************************************************** “
echo " start sync source code "
repo sync
while [ $? = 1 ] ; do
echo " ----------------------- restart sync ------------------ "
repo sync
done
3 .
Initializing project CyanogenMod/android_abi_cpp ...
fatal: '../CyanogenMod/android_abi_cpp.git' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
error: Cannot fetch CyanogenMod/android_abi_cpp
编辑 ~/android/system/.repo中的 manifest.xml 文件,找到
<remote name="github" <="" span="" style="word-wrap: break-word;">
fetch=".."
review="review.cyanogenmod.org" />
将 其中的 fetch=".." 改成 fetch="https://github.com" ,因为 ../CyanogenMod/android_abi_cpp.git 实际想找的是 https://github.com/CyanogenMod/android_abi_cpp.git
- CM 出错解决
- cm
- CM
- 出错解决
- 解决出错:WebForm_PostBackOptions 未定义
- GTK 出错解决
- 安装sqlserver出错解决
- 解决内存出错
- 部署出错解决
- QtE编译出错解决
- _beginthreadex出错解决
- 解决tail出错方法
- 使用gedit出错解决
- python出错解决
- make menuconfig出错解决
- 使用gedit出错解决
- Android 编译出错解决
- openssl编译出错解决
- iOS之有关于git的命令行
- C++ review(1) - Basics
- leetcode:142. Linked List Cycle II(Java)解答
- 百度地图
- html--9(IE版本测试工具及开发工具)
- CM 出错解决
- java单元测试junit测试线程问题
- 一个 Java 的 Socket 服务器和客户端通信的例子
- 23种设计模式(14)_行为型_命令模式(Command Pattern)
- c# 类函数static是什么意思?
- CentOS6.5下安装jdk1.6
- memcached企业工作场景
- AudioManager详解(结合源代码)
- pthon中下划线的含义