Smart6818/zh

From FriendlyELEC WiKi
Revision as of 10:13, 23 March 2022 by Tzs (Talk | contribs) (updated by API)

Jump to: navigation, search

English

Contents

1 介绍

Smart681801.jpg
Smart6818-layout.jpg
Front
Overview
  • Smart6818是一款高集成的高性能八核Cortex-A53核心板,由广州友善之臂设计、生产和发行销售。它采用三星S5P6818作为主处理器,运行主频可高达1.4Ghz,并标配1GB DDR3内存和8GB eMMC高速闪存。Smart6818核心板不仅集成电源管理单元,可实现软件开关机和硬件唤醒功能,而且集成千兆以太网卡和声卡芯片,非常方便企业用户进行快速产品设计和项目开发。
  • Smart6818核心板采用了2.0间距双排针(P1,P2,P4),尺寸为74x55mm,总共引出174Pin引脚。其中P1和P2排针为标配焊接(可兼容Smart210之P1,P2),它们已经包含了大部分常用功能;P4空焊,方便有需要的用户扩展开发使用。在布局安排上,我们尽量考虑把常用的LCD模块能够固定在底板上,比如3.5“、4.3“、5“、7“、10.1“LCD等。
  • 另外,若需要使用Smart6818的千兆以太网功能,请选用Smart6818/6818SDK底板。Smart6818与Smart4418管脚Pin to Pin兼容, 尺寸一样。
  • Smart4418/6818SDK 1606底板详情请查看Smart4418/6818SDK 1606

2 资源特性

  • CPU: S5P6818, 动态运行主频400Mhz--1.4GHz
  • 电源管理: 采用一颗ARM® Cortex®-M0单片机做电源管理, 支持动态调压, 软件关机和定时开机等功能
  • DDR3 RAM: 1GB/2GB
  • 网络: 千兆以太网接口(RTL8211E), 板载唯一MAC地址芯片
  • eMMC:8GB
  • 音频:集成音频芯片, 支持麦克风输入和耳机输出
  • LED:一个电源指示LED, 两个GPIO控制的LED
  • 其他: 板载温控电阻
  • PCB Size: 74x55mm,6层,沉金工艺
  • 温度工作范围:零下30摄氏度到70摄氏度
  • 供电: DC 5V, up to 1.2A
  • OS/Software: u-boot, Android5.1/4.4, Debian8, ubuntu-core
  • 3个2.0mm排针, 共174针, 引出以下信号:
    • USB 2.0 - Host x1, OTG x1
    • 视频输出/显示 - RGB Parallel I/F (24-bit), LVDS 和HDMI 1.4a
    • 视频输入 - DVP Camera interface, ITU-R BT 601/656 8-bit 和 MIPI-CSI
    • 音频输入 - 麦克风输入
    • 音频输出 - 耳机输出(带插入检测)和HDMI
    • 网络 - 10/100/1000Mbps 以太网 x1
    • ADC - CPU自带ADC, 7通道, 12-bit, 输入范围0~1.8V
    • 外围接口 - SDIO/MMC x2, SPI x2, I2C x3, UART x5, PWM x3, GPIOs x24
    • 其他 - Power按键输入, RESET输入, RESET输出, RTC电池输入

3 管脚定义

P1 P2
Pin# Name Pin# Name Pin# Name Pin# Name
1 VDD_5V 2 DGND 1 UART0_TX 2 UART0_RX
3 RTC_BATT 4 GPIOB8 3 UART1_TX 4 UART1_RX
5 NRESETIN 6 GPIOC17 5 UART2_TX 6 UART2_RX
7 MMC0_CMD 8 MMC1_CMD 7 UART3_TX 8 UART3_RX
9 MMC0_CLK 10 MMC1_CLK 9 UART1_nCTS 10 UART1_nRTS
11 MMC0_D0 12 MMC1_D0 11 CAM0_D0 12 CAM0_D1
13 MMC0_D1 14 MMC1_D1 13 CAM0_D2 14 CAM0_D3
15 MMC0_D2 16 MMC1_D2 15 CAM0_D4 16 CAM0_D5
17 MMC0_D3 18 MMC1_D3 17 CAM0_D6 18 CAM0_D7
19 MMC0_CD 20 GPIOB24 19 CAM0_PCLK 20 CAM0_VSYNC
21 PWRKEY 22 SPI1_CS/GPIOC10 21 CAM0_HYNC 22 GPIOB14
23 GPIOB28/UART4_RX 24 SPI1_MISO/GPIOC11 23 GPIOB16 24 HDMI_TX1P
25 GPIOB29/UART4_TX 26 SPI1_MOSI/GPIOC12 25 HDMI_TX0P 26 HDMI_TX1N
27 GPIOB30 28 SPI1_CLK/GPIOC9 27 HDMI_TX0N 28 HDMI_TXCP
29 GPIOC15 30 GPIOC16 29 HDMI_TX2P 30 HDMI_TXCN
31 GPIOB31 32 GPIOB18 31 HDMI_TX2N 32 HDMI_HPD
33 GPIOD1/PWM0 34 I2C0_SCL 33 I2C1_SDA 34 I2C1_SCL
35 GPIOC13/PWM1 36 I2C0_SDA 35 USB_OTG_ID 36 SPI0_CS
37 USB_HOST_D- 38 I2C2_SCL 37 USB_OTG_D- 38 SPI0_MISO
39 USB_HOST_D+ 40 I2C2_SDA 39 USB_OTG_D+ 40 SPI0_MOSI
41 LCD_B0 42 LCD_B1 41 VBUS_5V 42 SPI0_CL
43 LCD_B2 44 LCD_B3 43 LVDS_CLKP 44 GPIOB25
45 LCD_B4 46 LCD_B5 45 LVDS_CLKM 46 DGND
47 LCD_B6 48 LCD_B7 47 LVDS_Y0P 48 LAN_MDI1_N
49 LCD_G0 50 LCD_G1 49 LVDS_Y0M 50 LAN_MDI1_P
51 LCD_G2 52 LCD_G3 51 LVDS_Y1P 52 LAN_MDI0_N
53 LCD_G4 54 LCD_G5 53 LVDS_Y1M 54 LAN_MDI0_P
55 LCD_G6 56 LCD_G7 55 LVDS_Y2P 56 LINK_LED
57 LCD_R0 58 LCD_R1 57 LVDS_Y2M 58 SPEED_LED
59 LCD_R2 60 LCD_R3 59 LVDS_Y3P 60 DGND
61 LCD_R4 62 LCD_R5 61 LVDS_Y3M 62 HP_DETECT
63 LCD_R6 64 LCD_R7 63 HP-R 64 HP-L
65 LCD_VSYNC 66 LCD_HSYNC 65 LAN_MDI2_P 66 LAN_MDI3_P
67 LCD_CLK 68 LCD_DE 67 LAN_MDI2_N 68 LAN_MDI3_N
69 DGND 70 BOOT_CS 69 Mic-P 70 Mic-N
P4
Pin# Name Pin# Name
1 MIPICSI_DP0 2 GPIOD8/PPM
3 MIPICSI_DN0 4 GPIOC7
5 MIPICSI_DP1 6 GPIOC8
7 MIPICSI_DN1 8 GPIOC24
9 MIPICSI_DP2 10 GPIOC28
11 MIPICSI_DN2 12 GPIOC0
13 MIPICSI_DP3 14 GPIOC1
15 MIPICSI_DN3 16 GPIOC2
17 MIPICSI_DPCLK 18 GPIOC3
19 MIPICSI_DNCLK 20 DGND
21 GPIOB9 22 ADC1
23 GPIOB26 24 ADC3
25 GPIOC4 26 ADC4
27 AliveGPIO3 28 ADC5
29 PWREN_SYS 30 ADC6
31 GPIOC14/PWM2 32 ADC7
33 NRESETOUT 34 DGND
说明
  1. RTC备份电流为3.35uA. 3V~5V电池直接与RTC_BATT引脚连接.
  2. VDD_5V:给核心板供电的电源输入脚,输入范围4.7-5.6V,推荐5V/1.2A(MAX), 通过降频降压, 可以有效降低功耗: 主频每降低200MHz, 功耗大概降低0.5W
  3. BOOT_CS: 启动模式选择,悬空或高电平为eMMC启动,低电平为SD启动
  4. NRESETIN:复位信号输入,低电平有效。此信号核心板的CPU提供复位信号,外部只需接一个按键就可以
  5. NRESETOUT: 复位信号输入,低电平有效。此信号核心板是的CPU输出的复位信号, 可以提供给外围电路使用
  6. RTC_BATT:RTC备份电池输入,直接接3V电池。核心板上电后由板子内部的3.3V给RTC供电,不上电时由备份电池供电,自动切换
  7. ADC1~7:CPU自带的12-Bit ADC输入,通道1~7,采集范围:0-1.8V
  8. 10/100M以太网模式: LAN_MDI1_N/P=RX-/+, LAN_MDI0_N/P=TX-/+, 也即只需4根信号线连接到带变压器的RJ45连接器
  9. 10/100/1000M以太网模式: LAN_MDI0_N/P~LAN_MDI3N/P, 也即需要把全部8根信号线连接到带变压器的RJ45连接器
  10. MMC0和MMC1必须在底板上上拉,即使不连接任何设备也需要如此处理
  11. 具体外围及扩展电路请参考我们设计的底板Smart210/4418 SDK
  12. Smart4418/6818原理图pdf

