某芯片上升级android (kernel 从2.6.29 到 3.0.72)过程中遇到的问题的记录

偶然翻到这个文档, 顺手贴到blog上保存一下.


1.设置上网代理/etc/apt/apt.conf,在文件中添加下面的内容,注意最后的;也是需要添加的,否则会提示这个文件的结束字符不对

  Acquire::http:Proxy ”xioliu:password@192.168.38.7:3128/";
2.Installing the JDK
apt-get install openjdk-6-jdk(用main server才行,用自动选的最佳的某个edu的server不行)

3.Installing required packages
sudo apt-get install git gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev:i386
 
  在64位上搭建环境会遇到问题.
  直接复制运行会出现如下错误:

下列软件包有未满足的依赖关系:
 libgl1-mesa-glx:i386 : 依赖: libglapi-mesa:i386 (= 8.0.4-0ubuntu0.6)
                        推荐: libgl1-mesa-dri:i386 (>= 7.2)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

将里面的libgl1-mesa-glx:i386修改为 libgl1-mesa-dri:i386,运行后可以正常安装
 
4.在home下的.bashrc文件中添加
export USE_CCACHE=1

5.install Repo
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

6.initializing a repo client
$mkdir ryan
$cd ryan
$ repo init -u https://android.googlesource.com/platform/manifest
要配置账号,需要用有效的gmail的邮箱
得到结果root@Ubuntu4driverGP:~/ryan# repo init -u https://android.googlesource.com/platform/manifest
gpg: keyring `/root/.repoconfig/gnupg/secring.gpg' created
gpg: keyring `/root/.repoconfig/gnupg/pubring.gpg' created
gpg: /root/.repoconfig/gnupg/trustdb.gpg: trustdb created
gpg: key 920F5C65: public key "Repo Maintainer <repo@android.kernel.org>" imported
gpg: key 692B382C: public key "Conley Owens <cco3@android.com>" imported
gpg: Total number processed: 2
gpg:               imported: 2  (RSA: 1)

Get https://gerrit.googlesource.com/git-repo
remote: Counting objects: 117, done
remote: Finding sources: 100% (117/117)
remote: Total 2883 (delta 1524), reused 2883 (delta 1524)
Receiving objects: 100% (2883/2883), 2.44 MiB | 274 KiB/s, done.
Resolving deltas: 100% (1524/1524), done.
From https://gerrit.googlesource.com/git-repo
 * [new branch]      maint      -> origin/maint
 * [new branch]      master     -> origin/master
 * [new branch]      stable     -> origin/stable
 * [new tag]         v1.0       -> v1.0
 * [new tag]         v1.0.1     -> v1.0.1
 * [new tag]         v1.0.2     -> v1.0.2
 * [new tag]         v1.0.3     -> v1.0.3
 * [new tag]         v1.0.4     -> v1.0.4
 * [new tag]         v1.0.5     -> v1.0.5
 * [new tag]         v1.0.6     -> v1.0.6
 * [new tag]         v1.0.7     -> v1.0.7
 * [new tag]         v1.0.8     -> v1.0.8
 * [new tag]         v1.0.9     -> v1.0.9
 * [new tag]         v1.1       -> v1.1
 * [new tag]         v1.10.0    -> v1.10.0
 * [new tag]         v1.10.1    -> v1.10.1
 * [new tag]         v1.10.2    -> v1.10.2
 * [new tag]         v1.10.3    -> v1.10.3
 * [new tag]         v1.10.4    -> v1.10.4
 * [new tag]         v1.11.0    -> v1.11.0
 * [new tag]         v1.11.1    -> v1.11.1
 * [new tag]         v1.12.0    -> v1.12.0
 * [new tag]         v1.12.1    -> v1.12.1
 * [new tag]         v1.12.10   -> v1.12.10
 * [new tag]         v1.12.11   -> v1.12.11
 * [new tag]         v1.12.12   -> v1.12.12
 * [new tag]         v1.12.13   -> v1.12.13
 * [new tag]         v1.12.14   -> v1.12.14
 * [new tag]         v1.12.15   -> v1.12.15
 * [new tag]         v1.12.16   -> v1.12.16
 * [new tag]         v1.12.2    -> v1.12.2
 * [new tag]         v1.12.3    -> v1.12.3
 * [new tag]         v1.12.3.1  -> v1.12.3.1
 * [new tag]         v1.12.4    -> v1.12.4
 * [new tag]         v1.12.5    -> v1.12.5
 * [new tag]         v1.12.6    -> v1.12.6
 * [new tag]         v1.12.7    -> v1.12.7
 * [new tag]         v1.12.8    -> v1.12.8
 * [new tag]         v1.12.9    -> v1.12.9
 * [new tag]         v1.2       -> v1.2
 * [new tag]         v1.3       -> v1.3
 * [new tag]         v1.3.1     -> v1.3.1
 * [new tag]         v1.3.2     -> v1.3.2
 * [new tag]         v1.4       -> v1.4
 * [new tag]         v1.4.1     -> v1.4.1
 * [new tag]         v1.4.2     -> v1.4.2
 * [new tag]         v1.4.3     -> v1.4.3
 * [new tag]         v1.4.4     -> v1.4.4
 * [new tag]         v1.5       -> v1.5
 * [new tag]         v1.5.1     -> v1.5.1
 * [new tag]         v1.6       -> v1.6
 * [new tag]         v1.6.1     -> v1.6.1
 * [new tag]         v1.6.10    -> v1.6.10
 * [new tag]         v1.6.10.1  -> v1.6.10.1
 * [new tag]         v1.6.10.2  -> v1.6.10.2
 * [new tag]         v1.6.2     -> v1.6.2
 * [new tag]         v1.6.3     -> v1.6.3
 * [new tag]         v1.6.4     -> v1.6.4
 * [new tag]         v1.6.5     -> v1.6.5
 * [new tag]         v1.6.6     -> v1.6.6
 * [new tag]         v1.6.7     -> v1.6.7
 * [new tag]         v1.6.7.1   -> v1.6.7.1
 * [new tag]         v1.6.7.2   -> v1.6.7.2
 * [new tag]         v1.6.7.3   -> v1.6.7.3
 * [new tag]         v1.6.7.4   -> v1.6.7.4
 * [new tag]         v1.6.7.5   -> v1.6.7.5
 * [new tag]         v1.6.8     -> v1.6.8
 * [new tag]         v1.6.8.1   -> v1.6.8.1
 * [new tag]         v1.6.8.10  -> v1.6.8.10
 * [new tag]         v1.6.8.11  -> v1.6.8.11
 * [new tag]         v1.6.8.2   -> v1.6.8.2
 * [new tag]         v1.6.8.3   -> v1.6.8.3
 * [new tag]         v1.6.8.4   -> v1.6.8.4
 * [new tag]         v1.6.8.5   -> v1.6.8.5
 * [new tag]         v1.6.8.6   -> v1.6.8.6
 * [new tag]         v1.6.8.7   -> v1.6.8.7
 * [new tag]         v1.6.8.8   -> v1.6.8.8
 * [new tag]         v1.6.8.9   -> v1.6.8.9
 * [new tag]         v1.6.9     -> v1.6.9
 * [new tag]         v1.6.9.1   -> v1.6.9.1
 * [new tag]         v1.6.9.2   -> v1.6.9.2
 * [new tag]         v1.6.9.3   -> v1.6.9.3
 * [new tag]         v1.6.9.4   -> v1.6.9.4
 * [new tag]         v1.6.9.5   -> v1.6.9.5
 * [new tag]         v1.6.9.6   -> v1.6.9.6
 * [new tag]         v1.6.9.7   -> v1.6.9.7
 * [new tag]         v1.6.9.8   -> v1.6.9.8
 * [new tag]         v1.7       -> v1.7
 * [new tag]         v1.7.1     -> v1.7.1
 * [new tag]         v1.7.2     -> v1.7.2
 * [new tag]         v1.7.3     -> v1.7.3
 * [new tag]         v1.7.3.1   -> v1.7.3.1
 * [new tag]         v1.7.4     -> v1.7.4
 * [new tag]         v1.7.4.1   -> v1.7.4.1
 * [new tag]         v1.7.4.2   -> v1.7.4.2
 * [new tag]         v1.7.4.3   -> v1.7.4.3
 * [new tag]         v1.7.5     -> v1.7.5
 * [new tag]         v1.7.6     -> v1.7.6
 * [new tag]         v1.7.6.1   -> v1.7.6.1
 * [new tag]         v1.7.7     -> v1.7.7
 * [new tag]         v1.7.7.1   -> v1.7.7.1
 * [new tag]         v1.7.7.2   -> v1.7.7.2
 * [new tag]         v1.7.7.3   -> v1.7.7.3
 * [new tag]         v1.7.7.4   -> v1.7.7.4
 * [new tag]         v1.7.7.5   -> v1.7.7.5
 * [new tag]         v1.7.7.6   -> v1.7.7.6
 * [new tag]         v1.7.8     -> v1.7.8
 * [new tag]         v1.7.8.1   -> v1.7.8.1
 * [new tag]         v1.7.8.2   -> v1.7.8.2
 * [new tag]         v1.8.0     -> v1.8.0
 * [new tag]         v1.8.1     -> v1.8.1
 * [new tag]         v1.8.2     -> v1.8.2
 * [new tag]         v1.9.0     -> v1.9.0
 * [new tag]         v1.9.1     -> v1.9.1
 * [new tag]         v1.9.2     -> v1.9.2
 * [new tag]         v1.9.3     -> v1.9.3
 * [new tag]         v1.9.4     -> v1.9.4
 * [new tag]         v1.9.5     -> v1.9.5
 * [new tag]         v1.9.6     -> v1.9.6
