Difference between revisions of "SDK下载和编译"

From Lindenis Wiki
Jump to: navigation, search
(系统要求)
(SDK)
 
Line 49: Line 49:
  
 
推荐用Repo管理Git仓库。从[https://android.googlesource.com/tools/repo android Git仓库]或其他镜像克隆一份Repo并安装。
 
推荐用Repo管理Git仓库。从[https://android.googlesource.com/tools/repo android Git仓库]或其他镜像克隆一份Repo并安装。
 +
<br>国内开发者可以按照下面的步骤来安装Repo脚本:
 +
<pre>
 +
$ git clone http://mirrors.ustc.edu.cn/aosp/git-repo.git ~/.bin/repo
 +
$ echo "export PATH=~/.bin/repo:$PATH" >> ~/.bashrc
 +
$ source ~/.bashrc
 +
</pre>
  
 
对于Lindenis V5,通过以下命令下载SDK:
 
对于Lindenis V5,通过以下命令下载SDK:

Latest revision as of 08:46, 15 April 2019

系统要求

以下是编译主机推荐最小配置:

  • 处理器:x86_64
  • 内存:8GB或更高
  • 硬盘:10GB空闲空间
  • 操作系统:Ubuntu 14.04 (tested)或更高
  • 网络:因特网连接

准备主机

Ubuntu 14.04

提示:新的Ubuntu版本应该也行

安装依赖软件

$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install git git-core u-boot-tools qemu qemu-user-static debootstrap lib32z1 lib32ncurses5 libc6:i386 libstdc++6:i386 gawk
  • dpkg --add-architecture i386: 支持32位的软件
  • apt-get update: 更新软件包
  • git git-core: 源码版本管理软件
  • u-boot-tools: 内核镜像生成工具
  • qemu qemu-user-static: 虚拟化模拟器,模拟arm环境
  • debootstrap: 用来构建基础根文件系统
  • lib32z1 lib32ncurses5 libc6:i386 libstdc++6:i386: 32位软件运行库
  • gawk: GNU Awk

设置sudo

$ sudo visudo

在文件末尾增加以下内容 (将 “james” 改成你自己的名字):

james ALL=(ALL) NOPASSWD: ALL

Ctrl-X推出并保持你的修改即可。

下载

SDK

SDK托管在github上。

推荐用Repo管理Git仓库。从android Git仓库或其他镜像克隆一份Repo并安装。
国内开发者可以按照下面的步骤来安装Repo脚本:

$ git clone http://mirrors.ustc.edu.cn/aosp/git-repo.git ~/.bin/repo
$ echo "export PATH=~/.bin/repo:$PATH" >> ~/.bashrc
$ source ~/.bashrc

对于Lindenis V5,通过以下命令下载SDK:

$ repo init -u https://github.com/lindenis-org/manifest.git -b v5
$ repo sync

网速决定了你的下载速度。下载完后,你将看到以下目录:

build  build.sh  debian  device  kernel  tools  u-boot

为本地工作空间建一个分支:

$ repo start v5 --all

在编译源码前,要先下载基础根文件系统和交叉编译工具链。

基础根文件系统

FTP服务器下载基础根文件系统(用户名 'ftp',密码 'lindeni')并保存到debian目录。

交叉编译工具链

FTP服务器下载交叉编译工具链(用户名 'ftp',密码 'lindeni')并保存到tools/build/toolchain目录(如果不存在请先创建它)。

编译

设置环境

对于Lindenis V5:

$ source build/envsetup.sh
All available platforms:
   0. eagle(Allwinner-V5,sun8iw12p1,arm)
   1. petrel(Allwinner-H3,sun8iw7p1,arm)
   2. cuckoo(Allwinner-V3,sun8iw8p1,arm)
Choice: 0
All available OS:
   0. buildroot
   1. debian
Choice: 1
   0. allwinner-dvb
   1. lindeni-v5
Choice: 1

编译源码

  • 编译内核和根文件系统
$ ./build.sh

现在你可以生成操作系统镜像。当然,为了方便调试,你也可以单独编译每个部分。

  • 只编译内核
$ ./build/mk-kernel.sh
  • 只编译根文件系统 (debian)
$ ./build/mk-debian.sh
  • 编译U-Boot
$ ./build/mk-u-boot.sh

生成镜像

适用于MicroSD Card的镜像:

$ ./build.sh flat-fw

适用于eMMC的镜像:

$ ./build.sh pack

安装