4 机械尺寸

Smart4418-6818 drawing.png
需要更详细的尺寸, 请下载dxf文件::Smart4418_6818-1711-Drawing(dxf).zip

5 硬件设计注意事项

5.1 EEPROM

  • 因为Smart6818核心板上的集成了带MAC地址的EEPROM, 型号为24AA025E48T-I/OT, 接在I2C0上, 设备地址为0x51, 所以有些型号的EEPROM不能接在I2C0上, 否则会地址冲突.
  • 不能接在I2C0上的EEPROM: 24C04, 24C08, 24C16, 可以接在I2C0上的EEPROM:24C01, 24C02, 24C256
  • 关于EEPROM地址问题, 请看 http://www.onsemi.com/pub_link/Collateral/CAT24C01-D.PDF

6 参考开发底板

Smart4418/6818SDK

7 快速入门

7.1 准备工作

要开启你的Smart6818开发板,请先准备好以下硬件

  • Smart6818核心主板+底板
  • 大SD卡/: Class10或以上的 8GB SDHC卡
  • 一个DC接口的外接电源,要求输出为12V/2A
  • 一台支持HDMI输入的显示器或者电视(或选购LCD配件)
  • 一套USB键盘鼠标(或选购串口转接板,要PC上接串口终端进行操作)
  • 一台电脑,需要联网,建议使用Ubuntu 14.04 64位系统

7.2 快速从SD卡启动

首先访问此处的下载地址下载需要的固件文件:

  • 您需要准备一张8G或以上容量的SDHC卡,该卡的已有数据将会被破坏,因此请先对SD卡上的数据进行备份。
Image Files
s5p6818-sd-friendlycore-xenial-4.4-armhf-YYYYMMDD.img.zip 32位FriendlyCore系统固件 (内置Qt 5.10.0),基于Ubuntu core
s5p6818-sd-friendlycore-xenial-4.4-arm64-YYYYMMDD.img.zip 64位FriendlyCore系统固件 (内置Qt 5.10.0),基于Ubuntu core
s5p6818-sd-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip LUbuntu桌面版固件,自带X Window图形界面
s5p6818-sd-friendlywrt-4.4-YYYYMMDD.img.zip FriendlyWrt系统固件 (基于OpenWrt定制)
s5p6818-sd-android7-YYYYMMDD.img.zip Android7系统固件 (支持4G LTE)
s5p6818-sd-android-lollipop-YYYYMMDD.img.zip Android5.1系统固件
s5p6818-eflasher-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip SD卡映象,用于将lubuntu系统烧写到eMMC
s5p6818-eflasher-friendlywrt-4.4-YYYYMMDD.img.zip SD卡映象,用于将FriendlyWrt系统烧写到eMMC
s5p6818-eflasher-android7-YYYYMMDD.img.zip SD卡映象,用于将Android7系统烧写到eMMC
s5p6818-eflasher-android-lollipop-YYYYMMDD.img.zip SD卡映象,用于将android系统烧写到eMMC
s5p6818-eflasher-friendlycore-xenial-4.4-arm64-YYYYMMDD.img.zip SD卡映象,用于将friendlycore 64位系统烧写到eMMC
s5p6818-eflasher-friendlycore-xenial-4.4-armhf-YYYYMMDD.img.zip SD卡映象,用于将friendlycore 32位系统烧写到eMMC
Flash Utility:
win32diskimager.rar Windows utility. Under Linux users can use "dd"
  • 将固件和烧写工具分别解压,在Windows下插入SD卡(限4G及以上的卡),以管理员身份运行 win32diskimager 工具, 在win32diskimager工具的界面上, 选择你的SD卡盘符,选择你要烧写的系统固件,点击 Write 按钮烧写即可。
  • 当制作完成 SD 卡后,拔出 SD 卡插入 BOOT 卡槽,按住靠网口位置的boot按键 (只有带eMMC的板子需要) 上电启动(注意,这里需要 5V/2A 的供电),你可以看到板上PWR灯常亮,LED1心跳闪烁,LED2不亮,这时你已经成功启动。

