荔枝派Zero是什么

荔枝派Zero是一个SD卡尺寸的ARM Cortex-A7开发板。设计上在简洁低成本的前提下又实现了良好的灵活性和可扩展性。它可以被用作是一种通用计算模块,用来制作如游戏机、计算器、物联网设备甚至(低性能)笔记本之类的东西。当然也可以用来单纯的学习ARM/Linux的开发。

荔枝派Zero有什么功能

荔枝派Zero的核心板上并没有集成太多功能。一片全志V3s,一个TF卡插槽,一个USB OTG接口,一个DPI TFT接口,还有一个排针接口,一些电源芯片,就是它的全部了。另外还提供了一个空的SPI Flash焊盘,可以自行焊接SPI NOR(如W25X64)或者SPI NAND(如GD5F1G,但是目前软件还未支持)。

GPIO 连接器

之前提到的灵活性和可扩展性主要就来自于它的GPIO连接器。首先,最简单的玩法就是焊接个2.54mm排针上去,这样就能直接插在面包板上。

其次呢,它侧面也有一个1.27mm邮票孔接口,这样就很方便把荔枝派当成一个核心板模块焊接在别的电路板上。

再次呢,如果不想单独画板,但是还想使用全所有的引脚,只要再加一个2.54mm的排针就可以啦。

以下是完整的引脚定义图:

DPI LCD / DVP摄像头 连接器

板子的背面有一个40pin的连接器。可以用来直接连接4.3″ 480*272 40pin / 5.0″ 480*272 40pin / 5.0″ 800*480 40pin的液晶屏。而且另外也支持用来转换成LVDS/VGA/HDMI。需要注意的是,支持的最大分辨率为1024*768,更高的是不能用的。

DVP摄像头接口是和LCD共享的,也就是DVP摄像头不能和DPI LCD一起使用。为此,建议使用MIPI CSI摄像头,这样就不会和DPI LCD冲突了。

如何给荔枝派Zero安装Linux系统

这个问题的答案其实取决于你想要把Linux安装在什么位置。

理论上来说,荔枝派可以从SD卡、SPI NOR、SPI NAND、网络和USB启动Linux系统。但是目前为止只有SD卡、SPI NOR和网络启动是被支持的。本文因为只是上手教程,所以只讲最简单的SD卡启动。

荔枝派是怎么启动的

启动的第一步是片内的32KB启动ROM(BROM)。大部分的ARM处理器,为了免去用户外置NOR Flash,通常都在片内集成了这样一个BROM。BROM会尝试从外部存储设备(首先是SD/MMC,接着是SPI NOR,最后是SPI NAND)读取程序。这个程序被全志成为boot0,这这里就是SPL。如果BROM没有顺利载入这个程序,则会进入USB启动模式。

第二步是SPL。SPL其实就是一个精简版的u-boot,只能执行一些特定的任务。SPL会被载入到V3s的内部SRAM中,然后SPL会进行以下操作:

  • 初始化时钟、串口、DRAM和启动设备(SD/MMC/SPI Flash)
  • 把完整的u-boot从启动设备复制到DRAM
  • 跳转到完整的u-boot

第三步就是u-boot了。u-boot会负责载入内核。在一般情况下,u-boot会尝试从SD卡的第一分区读取并执行“boot.scr”脚本。一般来说boot.scr包括三条指令:把内核载入到SDRAM,把设备树二进制载入到SDRAM,(解压并)运行内核。

TF卡上需要有什么

以下是一个典型的可启动TF卡的结构:

基本上来说,要创建一个可启动TF卡,需要分区表(通过fdisk)、u-boot with SPL、启动脚本、设备树二进制、内核和根文件系统镜像。

如何创建一个可启动的TF卡

使用Windows+一体镜像

首先,创建过程需要一台Windows电脑。请先安装好Win32DiskImager软件(http://sourceforge.net/projects/win32diskimager/files/Archive/)。

下载系统镜像文件(http://pan.baidu.com/s/1hsj3XfY)。有以下不同的配置可供选择:

  • minX_dd.tar.bz2 –>包含X的最小系统
  • mindb_dd.tar.gz –>Debian,含gcc、python等
  • brpy_dd.tar.bz2 –>buildroot系统,包含python
  • brmin_dd.tar.bz2 –>buildroot最小系统
  • minmin_dd.tar.bz2 –>最小Debian
  • lichee_zero_test_Debian_LXDE.tar.bz2 –>带LXDE桌面的Debian系统

下载后,解压文件。

把TF卡插入读卡器接上电脑,确认TF卡分区标号。如果有重要文件请先备份,该操作将清除卡内所有文件!

以管理员权限打开Win32DiskImager,选择TF卡的分区,选择需要写入的文件,点击写入即可。

另外,请准备一个usb转串口以查看启动log以及登录,参考原理图实物图正确连接UART0。或者通过LCD屏幕也是可行的。

启动成功后终端界面会提示输入用户名和密码,请测试root/toortoor,或者root/licheepi。

使用Linux+烧写脚本

首先,创建过程需要一台Linux电脑,用虚拟机也是可以的。

下载预先准备好的镜像。下载地址 https://pan.baidu.com/s/1nv7Fq2X 密码 5gec。解压其中的zero_imager.zip。选择一个自己需要文件系统,复制到zero_imager文件夹下。文件系统的选择请参考README_ROOTFS.txt。请直接复制tar文件而不是解压!

把TF卡塞进读卡器接上电脑,确定设备对应的设备文件名。(如/dev/sdb,在笔记本上可能是/dev/mmcblk0)

如果你在使用480*272的液晶,请先打开write_boot.sh,然后把“sudo dd if=u-boot-sunxi-with-spl_800480.bin of=$1 bs=1024 seek=8 &&\”修改为“sudo dd if=u-boot-sunxi-with-spl_480272.bin of=$1 bs=1024 seek=8 &&\”

使用一下命令创建可启动的TF卡,注意第一个参数为TF卡的设备文件名,第二个为需要烧录的根文件系统名:

chmod +x *.sh
sudo ./write_all.sh /dev/sdX brmin/brpy/minmin/mindb/minX

把SD卡插入到荔枝派中应该就能启动系统了。需要登录系统请通过串口或者插入USB键鼠以root / licheepi 登录。

下一步?

玩玩预编译镜像

预编译的镜像已经内置了不少驱动。接个USB-HUB,再接个键盘鼠标无线网卡啥的,用个apt装软件,用读卡器或者scp交换文件,或者自己用gcc编译软件,甚至直接用python写程序,各种玩法你可以自己选择。完全不需要了解内核或者其它底层的东西就可以用荔枝派开始制作。

按照教程学习

看云平台上已有不少文档,照着他们学一遍大概也是不错的选择?加以发挥,把自己的设备连接到荔枝派或者把荔枝派连接到别的东西上应该也是挺有趣的玩法。

官方Todo列表

荔枝派多多少少有点接近个人项目,仅依靠个人的力量来完善文档和代码不太现实。所以荔枝派团队公开了一些任务供各位玩家来领取。TODO LIST里基本都是熟练者在几个小时内可完成的任务,对于新手来说时间会更长一点,但是独立做一遍能够显著提高实战能力。学习的同时还能赚钱,何乐而不为呢?