Difference between revisions of "NanoPi 2/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(安装交叉编译器)
(安装交叉编译器)
Line 74: Line 74:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
其中“/opt/FriendlyARM/s5p4418/android”是Android源代码目录。
 
其中“/opt/FriendlyARM/s5p4418/android”是Android源代码目录。
 +
使用Android中的交叉编译器时,编译U-Boot和Linux应指定“CROSS_COMPILE=arm-eabi-”。
  
 
===编译U-Boot===
 
===编译U-Boot===

Revision as of 10:34, 28 October 2015

English

1 介绍

  • NanoPi 2 是友善之臂专门为创客和物联网设计的高性能硬件开发平台,采用Cortex-A9架构的四核S5P4418处理器(主频1.4GHz),内存为1G DDR3,同时板上集成了802.11 b/g/n无线网卡及蓝牙4.0模块,可支持Android与Debian双系统,支持HDMI和LCD同步输出,并拥有丰富的扩展接口,兼容树莓派GPIO,PCB尺寸只有40*72mm。

2 资源特性

  • CPU: S5P4418, 运行主频1.4GHz
  • RAM: 1GB DDR3
  • 集成SDIO WiFi蓝牙模块
  • USB 2.0 Type A x1
  • 调试串口 x1
  • microSD Slot x2
  • microUSB x1: 支持供电和数据传输,可模拟为串口和以太网
  • LCD接口: 0.5mm间距贴片FPC座,支持全彩LCD (RGB:8-8-8)
  • HDMI: 符合1.4a规范, Type-A连接器, 1080P60输出
  • DVP Camera接口:0.5mm间距竖直贴片FPC座,包含ITU-R BT 601/656 8-bit,I2C和IO
  • GPIO1: 2.54mm间距,40pin, 兼容RPi的GPIO,含UART, SPI, I2C, IO等管脚资源
  • 按键: 用户按键一个, 复位按键一个
  • LED: 电源LED一个, 用户LED一个
  • PCB 尺寸: 75 x 40mm
  • 供电: DC 5V/2A
  • 软件支持: 安卓, Debian

3 接口布局和尺寸

3.1 机械尺寸

NanoPi 2 Dimension

详细尺寸:NanoPi-2-1507-Dimesions(dxf).zip

4 快速入门

4.1 准备工作

要开启你的NanoPi新玩具,请先准备好以下硬件

  • NanoPi 2 主板
  • microSD卡/TF卡: Class10或以上的 8GB SDHC卡
  • microUSB线
  • 一台运行Linux的电脑,需要联网,建议使用Ubuntu 14.04 64位系统

4.2 制作一张带运行系统的microSD卡

  • 1) 将microSD插入Ubuntu的电脑,用以下命令查看你的SD卡设备名
dmesg | tail

当dmesg输出类拟信息 sdc: sdc1 sdc2时,则表示SD卡对应的设备名为 /dev/sdc,也通过用命令cat /proc/partitions来查看。

  • 2) 下载Linux下的制作包
git clone https://github.com/friendlyarm/sd-fuse_nanopi2.git
cd sd-fuse_nanopi2
  • 3) 制作启动Android的SD卡
su
./fusing.sh /dev/sdx

(注:/dev/sdx请替换为实际的SD卡设备文件名)
制作包中未包含Android和Debian的烧写文件,第一次使用时会提示需要下载,输入Y下载,N或10秒未输入则取消。

  • 4) 制作启动Debian的SD卡
./fusing.sh /dev/sdx debian

4.3 运行Android

将制作好包含Android的microSD卡插入NanoPi2,连接HDMI,最后连接电源(5V 2A),NanoPi2会上电自动开机,看到板上的蓝色LED亮,这说明系统已经开始启动了,同时电视上也将能看到Android启动的画面。
如果您连接了串口,则还可以通过PC的minicom看到系统启动的调试信息。

5 如何编译系统

5.1 安装交叉编译器

编译U-Boot和Linux可以直接使用Android源代码中的提供的交叉编译器,假设您的Android源代码已下载好,可以通过设置环境PATH来使用它:

export PATH=/opt/FriendlyARM/s5p4418/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH
arm-eabi-gcc -v

其中“/opt/FriendlyARM/s5p4418/android”是Android源代码目录。 使用Android中的交叉编译器时,编译U-Boot和Linux应指定“CROSS_COMPILE=arm-eabi-”。

5.2 编译U-Boot

下载U-Boot源代码并编译,注意分支是s5p4418-nanopi2:

git clone https://github.com/friendlyarm/uboot_nanopi2.git
cd uboot_nanopi2
git checkout s5p4418-nanopi2
make s5p4418_nanopi2_config
make

编译成功结束后您将获得u-boot.bin,您可以通过fastboot来更新正在运行的NanoPi2板上SD的U-Boot。
注意:您不能直接使用dd来更新SD卡,否则有可能会导致无法正常启动。

5.3 准备mkimage

编译内核需要用到U-Boot中的工具mkimage,因此,在编译内核uImage前,您需要保证您的主机环境可以成功运行它。
你可以直接使用命令 sudo apt-get install u-boot-tools 来安装,也可以自己编译并安装:

cd uboot_nanopi2
make tools
mkdir -p /usr/local/sbin && cp -v tools/mkimage /usr/local/sbin

5.4 编译Linux kernel

5.4.1 编译内核

  • 下载内核源代码
git clone https://github.com/friendlyarm/linux-3.4.y.git
cd linux-3.4.y
git checkout s5p4418-nanopi2

NanoPi2内核所属的分支是s5p4418-nanopi2,在开始编译前先切换分支。

  • 编译Android内核
make nanopi2_android_defconfig
touch .scmversion
make uImage
  • 编译Debian内核
make nanopi2_linux_defconfig
touch .scmversion
make uImage

编译成功结束后,新生成的内核烧写文件为 arch/arm/boot/uImage 。

5.4.2 编译内核模块

Android包含内核模块,位于system分区的 /lib/modules/ 下,如果您有新的内核模块或者内核配置有变化,则需要重新编译。
首先编译内核源代码中的模块:

cd linux-3.4.y
make modules

另外有2个内核模块的源代码位于Android源代码中,可使用以下命令来编译:

cd /opt/FriendlyARM/s5p4418/android
./vendor/friendly-arm/build/common/build-modules.sh

其中 “/opt/FriendlyARM/s5p4418/android” 是指Android源代码的TOP目录,使用参数“-h”可查看帮助。
编译成功结束后,会显示生成的内核模块。

5.5 编译Android

  • 下载源代码

Android源代码的下载需要使用repo,其安装和使用请查看 https://source.android.com/source/downloading.html

mkdir android && cd android
repo init -u git@github.com:friendlyarm/android_manifest.git -b nanopi2-kitkat
repo sync

其中“android”是指工作目录,另外,初始化repo时也可以使用HTTPS clone URL。

  • 编译系统
source build/envsetup.sh
lunch aosp_nanopi2-userdebug
make -j8

编译成功完成后,目录 out/target/product/nanopi2/ 下包含可用于烧写的image文件。

6 资源链接