7.3 烧写系统到eMMC

  • 下载eflasher固件

固件文件名的格式为:s5p6818-eflasher-OSNAME-YYYYMMDD.img.zip
其中,OSNAME替换为你需要烧写的系统,例如 android、friendly-core等等;
这个固件是的一个SD卡映象,包含了一个用SD卡启动的微型Ubuntu core系统,以及eMMC安装工具EFlasher
将 s5p6818-eflasher-OSNAME-YYYYMMDD.img.zip 下载到电脑上,另外还需要下载Windows下的烧写工具: win32diskimager.rar;

  • 用eflasher固件制作SD启动卡

将固件用7z软件解压,得到.img结尾的文件,在Windows下插入SDHC卡(限8G及以上的卡),以管理员身份运行Win32DiskImager,选择 Image File载入固件,选择你的SD卡盘符,点 Write 即开始写Image到SD卡;
如果你的电脑用的是Linux系统,你也可以用 dd 命令将解压后得到的 .img 文件直接写入SD卡完成启动卡的制作;

  • 图形界面: 烧写系统到eMMC

将制作好的SD卡插入Smart6818,连接HDMI或LCD, 将开发板右边的S2开关拨到SD端,拨动电源开关,启动开发板后会看到系统选择,选择你需要烧写到eMMC的系统即可。

  • 命令行界面: 烧写系统到eMMC

将制作好的SD卡插入Smart6818,登录串口终端,或者ssh终端,输入如下命令启动EFlasher

sudo eflasher

7.4 在Linux电脑上用脚本制作启动卡

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

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

  • 2) 下载Linux下的制作脚本

git clone https://github.com/friendlyarm/sd-fuse_s5p6818.git
cd sd-fuse_s5p6818

  • 3) 以下是制作启动Lubuntu desktop的SD卡的方法
sudo ./fusing.sh /dev/sdx lubuntu

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

  • 4) 如果只想制成一个用于量产的系统映象文件,方法如下:
sudo ./mkimage.sh lubuntu

更多内容可参考 Assembling the SD card image yourself

7.5 扩展TF卡分区

  • Debian/Ubuntu系统在启动的时候,会自动扩展SD卡分区,第一次开机时自动扩展分区和根文件系统。
  • Android扩展分区,要在pc上执行下列操作:
sudo umount /dev/sdx?
sudo parted /dev/sdx unit % resizepart 4 100 resizepart 7 100 unit MB print
sudo resize2fs -f /dev/sdx7

(注:/dev/sdx请替换为实际的SD卡设备文件名)

7.6 关于LCD/HDMI分辨率

系统启动时uboot会自动识别LCD,成功则会设置为该LCD的显示分辨率,失败则缺省会设置为HDMI 720P模式。
如果要修改LCD的显示分辨率,可以直接修改内核中的文件 arch/arm/plat-s5p6818/nanopi3/lcds.c , 然后重新编译内核并更新即可。
对于HDMI的显示模式,Android则是会通过EDID获得HDMI设备如电视机所支持的显示模式,然后自动选择一个合适的分辨率。如果使用的是Debian,则缺省是720P,可通过修改内核配置来切换为1080P。

7.7 在电脑上更改SD卡的启动参数

将制作好SD卡插入一台运行Linux的电脑,可以挂载SD卡上的boot和rootfs等分区,对分区内容进行修改,想更改Kernel Command Line参数,则可以通过fw_setenv工具来操作,方法如下:
先查看当前的内核启动参数:

git clone https://github.com/friendlyarm/sd-fuse_s5p6818.git
cd sd-fuse_s5p6818/tools ./fw_printenv /dev/sdx | grep bootargs

例如要禁用Android的SELinux特性,可以执行以下命令:

./fw_setenv /dev/sdx bootargs XXX androidboot.selinux=permissive

其中上面的XXX需要替换成原来的bootargs值, /dev/sdx替换为你的SD卡设备。

8 FriendlyCore的使用

8.1 介绍

FriendlyCore,是一个没有X-windows环境,基于Ubuntu core构建的系统,使用Qt-Embedded作为图形界面的轻量级系统,兼容Ubuntu系统软件源,非常适合于企业用户用作产品的基础OS。

本系统除了保留Ubuntu Core的特性以外,还包括以下特性:

  • 支持电容和电阻触摸屏 (型号:S700, X710, S70, HD702, S430, HD101, S70等友善电子推出的LCD屏)
  • 支持WiFi连接
  • 支持以太网连接
  • 支持蓝牙,已预装bluez等相关软件包
  • 支持音频播放
  • 支持Qt 5.10.0 EGLES和OpenGL ES1.1/2.0 (限S5P4418/S5P6818平台)

8.2 运行FriendlyCore

  • 对于有HDMI接口的板子,如果要在电视上进行操作,您需要连接USB鼠标和键盘。
  • 如果您需要进行内核开发,最好选购一个串口配件,连接了串口,则可以通过串口终端对开发板进行操作。

使用串口模块能有效地提升开发效率,以下是串口模块的连接方法:
接上串口后,您可以选择从串口模块的DC口或者从MicroUSB口 (如果有) 进行供电:
以NanoPi-M1为例:
PSU-ONECOM-M1.jpg
也可以使用USB转串口模块调试,请注意需要使用5V/2A电源给开发板MicroUSB供电:
以NanoPi-NEO2为例:
USB2UART-NEO2.jpg

  • FriendlyCore默认帐户:

普通用户:

   用户名: pi
   密码: pi

Root用户:

   用户名: root
   密码: fa

默认会以 pi 用户自动登录,你可以使用 sudo npi-config 命令取消自动登录。

  • 更新软件包:
$ sudo apt-get update

8.3 开发Qt应用

请参考 How to Build and Install Qt Application for FriendlyELEC Boards/zh

8.4 开机自动运行Qt示例程序

使用npi-config工具进行开启:

sudo npi-config

进入Boot Options -> Autologin -> Qt/Embedded,选择Enable然后重启即可。

8.5 扩展TF卡文件系统

第一次启动FriendlyCore系统时,系统会自动扩展文件系统分区,请耐心等待,TF卡/eMMC的容量越大,需要等待的时间越长,进入系统后执行下列命令查看文件系统分区大小:

df -h

8.6 使用蓝牙传输文件

以传输文件到手机为例进行说明,首先,将你的手机蓝牙设置为可侦测状态,然后执行以下命令开始蓝牙搜索:

hcitool scan


搜索到设备时,结果举例如下:

Scanning ...
    2C:8A:72:1D:46:02   HTC6525LVW

这表示搜索到一台名为HTC6525LVW的手机,我们记下手机名称前面的MAC地址,然后用sdptool命令查看该手机支持的蓝牙服务:

sdptool browser 2C:8A:72:1D:46:02

注:上述命令中的MAC地址请替换成手机实际的蓝牙MAC地址
这个命令会详细列出手机蓝牙所支持的协议,我们需要关心的是一个名为 OBEX Object Push 的文件传输服务,以HTC6525LVW手机为例,其显示结果如下所示:

Service Name: OBEX Object Push
Service RecHandle: 0x1000b
Service Class ID List:
  "OBEX Object Push" (0x1105)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 12
  "OBEX" (0x0008)
Profile Descriptor List:
  "OBEX Object Push" (0x1105)
    Version: 0x0100

从上面的信息可以看到,这个手机的OBEX Object Push服务的所用的频道是12, 我们需要将它传递给obexftp命令,最后发起文件传输请求的命令如下:

obexftp --nopath --noconn --uuid none --bluetooth -b 2C:8A:72:1D:46:02 -B 12 -put example.jpg

注:上述命令中的MAC地址、频道和文件名请替换成实际的

执行上述命令后,请留意手机屏幕,正常情况下手机会弹出配对和接收文件的提示,确定后就开始文件传輪了。

蓝牙常见问题:
1) 开发板上找不到蓝牙设备, 可尝试用以下命令开启蓝牙:

rfkill unblock 0

2) 提示找不到相关命令,可尝试用以下命令安装相关软件:

apt-get install bluetooth bluez obexftp openobex-apps python-gobject ussp-push

8.7 连接WiFi

无论是SD WiFi还是USB WiFi, 它们的连接方式都是一样的。正基科技的APXX系列芯片属于SD WiFi,另外系统默认也已经支持市面上众多常见的USB WiFi,已测试过的USB WiFi型号如下:

序号 型号
1 RTL8188CUS/8188EU 802.11n WLAN Adapter
2 RT2070 Wireless Adapter
3 RT2870/RT3070 Wireless Adapter
4 RTL8192CU Wireless Adapter
5 小米WiFi mt7601
6 5G USB WiFi RTL8821CU
7 5G USB WiFi RTL8812AU

目前使用 NetworkManager 工具来管理网络,其在命令行下对应的命令是 nmcli,要连接WiFi,相关的命令如下:

  • 切换到root账户
$ su root
  • 查看网络设备列表
$ nmcli dev

注意,如果列出的设备状态是 unmanaged 的,说明网络设备不受NetworkManager管理,你需要清空 /etc/network/interfaces下的网络设置,然后重启.

  • 开启WiFi
$ nmcli r wifi on
  • 扫描附近的 WiFi 热点
$ nmcli dev wifi
  • 连接到指定的 WiFi 热点
$ nmcli dev wifi connect "SSID" password "PASSWORD" ifname wlan0

请将 SSID和 PASSWORD 替换成实际的 WiFi名称和密码。
连接成功后,下次开机,WiFi 也会自动连接。

更详细的NetworkManager使用指南可参考这篇文章: Use NetworkManager to configure network settings

如果你的USB WiFi无法正常工作, 大概率是因为文件系统里缺少了对应的USB WiFi固件。对于Debian系统, 可以在Debian-WiFi里找到并安装USB WiFi芯片的固件。而对于Ubuntu系统, 则可以通过下列命令安装所有的USB WiFi固件:

$ apt-get install linux-firmware

一般情况下, 各种WiFi芯片的固件都存放在/lib/firmware目录下。


8.8 连接以太网

默认插上网线开机,会自动连接并通过DHCP获取IP地址,如需要配置静态IP地址,请参考 NetworkManager 的相关文档: Use NetworkManager to configure network settings


8.9 定制命令行的欢迎信息(文字LOGO)

欢迎信息主要是这个目录下的脚本来打印的:

/etc/update-motd.d/

比如要修改 FriendlyELEC 的大字LOGO,可以修改/etc/update-motd.d/10-header 这个文件,比如要将LOGO改为HELLO,可将以下行:

TERM=linux toilet -f standard -F metal $BOARD_VENDOR

改为:

TERM=linux toilet -f standard -F metal HELLO

8.10 修改时区

例如更改为Shanghai时区:

sudo rm /etc/localtime
sudo ln -ls /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

8.11 选择系统默认的音频设备

可以通过下面的操作步骤,设置系统默认的音频设备。
可用以下命令查看系统中所有的声卡设备 (注:不同的开发板结果会有所不同):

pi@NanoPi:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: nanopi2audio [nanopi2-audio], device 0: c0055000.i2s-ES8316 HiFi ES8316 HiFi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: nanopi2audio [nanopi2-audio], device 1: c0059000.spdiftx-dit-hifi dit-hifi-1 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

可以看到,硬件上有如下声卡设备:

声卡设备 声卡序号 说明
nanopi2audio device 0 3.5mm耳机输出
nanopi2audio device 1 HDMI输出

要配置成将音频输出到3.5mm耳机接口,可修改配置文件/etc/asound.conf,修改成如下内容:

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

要配置成将音频输出到HDMI,则将上面的device 0修改为device 1。


8.12 运行 Qt 5.10.0 演示程序

FriendlyCore系统集成了Qt 5.10.0图形库,支持OpenGL硬件加速,在命令行输出以下命令,可预览Qt5演示程序,
Qt5演示程序的界面如下图所示,你可以使用触摸屏或者鼠标来操作,Qt5支持大部分FriendlyELEC在售的LCD触摸屏:

$ sudo qt5demo

S5pxx18-QtE

8.13 运行 Qt5-OpenGL示例

Run the following command

. setqt5env
cd $QTDIR
cd /examples/opengl/qopenglwidget
./qopenglwidget

更多示例可以在这里找到:
cd $QTDIR/examples/

8.14 硬解播放高清视频

FriendlyCore系统集成支持VPU加速的GStreamer 1.0多媒体开发框架, 可在命令行输入以下命令,播放1080P的演示视频:

sudo gst-player /home/pi/demo.mp4

gst-player是一个GStreamer播放器的外壳程序,上面命令等效于Gsteamer的以下命令:

sudo gst-launch-1.0 filesrc location=/home/pi/demo.mp4 ! qtdemux name=demux demux. ! queue ! faad ! audioconvert ! audioresample ! alsasink device="hw:0,DEV=1" demux. ! queue ! h264parse ! nxvideodec ! nxvideosink dst-x=0 dst-y=93 dst-w=1280 dst-h=533