Get https://android.googlesource.com/platform/manifest
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404
Server does not provide clone.bundle; ignoring.
remote: Counting objects: 113, done
remote: Finding sources: 100% (113/113)
remote: Total 1393 (delta 315), reused 1393 (delta 315)
Receiving objects: 100% (1393/1393), 1.13 MiB | 304 KiB/s, done.
Resolving deltas: 100% (315/315), done.
From https://android.googlesource.com/platform/manifest
 * [new branch]      android-1.6_r1 -> origin/android-1.6_r1
 * [new branch]      android-1.6_r1.1 -> origin/android-1.6_r1.1
 * [new branch]      android-1.6_r1.2 -> origin/android-1.6_r1.2
 * [new branch]      android-1.6_r1.3 -> origin/android-1.6_r1.3
 * [new branch]      android-1.6_r1.4 -> origin/android-1.6_r1.4
 * [new branch]      android-1.6_r1.5 -> origin/android-1.6_r1.5
 * [new branch]      android-1.6_r2 -> origin/android-1.6_r2
 * [new branch]      android-2.0.1_r1 -> origin/android-2.0.1_r1
 * [new branch]      android-2.0_r1 -> origin/android-2.0_r1
 * [new branch]      android-2.1_r1 -> origin/android-2.1_r1
 * [new branch]      android-2.1_r2 -> origin/android-2.1_r2
 * [new branch]      android-2.1_r2.1p -> origin/android-2.1_r2.1p
 * [new branch]      android-2.1_r2.1p2 -> origin/android-2.1_r2.1p2
 * [new branch]      android-2.1_r2.1s -> origin/android-2.1_r2.1s
 * [new branch]      android-2.2.1_r1 -> origin/android-2.2.1_r1
 * [new branch]      android-2.2.1_r2 -> origin/android-2.2.1_r2
 * [new branch]      android-2.2.2_r1 -> origin/android-2.2.2_r1
 * [new branch]      android-2.2.3_r1 -> origin/android-2.2.3_r1
 * [new branch]      android-2.2.3_r2 -> origin/android-2.2.3_r2
 * [new branch]      android-2.2.3_r2.1 -> origin/android-2.2.3_r2.1
 * [new branch]      android-2.2_r1 -> origin/android-2.2_r1
 * [new branch]      android-2.2_r1.1 -> origin/android-2.2_r1.1
 * [new branch]      android-2.2_r1.2 -> origin/android-2.2_r1.2
 * [new branch]      android-2.2_r1.3 -> origin/android-2.2_r1.3
 * [new branch]      android-2.3.1_r1 -> origin/android-2.3.1_r1
 * [new branch]      android-2.3.2_r1 -> origin/android-2.3.2_r1
 * [new branch]      android-2.3.3_r1 -> origin/android-2.3.3_r1
 * [new branch]      android-2.3.3_r1.1 -> origin/android-2.3.3_r1.1
 * [new branch]      android-2.3.4_r0.9 -> origin/android-2.3.4_r0.9
 * [new branch]      android-2.3.4_r1 -> origin/android-2.3.4_r1
 * [new branch]      android-2.3.5_r1 -> origin/android-2.3.5_r1
 * [new branch]      android-2.3.6_r0.9 -> origin/android-2.3.6_r0.9
 * [new branch]      android-2.3.6_r1 -> origin/android-2.3.6_r1
 * [new branch]      android-2.3.7_r1 -> origin/android-2.3.7_r1
 * [new branch]      android-2.3_r1 -> origin/android-2.3_r1
 * [new branch]      android-4.0.1_r1 -> origin/android-4.0.1_r1
 * [new branch]      android-4.0.1_r1.1 -> origin/android-4.0.1_r1.1
 * [new branch]      android-4.0.1_r1.2 -> origin/android-4.0.1_r1.2
 * [new branch]      android-4.0.2_r1 -> origin/android-4.0.2_r1
 * [new branch]      android-4.0.3_r1 -> origin/android-4.0.3_r1
 * [new branch]      android-4.0.3_r1.1 -> origin/android-4.0.3_r1.1
 * [new branch]      android-4.0.4_r1 -> origin/android-4.0.4_r1
 * [new branch]      android-4.0.4_r1.1 -> origin/android-4.0.4_r1.1
 * [new branch]      android-4.0.4_r1.2 -> origin/android-4.0.4_r1.2
 * [new branch]      android-4.0.4_r2 -> origin/android-4.0.4_r2
 * [new branch]      android-4.0.4_r2.1 -> origin/android-4.0.4_r2.1
 * [new branch]      android-4.1.1_r1 -> origin/android-4.1.1_r1
 * [new branch]      android-4.1.1_r1.1 -> origin/android-4.1.1_r1.1
 * [new branch]      android-4.1.1_r2 -> origin/android-4.1.1_r2
 * [new branch]      android-4.1.1_r3 -> origin/android-4.1.1_r3
 * [new branch]      android-4.1.1_r4 -> origin/android-4.1.1_r4
 * [new branch]      android-4.1.1_r5 -> origin/android-4.1.1_r5
 * [new branch]      android-4.1.1_r6 -> origin/android-4.1.1_r6
 * [new branch]      android-4.1.1_r6.1 -> origin/android-4.1.1_r6.1
 * [new branch]      android-4.1.2_r1 -> origin/android-4.1.2_r1
 * [new branch]      android-4.1.2_r2 -> origin/android-4.1.2_r2
 * [new branch]      android-4.1.2_r2.1 -> origin/android-4.1.2_r2.1
 * [new branch]      android-4.2.1_r1 -> origin/android-4.2.1_r1
 * [new branch]      android-4.2.1_r1.1 -> origin/android-4.2.1_r1.1
 * [new branch]      android-4.2.1_r1.2 -> origin/android-4.2.1_r1.2
 * [new branch]      android-4.2.2_r1 -> origin/android-4.2.2_r1
 * [new branch]      android-4.2.2_r1.1 -> origin/android-4.2.2_r1.1
 * [new branch]      android-4.2.2_r1.2 -> origin/android-4.2.2_r1.2
 * [new branch]      android-4.2.2_r1.2b -> origin/android-4.2.2_r1.2b
 * [new branch]      android-4.2_r1 -> origin/android-4.2_r1
 * [new branch]      android-4.3.1_r1 -> origin/android-4.3.1_r1
 * [new branch]      android-4.3_r0.9 -> origin/android-4.3_r0.9
 * [new branch]      android-4.3_r0.9.1 -> origin/android-4.3_r0.9.1
 * [new branch]      android-4.3_r1 -> origin/android-4.3_r1
 * [new branch]      android-4.3_r1.1 -> origin/android-4.3_r1.1
 * [new branch]      android-4.3_r2 -> origin/android-4.3_r2
 * [new branch]      android-4.3_r2.1 -> origin/android-4.3_r2.1
 * [new branch]      android-4.3_r2.2 -> origin/android-4.3_r2.2
 * [new branch]      android-4.3_r2.2-cts -> origin/android-4.3_r2.2-cts
 * [new branch]      android-4.3_r2.3 -> origin/android-4.3_r2.3
 * [new branch]      android-4.3_r3 -> origin/android-4.3_r3
 * [new branch]      android-4.3_r3.1 -> origin/android-4.3_r3.1
 * [new branch]      android-4.4.1_r1 -> origin/android-4.4.1_r1
 * [new branch]      android-4.4.2_r1 -> origin/android-4.4.2_r1
 * [new branch]      android-4.4.2_r2 -> origin/android-4.4.2_r2
 * [new branch]      android-4.4.3_r1 -> origin/android-4.4.3_r1
 * [new branch]      android-4.4.3_r1.1 -> origin/android-4.4.3_r1.1
 * [new branch]      android-4.4.4_r1 -> origin/android-4.4.4_r1
 * [new branch]      android-4.4.4_r2 -> origin/android-4.4.4_r2
 * [new branch]      android-4.4_r1 -> origin/android-4.4_r1
 * [new branch]      android-4.4_r1.1 -> origin/android-4.4_r1.1
 * [new branch]      android-4.4_r1.2 -> origin/android-4.4_r1.2
 * [new branch]      android-4.4w_r1 -> origin/android-4.4w_r1
 * [new branch]      android-cts-2.2_r8 -> origin/android-cts-2.2_r8
 * [new branch]      android-cts-2.3_r10 -> origin/android-cts-2.3_r10
 * [new branch]      android-cts-2.3_r11 -> origin/android-cts-2.3_r11
 * [new branch]      android-cts-2.3_r12 -> origin/android-cts-2.3_r12
 * [new branch]      android-cts-4.0.3_r1 -> origin/android-cts-4.0.3_r1
 * [new branch]      android-cts-4.0.3_r2 -> origin/android-cts-4.0.3_r2
 * [new branch]      android-cts-4.0_r1 -> origin/android-cts-4.0_r1
 * [new branch]      android-cts-4.1_r1 -> origin/android-cts-4.1_r1
 * [new branch]      android-cts-4.1_r2 -> origin/android-cts-4.1_r2
 * [new branch]      android-cts-4.1_r4 -> origin/android-cts-4.1_r4
 * [new branch]      android-cts-4.2_r2 -> origin/android-cts-4.2_r2
 * [new branch]      android-cts-verifier-4.0.3_r1 -> origin/android-cts-verifier-4.0.3_r1
 * [new branch]      android-cts-verifier-4.0_r1 -> origin/android-cts-verifier-4.0_r1
 * [new branch]      android-sdk-4.0.3-tools_r1 -> origin/android-sdk-4.0.3-tools_r1
 * [new branch]      android-sdk-4.0.3_r1 -> origin/android-sdk-4.0.3_r1
 * [new branch]      android-sdk-4.4.2_r1 -> origin/android-sdk-4.4.2_r1
 * [new branch]      android-sdk-adt_r16.0.1 -> origin/android-sdk-adt_r16.0.1
 * [new branch]      android-sdk-adt_r20 -> origin/android-sdk-adt_r20
 * [new branch]      android-sdk-support_r11 -> origin/android-sdk-support_r11
 * [new branch]      chromium-dev -> origin/chromium-dev
 * [new branch]      froyo      -> origin/froyo
 * [new branch]      gingerbread -> origin/gingerbread
 * [new branch]      gingerbread-release -> origin/gingerbread-release
 * [new branch]      gradle_0.12.2 -> origin/gradle_0.12.2
 * [new branch]      ics-mr0    -> origin/ics-mr0
 * [new branch]      ics-mr1    -> origin/ics-mr1
 * [new branch]      ics-plus-aosp -> origin/ics-plus-aosp
 * [new branch]      idea133    -> origin/idea133
 * [new branch]      idea133-weekly-release -> origin/idea133-weekly-release
 * [new branch]      jb-dev     -> origin/jb-dev
 * [new branch]      jb-mr1-dev -> origin/jb-mr1-dev
 * [new branch]      jb-mr1-dev-plus-aosp -> origin/jb-mr1-dev-plus-aosp
 * [new branch]      jb-mr1.1-dev -> origin/jb-mr1.1-dev
 * [new branch]      jb-mr1.1-dev-plus-aosp -> origin/jb-mr1.1-dev-plus-aosp
 * [new branch]      jb-mr2-dev -> origin/jb-mr2-dev
 * [new branch]      jumper-stable -> origin/jumper-stable
 * [new branch]      kitkat-cts-dev -> origin/kitkat-cts-dev
 * [new branch]      kitkat-dev -> origin/kitkat-dev
 * [new branch]      l-preview  -> origin/l-preview
 * [new branch]      master     -> origin/master
 * [new branch]      master-art -> origin/master-art
 * [new branch]      master-art-host -> origin/master-art-host
 * [new branch]      master-dalvik -> origin/master-dalvik
 * [new branch]      master-dalvik-host -> origin/master-dalvik-host
 * [new branch]      tools-canary-release -> origin/tools-canary-release
 * [new branch]      tools_ndk_r9d -> origin/tools_ndk_r9d
 * [new branch]      tools_r20  -> origin/tools_r20
 * [new branch]      tools_r21  -> origin/tools_r21
 * [new branch]      tools_r21.1 -> origin/tools_r21.1
 * [new branch]      tools_r22  -> origin/tools_r22
 * [new branch]      tools_r22.2 -> origin/tools_r22.2
 * [new branch]      tools_r22.6 -> origin/tools_r22.6
 * [new branch]      tradefed   -> origin/tradefed
 * [new branch]      ub-jack    -> origin/ub-jack
 * [new branch]      ub-tools-idea133 -> origin/ub-tools-idea133
 * [new branch]      ub-tools-idea133-milestone -> origin/ub-tools-idea133-milestone
 * [new branch]      ub-tools-idea133-release -> origin/ub-tools-idea133-release
 * [new branch]      ub-tools-master -> origin/ub-tools-master
 * [new tag]         android-1.6_r1.1_ -> android-1.6_r1.1_
 * [new tag]         android-1.6_r1.2_ -> android-1.6_r1.2_
 * [new tag]         android-1.6_r1.3_ -> android-1.6_r1.3_
 * [new tag]         android-1.6_r1.4_ -> android-1.6_r1.4_
 * [new tag]         android-1.6_r1.5_ -> android-1.6_r1.5_
 * [new tag]         android-1.6_r1_ -> android-1.6_r1_
 * [new tag]         android-1.6_r2_ -> android-1.6_r2_
 * [new tag]         android-2.0.1_r1_ -> android-2.0.1_r1_
 * [new tag]         android-2.0_r1_ -> android-2.0_r1_
 * [new tag]         android-2.1_r1_ -> android-2.1_r1_
 * [new tag]         android-2.1_r2.1p2_ -> android-2.1_r2.1p2_
 * [new tag]         android-2.1_r2.1p_ -> android-2.1_r2.1p_
 * [new tag]         android-2.1_r2.1s_ -> android-2.1_r2.1s_
 * [new tag]         android-2.1_r2_ -> android-2.1_r2_
 * [new tag]         android-2.2.1_r1_ -> android-2.2.1_r1_
 * [new tag]         android-2.2.1_r2_ -> android-2.2.1_r2_
 * [new tag]         android-2.2.2_r1_ -> android-2.2.2_r1_
 * [new tag]         android-2.2.3_r1 -> android-2.2.3_r1
 * [new tag]         android-2.2.3_r2 -> android-2.2.3_r2
 * [new tag]         android-2.2.3_r2.1 -> android-2.2.3_r2.1
 * [new tag]         android-2.2_r1.1_ -> android-2.2_r1.1_
 * [new tag]         android-2.2_r1.2_ -> android-2.2_r1.2_
 * [new tag]         android-2.2_r1.3_ -> android-2.2_r1.3_
 * [new tag]         android-2.2_r1_ -> android-2.2_r1_
 * [new tag]         android-2.3.1_r1_ -> android-2.3.1_r1_
 * [new tag]         android-2.3.2_r1_ -> android-2.3.2_r1_
 * [new tag]         android-2.3.3_r1.1_ -> android-2.3.3_r1.1_
 * [new tag]         android-2.3.3_r1_ -> android-2.3.3_r1_
 * [new tag]         android-2.3.4_r0.9_ -> android-2.3.4_r0.9_
 * [new tag]         android-2.3.4_r1_ -> android-2.3.4_r1_
 * [new tag]         android-2.3.5_r1_ -> android-2.3.5_r1_
 * [new tag]         android-2.3.6_r0.9 -> android-2.3.6_r0.9
 * [new tag]         android-2.3.6_r1 -> android-2.3.6_r1
 * [new tag]         android-2.3.7_r1 -> android-2.3.7_r1
 * [new tag]         android-2.3_r1_ -> android-2.3_r1_
 * [new tag]         android-4.0.1_r1 -> android-4.0.1_r1
 * [new tag]         android-4.0.1_r1.1 -> android-4.0.1_r1.1
 * [new tag]         android-4.0.1_r1.2 -> android-4.0.1_r1.2
 * [new tag]         android-4.0.2_r1 -> android-4.0.2_r1
 * [new tag]         android-4.0.3_r1 -> android-4.0.3_r1
 * [new tag]         android-4.0.3_r1.1 -> android-4.0.3_r1.1
 * [new tag]         android-4.0.4_r1 -> android-4.0.4_r1
 * [new tag]         android-4.0.4_r1.1 -> android-4.0.4_r1.1
 * [new tag]         android-4.0.4_r1.2 -> android-4.0.4_r1.2
 * [new tag]         android-4.0.4_r2 -> android-4.0.4_r2
 * [new tag]         android-4.0.4_r2.1 -> android-4.0.4_r2.1
 * [new tag]         android-4.1.1_r1 -> android-4.1.1_r1
 * [new tag]         android-4.1.1_r1.1 -> android-4.1.1_r1.1
 * [new tag]         android-4.1.1_r1_ -> android-4.1.1_r1_
 * [new tag]         android-4.1.1_r2 -> android-4.1.1_r2
 * [new tag]         android-4.1.1_r3 -> android-4.1.1_r3
 * [new tag]         android-4.1.1_r4 -> android-4.1.1_r4
 * [new tag]         android-4.1.1_r5 -> android-4.1.1_r5
 * [new tag]         android-4.1.1_r6 -> android-4.1.1_r6
 * [new tag]         android-4.1.1_r6.1 -> android-4.1.1_r6.1
 * [new tag]         android-4.1.2_r1 -> android-4.1.2_r1
 * [new tag]         android-4.1.2_r2 -> android-4.1.2_r2
 * [new tag]         android-4.1.2_r2.1 -> android-4.1.2_r2.1
 * [new tag]         android-4.2.1_r1.1 -> android-4.2.1_r1.1
 * [new tag]         android-4.2.1_r1.2 -> android-4.2.1_r1.2
 * [new tag]         android-4.2.1_r1__ -> android-4.2.1_r1__
 * [new tag]         android-4.2.2_r1.1 -> android-4.2.2_r1.1
 * [new tag]         android-4.2.2_r1.2 -> android-4.2.2_r1.2
 * [new tag]         android-4.2.2_r1_ -> android-4.2.2_r1_
 * [new tag]         android-4.2_r1___ -> android-4.2_r1___
 * [new tag]         android-4.3.1_r1 -> android-4.3.1_r1
 * [new tag]         android-4.3_r0.9 -> android-4.3_r0.9
 * [new tag]         android-4.3_r0.9.1 -> android-4.3_r0.9.1
 * [new tag]         android-4.3_r0.9.1_ -> android-4.3_r0.9.1_
 * [new tag]         android-4.3_r0.9_ -> android-4.3_r0.9_
 * [new tag]         android-4.3_r1 -> android-4.3_r1
 * [new tag]         android-4.3_r1.1 -> android-4.3_r1.1
 * [new tag]         android-4.3_r1_ -> android-4.3_r1_
 * [new tag]         android-4.3_r2 -> android-4.3_r2
 * [new tag]         android-4.3_r2.1_ -> android-4.3_r2.1_
 * [new tag]         android-4.3_r2.1__ -> android-4.3_r2.1__
 * [new tag]         android-4.3_r2.2 -> android-4.3_r2.2
 * [new tag]         android-4.3_r2.3 -> android-4.3_r2.3
 * [new tag]         android-4.3_r2_ -> android-4.3_r2_
 * [new tag]         android-4.3_r3 -> android-4.3_r3
 * [new tag]         android-4.3_r3.1 -> android-4.3_r3.1
 * [new tag]         android-4.4.1_r1 -> android-4.4.1_r1
 * [new tag]         android-4.4.2_r1 -> android-4.4.2_r1
 * [new tag]         android-4.4.2_r2 -> android-4.4.2_r2
 * [new tag]         android-4.4.3_r1 -> android-4.4.3_r1
 * [new tag]         android-4.4.3_r1.1 -> android-4.4.3_r1.1
 * [new tag]         android-4.4.4_r1 -> android-4.4.4_r1
 * [new tag]         android-4.4.4_r2 -> android-4.4.4_r2
 * [new tag]         android-4.4_r1 -> android-4.4_r1
 * [new tag]         android-4.4_r1.1 -> android-4.4_r1.1
 * [new tag]         android-4.4_r1.2 -> android-4.4_r1.2
 * [new tag]         android-4.4w_r1 -> android-4.4w_r1
 * [new tag]         android-cts-2.2_r8 -> android-cts-2.2_r8
 * [new tag]         android-cts-2.3_r10 -> android-cts-2.3_r10
 * [new tag]         android-cts-2.3_r11 -> android-cts-2.3_r11
 * [new tag]         android-cts-2.3_r12 -> android-cts-2.3_r12
 * [new tag]         android-cts-4.0.3_r1 -> android-cts-4.0.3_r1
 * [new tag]         android-cts-4.0.3_r2 -> android-cts-4.0.3_r2
 * [new tag]         android-cts-4.0_r1 -> android-cts-4.0_r1
 * [new tag]         android-cts-4.1_r1 -> android-cts-4.1_r1
 * [new tag]         android-cts-4.1_r2 -> android-cts-4.1_r2
 * [new tag]         android-cts-4.1_r4 -> android-cts-4.1_r4
 * [new tag]         android-cts-4.2_r2 -> android-cts-4.2_r2
 * [new tag]         android-cts-4.4_r1 -> android-cts-4.4_r1
 * [new tag]         android-cts-verifier-4.0.3_r1 -> android-cts-verifier-4.0.3_r1
 * [new tag]         android-cts-verifier-4.0_r1 -> android-cts-verifier-4.0_r1
 * [new tag]         android-sdk-4.0.3-tools_r1 -> android-sdk-4.0.3-tools_r1
 * [new tag]         android-sdk-4.0.3_r1 -> android-sdk-4.0.3_r1
 * [new tag]         android-sdk-4.4.2_r1 -> android-sdk-4.4.2_r1
 * [new tag]         android-sdk-adt_r16.0.1 -> android-sdk-adt_r16.0.1
 * [new tag]         android-sdk-adt_r20 -> android-sdk-adt_r20
 * [new tag]         android-sdk-support_r11 -> android-sdk-support_r11
 * [new tag]         gradle_0.12.2 -> gradle_0.12.2
 
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1.2
$ repo sync

