Difference between revisions of "NanoPi A64/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(2017-04-18)
(下载并安装编译器)
Line 351: Line 351:
 
===下载并安装编译器===
 
===下载并安装编译器===
 
访问此处[https://pan.baidu.com/s/1c2kkWpi 下载地址]的toolchain目录,下载压缩包gcc-linaro-arm.tar.xz和gcc-linaro-aarch64.tar.xz。<br>
 
访问此处[https://pan.baidu.com/s/1c2kkWpi 下载地址]的toolchain目录,下载压缩包gcc-linaro-arm.tar.xz和gcc-linaro-aarch64.tar.xz。<br>
其中gcc-linaro-arm.tar.xz用于编译U-boot,gcc-linaro-aarch64.tar.xz用于编译Linux内核。下载完成后,将它们拷贝到源码nanopi-a64-bsp/brandy/toochain/目录下即可。
+
其中gcc-linaro-arm.tar.xz用于编译U-boot,gcc-linaro-aarch64.tar.xz用于编译Linux内核。下载完成后,将它们拷贝到源码nanopi-a64-bsp/brandy/toolchain/目录下即可。
 
后面编译U-boot或者Linux内核时,编译脚本会自动解压并使用这两个编译器进行编译。
 
后面编译U-boot或者Linux内核时,编译脚本会自动解压并使用这两个编译器进行编译。
  

Revision as of 09:56, 19 May 2017

English

1 介绍

概览
正面
背面
  • NanoPi A64是友善电子团队设计、生产和发行销售的一款高性能掌上创客神器,它采用全志四核 ARM Cortex-A53 架构的A64 处理器,运行UbuntuCore、UbuntuMATE等操作系统。
  • NanoPi A64尽管体积非常小,功能却齐全。集成以太网、红外接收、视频/音频输入输出等接口,并且板载AXP803电源管理单元、Wi-Fi模块等。
  • NanoPi A64采用microUSB供电,板子留有MIPI-DSI、DVP等接口,并且兼容树莓派GPIO口,和1路专用调试串口。

2 资源特性

  • CPU:Allwinner A64 SOC, 四核ARM Cortex-A53, 运行主频648MHz to 1.152GHz, DVFS
  • GPU:Mali400MP2,Supports OpenGL ES2.0, OpenVG1.1
  • PMU: AXP803, 支持软件关机
  • DDR3 RAM:1GB
  • 网络:1个千兆以太网 (RTL8211E)
  • Wi-Fi: 板载Wi-Fi模块, 支持802.11/b/g/n, 板载芯片天线和IPEX接口
  • 音频输入输出:3.5mm耳机座, 包含耳机音频输出和麦克风输入
  • 红外:板载红外接收器
  • USB Host:两个USB 2.0, A型口
  • microSD Slo x1
  • microUSB :仅用来供电
  • 视频输出: HDMI 1.4 A型口
  • MIPI DSI: 30pin 0.5mm间距FPC座子
  • DVP Camera接口:24pin,0.5mm间距FPC座
  • 调试串口:4Pin,2.54mm排针
  • GPIO: 40pin, 2.54mm间距,兼容RasberryPi2的扩展GPIO,含UART, SPI, I2C, PWM, IO等管脚资源
  • I2S: 7pin, 2.54mm间距, 独立I2S接口一路
  • 按键:一个电源按键
  • LED: 一个电源指示LED, 一个状态指示LED
  • PCB: 64 x 60mm, 6层板, 沉金工艺
  • 供电: DC 5V/2A
  • 温度工作范围:零下40摄氏度到80摄氏度
  • OS/Software: Ubuntu-Core with QtE, Ubuntu-MATE

3 接口布局和尺寸

3.1 接口布局

NanoPi A64接口布局
  • GPIO管脚定义
Pin# Name Pin# Name
1 SYS_3.3V 2 VDD_5V
3 GPIOE15/I2C2_SDA 4 VDD_5V
5 GPIOE14/I2C2_SCL 6 GND
7 GPIOD7 8 GPIOH4/UART3-TX
9 GND 10 GPIOH5/UART3-RX
11 GPIOB0/UART2-TX 12 GPIOL10/PWM_S
13 GPIOL8/I2C_S_SCL 14 GND
15 GPIOL9/I2C_S_SDA 16 GPIOH6/UART3-RTS
17 SYS_3.3V 18 GPIOH7/UART3-CTS
19 GPIOC0/SPI0-MOSI 20 GND
21 GPIOC1/SPI0-MISO 22 GPIOB1/UART2-RX
23 GPIOC2/SPI0-CLK 24 GPIOC3/SPI0-CS
25 GND 26 GPIOH8/SPDIF-OUT
27 GPIOH3/I2C1_SDA 28 GPIOH2/I2C1_SCL
29 GOIOH10 30 GND
31 GOIOH11 32 GPIOD4
33 GPIOD5 34 GND
35 GPIOD3/SPI1-MISO 36 GPIOD0/SPI1-CS
37 GPIOD6 38 GPIOD2/SPI1-MOSI
39 GND 40 GPIOD1/SPI1-CLK
  • Debug Port(UART0)
Pin# Name
1 GND
2 VDD_5V
3 UART0-TX
4 UART0-RX
  • I2S/PCM 接口定义
Pin# Name
1 GND
2 SYS_3.3V
3 GPIOB5/PCM0-BCLK
4 GPIOB4/PCM0-SYNC
5 GPIOB6/PCM0-DOUT
6 GPIOB7/PCM0-DIN
7 GPIOB3/I2S0-MCLK
  • DVP Camera IF 管脚定义
Pin# Name Description
1, 2 SYS_3.3V 3V电源输出给外部摄像头模块
7,9,13,15,24 GND 参考地, 0V
3 CAM_SCL I2C时钟信号
4 CAM_SDA I2C数据信号
5 GPIOE17 普通GPIO, 施加给外部摄像头模块的控制信号
6 GPIOE16 普通GPIO, 施加给外部摄像头模块的控制信号
8 MCLK 提供给外部摄像头模块的时钟信号
10 NC 没有连接
11 VSYNC 外部摄像头模块输出给CPU的行信号
12 HREF/HSYNC 外部摄像头模块输出给CPU的场信号
14 PCLK 外部摄像头模块输出给CPU的像数点信号
16-23 Data bit7-0 数据信号
  • MIPI-DSI 管脚定义
Pin# Name Description
1, 2, 3 VDD_5V 5V电源输出给外部供电
4,7,9,11,14,15,18,21,24,27,30 GND 参考地, 0V
5 I2C0_SDA I2C时钟信号
6 I2C0_SCL I2C数据信号
8 GPIOL7 普通GPIO
10 GPIOB2 普通GPIO
12 GPIOL12 普通GPIO
13 AP-RESET# 系统复位输出
16 MIPI-DSI-D3N MIPI DSI数据, 差分信号负
17 MIPI-DSI-D3P MIPI DSI数据, 差分信号正
19 MIPI-DSI-D2N MIPI DSI数据, 差分信号负
20 MIPI-DSI-D2P MIPI DSI数据, 差分信号正
22 MIPI-DSI-D1N MIPI DSI数据, 差分信号负
23 MIPI-DSI-D1P MIPI DSI数据, 差分信号正
25 MIPI-DSI-D0N MIPI DSI数据, 差分信号负
26 MIPI-DSI-D0P MIPI DSI数据, 差分信号正
28 MIPI-DSI-CKN MIPI DSI时钟, 差分信号负
29 MIPI-DSI-CKP MIPI DSI时钟, 差分信号正
说明
  1. SYS_3.3V: 电源输出, 实际输出为3.1V
  2. VDD_5V: 5V电源输入/输出。输入范围:4.7~5.6V, 可通过MicroUSB接口供电, 也可通过40pin排针或Debug Port上的VDD_5V供电. VDD_5V与MicroUSB的VBUS直接相连.
  3. 全部信号引脚均为3.3V电平(实际是3.1V, 兼容3.3V),输出电流为5mA,可以带动小负荷模块,io都不能带负载
  4. 更详细的信息请查看原理图

3.2 机械尺寸

NanoPi-A64-1610-Dimensions.png

详细尺寸:dxf文件

4 快速入门

4.1 准备工作

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

  • NanoPi A64主板
  • microSD卡/TF卡: Class10或以上的 8GB SDHC卡
  • 一个microUSB接口的外接电源,要求输出为5V/2A(可使用同规格的手机充电器)
  • 一台支持HDMI输入的显示器或者电视
  • 一套USB键盘鼠标,同时连接还需要USB HUB (或选购串口转接板,要PC上进行操作)
  • 一台电脑,需要联网,建议使用Ubuntu 14.04 64位系统

4.2 经测试使用的TF卡

制作启动NanoPi A64的TF卡时,建议Class10或以上的 8GB SDHC卡。以下是经友善之臂测试验证过的高速TF卡:

  • SanDisk闪迪 TF 8G Class10 Micro/SD 高速 TF卡:

SanDisk MicroSD 8G

  • SanDisk闪迪 TF128G 至尊高速MicroSDXC TF 128G Class10 48MB/S:

SanDisk MicroSD 128G

  • 川宇 8G手机内存卡 8GTF卡存储卡 C10高速class10 micro SD卡:

chuanyu MicroSD 8G

4.3 制作一张带运行系统的TF卡

4.3.1 下载系统固件

首先访问下载地址下载需要的固件文件(officail-ROMs目录)和烧写工具(tools目录):

使用以下固件:
nanopi-a64-core-qte-sd4g.img.zip 小型的Ubuntu-core系统,内含Qt Embedded图形库
nanopi-a64-ubuntu-mate-sd4g.img.zip 基于Ubuntu,使用的桌面环境是MATE-desktop
烧写工具:
win32diskimager.rar Windows平台下的Ubuntu系统烧写工具,Linux平台下可以用dd命令烧写Ubuntu系统
PhoenixCard_V310.rar Windows平台下的Android系统烧写工具,注意:Android系统固件禁止在Linux平台下用dd命令烧写
HDDLLF.4.40.exe Windows平台下用于格式化TF卡的工具

4.3.2 制作Ubuntu-core系统TF卡

将固件nanopi-a64-core-qte-sd4g.img.zip和烧写工具win32diskimager.rar分别解压,在Windows系统下插入TF卡(限4G及以上的卡),以管理员身份运行win32diskimager工具, 在win32diskimager工具的界面上,选择你的TF卡盘符,选择系统固件,点击Write按钮烧写即可。 当制作完成TF卡后,拔出TF卡插入NanoPi A64的TF卡槽,上电启动(注意,这里需要5V/2A的供电),你可以看到绿灯常亮以及蓝灯闪烁,这时你已经成功启动 NanoPi A64。

5 Ubuntu-core系统的使用

5.1 运行Ubuntu-core

  • 将制作好TF卡插入NanoPi A64,连接HDMI,最后连接电源(5V/2A),NanoPi A64会上电自动开机,看到板上的蓝色LED闪烁,这说明系统已经开始启动了,同时电视上也将能看到系统启动的画面。

1)要在电视上进行操作,你需要连接USB鼠标和键盘.
2)如果您需要进行内核开发,你最好选购一个串口配件,连接了串口,则可以通过终端对NanoPi A64进行操作。

  • 以下是串口的接法,接上串口,即可调试。接上串口后你可以选择从串口模块的DC口或者从A64的MicroUSB口进行供电:

PSU-ONECOM-A64

  • 如果提示输入密码,Ubuntu-core的root和fa用户的默认密码都是两个字母fa。
  • 更新软件包:
apt-get update

5.2 扩展TF卡 文件系统

强烈建议做好系统运行卡之后立即进行文件系统 rootfs 分区的扩展,这将大大提升系统的性能,避免空间不足带来的各种繁琐问题。

  • 在PC机上扩展TF卡的文件系统 rootfs 分区:
sudo umount /dev/sdx?
sudo parted /dev/sdx unit % resizepart 2 100 unit MB print
sudo resize2fs -f /dev/sdx2

/dev/sdx请替换为实际的TF卡设备文件名。

5.3 通过SSH登录

NanoPi A64在加电开机前如果已正确的连接网线,则系统启动时会自动获取IP地址,如果没有连接网线、没有DHCP服务或是其它网络问题,则会导致获取IP地址失败,同时系统启动会因此等待约15~60秒的时间。 如果你不想连接HDMI或者串口模块,可以通过SSH协议登录A64。假设通过路由器查看到板子的IP地址为192.168.1.230,在PC机上执行以下命令登录板子:

ssh root@192.168.1.230

密码为fa。

5.4 HDMI输出声音

Ubuntu-core系统默认从3.5mm耳机座输出声音,想从HDMI输出需要修改文件系统上的配置文件/etc/asound.conf如下:

pcm.!default {
    type hw
    card 1
    device 0
}
 
ctl.!default {
    type hw
    card 1
}

card 0代表3.5mm耳机孔,card 1代表HDMI音频。设置完成后需要重启系统才能生效。

5.5 连接WiFi

用vi或在图形界面下用gedit编辑文件 /etc/wpa_supplicant/wpa_supplicant.conf, 在文件末尾填入路由器信息如下所示:

network={
        ssid="YourWiFiESSID"
        psk="YourWiFiPassword"
}

其中,YourWiFiESSID和YourWiFiPassword请替换成你要连接的无线AP名称和密码。
保存退出后,执行以下命令即可连接WiFi:

ifdown wlan0
ifup wlan0

如果你的WiFi密码中有特殊字符,或者你不希望明文存放密码,你可以使用wpa_passphrase命令为WiFi密码生成一个密钥(psk),用密钥来代替密码 ,在命令行下,可输入以下命令生成密钥:

wpa_passphrase YourWiFiESSID

在提示输入密码时,输入你的WiFi密码,再打开 /etc/wpa_supplicant/wpa_supplicant.conf 文件你会发现密钥已经被更新,你可以删除明文的密码了。

5.6 查看CPU工作温度

获取CPU核心的当前温度值、运行频率等信息:

cpu_freq

6 如何编译BSP

6.1 准备工作

访问此处下载地址的sources目录,下载源码nanopi-a64-bsp。
使用7-Zip工具解压后得到两个目录:lichee和android,也可以从github上克隆lichee源码:

git clone https://github.com/friendlyarm/a64_lichee.git lichee

注:lichee是全志为其CPU的板级支持包所起的项目名称,里面包含了U-boot,Linux等源码和众多的编译脚本。

编译全志A64的BSP源码包必须使用64bit的Linux PC系统,并安装下列软件包,下列操作均基于Ubuntu-14.04 LTS-64bit:

sudo apt-get install gawk 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-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386

6.2 下载并安装编译器

访问此处下载地址的toolchain目录,下载压缩包gcc-linaro-arm.tar.xz和gcc-linaro-aarch64.tar.xz。
其中gcc-linaro-arm.tar.xz用于编译U-boot,gcc-linaro-aarch64.tar.xz用于编译Linux内核。下载完成后,将它们拷贝到源码nanopi-a64-bsp/brandy/toolchain/目录下即可。 后面编译U-boot或者Linux内核时,编译脚本会自动解压并使用这两个编译器进行编译。

6.3 编译U-boot

U-boot的源码目录为lichee/brandy/u-boot-2014.07,在brandy目录下有一个build.sh脚本可用于编译U-boot:

cd lichee/brandy
./build.sh -p sun50iw1p1

6.4 编译Linux内核

Linux内核的源码目录为lichee/linux-3.10,在lichee目录下有一个build.sh脚本可用于编译Linux内核:

cd lichee
echo -e "0\n2\n0\n1\n" | ./build.sh config && ./build.sh

生成的boot.img和内核驱动模块位于linux-3.10/output/目录下。

6.5 打包系统组件

cd lichee
./build.sh pack

该命令会将所有编译生成的可执行文件(包括U-boot、Linux内核)和系统配置文件拷贝到lichee/tools/pack/out/目录以便进行统一管理。
注: 只有运行该命令之后,才能生成能正常运行的U-boot文件。

6.6 更新TF卡

下列命令可用于更新TF卡上的U-boot:

cd fa_tools
./fuse_uboot.sh /dev/sdx

/dev/sdx请替换为实际的TF卡设备文件名。
boot.img和内核模块均位于linux-3.10/output目录下,将boot.img拷贝到TF卡的boot分区的根目录即可更新内核。

6.7 清理lichee源码

./build.sh -p sun50iw1p1 -k linux-3.10 -b nanopi_a64 -m clean

7 更多OS

7.1 Ubuntu-MATE

Ubuntu-MATE基于Ubuntu系统,使用的桌面环境是MATE-desktop,界面简洁易用,需配合HDMI使用,可通过ssh登录。
仅提供给进阶爱好者交流使用,不对该系统提供专业技术支持。

  • 下载系统固件nanopi-a64-ubuntu-mate-sd4g.img.zip(officail-ROMs目录):点击下载
  • 将文件解压后得到系统固件,在Windows下使用友善官方提供 win32diskimager 工具烧写Ubuntu-MATE即可。
  • 烧写完成后,将TF卡插入NanoPi A64,上电即可体验Ubuntu-MATE。
  • 登录账号:root或fa ; 登录密码:fa

MATE-desktop

8 3D 打印外壳

NanoPi A64 3D printed housing
3D打印外壳下载链接

9 资源链接

9.1 手册原理图及开发资料

Allwinner_A64_Datasheet_V1.1.pdf
Allwinner_A64_User_Manual_V1.1.pdf

10 更新日志

10.1 2017-04-18

Ubuntu-Core系统更新如下:

  • 修改了登录欢迎界面,当用户登录时会打印系统的基本状态信息;
  • 增加 npi-config 工具,npi-config是一个命令行下的系统配置工具,可以对系统进行一些初始化的配置,可配置的项目包括:用户密码、系统语言、时区、Hostname、SSH开关、自动登录选项等,在命令行执行以下 sudo npi-config 即可进入;
  • 新增pi用户,并配置为自动登录,自动登录特性可以使用npi-config工具配置;