8.15 连接DVP摄像头模块(CAM500B)

CAM500B是一款500万像素摄像头模块,以DVP并行信号输出,详细信息请参考Matirx-CAM500B
输入以下命令预览图像:

gst-launch-1.0 -e v4l2src device=/dev/video6 ! video/x-raw,format=I420,framerate=30/1,width=1280,height=720 ! nxvideosink

输入以下命令开始录像 (VPU硬编码):

gst-launch-1.0 -e v4l2src device=/dev/video6 ! video/x-raw,format=I420,framerate=30/1,width=1280,height=720 ! tee name=t t. \
 ! queue ! nxvideosink t. ! queue ! nxvideoenc bitrate=12000000 ! mp4mux ! \
 filesink location=result_720.mp4

8.16 电源管理: 关机和定时开机

“PMU Power Management” 特性支持 软件关机和定时开机功能.

使用方法如下:
设置100秒后自动开机 (设置的时间不得低于60秒):

$ sudo echo 100 > /sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm

设置了定时开机之后,就可以用 poweroff 关机了:

$ sudo poweroff

以下命令用于取消定时开机:

$ sudo echo 0 > /sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm

用以下命令查询当前的设置, 前面的是单片机当前时间,后面是定时开机时间,如果定时开机已禁止就是 disabled:

$ sudo cat /sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm


需要注意的是,旧版本的硬件由于没有集成PMU所以可能没有这个功能,如果你在文件系统里没有发现这个文件节点:
/sys/class/i2c-dev/i2c-3/device/3-002d/wakealarm
那就是说明你所用的硬件不支持这个特性。

8.17 安装与使用 OpenCV 4.1.2

在新版本的 FriendlyCore 中已经预装了 OpenCV 4.1.2,无需手动安装,如需手动安装到自已的系统中,可参考以下仓库:
https://github.com/friendlyarm/install-opencv-on-friendlycore/blob/s5pxx18/README.md

运行OpenCV示例:

. /usr/bin/cv-env.sh
. /usr/bin/setqt5env-eglfs
cd /usr/local/share/opencv4/samples/python
python3 turing.py

8.18 安装与使用 Caffe

使用如下命令:

git clone https://github.com/friendlyarm/install-caffe-on-friendlycore
cd install-caffe-on-friendlycore
sudo ./install-caffe.sh

8.19 Docker在aarch64系统下的安装与使用

8.19.1 安装Docker

使用以下命令安装:

wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/arm64/containerd.io_1.2.6-3_arm64.deb
wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/arm64/docker-ce-cli_19.03.2~3-0~ubuntu-xenial_arm64.deb
wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/arm64/docker-ce_19.03.2~3-0~ubuntu-xenial_arm64.deb
sudo dpkg -i containerd.io_1.2.6-3_arm64.deb
sudo dpkg -i docker-ce-cli_19.03.2~3-0~ubuntu-xenial_arm64.deb
sudo dpkg -i docker-ce_19.03.2~3-0~ubuntu-xenial_arm64.deb

8.19.2 验证Docker的安装

用Docker创建并运行一个debian镜像:

git clone https://github.com/friendlyarm/debian-jessie-arm-docker
cd debian-jessie-arm-docker
./rebuild-image.sh
./run.sh

9 如何编译系统

9.1 安装交叉编译器

9.1.1 安装aarch64-linux-gcc 6.4

首先下载并解压编译器:

git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1
cd prebuilts/gcc-x64
cat toolchain-6.4-aarch64.tar.gz* | sudo tar xz -C /

然后将编译器的路径加入到PATH中,用vi编辑vi ~/.bashrc,在末尾加入以下内容:

export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin:$PATH
export GCC_COLORS=auto

执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:

. ~/.bashrc

这个编译器是64位的,不能在32位的Linux系统上运行,安装完成后,你可以快速的验证是否安装成功:

aarch64-linux-gcc -v
Using built-in specs.
COLLECT_GCC=aarch64-linux-gcc
COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolchain/6.4-aarch64/libexec/gcc/aarch64-cortexa53-linux-gnu/6.4.0/lto-wrapper
Target: aarch64-cortexa53-linux-gnu
Configured with: /work/toolchain/build/aarch64-cortexa53-linux-gnu/build/src/gcc/configure --build=x86_64-build_pc-linux-gnu
--host=x86_64-build_pc-linux-gnu --target=aarch64-cortexa53-linux-gnu --prefix=/opt/FriendlyARM/toolchain/6.4-aarch64
--with-sysroot=/opt/FriendlyARM/toolchain/6.4-aarch64/aarch64-cortexa53-linux-gnu/sysroot --enable-languages=c,c++
--enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419 --with-cpu=cortex-a53
...
Thread model: posix
gcc version 6.4.0 (ctng-1.23.0-150g-FA)

9.2 编译 FriendlyCore/Lubuntu/EFlasher的内核源代码

9.2.1 编译内核

  • 下载内核源代码
git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1
cd linux

S5P6818内核所属的分支是nanopi2-v4.4.y,与S5P4418相同,在开始编译前先切换分支。

  • 编译Ubuntu内核
touch .scmversion
make ARCH=arm64 nanopi3_linux_defconfig
make ARCH=arm64

编译成功结束后,新生成的内核是 arch/arm64/boot/Image,目录arch/arm64/boot/dts/nexell/下还包括新的DTB文件(s5p6818-nanopi3-rev*.dtb),用于替换掉SD卡boot分区下对应的文件。

9.2.2 Linux下使用新编译的内核

  • 更新SD卡上的内核

如果您是使用SD卡启动Ubuntu系统,则在PC上复制编译生成的Image和DTB文件到SD卡的boot分区(即分区1,设备通常是/dev/sdX1)即可。

  • 更新eMMC系统上的内核

从eMMC启动时可通过以下方法来更新内核:
1) 启动完成后,系统通常会自动mount eMMC的boot分区(设备是/dev/mmcblk0p1), 可输入命令mount来查看;
2) 连接网络,使用scp/ftp等方式复制新编译的Image和DTB文件并替换boot分区下的文件;
3) 也可以将编译好的内核复制到SD卡或U盘,然后到开发板上复制到boot分区下;
4) 更新完成后,输入 reboot 命令重启即可,注意不要直接断电或按Reset键,否则可能会损坏文件.

  • 使用新的内核来生成boot.img

请参考这个git仓库: https://github.com/friendlyarm/sd-fuse_s5p6818

9.3 编译Android7的内核源代码

