Difference between revisions of "SDK下载和编译"
Csjamesdeng (talk | contribs) |
(→SDK) |
||
(3 intermediate revisions by one other user not shown) | |||
Line 2: | Line 2: | ||
== 系统要求 == | == 系统要求 == | ||
− | + | 以下是编译主机推荐最小配置: | |
* 处理器:x86_64 | * 处理器:x86_64 | ||
* 内存:8GB或更高 | * 内存:8GB或更高 | ||
Line 41: | Line 41: | ||
<pre>james ALL=(ALL) NOPASSWD: ALL</pre> | <pre>james ALL=(ALL) NOPASSWD: ALL</pre> | ||
Ctrl-X推出并保持你的修改即可。 | Ctrl-X推出并保持你的修改即可。 | ||
+ | |||
+ | == 下载 == | ||
+ | |||
+ | === SDK === | ||
+ | |||
+ | SDK托管在[https://github.com/lindenis-org github]上。 | ||
+ | |||
+ | 推荐用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: | ||
+ | <pre> | ||
+ | $ repo init -u https://github.com/lindenis-org/manifest.git -b v5 | ||
+ | $ repo sync | ||
+ | </pre> | ||
+ | 网速决定了你的下载速度。下载完后,你将看到以下目录: | ||
+ | <pre> | ||
+ | build build.sh debian device kernel tools u-boot | ||
+ | </pre> | ||
+ | |||
+ | 为本地工作空间建一个分支: | ||
+ | <pre> | ||
+ | $ repo start v5 --all | ||
+ | </pre> | ||
+ | |||
+ | 在编译源码前,要先下载基础根文件系统和交叉编译工具链。 | ||
+ | |||
+ | === 基础根文件系统 === | ||
+ | |||
+ | 从[ftp://13.57.226.143/alip/ FTP服务器]下载基础根文件系统(用户名 'ftp',密码 'lindeni')并保存到debian目录。 | ||
+ | * [ftp://13.57.226.143/alip/stretch-alip.tar.gz stretch-alip.tar.gz] | ||
+ | |||
+ | === 交叉编译工具链 === | ||
+ | |||
+ | 从[ftp://13.57.226.143/toolchains/ FTP服务器]下载交叉编译工具链(用户名 'ftp',密码 'lindeni')并保存到tools/build/toolchain目录(如果不存在请先创建它)。 | ||
+ | * [ftp://13.57.226.143/toolchain/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi.tar.xz gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi.tar.xz] | ||
+ | * [ftp://13.57.226.143/toolchain/gcc-linaro-arm.tar.xz gcc-linaro-arm.tar.xz] | ||
+ | |||
+ | == 编译 == | ||
+ | |||
+ | === 设置环境 === | ||
+ | |||
+ | 对于Lindenis V5: | ||
+ | <pre> | ||
+ | $ 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 | ||
+ | </pre> | ||
+ | |||
+ | === 编译源码 === | ||
+ | |||
+ | * 编译内核和根文件系统 | ||
+ | <pre> | ||
+ | $ ./build.sh | ||
+ | </pre> | ||
+ | |||
+ | 现在你可以生成操作系统镜像。当然,为了方便调试,你也可以单独编译每个部分。 | ||
+ | |||
+ | * 只编译内核 | ||
+ | <pre> | ||
+ | $ ./build/mk-kernel.sh | ||
+ | </pre> | ||
+ | |||
+ | * 只编译根文件系统 (debian) | ||
+ | <pre> | ||
+ | $ ./build/mk-debian.sh | ||
+ | </pre> | ||
+ | |||
+ | * 编译U-Boot | ||
+ | <pre> | ||
+ | $ ./build/mk-u-boot.sh | ||
+ | </pre> | ||
+ | |||
+ | === 生成镜像 === | ||
+ | |||
+ | 适用于MicroSD Card的镜像: | ||
+ | <pre> | ||
+ | $ ./build.sh flat-fw | ||
+ | </pre> | ||
+ | |||
+ | 适用于eMMC的镜像: | ||
+ | <pre> | ||
+ | $ ./build.sh pack | ||
+ | </pre> | ||
+ | |||
+ | == 安装 == | ||
+ | * [[Linbain安装#制作启动卡|安装镜像到SDCard]] | ||
+ | * [[Writing_an_image_to_the_eMMC|安装镜像到eMMC]] |
Latest revision as of 08:46, 15 April 2019
Contents
系统要求
以下是编译主机推荐最小配置:
- 处理器: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