7.找toolchain
应该是用NDK自带的mips的toolchain就可以了.
另,4.0.4对应的是API level 15

8.java版本问题
************************************************************
You are attempting to build with the incorrect version
of java.
 
Your version is: java version "1.6.0_31".
The correct version is: Java SE 1.6.
 
Please follow the machine setup instructions at
    http://source.android.com/source/download.html
************************************************************
build/core/main.mk:131: *** stop.  Stop.
oracle网站可以下载各个版本的jdk
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jdk-6u31-oth-JPR

之前错误安装了jdk 7, 可以通过apt-get autoremove openjdk-7-jre卸载.
之前还安装了jdk6u31, 可以通过apt-get purge openjdk*完全卸载掉.(http://askubuntu.com/questions/335457/how-to-uninstall-openjdk)
在运行java -version,会提示 -bash: /usr/bin/java: No such file or directory

按照http://blog.csdn.net/openme_openwrt/article/details/7957156的提示,发现编译的时候会出
.mk: No such file or directory build/core/combo/TARGET_linux-mips
build/core/config.mk:268: *** Error: could not find jdk tools.jar, please install JDK6, which you can download from java.sun.com.  Stop.
其实是将环境变量放在/etc/profile中再source的话,发现没有改变.
手动运行下面的命令,就不会提示这个问题.
export JAVA_HOME=/home/xioliu/jdk1.6.0_31
export JRE_HOME=/home/xioliu/jdk1.6.0_31/jre
export CLASSPATH=/home/xioliu/jdk1.6.0_31/lib:/home/xioliu/jdk1.6.0_31/jre/lib
export PATH=/home/xioliu/jdk1.6.0_31/bin:/home/xioliu/jdk1.6.0_31/jre/bin:/opt/gcc-linaro-arm-linux-gnueabihf/bin:$PATH
默认的PATH是 export PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

update-alternatives --install /usr/bin/java java /home/xioliu/jdk1.6.0_31/bin/java 300
update-alternatives --install /usr/bin/java java /home/xioliu/jdk1.6.0_31/bin/javac 300
update-alternatives --install /usr/bin/java java /home/xioliu/jdk1.6.0_31/bin/javah 300

update-alternatives --config java
update-alternatives --config javac
update-alternatives --config javah

这个网页应该也是靠谱的http://hi.baidu.com/quest2run/item/43ab80af24603f971410734a

9.编译,先用arm的编译去验证编译环境架设的正确与否
#cat env.bsh
#export TARGET_ARCH=mips
#export TARGET_ARCH_VARIANT=mipsandroid
#export ANDROID_TOOLCHAIN=/usr/local/codesourcery/mips-4.3/bin
source build/envsetup.sh
lunch 7

遇到问题,解决方法见http://blog.csdn.net/xumercury/article/details/7746229
遇见另外error, 见http://hcleon.iteye.com/blog/1461352

发现遇到的问题的顺序和下面的顺序一样.
http://blog.csdn.net/zhbpd/article/details/7680835

10. 遇到奇怪错误
host Java: apache-harmony-tests-hostdex (out/host/common/obj/JAVA_LIBRARIES/apache-harmony-tests-hostdex_intermediates/classes)
host Java: core-tests-hostdex (out/host/common/obj/JAVA_LIBRARIES/core-tests-hostdex_intermediates/classes)
Copying: out/target/common/obj/JAVA_LIBRARIES/sqlite-jdbc_intermediates/emma_out/lib/classes-jarjar.jar
target Static Jar: mail-common (out/target/common/obj/JAVA_LIBRARIES/mail-common_intermediates/javalib.jar)
target R.java/Manifest.java: SignatureTest (out/target/common/obj/APPS/SignatureTest_intermediates/src/R.stamp)
collect2: ld 以信号 9 [已杀死] 退出。
make: *** [out/host/linux-x86/obj/EXECUTABLES/clang_intermediates/clang] 错误 1
make: *** 正在等待未完成的任务....
elapsed seconds: 2448

wenku.baidu.com/view/52813b61f5335a8102d220b0.html
google是说内存不够导致的, 吧make -j4 改成make应该就可以.

经过9,10两步之后,编译成功. 在out\target\product\crespo下生成相应的image

========================================第二部是移植kernel=========================================
11.clone老的kernel仓库的代码,3.6.4的,编译后在concerto的板子发现不能跑,先确认编译器和大小端的问题.
和杭州确认,concerto是小端的,而且仓库是flax的那个仓库.

12.拉flax的仓库,仓库中包含toolchain.
编译顺序,在platform目录下,先source setenv,然后根据make help的提示去编译具体的对象即可.
在35.107上,编译通过,并下载到板子上能跑起来.

13.concerto上2.6.29的代码移植到3.0上
a.arch/mips/montage的目录copy到3.0上,kconfig/makefile的修改也copy过去
b.在3.0上make bcm63xx_defconfig,然后make menuconfig,会出错.
提示很多错误
...
scripts/kconfig/lxdialog/menubox.o: In function `do_scroll':
menubox.c:(.text+0x55): undefined reference to `wrefresh'
scripts/kconfig/lxdialog/menubox.o: In function `print_arrows':
menubox.c:(.text+0x1a4): undefined reference to `wrefresh'
scripts/kconfig/lxdialog/menubox.o: In function `do_print_item':
menubox.c:(.text+0x3a9): undefined reference to `wrefresh'
scripts/kconfig/lxdialog/menubox.o: In function `print_buttons':
menubox.c:(.text+0x4b1): undefined reference to `wrefresh'
collect2: ld returned 1 exit status
make[1]: *** [scripts/kconfig/mconf] Error 1
make: *** [menuconfig] Error 2
解决办法见http://blog.csdn.net/bdc995/article/details/8235429
sudo apt-get install libncurses5  libncurses5-dev
解决后,由于bcm63xx是big endian的,删掉-EL的编译选项后,能编译通过.
c.对比concerto的.config文件和3.0默认的bcm63xx的.config文件.
其中2.6中的CONFIG_DMA_NEED_PCI_MAP_STATE,对应3.0中的CONFIG_NEED_DMA_MAP_STATE
d.concerto是little endian,bcm63xx是big endian.
CONFIG_GENERIC_FIND_NEXT_BIT在concerto上是开的,但是3.0上接口不一样,关闭.
e.concerto上CONFIG_SWAP_IO_SPACE没有打开,而bcm上打开了,所以关闭
f.CONFIG_GENERIC_GPIO在concerto上是没打开的,所以3.0上也关闭
g.CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ在concerto上打开,但是3.0上接口变了,维持关闭.
h.CONFIG_GENERIC_TIME同上
i.cpu选concerto的MIPS32R2
j.
CONFIG_CPU_HAS_LLSC=y
CONFIG_CPU_MIPSR2_IRQ_VI=y 这2个保持concerto的
#CONFIG_SELECT_MEMORY_MODEL=y
#CONFIG_FLATMEM_MANUAL=y 这2个concerto上没有,关闭
CONFIG_UNEVICTABLE_LRU在concerto上是开的,但是3.0的相关代码不需要用预编译,3.0上不需要.
CONFIG_HIGH_RES_TIMERS在concerto上打开的,3.0也打开
HZ维持concerto的1000
CONFIG_PREEMPT_VOLUNTARY维持concerto默认的
CONFIG_HAVE_IRQ_WORK在3.0上也没用到,关闭
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y这2个在3.0上也打开,维持concerto的配置
CONFIG_GENERIC_IRQ_SHOW=y维持3.0上的打开状态
CONFIG_IKCONFIG=y维持concerto的配置
CONFIG_RELAY=y
CONFIG_NAMESPACES=y这2个维持concerto的配置
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y这2个维持concerto的配置
CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_CLASSIC_RCU=y这3个维持concerto的配置
CONFIG_EMBEDDED=y维持concerto,替换3.0上的CONFIG_EXPERT
# CONFIG_BASE_FULL is not set维持concerto的关闭
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y这5个维持concerto的打开配置
CONFIG_SLUB维持3.0的,concerto用的是CONFIG_SLAB
# CONFIG_COMPAT_BRK is not set维持concerto的关闭
CONFIG_TRACEPOINTS=y维持concerto的打开
CONFIG_MARKERS 3.0不需要打开
CONFIG_RT_MUTEXES=y维持打开
CONFIG_BASE_SMALL=1维持concerto, 3.0上默认是0
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y这3个维持concerto的打开
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_BLK_DEV_INTEGRITY=y这2个维持concerto的打开
io scheduler维持concerto默认的cfq的配置
# CONFIG_PCCARD is not set维持concerto的配置, 3.0上的关闭
PCI相关的配置,3.0上也关闭
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y这2个维持concerto配置
CONFIG_MTD_CONCAT=m
CONFIG_MTD_PARTITIONS=y
CONFIG_MTD_CMDLINE_PARTS=y这3个维持3.0上的,关闭配置
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y这3个维持concerto上的打开配置
CONFIG_MTD_PHYSMAP=y维持3.0的配置


Concerto_dmx_dvb.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\media\dvb\concerto)    26696    2014-8-7
Concerto_dmx_dvb.h (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\media\dvb\concerto)    3501    2014-8-7
Concerto_dvb.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\media\dvb\concerto)    26037    2014-8-7
Concerto_eon.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    2710    2014-8-7
Concerto_esmt.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    2859    2014-8-7
Concerto_gigadevice.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    3056    2014-8-7
Concerto_macronix.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    4473    2014-8-7
Concerto_nand.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\nand\concerto)    92278    2014-8-7
Concerto_nand.h (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\arch\mips\include\asm\mach-concerto)    90    2014-8-7
Concerto_nand.h (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\nand\concerto)    8533    2014-8-7
Concerto_regs.h (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\arch\mips\include\asm\mach-concerto)    32188    2014-8-7
Concerto_spansion.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    5737    2014-8-7
Concerto_spi.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    21876    2014-8-7
Concerto_spi.h (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    7870    2014-8-7
Concerto_spi_nand.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    38139    2014-8-7
Concerto_spi_nand.h (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    1473    2014-8-7
Concerto_spi_nor.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    19402    2014-8-7
Concerto_spi_nor.h (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    2811    2014-8-7
Concerto_sst.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    6362    2014-8-7
Concerto_uart.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\serial)    15650    2014-8-7
Concerto_uio.h (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\arch\mips\include\asm\mach-concerto)    12272    2014-8-7
Concerto_winbond.c (\\192.168.35.107\xioliu\concerto\kernel\montage-tech\platform\os_linux\linux2.6.29.4\drivers\mtd\devices\concerto)    3483    2014-8-7

14.irq_desc中各个成员的不一致的问题,copy_thread/arch_ptrace函数的定义问题.

15. 根文件系统, 采用2.6.29中已经编译好的mdev.cpio, porting结束后, 跑vmlinux.bin会发现在加载跟文件系统的时候, 死机在populate_rootfs里面,
具体是populate_rootfs ==> unpack_to_rootfs ==> write_buffer ==> do_name ==> sys_fchown ==> fget 里面. (很奇怪, do_name操作31个文件后就不行)
这个问题很奇怪, 然后看initramfs的相关的脚本, 在kernel的usr目录下, 尝试使用压缩格式的选项, 但是还是不行.
然后将产生rootfs的cpio档的源文件重新打包, 删掉一些不必要的文件, 发现会有些变化, 等do_name操作的文件数小于31个后, 确实能进入到系统的login界面中.
而且root账号还能登陆, 但是进去后会有写莫名其妙的问题.

重新思考这个问题, 不应该会出现这样的现象才对. 然后对比porting的过程, 仔细检查3.0的kernel上的文件的改动(具体如下).
====================================================================================
arch\mips\boot\compressed\dbg.c
arch\mips\boot\compressed\decompress.c
arch\mips\include\asm\abi.h 还有同一个目录下的其他文件
arch\mips\kernel 下的c文件, 用2.6.29的替代了(因为涉及到很多的结构体的定义的差异, 时候看来这个不是很需要)
+++++  arch\mips\montage 目录, 新增
+++++  arch\mips\mm\cache.c
arch\mips\kernel\c-r4k.c
arch\mips\kernel\mmap.c
+++++  drivers\tty\serial\concerto_uart.c(新加)
drivers\usb\host\ehci-hcd.c 此外新增usb驱动
fs\yaffs2\yaffs_vfs.c 修改一些结构体的差异
fs\binfmt_elf.c 某个变量
fs\exec.c 一些参数类型差异
include\generated\asm-offsets.h 这个文件是生成的, 但是和标准的3.0.72差异很大,
ipc\syscall.c 取消, 本来也编译不到
+++++  kernel\irq\chip.c 新增了set_irq_chip_and_handler函数, 从2.6.29上copy过来的
kernel\irq\irqdesc.c 结构体的定义
====================================================================================

决定重新porting.
************************************************************************************
arch\mips\montage 目录, 新增
arch\mips\include\asm\mach-concerto 新增
arch\mips\include\asm\cacheflush.h 新增 extern void (*flush_data_cache_range)(unsigned long addr, unsigned long size); 这个维持2.6.29的配置
arch\mips\mm\cache.c 同上
arch\mips\mm\c-r4k.c 新增 r4k_flush_data_cache_range 函数, 也是维持和2.6.29上一样.
arch\mips\Kconfig 将2.6.29上的关于concerto/warriors的配置copy过来
arch\mips\Makefile 同上
drivers\tty\serial\concerto_uart.c 串口驱动, 将2.6.29上的文件直接copy过来, 同样有kconfig和makefile
usb host的驱动相关的文件copy过去, 但是usb的驱动没有做编译(改makefile)
yaffs2编译报错, 直接make menuconfig关掉这个选项.
消除include\linux\dma-mapping.h 中__deprecated 的编译问题
include\linux\serial_core.h新增port的宏定义
kernel\irq\chip.c 增加 set_irq_chip_and_handler 函数, 这个也是参考2.6.29的
最后修改整个kernel的makefile的toolchain和编译选项.
CROSS_COMPILE ?= /usr/local/codesourcery/mips-4.3/bin/mips-linux-gnu-
CC        = $(CROSS_COMPILE)gcc -EL

在这里, .config使用的是第一次porting的.config, 除了usb和yaffs2的差异外.
initramfs用的直接是2.6.29中的mdev.cpio

经过这样的修改后, 编译后的vmlinux.bin跑的很正常. 特此记录.

16. yaffs/yaffs2 文件系统的支持

CONFIG_YAFFS_FS=y
CONFIG_YAFFS_YAFFS1=y
# CONFIG_YAFFS_9BYTE_TAGS is not set
CONFIG_YAFFS_DOES_ECC=y
# CONFIG_YAFFS_ECC_WRONG_ORDER is not set
CONFIG_YAFFS_YAFFS2=y
CONFIG_YAFFS_AUTO_YAFFS2=y
# CONFIG_YAFFS_DISABLE_TAGS_ECC is not set
# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
# CONFIG_YAFFS_EMPTY_LOST_AND_FOUND is not set
# CONFIG_YAFFS_DISABLE_BLOCK_REFRESHING is not set
# CONFIG_YAFFS_DISABLE_BACKGROUND is not set
CONFIG_YAFFS_XATTR=y

前面的kernel没有包含yaffs的支持, 打开支持后(选项如上)会有编译的error.
主要是不应该用yaffs_read_super, 而是需要用yaffs_mount, 其实就是重命名一下, 函数返回值从int型变为struct dentry *型.
参数也少一个mnt.
其实就是和2.6.29上一样就行.
不知道为什么下载的3.0.72的kernel的yaffs部分会是比较老的代码, 编译都有问题.
看3.6.4的, 直接在FS目录下就没有yaffs的目录了. 需要到www.yaffs.net去下载. 支持GPL和商用的license了.

************************************************************************************

==============================第三部分 android mips的编译====================================
15.前面下载的4.0.4上, mips架构是没法编译的, build\core\combo\arch 下面只有arm的目录.
使用下面的配置的话,会提示找不到一些makefile文件之类的错误.
#export TARGET_ARCH=mips
#export TARGET_ARCH_VARIANT=mipsandroid
#export ANDROID_TOOLCHAIN=/usr/local/codesourcery/mips-4.3/bin

16.重新下载4.4的版本, 里面就已经有mips架构的makefile了.
http://blog.csdn.net/gobitan/article/details/24367439 里面提到, "编译Android4.4不能用OpenJDK,必须用Oracle JDK1.6,1.7目前是不支持的。",
不知道具体的结果怎么样.
www.cnblogs.com/zhx831/p/3550688.html这个上面也说,是到oracle上去下载JDK.
实际发现用原来的open jdk1.6也能编译通过.(选的是aosp_mips)

17.libusb的编译
   ./configure CC=/usr/local/codesourcery/mips-4.3/bin/mips-linux-gnu-gcc --host=mips-linux --prefix=`pwd`/install
   make; make install 就会在新建的那个install目录下生成libusb-1.0.so
   
18.编译modeswitch, 先改makefile中的交叉编译器的设定, 然后make会提示找不到libusb.h的头文件, 如下.
/usr/local/codesourcery/mips-4.3/bin/mips-linux-gnu-gcc -o usb_modeswitch usb_modeswitch.c -Wall  `pkg-config --libs --cflags libusb-1.0`
Package libusb-1.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libusb-1.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libusb-1.0' found
In file included from usb_modeswitch.c:59:
usb_modeswitch.h:26:20: error: libusb.h: No such file or directory

google了一下, pkg-config能自动帮你找到安装的库的位置, 避免每个人安装的位置不同引起的编译错误.
`pkg-config --libs --cflags libusb-1.0`的返回结果是"-I/home/xioliu/concerto/libusb-1.0.9/install/include/libusb-1.0  -L/home/xioliu/concerto/libusb-1.0.9/install/lib -lusb-1.0". 它需要知道libusb-1.0.pc这个文件的存放位置.

看提示, 在makefile中添加 PKG_CONFIG_PATH=/home/xioliu/concerto/libusb-1.0.9/install/lib/pkgconfig 字样. 但还是不行.
修改makefile, 手动在CFLAGS中增加"-I/home/xioliu/concerto/libusb-1.0.9/install/include/libusb-1.0  -L/home/xioliu/concerto/libusb-1.0.9/install/lib -lusb-1.0".
不用$(LIBS), 然后编译是ok的.

其实就是设置PKG_CONFIG_PATH的时候, 需要export才行.
修改makefile为 export     PKG_CONFIG_PATH=/home/xioliu/concerto/libusb-1.0.9/install/lib/pkgconfig 其实就解决了, 顺利编译.
$ make usb_modeswitch
/usr/local/codesourcery/mips-4.3/bin/mips-linux-gnu-gcc -o usb_modeswitch usb_modeswitch.c -Wall  `pkg-config --libs --cflags libusb-1.0`
$ file usb_modeswitch
usb_modeswitch: ELF 32-bit MSB executable, MIPS, MIPS64 version 1, for GNU/Linux 2.6.12, dynamically linked (uses shared libs), not stripped
[xioliu@cn0512lnx02 usb-modeswitch-2.2.0]$ /usr/local/codesourcery/mips-4.3/bin/mips-linux-gnu-stri
mips-linux-gnu-strings  mips-linux-gnu-strip    
[xioliu@cn0512lnx02 usb-modeswitch-2.2.0]$ /usr/local/codesourcery/mips-4.3/bin/mips-linux-gnu-strip usb_modeswitch
然后strip可以得到不含符号表的可执行档
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值