Android 7.1.2源代码已包含预先编译好的内核,如果需要进行定制,可根据以下方法编译内核。

git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1
cd linux
touch .scmversion
make ARCH=arm64 nanopi3_nougat_defconfig
make ARCH=arm64

编译成功结束后,新生成的内核是 arch/arm64/boot/Image,目录arch/arm64/boot/dts/nexell/下还包括新的DTB文件(s5p6818-nanopi3-rev*.dtb)。 如果只想调试内核,可通过 adb 来快速更新。

adb root; adb shell mkdir /storage/sdcard1/; adb shell mount -t ext4 /dev/block/mmcblk0p1 /storage/sdcard1/;
adb push arch/arm64/boot/Image arch/arm64/boot/dts/nexell/s5p6818-nanopi3-rev*.dtb /storage/sdcard1/

内核开发/调试完成后,如果想生成用于烧写的boot.img,可复制内核Image和DTB文件到Android7源代码目录 device/friendlyelec/nanopi3/boot,然后开始编译Android7。

9.4 编译 Android7/FriendlyCore/Lubuntu/EFlasher的U-Boot源代码

下载U-Boot v2016.01源代码并编译,分支是nanopi2-v2016.01,与S5P4418相同。

git clone https://github.com/friendlyarm/u-boot.git 
cd u-boot
git checkout nanopi2-v2016.01
make s5p6818_nanopi3_config
make CROSS_COMPILE=aarch64-linux-

编译成功结束后您将获得fip-nonsecure.img,可以通过fastboot、sd-fuse_s5p6818和eflasher来更新板上的U-Boot v2016.01。
For Android7: 可复制fip-nonsecure.img到Android7源代码目录 device/friendlyelec/nanopi3/boot,然后重新编译Android7。
需要特别注意的是,不同版本的U-Boot不能交叉更新,不能使用fastboot更新现在运行的U-Boot v2014.07,也不能使用fip-nonsecure.img去替换一个ROM中的u-boot.bin,否则会导致系统无法正常启动。

9.5 编译Android7.1.2

9.5.1 搭建编译环境

搭建用于编译Android的环境,建议使用64位的Ubuntu 16.04,需要安装如下软件包:

sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zip
sudo apt-get install flex curl libncurses5-dev libssl-dev zlib1g-dev gawk minicom
sudo apt-get install openjdk-8-jdk
sudo apt-get install exfat-fuse exfat-utils device-tree-compiler liblz4-tool

更多说明可查看 https://source.android.com/source/initializing.html;

9.5.2 下载Android7源代码

有以下两种途径获取 Android7 的源代码,都需要联网:

  • 使用网盘里的git repo压缩包

网盘下载地址: 点击进入
文件位于网盘的以下路径:sources/s5pxx18-android-7.git-YYYYMMDD.tar (YYYYMMDD表示打包的日期)
从网盘中获取的压缩包在解压之后,需要执行一下 sync.sh 脚本,会从gitlab上拉取最新的代码:

tar xvf /path/to/netdisk/sources/s5pxx18-android-7.git-YYYYMMDD.tar
cd s5pxx18-android-7
./sync.sh
  • 直接克隆git仓库

Smart6818 源代码托管在 gitlab 上,使用以下命令进行下载:

git clone https://gitlab.com/friendlyelec/s5pxx18-android-7.git -b master

由于Android7源代码较大(约8.2GB),下载可能需要较长时间且容易受网络环境的影响而中断,请耐心等待并重试。

9.5.3 开始编译

cd s5pxx18-android-7
source build/envsetup.sh
lunch aosp_nanopi3-userdebug
make -j8

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

filename partition Description
bl1-mmcboot.bin raw boot firmware
fip-loader.img raw boot firmware
fip-secure.img raw boot firmware
fip-nonsecure.img raw uboot-v2016.01
env.conf - uboot环境变量,包含Android内核命令行参数
boot.img boot kernel Image, DTBs; logo; Android ramdisk
cache.img cache -
userdata.img userdata -
system.img system -
partmap.txt - 分区描述文件

10 编译内核头文件安装包

以下操作在在开发板上进行:

10.1 本文适用于如下版本的固件

固件文件名: s5p6818-sd-friendlycore-xenial-4.4-arm64-YYYYMMDD.img, s5p6818-eflasher-friendlycore-xenial-4.4-arm64-YYYYMMDD.img 具体信息:

pi@NanoPC-T3:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.6 LTS
Release:        16.04
Codename:       xenial
pi@NanoPC-T3:~$ cat /proc/version
Linux version 4.4.172-s5p6818 (root@jensen) (gcc version 6.4.0 (ctng-1.23.0-150g-FA) ) #1 SMP PREEMPT Thu Jan 21 18:51:13 CST 2021

10.2 安装所需软件包

sudo apt-get update
sudo apt-get install -y dpkg-dev bsdtar

10.3 制作内核头文件安装包

git clone https://github.com/friendlyarm/linux -b nanopi2-v4.4.y --depth 1 kernel-s5pxx18-arm64
cd kernel-s5pxx18-arm64
rm -rf .git
make distclean
touch .scmversion
sed -i '/^CONFIG_CROSS_COMPILE/d' ./arch/arm64/configs/nanopi3_linux_defconfig
make CROSS_COMPILE= ARCH=arm64 nanopi3_linux_defconfig
alias tar=bsdtar
make CROSS_COMPILE= ARCH=arm64 bindeb-pkg -j4

显示如下信息表示成功:

dpkg-deb: building package 'linux-firmware-image-4.4.172-s5p6818' in '../linux-firmware-image-4.4.172-s5p6818_4.4.172-s5p6818-1_arm64.deb'.
dpkg-deb: building package 'linux-headers-4.4.172-s5p6818' in '../linux-headers-4.4.172-s5p6818_4.4.172-s5p6818-1_arm64.deb'.
dpkg-deb: building package 'linux-libc-dev' in '../linux-libc-dev_4.4.172-s5p6818-1_arm64.deb'.
dpkg-deb: building package 'linux-image-4.4.172-s5p6818' in '../linux-image-4.4.172-s5p6818_4.4.172-s5p6818-1_arm64.deb'.
dpkg-genchanges: binary-only upload (no source code included)

10.4 安装

sudo rm -f /lib/modules/4.4.172-s5p6818/build
sudo rm -f /lib/modules/4.4.172-s5p6818/source
sudo dpkg -i ../linux-headers-4.4.172-s5p6818_4.4.172-s5p6818-1_arm64.deb

10.5 测试

以编译pf_ring模块为例, 参考文档 https://www.ntop.org/guides/pf_ring/get_started/git_installation.html.

