android kernel http://source.android.com/source/building-kernels.html
git clone
[email protected]:/pub/gittrees/private/unicore-kernel-2.3.5.git
提交方法:
git status 查看新文件
git add ***
git commit -m "********" 向本地版本库提交
git push 向远程版本库提交
unicore kernel 单独编译方法:
make ARCH=unicore CROSS_COMPILE=../prebuilt/linux-x86/toolchain/uc4-1.0.4-hard/bin/unicore32-linux-(这个是你使用的交叉编译工具位置,注意根据实际路径修改) uImage
源码下载流程:
unicore-android-2.1源码是通过git和repo来管理的,如果机器上没有git和repo,需要先进行安装:
git:
sudo yum install git-core
repo:
下载repo,然后:
sudo mv repo /usr/bin/repo
sudo chmod +x /usr/bin/repo
首先下载前请发送用户公钥给我,位置:
为了能够匿名访问源码库,每个人需要生成自己的公钥/私钥对,查看用户主目录下是否有.ssh目录:
$ ls ~/.ssh/ // ~为你的用户根目录,超级用户在root下查看
如果.ssh存在,且目录下有一对名为id_rsa和id_rsa.pub的文件,他们就是你的公钥/私钥对。将id_rsa.pub文件重命名为自己的用户名后,通过附件形式发给我(如:yanlin.pub 。切记,需要发送的是id_rsa.pub 文件而不是id_rsa)。
如果你的 .ssh 目录下没有公钥/私钥对,则需要生成自己的公钥/私钥对。方法:
$ ssh-keygen
接下来,直接按Enter键就可以了。完成后你的用户目录下就可以找到公钥/私钥对了。
请将id_rsa.pub文件发送给我:
[email protected]
然后对git做一些简单的配置:
用户名配置:
git config --global user.name <your_name>
例: $ git config --global user.name "Yang Yanlin"
邮箱配置:
git config --global user.email <your_email@…>
例: $ git config --global user.email
[email protected]
颜色配置:
$ git config --global color.ui auto
然后大家就可以下载源码了
mkdir unicore-android-2.1
cd unicore-android-2.1
repo init -u
[email protected]:/pub/gittrees/unicore-android-2.1/platform/manifest.git -b android-2.1_r2.1p2
repo sync
./init_wst
同步和提交代码
同步:
在unicore-android-2.1目录下:
repo sync
可以更新所有源码,进入某个git子项目,例vender:
git pull
这样则只会更新vender目录。
提交:
对项目作了修改后,需要提交,这时的提交分为三种情况(***需要注意的是每次修改前先进行同步: git pull):
这里以vendor为例说明:
$ cd vendor
1) 单个新文件的提交:
$ echo "test file" >> test
这时,用git status命令查看:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# test
nothing added to commit but untracked files present (use "git add" to track)
可以看出这个test文件的状态是 “untracked files”
向本地仓库添加这个文件:
$ git add test
这时再用git status命令查看,则可以看出test的状态是:“Changes to be committed”
然后想本地仓库提交:
$ git commit -m "add new file "
"add new file"
[master bbe823c] add new file
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 applications/test
上面的“add new file” 是一个说明信息,大家可以自己写,只要描述清楚这次提交是做什么就可以了。
这时再使用git status命令查看,则可以看到:
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
说明test已经提交到本地仓库,已经没有新文件了。
接下来,将test提送到远程仓库,这样别的成员就可以下载到你的修改了:
$ git push sl HEAD
这样单个文件的提交就完成了。可以看出一个完整的提交过程有一下步骤:
1.添加到本地仓库: git add fielname
2.提交到本地仓库: git commit -m "message"
3.推送到远程仓库: git push sl HEAD
期间,可以用 git status擦看状态。
2) 多个新文件的提交:
如我在vendor目录下新建了一个目录,并创建了多个文件:
$ mkdir dir
$ echo "file 1" >> dir/file1
$ echo "file 2" >> dir/file2
$ echo "file 3" >> dir/file3
这时,要提交dir目录中的所有文件可以用下面的方法:
$ git add dir
$ git commit -m "add new dir"
$ git push sl HEAD
如果 要提交位于不同目录中的不同文件:
如:
例vendor下有两个文件:nvidia和redflag
$ echo "file 1" >> nvidia/file1
$ echo "file 2" >> redflag/file2
则只有添加到本地仓库的步骤跟上面不一样:
$ git add nvidia/file1
$ git add redfla/file2
$ git commit -m "add some new files"
$ git push sl HEAD
也就是说,提交多个文件的时候,需要把他们都添加到本地仓库,然后再提交。
3) 旧文件修改后提交:
如果修改了dir下面的 fiel1的内容:
$ echo "adsfsdf" >> dir/file1
这时要提交fiel1,有两个方法:
$ git add dir/file1
$ git commit -m "modify file1"
$ git push sl HEAD
或者:
$ git commit -a -m "modify file1"
$ git push sl HEAD
从上面的例子可以看出,git commit -a -m "modify file1"中的-a选项就相当于 git add中的 add。
如果修改了多个文件,提交的时候将多个文件分别添加到本地仓库,然后提交就可以了。
添加两条repo的使用方法:
$ repo sync //同步源码,会同步所有子git项目的源码
$ repo diff //查看所有git项目中的改变
$ repo forall -c "git branch" //查看每个git项目的branch
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char kk[100] = {0};
int i = 764;
sprintf(kk,"echo %d >> filename",i);
printf("%s\n",kk);
system(kk);
return 0;
}
关于git的使用:
可能好多人都是初次接触git,因此我就当大家都没有用过git,详细说明一下git的提交流程。学过git的可以不看这封邮件。
如果是初次使用git的话,可能你的机器需要一些配置:
检查你的机器是否有repo和git这两个工具:
$ git
如果没有,则需要先安装:
安装git:
$ yum install git-core
可能还需要做一些配置:
用户名配置:
git config --global user.name <your_name>
例: $ git config --global user.name "Yang Yanlin"
邮箱配置:
git config --global user.email <your_email@…>
例: $ git config --global user.email
[email protected]
颜色配置:
$ git config --global color.ui auto
现在以bootloader目录为例:
进入bootloader目录:
$ cd bootloader/
$ ls -la
可以看到有一个.git目录,说明这是一个git项目。
对项目作了修改后,需要提交,这时的提交分为三种情况(***需要注意的是每次修改前先进行同步: git pull):
1) 单个新文件的提交:
$ cd bootloader/
$ echo "test file" >> test
这时,用git status命令查看:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# test
nothing added to commit but untracked files present (use "git add" to track)
可以看出这个test文件的状态是 “untracked files”
向本地仓库添加这个文件:
$ git add test
这时再用git status命令查看,则可以看出test的状态是:“Changes to be committed”
然后想本地仓库提交:
$ git commit -m "add new file "
"add new file"
[master bbe823c] add new file
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 applications/test
上面的“add new file” 是一个说明信息,大家可以自己写,只要描述清楚这次提交是做什么就可以了。
这时再使用git status命令查看,则可以看到:
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
说明test已经提交到本地仓库,已经没有新文件了。
接下来,将test提送到远程仓库,这样别的成员就可以下载到你的修改了:
$ git push
这样单个文件的提交就完成了。可以看出一个完整的提交过程有一下步骤:
1.添加到本地仓库: git add fielname
2.提交到本地仓库: git commit -m "message"
3.推送到远程仓库: git push
期间,可以用 git status擦看状态。
2) 多个新文件的提交:
如我在bootloader下新建了一个目录,并创建了多个文件:
$ mkdir dir
$ echo "file 1" >> dir/file1
$ echo "file 2" >> dir/file2
$ echo "file 3" >> dir/file3
这时,要提交dir目录中的所有文件可以用下面的方法:
$ git add dir
$ git commit -m "add new dir"
$ git push
如果 要提交位于不同目录中的不同文件:
如:
$ echo "file 1" >> BOOK/file1
$ echo "file 2" >> CALL/file2
$ echo "file 3" >> CTV/file3
则只有添加到本地仓库的步骤跟上面不一样:
$ git add BOOK/file1
$ git add CALL/file2
$ git add CTV/file3
$ git commit -m "add some new files"
$ git push
也就是说,提交多个文件的时候,需要把他们都添加到本地仓库,然后再提交。
3) 旧文件修改后提交:
如果修改了dir下面的 fiel1的内容:
$ echo "adsfsdf" >> dir/file1
这时要提交fiel1,有两个方法:
$ git add dir/file1
$ git commit -m "modify file1"
$ git push
或者:
$ git commit -a -m "modify file1"
$ git push
从上面的例子可以看出,git commit -a -m "modify file1"中的-a选项就相当于 git add中的 add。不过在方法1中如果用
git commit -a -m "modify file1"也没错啊。如果这个地方不懂的话,以后只要提交,都用git commit -a -m “message”就行了。
如果修改了多个文件,提交的时候将多个文件分别添加到本地仓库,然后提交就可以了。
如果有什么疑问的话,欢迎给我邮件 :
[email protected]
谢谢!