git clone https://github.com/ntop/PF_RING.git
cd PF_RING/kernel/
make CROSS_COMPILE=

编译完成后, 使用insmod尝试加载模块:

sudo insmod ./pf_ring.ko

11 扩展连接

11.1 Smart6818连接USB(FA-CAM202)200万摄像头模块

  • Smart6818使用Debian系统,假设你已接好LCD屏或者HDMI,进入系统后,点击左下角的菜单键“Other”-->xawtv,打开USB Camera软件。进入“welcome to xawtv!”,选择OK即可进行拍照。

USB camera USB camera-01

11.2 Smart6818连接CMOS 500万摄像头模块

CAM500A 500万摄像头模块的详情请查看[1]

  • Android5.1系统,假设你已经接好LCD屏或者HDMI,进入系统后,直接点击“Camera”图标,即可打开摄像头进行拍照和录制视频。

CMOS camera

  • Debian系统集成了命令行的摄像头示例程序nanocams,登录后输入以下命令即可预览40桢然后拍照保存为指定的文件。
sudo nanocams -p 1 -n 40 -c 4 -o IMG001.jpg

更详细的命令行参数可执行命令“nanocams -h”。 如果要下载源代码,运行以下命令即可获得:

git clone https://github.com/friendlyarm/nexell_linux_platform.git
  • FriendlyCore (4.4内核)可使用以下命令:

输入以下命令预览图像:

gst-launch-1.0 -e v4l2src device=/dev/video6 ! video/x-raw,format=I420,framerate=30/1,width=1280,height=720 ! nxvideosink

输入以下命令开始录像 (VPU硬编码):

gst-launch-1.0 -e v4l2src device=/dev/video6 ! video/x-raw,format=I420,framerate=30/1,width=1280,height=720 ! tee name=t t. \
 ! queue ! nxvideosink t. ! queue ! nxvideoenc bitrate=12000000 ! mp4mux ! \
 filesink location=result_720.mp4

11.3 Smart6818接USB摄像头使用OpenCV

  • OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。
  • Smart6818跑Debian系统时,接USB Camera,可直接使用官方的OpenCV。

1、以下介绍的是Smart6818用C++使用的OpenCV:

  • 首先需要保证你的Smart6818能连外网,假如你有串口,直接串口登陆超级终端(或者ssh登陆)。进入系统后,输入用户名(root),密码(fa)登陆;
  • 以下命令在超级终端执行:


apt-get update
apt-get install libcv-dev libopencv-dev

2、Smart6818烧写Debian系统启动后,接上USB Camera,使用Debian系统自带的摄像头软件测试,确定摄像头能正常使用。

3、通过终端执行命令,查看你的摄像头设备:

ls /dev/video*
  • 注:video0 是你的USB摄像头设备

4、opencv的测试代码(官方C++示例代码)在 /home/fa/Documents/opencv-demo, 使用以下命令即可编译:

cd /home/fa/Documents/opencv-demo
make

编译成功后,得到可执行文件demo

5、以下步骤需要在Smart6818上接上键盘执行:

./demo

你便可以看到opencv已经用起来。

11.4 串口扩展GPS模块

  • Matrix-GPS是一款体积小巧,性能优越的GPS定位模块,适用于导航仪、四轴飞行器定位等应用场景。
  • Matrix-GPS模块采用串口通讯,Smart6818上电进入系统后,在终端命令行执行以下命令,或者点击图标“xgps”,即可进行搜星定位功能。
$su - fa -c "DISPLAY=:0 xgps 127.0.0.1:9999"
  • 或者,在debian界面上打开终端 LXTerminal ,输入 xgps 回车也可以打开GPS功能。

串口扩展模块的详情请查看点击查看
参考下图连接模块Matrix-GPS和Smart6818:
GPS_NanoPC-T2

连接说明:

Matrix-GPS Smart6818
RXD Pin11
TXD Pin12
5V Pin29
GND Pin30

12 在Android下访问硬件资源

友善电子开发了一个名为libfriendlyarm-things.so的函数库,用于Android应用程序访问开发板上的硬件资源,该函数库基于Android-NDK技术开发,提供便利的硬件访问接口,开发者无需掌握过多的嵌入式知识便可使用,有效提高开发进度。

目前支持的硬件设备包括:

  • Serial Port
  • PWM
  • EEPROM
  • ADC
  • LED
  • LCD 1602 (I2C)
  • OLED (SPI)


支持的接口包括:

  • GPIO
  • Serial Port
  • I2C
  • SPI


详情使用说明可参考以下网址:

13 支持LCD型号

  • Android

Smart6818跑Android系统目前支持的LCD型号为友善出品的:S430、S700、S702、HD700、HD702、HD101、X710电容屏。

  • FriendlyCore & Lubuntu Desktop

Smart6818目前支持的LCD型号为友善出品的:S430、S700、S702、HD700、HD702、HD101、X710电容屏;
支持的电阻屏为友善出品的:W35B、H43、P43、S70、Matrix - 2'8 SPI Key TFT 电阻屏。
以上所有LCD屏的详细资料均可在维基首页查看:LCDModules

14 原理图,Datasheet和尺寸图

15 源代码和烧写文件的下载地址

16 技术支持

If you have any further questions please visit our forum http://www.friendlyarm.com/Forum/ and post a message or email us at techsupport@friendlyarm.com. We will endeavor to get back to you as soon as possible.

17 更新日志

17.1 日期 2023-01-09

17.1.1 FriendlyCore更新说明:

  • 优化了开机服务

17.2 日期 2020-10-26

  • FriendlyCore, Lubuntu更新如下:

修正蓝牙稳定性问题

17.3 日期 2019-12-27

  • FriendlyWrt更新如下:

升级版本到 OpenWrt r19-snapshot 64bit,支持Docker CE

  • eflasher更新如下:

1) 支持只烧写部分文件,例如仅更新emmc内的内核和uboot
2) 在界面上增加禁用overlay filesystem选项
3) 增加命令行参数,方便脚本调用,可以实现无交互的一键安装
4) 修正备份与恢复镜像后,不同设备会出现相同mac地址的问题
5) UI界面现在可以配置标题,隐藏界面菜单与按钮

17.4 日期 2019-11-26

  • FriendlyCore:

预装 OpenCV 4.1.2

17.5 日期 2019-11-14

  • 新系统 FriendlyWrt:

推出完全开源的FriendlyWrt路由器系统, 基于官方OpenWrt定制,详情可查看:http://wiki.friendlyelec.com/wiki/index.php/How_to_Build_FriendlyWrt

  • FriendlyCore, Lubuntu更新如下:

1)增加了新的4.3寸屏YZ43的支持
2)编译bcmdhd为模块,方便加载模块时传递参数以及定制

  • Android7更新如下:

1)增加了新的4.3寸屏YZ43的支持
2)优化Android 7系统下使用HD900屏幕时的触摸体验

17.6 日期 2019-10-18

  • Android7 与 FriendlyCore, Lubuntu更新如下:

修正音频播放在某些情况下可能会出现杂音的问题。

17.7 日期 2019-09-30

  • Android7 更新如下:

1)增加Android硬件访问库FriendlyThing的支持,支持GPIO、PWM、RTC、串口和看门狗等硬件资源的访问,提供开源demo
2) 增加摄像头 CAM500B (OV5640) 的支持
3) 增加 LCD-W500 (800x480) 的支持
4) 修正 LCD-S430 的兼容性问题

  • FriendlyCore, Lubuntu 更新如下:

1) 内核版本更新到 v4.4.172,与Android 7内核保持一致
2) 增加Docker的支持, 支持32bit与64bit文件系统 (使用方法请在具体产品的wiki页面搜索docker)
3) 内核配置项进行了优化,启用更多特性与设备驱动

17.8 日期 2019-07-18

  • 新系统 Android 7.1.2

1) 推出新的系统 Android 7.1.2, 特性与旧版本的Android 5基本保持一致,支持4G,WiFi,以太网,蓝牙等
2) 内核版本为 4.4.172
3) 已知问题:摄像头暂时还不能工作

  • Android/FriendlyCore/Lubuntu 更新:

1) 修复某些情况下HD101B无法触摸的问题
2) 修复Power key的GPIO配置
3) 解决音量过小的问题:播放时DAC的音量由 -20dB 修改为 -6dB
4) 集成了驱动模块(rtl8821CU.ko, rtl88XXau.ko)以增加更多型号的USB Wi-Fi支持

  • 仅适用于Lubuntu的更新:

1) 修改Lubuntu的Power key行为为(不弹出窗口)直接关机
2) 集成脚本xrotate.sh用于简化屏幕旋转设置 (注:屏幕旋转会损失性能)

  • 仅适用于NanoPC T3/T3+,Smart6818的更新:

支持从板载EEPROM中读取以太网Mac地址,仅支持以下系统:FriendlyCore, Lubuntu, Android7

17.9 日期 2019-06-25

Linux(Ubuntu 16.04/18.04) 全面采用 OverlayFS,以增强文件系统的稳定性

17.10 日期 2019-06-03

1) 配置LED1为心跳模式
2) 修复HDMI 1080P可能在某些情况下无显示的问题
3)Linux下修复无法安装 mysql 的问题
4)修复lubuntu下1-wire触摸电阻屏无法使用的问题

17.11 日期 2019-01-24

1) 增加新的LCD型号HD702V的支持
2) 优化Linux下Qt5的字体

17.12 日期 2018-12-17

  • Android5 更新如下:

1) 增加4G网络的支持,支持模块的型号为:Quectel EC20
2) 增加音频输出设置,可设置默认输出到耳机或者HDMI
3) 在系统Shutdown时,同步关闭一线触摸屏的背光

  • FriendlyCore更新如下:

1) 增加OV5640摄像头支持
2) 更新BL1以提高系统启动的稳定性

  • Lubuntu更新如下:

1) 增加chromium-browser浏览器,支持网页硬解播放, 支持WebGL
2) 将音频输出通道默认设置为HDMI (可通过/etc/asound.conf更改)
3) 更新BL1以提高系统启动的稳定性
4) 修正前一版本中存在的一些关于软件包报错的issue
5) 调整DPMS设置,默认关闭自动休眠

17.13 日期 2018-09-06

  • 增加Smart6818的支持
  • 增加10.1寸屏 HD101B 的支持
  • 提高一线屏识别的可靠性

17.14 日期 2018-08-11

FriendlyCore:

17.15 日期 2018-03-24

  • 修正只连接HDMI的情况下开机没图像显示的问题
  • 增加蓝牙的支持

以上更新适用于所有4.4内核的系统,包括FriendlyCore和Lubuntu。

17.16 日期 2017-06-13

Linux, Android系统:

  • 改善了整体系统稳定性;

Android系统:

  • 提升Android下ov5640拍照的稳定性;

17.17 日期 2017-04-18

Ubuntu-Core系统更新如下:

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

17.18 日期 2017-03-08

1) 启用UART2
2) 增加HD101B屏幕的支持
3) Android4.4和Android5增加硬件访问库,具体可参考:[2]
4) 修正S430屏在Android4.4下的闪退问题

17.19 日期 2017-02-09

1) 在Ubuntu Core和Debian系统中 增加7寸电阻屏 S70B 的支持
2) 调整了 eFlasher Rom 的分区大小,将根分区调整为 1GB

17.20 日期 2016-11-17

增加H43屏的支持:
1) 支持s5p4418与s5p6818平台的开发板
2) OS方面仅支持Debian 和 Ubuntu Core系统,不支持Android

17.21 日期 2016-09-13

1) Debian 和 Ubuntu Core增加了CAM500A(ov5640)摄像头的demo程序(nanocams);
2) 更新了Android 串口访问的程序,下载源代码:

git clone https://github.com/friendlyarm/android_SerialPortDemo.git

以前下载过的,用git pull命令更新一下。
内有详细说明,包括eclipse编译、打包成apk,对apk重新签名以获取system权限、关闭selinux等说明文档:
<<SerialPortDemo-manual.pdf>>;
本次更新适用于NanoPC-T3, NanoPi M3

17.22 日期 2016-05-21

  • Android

1) 增加以太网设置(支持静态IP和DHCP设置);
2) 增加硬件访问库 libfriendlyarm-hardware.so,可用于在Android下操作串口;
使用方法可参考此份文档:http://www.arm9home.net/read.php?tid-82748.html。
在NanoPC-T3/NanoPi M3上,串口对应的设备名称如下:
UART3 -> /dev/ttySAC3
UART4 -> /dev/ttySAC4
3) 增加iTest应用程序,内置串口助手功能;
注意:运行此串口程序,需要使用system权限。

  • Debian

1)增强了内核稳定性;

  • Ubuntu core with Qt-Embedded

1)开机后显示的界面由Qt Demo换成了一个由友善之臂开发的,开源的Qt程序 (源代码位于/opt 目录),该程序启动时显示系统状态信息,例如CPU和内存信息,工作温度和负载等信息, 系统同时集成了 qmake,uic 等Qt工具的arm版本,这样你 就可以在开发板上直接生成和编译Qt源代码。
本次更新适用于NanoPC-T3, NanoPi M3