Difference between revisions of "SOM-4418/zh"
(updated by API) |
(updated by API) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 691: | Line 691: | ||
{{S5PXX18MakeSDCardViaSDFusing/zh|SOM-4418|sd-fuse_s5p4418}} | {{S5PXX18MakeSDCardViaSDFusing/zh|SOM-4418|sd-fuse_s5p4418}} | ||
{{ResizeTFCardFS/zh|SOM-4418}} | {{ResizeTFCardFS/zh|SOM-4418}} | ||
− | |||
{{S5Pxx18MofidyKernelCommandLineOnHostPC/zh|SOM-4418|sd-fuse_s5p4418}} | {{S5Pxx18MofidyKernelCommandLineOnHostPC/zh|SOM-4418|sd-fuse_s5p4418}} | ||
{{NanoPCStartToUse/zh|SOM-4418}} | {{NanoPCStartToUse/zh|SOM-4418}} | ||
Line 699: | Line 698: | ||
{{UbuntuXenial-Armhf-Install-Docker/zh|SOM-4418}} | {{UbuntuXenial-Armhf-Install-Docker/zh|SOM-4418}} | ||
{{S5Pxx18Android/zh|SOM-4418}} | {{S5Pxx18Android/zh|SOM-4418}} | ||
− | |||
{{S5P4418BuildFromSource/zh|SOM-4418}} | {{S5P4418BuildFromSource/zh|SOM-4418}} | ||
{{S5P4418-KernelHeaderFile/zh|SOM-4418}} | {{S5P4418-KernelHeaderFile/zh|SOM-4418}} | ||
− | |||
{{S5Pxx18AccessHWUnderAndroid/zh|SOM-4418}} | {{S5Pxx18AccessHWUnderAndroid/zh|SOM-4418}} | ||
{{S5Pxx18ConnectToLCDModules/zh|SOM-4418}} | {{S5Pxx18ConnectToLCDModules/zh|SOM-4418}} | ||
{{S5Pxx18HWfiles/zh|SOM-4418}} | {{S5Pxx18HWfiles/zh|SOM-4418}} | ||
− | |||
{{DownloadUrl/zh|SOM-4418}} | {{DownloadUrl/zh|SOM-4418}} | ||
{{TechSupport/zh|SOM-4418}} | {{TechSupport/zh|SOM-4418}} | ||
{{S5Pxx18HWfiles|SOM-4418}} | {{S5Pxx18HWfiles|SOM-4418}} | ||
{{S5P4418ChangeLog/zh}} | {{S5P4418ChangeLog/zh}} |
Revision as of 03:05, 5 September 2023
Contents
- 1 介绍
- 2 硬件特性
- 3 Software Features
- 4 硬件描述
- 5 参考设计
- 6 硬件设计注意事项
- 7 快速入门
- 8 FriendlyCore的使用
- 8.1 介绍
- 8.2 运行FriendlyCore
- 8.3 开发Qt应用
- 8.4 开机自动运行Qt示例程序
- 8.5 扩展TF卡文件系统
- 8.6 使用蓝牙传输文件
- 8.7 连接WiFi
- 8.8 配置Wi-Fi无线热点
- 8.9 使用蓝牙
- 8.10 连接以太网
- 8.11 定制命令行的欢迎信息(文字LOGO)
- 8.12 修改时区
- 8.13 选择系统默认的音频设备
- 8.14 运行X11程序
- 8.15 运行 Qt 5.10.0 演示程序
- 8.16 运行 Qt5-OpenGL示例
- 8.17 硬解播放高清视频
- 8.18 连接DVP摄像头模块(CAM500B)
- 8.19 电源管理: 关机和定时开机
- 8.20 安装与使用 OpenCV 4.1.2
- 8.21 安装与使用 Caffe
- 8.22 Docker在armhf系统下的安装与使用
- 9 Android系统的使用
- 10 如何编译系统
- 11 编译内核头文件安装包
- 12 在Android下访问硬件资源
- 13 支持LCD型号
- 14 原理图,Datasheet和尺寸图
- 15 源代码和烧写文件的下载地址
- 16 技术支持
- 17 Schematics & Mechanical drawing
- 18 更新日志
- 18.1 日期 2023-01-09
- 18.2 日期 2020-10-26
- 18.3 日期 2019-12-28
- 18.4 日期 2019-11-26
- 18.5 日期 2019-11-14
- 18.6 日期 2019-10-18
- 18.7 日期 2019-09-30
- 18.8 日期 2019-07-18
- 18.9 日期 2019-06-25
- 18.10 日期 2019-06-03
- 18.11 日期 2019-01-24
- 18.12 日期 2018-12-17
- 18.13 日期 2018-09-06
- 18.14 日期 2018-08-11
- 18.15 日期 2018-03-24
- 18.16 日期 2017-06-13
- 18.17 日期 2017-04-18
- 18.18 日期 2017-03-08
- 18.19 日期 2017-02-09
- 18.20 日期 2016-11-17
- 18.21 日期 2016-09-02
- 18.22 日期 2016-08-20
- 18.23 日期 2016-07-01
- 18.24 日期 2016-05-21
- 18.25 日期 2016-04-19
- 18.26 日期 2016-04-01
- 18.27 日期 2016-02-29
- 18.28 日期 2015-12-01
1 介绍
- SOM-4418是基于三星四核Cortex-A9 S5P4418 SoC设计的核心板, 主频高达1.4GHz,具有8G eMMC, 1GB 32bit-DDR3内存, 集成千兆以太网和音频IC。
- SOM-4418具有LVDS和RGB-LCD显示接口, 支持电阻触摸和电容触摸。
- SOM-4418也具有其它常用接口,如USB HOST, UART, I2C, SPI, PWM, GPIO等。
2 硬件特性
- SoC:Samsung S5P4418 Quad Core Cortex-A9 with dynamic frequency scaling up to 1.4G Hz
- PMU Power Management: Implemented by an MCU, support solftware power-off, and RTC alarm power-on functions
- System Memory:1GB 32bit DDR3 RAM
- eMMC:8GB
- Ethernet:Gbps Ethernet Port (RTL8211E) with unique MAC, support WOL(Wake On Lan)
- Video Input: MIPI-CSI
- Video Output: HDMI / LVDS / LCD
- Audio: Build in Codec, 2-Chanel headphone output, one Microphone input
- USB: 4 x USB 2.0 Host(Via USB Hub), 1 x USB 2.0 OTG
- GPIO: 13 x GPIOs, 3 x I2Cs, 1 x SPI, 5 x UARTs, 3 x PWMs, 2 x SDIOs
- LED: 1 x power LED , 1 x SYS LED
- Other Resource: 1 x onboard thermistor, RTC
- Power: DC 5V/1A
- Heat Sink: Aluminum heat sink
- PCB: Six Layer, ENIG
- PCB Dimension: 67.7 mm x 40 mm
- Working Temperature: -40℃ to 70℃
3 Software Features
4 硬件描述
4.1 Layout
- 204 Pin Spec
- Socket Type:0.6mm Pitch 204-Pin Standard Type DDR3 SODIMM Socket
Pin# Name Description Pin# Name Description 1 VDD_5V 4.7~5.5V Power Suply input 2 VDD_5V 4.7~5.5V Power Suply input 3 VDD_5V 4 VDD_5V 5 VDD_5V 6 VDD_5V 7 GND 8 GND 9 GND 10 VRTC_IN RTC backup battery(3V)input,backup current is 3.5uA 11 VCC_WIFI_IO(3.3V) MMC1 IO reference power,connect to wifi module IO power input 12 VCC_IO(3.3V) 3.3V out for IO reference 13 MMC1_D0 SDIO1/MMC1, connect to wifi module 14 BOOT_CS Pull low this pin to boot from SD CARD on MMC0 15 MMC1_D1 16 PWRKEY Power key 17 MMC1_D2 18 NRESETIN Hard reset input 19 MMC1_D3 20 AliveGPIO3 GPIO, reserved for RecoveryKey 21 MMC1_CMD 22 EXT_PWR_CTRL Used this pin to control power on/off of the carrier 23 GND 24 MMC0_D0 SDIO0/MMC0, for SD Card 25 MMC1_CLK SDIO1 Clock Out 26 MMC0_D1 27 WL_REG_ON(GPIOB24) GPIOB24, Used as wifi power on control signal 28 MMC0_D2 29 WL_HOST_WAKE(GPIOC17) GPIOC17, Used as wifi wake-up signal 30 MMC0_D3 31 UART1_TX UART1, connect to bluetooth module 32 MMC0_CMD 33 UART1_RX 34 MMC0_CD 35 UART1_nCTS 36 MMC0_CLK 37 UART1_nRTS 38 GND 39 BT_RST_N(GPIOB8) GPIOB8, Used as bluetooth reset 40 MIPI_CSI0_CLKN MIPI CSI Clock 41 BT_WAKE bluetooth wake-up signal 42 MIPI_CSI0_CLKP 43 BT_HOST_WAKE(/NC) Reserved for BT_HOST_WAKE 44 GND 45 LPO_32Khz 32.768kHz output for wifi/bt module 46 MIPI_CSI0_D0N MIPI CSI data0 47 GND 48 MIPI_CSI0_D0P 49 MDI0_P GbE MDI signals 50 GND 51 MDI0_N 52 MIPI_CSI0_D1N MIPI CSI data1 53 MDI1_P 54 MIPI_CSI0_D1P 55 MDI1_N 56 GND 57 GND 58 /NC 59 MDI2_P GbE MDI signals 60 /NC 61 MDI2_N 62 GND 63 MDI3_P 64 /NC 65 MDI3_N 66 /NC 67 GND 68 GND 69 SPEED_LED GbE SPEED LED signal output 70 /NC 71 LINK_LED GbE LINK LED signal output 72 /NC Connector Key 73 GND 74 TP_INT(GPIOC16) I2C signal, connect to touch controller 75 USB_DM4 USB 2.0 host data signal 76 TP_SDA(I2C2_SDA) 77 USB_DP4 78 TP_SCL(I2C2_SCL) 79 GND 80 OneWire(GPIOC15) GPIOC15, used as FriendlyElec LCD OneWire signal 81 USB_DM3 USB 2.0 host data signal 82 GND 83 USB_DP3 84 LCD_CLK RGB LCD Clock signal 85 GND 86 GND 87 USB_DM2 USB 2.0 host data signal 88 LCD_HSYNC RGB LCD horizontal synchronization 89 USB_DP2 90 LCD_VSYNC RGB LCD vertical synchronization 91 GND 92 LCD_DE signal the external LCD that data is valid on the data bus 93 /NC 94 GND 95 /NC 96 LCD_R0 RGB LCD Red data signals 97 GND 98 LCD_R1 99 USB_OTG_D- USB 2.0 OTG data signal 100 LCD_R2 101 USB_OTG_D+ 102 LCD_R3 103 USB_OTG_ID USB 2.0 OTG ID signal 104 LCD_R4 105 VBUS USB 2.0 OTG VBUS 106 LCD_R5 107 VBUS_DRIVE(/NC) Reserved for USB 2.0 OTG VBUS Power Drive Signal 108 LCD_R6 109 HDMI_HPD HDMI Hot plug detect 110 LCD_R7 111 I2C1_SDA I2C1, used as HDMI DDC signal 112 GND 113 I2C1_SCL 114 LCD_G0 RGB LCD Green data signals 115 HDMI_CEC HDMI CEC Signal 116 LCD_G1 117 GND 118 LCD_G2 119 HDMI_TXCN HDMI Clock and data signals 120 LCD_G3 121 HDMI_TXCP 122 LCD_G4 123 GND 124 LCD_G5 125 HDMI_TX0N 126 LCD_G6 127 HDMI_TX0P 128 LCD_G7 129 GND 130 GND 131 HDMI_TX1N 132 LCD_B0 RGB LCD Blue data signals 133 HDMI_TX1P 134 LCD_B1 135 GND 136 LCD_B2 137 HDMI_TX2N 138 LCD_B3 139 HDMI_TX2P 140 LCD_B4 141 GND 142 LCD_B5 143 USB_DM1 USB 2.0 data signal 144 LCD_B6 145 USB_DP1 146 LCD_B7 147 GND 148 GND 149 /NC 150 LVDS_Y3M LVDS signals 151 /NC 152 LVDS_Y3P 153 GND 154 GND 155 /NC 156 LVDS_CLKM 157 /NC 158 LVDS_CLKP 159 GND 160 GND 161 GPIOB31 GPIOs 162 LVDS_Y2M 163 GPIOB30 164 LVDS_Y2P 165 GPIOC7 166 GND 167 GPIOC8 168 LVDS_Y1M 169 GPIOB23 170 LVDS_Y1P 171 GPIOC2 172 GND 173 GPIOC13/PWM1 PWMs 174 LVDS_Y0M 175 GND 176 LVDS_Y0P 177 GPIOC14/PWM2 178 GND 179 GPIOD1/PWM0 180 SPI0_CLK/GPIOC29 SPI 181 I2C2_SDA I2Cs 182 SPI0_MOSI/GPIOC31 183 I2C2_SCL 184 SPI0_MISO/GPIOD0 185 I2C0_SDA 186 SPI0_CS/GPIOC30 187 I2C0_SCL 188 GPIOD8/PPM 189 GPIOB27/HP_DETECT GPIOB27, used as Headphone insert detect 190 UART4_TX/GPIOB29 UARTs 191 AUDIO_GND Headphone output return path 192 UART4_RX/GPIOB28 193 HP_R Headphone output R 194 UART3_RX/GPIOD17 195 HP_L Headphone output L 196 UART3_TX/GPIOD21 197 LINEOUT_R(HP_R) Internal connect to HP_R, reserved for line out R in the future 198 UART2_RX 199 LINEOUT_L(HP_L) Internal connect to HP_L, reserver for line out L in the future 200 UART2_TX 201 MICIN_N Microphone input N 202 UART0_RX Used as Debug console 203 MICIN_P Microphone input P 204 UART0_TX
- Note:
- 所有VDD_5V必须连接以获得最低的连接电阻。
- 必须连接所有GND,以实现良好的EMC性能和系统稳定性。
- 强烈建议使用4层PCB底板。
- 原理图 SOM-4418-2005-Schematic.pdf
5 参考设计
6 硬件设计注意事项
6.1 EEPROM
- 因为Smart4418核心板上的集成了带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
7 快速入门
7.1 准备工作
刷机前请先准备好以下硬件
- SOM-4418核心板+Edge-RT300底板
- TF卡: Class10或以上的8GB小卡
- 一个DC接口的外接电源,要求输出为12V/2A
- 可选购LCD配件HD702V
- 可选连接一套USB键盘鼠标,同时连接还需要USB HUB
- 如果需要开发与编译,则需要一台可以联网的电脑,推荐使用Ubuntu 18.04 64位系统
7.2 快速从SD卡启动
首先访问此处的下载地址下载需要的固件文件:
- 您需要准备一张8G或以上容量的SDHC卡,该卡的已有数据将会被破坏,因此请先对SD卡上的数据进行备份。
Image Files | |
s5p4418-sd-friendlycore-xenial-4.4-armhf-YYYYMMDD.img.zip | FriendlyCore系统固件 (内置Qt 5.10.0),基于Ubuntu core |
s5p4418-sd-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip | LUbuntu桌面版固件,自带X Window图形界面 |
s5p4418-sd-friendlywrt-4.4-YYYYMMDD.img.zip | FriendlyWrt系统固件 (基于OpenWrt定制) |
s5p4418-sd-android7-YYYYMMDD.img.zip | Android7系统固件 (支持4G LTE) |
s5p4418-sd-android-kitkat-YYYYMMDD.img.zip | Android4.4系统固件 (支持4G LTE) |
s5p4418-sd-android-lollipop-YYYYMMDD.img.zip | Android5.1系统固件 |
s5p4418-eflasher-lubuntu-desktop-xenial-4.4-armhf-YYYYMMDD.img.zip | SD卡映象,用于将lubuntu系统烧写到eMMC |
s5p4418-eflasher-friendlywrt-4.4-YYYYMMDD.img.zip | SD卡映象,用于将FriendlyWrt系统烧写到eMMC |
s5p4418-eflasher-android7-YYYYMMDD.img.zip | SD卡映象,用于将Android7系统烧写到eMMC |
s5p4418-eflasher-friendlycore-xenial-4.4-armhf-YYYYMMDD.img.zip | SD卡映象,用于将friendlycore系统烧写到eMMC |
s5p4418-eflasher-android-kitkat-YYYYMMDD.img.zip | SD卡映象,用于将android4系统烧写到eMMC |
s5p4418-eflasher-android-lollipop-YYYYMMDD.img.zip | SD卡映象,用于将android5系统烧写到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固件
固件文件名的格式为:s5p4418-eflasher-OSNAME-YYYYMMDD.img.zip
其中,OSNAME替换为你需要烧写的系统,例如 android、friendly-core等等;
这个固件是的一个SD卡映象,包含了一个用SD卡启动的微型Ubuntu core系统,以及eMMC安装工具EFlasher;
将 s5p4418-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卡插入SOM-4418,连接HDMI或LCD, 将开发板右边的S2开关拨到SD端,拨动电源开关,启动开发板后会看到系统选择,选择你需要烧写到eMMC的系统即可。
- 命令行界面: 烧写系统到eMMC
将制作好的SD卡插入SOM-4418,登录串口终端,或者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_s5p4418.git
cd sd-fuse_s5p4418
- 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 在电脑上更改SD卡的启动参数
将制作好SD卡插入一台运行Linux的电脑,可以挂载SD卡上的boot和rootfs等分区,对分区内容进行修改,想更改Kernel Command Line参数,则可以通过fw_setenv工具来操作,方法如下:
先查看当前的内核启动参数:
git clone https://github.com/friendlyarm/sd-fuse_s5p4418.git
cd sd-fuse_s5p4418/tools
./fw_printenv /dev/sdx | grep bootargs
例如要禁用Android的SELinux特性,可以执行以下命令:
./fw_setenv /dev/sdx bootargs XXX androidboot.selinux=permissive
其中上面的XXX需要替换成原来的bootargs值, /dev/sdx替换为你的SD卡设备。
7.7 运行Android或Linux
- 将制作好SD卡插入SOM-4418,连接HDMI,按住靠近网口的boot按键,最后接电源(5V 2A)拨动开关,SOM-4418会从SD卡启动。你可以看到板上PWR灯常亮,LED1灯闪烁,这说明系统已经开始启动了,同时电视上也将能看到系统启动的画面。
- 要在电视上进行操作,你需要连接USB鼠标和键盘;如果你选购了LCD配件,则可以直接使用LCD上面的触摸屏进行操作。
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
- 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 配置Wi-Fi无线热点
先执行以下命令,默认情况下如果系统中安装了NetworkManager,会提示你先卸载NetworkManager:
sudo turn-wifi-into-apmode yes
卸载NetworkManager完成后,按提示重启开发板。
重启后,再执行上面的命令一次,这次会提示你输入WiFi热点的名称和密码,按提示操作即可。
操作成功后,你可以在电脑上搜索并连接热点,然后通过192.168.8.1这个地址来登录开发板:
ssh root@192.168.8.1
在提示输入密码时,输入预设的密码fa,即可登入。
为了保证ssh的流畅,我们用以下命令关闭wifi的省电模式:
sudo iwconfig wlan0 power off
WiFi工作模式可通过以下命令查询:
sudo cat /sys/module/bcmdhd/parameters/op_mode
输出为数字2则表示当前处于无线热点模式,要切换回普通的Station模式,输入如下命令:
sudo turn-wifi-into-apmode no
8.9 使用蓝牙
输入以下命令搜索周边的蓝牙设备:
$ su root
$ hciconfig hci0 up
$ hcitool scan
使用hciconfig命令来了解接口的状态。
8.10 连接以太网
默认插上网线开机,会自动连接并通过DHCP获取IP地址,如需要配置静态IP地址,请参考 NetworkManager 的相关文档: Use NetworkManager to configure network settings。
8.11 定制命令行的欢迎信息(文字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.12 修改时区
例如更改为Shanghai时区:
sudo rm /etc/localtime sudo ln -ls /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
8.13 选择系统默认的音频设备
可以通过下面的操作步骤,设置系统默认的音频设备。
可用以下命令查看系统中所有的声卡设备 (注:不同的开发板结果会有所不同):
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.14 运行X11程序
FriendlyCore系统集成了轻量级的Xorg,虽然没有窗口管理器,但是你仍然可以运行单一的X-Windows程序,例如要运行的程序是~/YourX11App,使用以下命令:
. /usr/bin/setqt5env-xcb startx ~/YourX11App -geometry 1280x800
注意 “.” 与 /usr/bin/setqt5env-xcb 之间有一个空格,另外,-geometry后面的分辨率请更改为你的屏幕的实际分辨率。
8.15 运行 Qt 5.10.0 演示程序
FriendlyCore系统集成了Qt 5.10.0图形库,支持OpenGL硬件加速,在命令行输出以下命令,可预览Qt5演示程序,
Qt5演示程序的界面如下图所示,你可以使用触摸屏或者鼠标来操作,Qt5支持大部分FriendlyELEC在售的LCD触摸屏:
$ sudo qt5demo
8.16 运行 Qt5-OpenGL示例
Run the following command
. setqt5env cd $QTDIR cd /examples/opengl/qopenglwidget ./qopenglwidget
更多示例可以在这里找到:
cd $QTDIR/examples/
8.17 硬解播放高清视频
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.18 连接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.19 电源管理: 关机和定时开机
“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.20 安装与使用 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.21 安装与使用 Caffe
使用如下命令:
git clone https://github.com/friendlyarm/install-caffe-on-friendlycore cd install-caffe-on-friendlycore sudo ./install-caffe.sh
8.22 Docker在armhf系统下的安装与使用
8.22.1 安装 Docker
执行下列命令:
sudo apt-get update sudo apt-get install docker.io
8.22.2 测试 Docker
执行下列命令运行一个简单的docker image:
git clone https://github.com/friendlyarm/debian-jessie-arm-docker cd debian-jessie-arm-docker ./rebuild-image.sh ./run.sh
9 Android系统的使用
9.1 Android7 下使用4G模块EC20
9.1.1 连接方法
连接时,需要通过USB to miniPCIe转接板转接EC20,再连接到主板的USB Host端口,以T2为例,如下图所示:
连接后无需额外的配置,启动Android后就可以使用4G上网了,跟Android手机类拟。
9.2 更换Android开机Logo
替换下面路径下的 logo.bmp:
/opt/FriendlyARM/smart4418/android/device/friendlyelec/nanopi3/boot/logo.bmp /opt/FriendlyARM/smart4418/android/device/friendlyelec/nanopi2/boot/logo.bmp
重新编译 Android 源代码。
9.3 使用fastboot命令烧写android固件
上电时在串口终端敲回车进入uboot命令行模式,然后输入以下命令:
fastboot 0
For S5P4418, PC端可使用以下命令来更新emmc:
fastboot flash partmap partmap.txt fastboot flash 2ndboot bl1-mmcboot.bin fastboot flash fip-loader loader-mmc.img fastboot flash fip-secure bl_mon.img fastboot flash fip-nonsecure bootloader.img fastboot flash boot boot.img fastboot flash system system.img fastboot flash cache cache.img fastboot flash userdata userdata.img
For S5P6818, PC端可使用以下命令来更新emmc:
fastboot flash partmap partmap.txt fastboot flash 2ndboot bl1-mmcboot.bin fastboot flash fip-loader fip-loader.img fastboot flash fip-secure fip-secure.img fastboot flash fip-nonsecure fip-nonsecure.img fastboot flash boot boot.img fastboot flash system system.img fastboot flash cache cache.img fastboot flash userdata userdata.img
9.4 Android证书
Android 5 我们缺省采用的是自己生成的证书,位于:
vendor/friendly-arm/nanopi3/security/
Android 7 缺省采用的是:
build/target/product/security/
9.5 Android7只连接HDMI的情况下性能优化
9.5.1 背景说明
默认情况下,驱动会初始化两个framebuffer,分别用于主显示LCD和HDMI,如果项目需求只需要使用HDMI,不需要用LCD,则可以根据本章节的步骤进行修改,修改后会将HDMI设置为主显示,这样驱动只会初始化一个framebuffer,节约资源,对UI性能和开机速度会有相应的提升。
本章节内容仅适用于 S5P6818 Android7, S5P4418修改方法类拟,只是需要调整一下相应的文件。
9.5.2 修改内核
需要修改内核dts,禁止dp_drm_lvds节点, 如下所示:
--- a/arch/arm64/boot/dts/nexell/s5p6818-nanopi3-common.dtsi +++ b/arch/arm64/boot/dts/nexell/s5p6818-nanopi3-common.dtsi @@ -810,6 +810,7 @@ plane-names = "video", "rgb", "primary"; }; port@1 { + status = "disabled"; reg = <1>; back_color = < 0x0 >; color_key = < 0x0 >; @@ -820,7 +821,7 @@ &dp_drm_lvds { remote-endpoint = <&lcd_panel>; - status = "ok"; + status = "disabled"; display-timing { clock-frequency = <50000000>;
编译后将获得新的 arch/arm64/boot/dts/nexell/s5p6818-nanopi3-rev*.dtb。
测试阶段可直接通过adb 更新到板子,命令如下:
adb root; adb wait-for-device; adb shell mkdir /storage/sdcard1/; adb shell mount -t ext4 /dev/block/mmcblk0p1 /storage/sdcard1/ adb push arch/arm64/boot/dts/nexell/s5p6818-nanopi3-rev*.dtb /storage/sdcard1/
完整的固件则需要替换android7源代码目录 device/friendlyelec/nanopi3/boot 下的文件
9.5.3 修改env.conf
修改 device/friendlyelec/nanopi3/boot/env.conf 增加一行:
lcdtype HDMI1080P60
此模式需要与android7启动后探测到的模式相同,否则会导致长时的黑屏状态,甚至无显示输出, 或者进入uboot命令行环境手工设置:
setenv lcdtype HDMI1080P60; saveenv; reset
9.5.4 修改system.prop
修改android7中 device/friendlyelec/nanopi3/system.prop
ro.sf.lcd_density=240
或其它自己认为更合适的值, 也可串口或adb环境下,wm density 240 来调整观察效果是否合适。
9.5.5 编译Android
根据wiki说明编译android 7并测试,遇到异常则请仔细检查前面的步骤
10 如何编译系统
10.1 安装交叉编译器
首先下载并解压编译器:
git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1 cd prebuilts/gcc-x64 cat toolchain-4.9.3-armhf.tar.gz* | sudo tar xz -C /
然后将编译器的路径加入到PATH中,用vi编辑vi ~/.bashrc,在末尾加入以下内容:
export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH export GCC_COLORS=auto
执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:
. ~/.bashrc
这个编译器是64位的,不能在32位的Linux系统上运行,安装完成后,你可以快速的验证是否安装成功:
arm-linux-gcc -v Using built-in specs. COLLECT_GCC=arm-linux-gcc COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolchain/4.9.3/libexec/gcc/arm-cortexa9-linux-gnueabihf/4.9.3/lto-wrapper Target: arm-cortexa9-linux-gnueabihf Configured with: /work/toolchain/build/src/gcc-4.9.3/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=arm-cortexa9-linux-gnueabihf --prefix=/opt/FriendlyARM/toolchain/4.9.3 --with-sysroot=/opt/FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root --enable-languages=c,c++ --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3 --with-float=hard ... Thread model: posix gcc version 4.9.3 (ctng-1.21.0-229g-FA)
10.2 编译 FriendlyCore/Lubuntu/EFlasher的内核源代码
10.2.1 编译内核
- 下载内核源代码
git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1 cd linux
SOM-4418内核所属的分支是nanopi2-v4.4.y,在开始编译前先切换分支。
- 编译Ubuntu内核
touch .scmversion make ARCH=arm nanopi2_linux_defconfig make ARCH=arm
编译成功结束后,新生成的内核是 arch/arm/boot/zImage,目录arch/arm/boot/dts/下还包括新的DTB文件(s5p4418-nanopi2-rev*.dtb),用于替换掉SD卡boot分区下对应的文件。
10.2.2 Linux下使用新编译的内核
- 更新SD卡上的内核
如果您是使用SD卡启动Ubuntu系统,则在PC上复制编译生成的zImage和DTB文件到SD卡的boot分区(即分区1,设备是/dev/sdX1)即可。
- 更新eMMC系统上的内核
从eMMC启动时可通过以下方法来更新内核:
1) 启动完成后,系统通常会自动mount eMMC的boot分区(设备是/dev/mmcblk0p1), 可输入命令mount来查看;
2) 连接网络,使用scp/ftp等方式复制新编译的zImage和DTB文件并替换boot分区下的文件;
3) 也可以将编译好的内核复制到SD卡或U盘,然后到开发板上复制到boot分区下;
4) 更新完成后,输入 reboot 命令重启即可,注意不要直接断电或按Reset键,否则可能会损坏文件.
- 使用新的内核来生成boot.img
请参考这个git仓库: https://github.com/friendlyarm/sd-fuse_s5p4418
10.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=arm nanopi2_nougat_defconfig make ARCH=arm
编译成功结束后,新生成的内核是 arch/arm/boot/zImage,目录arch/arm/boot/dts/下还包括新的DTB文件(s5p4418-nanopi2-rev*.dtb)。 如果只想调试内核,可通过 adb 来快速更新。
adb root; adb shell mkdir /storage/sdcard1/; adb shell mount -t ext4 /dev/block/mmcblk0p1 /storage/sdcard1/; adb push arch/arm/boot/zImage arch/arm/boot/dts/s5p4418-nanopi2-rev*.dtb /storage/sdcard1/
内核开发/调试完成后,如果想生成用于烧写的boot.img,可复制内核zImage和DTB文件到Android7源代码目录 device/friendlyelec/nanopi2/boot,然后重新编译Android7。
10.4 编译 Android7/FriendlyCore/Lubuntu/EFlasher的U-Boot源代码
下载U-Boot v2016.01源代码并编译,注意分支是nanopi2-v2016.01
git clone https://github.com/friendlyarm/u-boot.git cd u-boot git checkout nanopi2-v2016.01 make s5p4418_nanopi2_defconfig make CROSS_COMPILE=arm-linux-
编译成功结束后您将获得bootloader.img,可以通过fastboot、sd-fuse_s5p4418和eflasher来更新板上的U-Boot v2016.01。
For Android7: 可复制bootloader.img到Android7源代码目录 device/friendlyelec/nanopi2/boot,然后重新编译Android7。
需要特别注意的是,不同版本的U-Boot不能交叉更新,不能使用fastboot更新现在运行的U-Boot v2014.07,也不能使用bootloader.img去替换一个ROM中的u-boot.bin,否则会导致系统无法正常启动。
10.5 编译Android7.1.2
10.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;
10.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仓库
SOM-4418 源代码托管在 gitlab 上,使用以下命令进行下载:
git clone https://gitlab.com/friendlyelec/s5pxx18-android-7.git -b master
由于Android7源代码较大(约8.2GB),下载可能需要较长时间且容易受网络环境的影响而中断,请耐心等待并重试。
10.5.3 开始编译
cd s5pxx18-android-7 source build/envsetup.sh lunch aosp_nanopi2-userdebug make -j8
编译成功完成后,目录 out/target/product/nanopi2/ 下包含可用于烧写的image文件。
filename partition Description bl1-mmcboot.bin raw boot firmware loader-mmc.img raw boot firmware bl_mon.img raw boot firmware bootloader.img raw uboot-v2016.01 env.conf - uboot环境变量,包含Android内核命令行参数 boot.img boot kernel zImage, DTBs; logo; Android ramdisk cache.img cache - userdata.img userdata - system.img system - partmap.txt - 分区描述文件
11 编译内核头文件安装包
以下操作在在开发板上进行:
11.1 本文适用于如下版本的固件
固件文件名: s5p4418-sd-friendlycore-xenial-4.4-armhf-YYYYMMDD.img, s5p4418-eflasher-friendlycore-xenial-4.4-armhf-YYYYMMDD.img 具体信息:
pi@NanoPC-T2:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial pi@NanoPC-T2:~$ cat /proc/version Linux version 4.4.172-s5p4418 (root@jensen) (gcc version 7.5.0 (ctng-1.24.0-108g-FA) ) #1 SMP PREEMPT Wed Mar 24 15:17:25 CST 2021
11.2 安装所需软件包
sudo apt-get update sudo apt-get install -y dpkg-dev bsdtar
11.3 制作内核头文件安装包
git clone https://github.com/friendlyarm/linux -b nanopi2-v4.4.y --depth 1 kernel-s5pxx18-arm cd kernel-s5pxx18-arm rm -rf .git make distclean touch .scmversion make CROSS_COMPILE= ARCH=arm nanopi2_linux_defconfig alias tar=bsdtar make CROSS_COMPILE= ARCH=arm bindeb-pkg -j4
显示如下信息表示成功:
dpkg-deb: building package 'linux-firmware-image-4.4.172-s5p4418' in '../linux-firmware-image-4.4.172-s5p4418_4.4.172-s5p4418-1_armhf .deb'. dpkg-deb: building package 'linux-headers-4.4.172-s5p4418' in '../linux-headers-4.4.172-s5p4418_4.4.172-s5p4418-1_armhf.deb'. dpkg-deb: building package 'linux-libc-dev' in '../linux-libc-dev_4.4.172-s5p4418-1_armhf.deb'. dpkg-deb: building package 'linux-image-4.4.172-s5p4418' in '../linux-image-4.4.172-s5p4418_4.4.172-s5p4418-1_armhf.deb'. dpkg-genchanges: binary-only upload (no source code included)
11.4 安装
sudo rm -f /lib/modules/4.4.172-s5p4418/build sudo rm -f /lib/modules/4.4.172-s5p4418/source sudo dpkg -i ../linux-headers-4.4.172-s5p4418_4.4.172-s5p4418-1_armhf.deb
11.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
12 在Android下访问硬件资源
友善电子开发了一个名为libfriendlyarm-things.so的函数库,用于Android应用程序访问开发板上的硬件资源,该函数库基于Android-NDK技术开发,提供便利的硬件访问接口,开发者无需掌握过多的嵌入式知识便可使用,有效提高开发进度。
目前支持的硬件设备包括:
- Serial Port
- PWM
- EEPROM
- ADC
- LED
- LCD 1602 (I2C)
- OLED (SPI)
支持的接口包括:
- GPIO
- Serial Port
- I2C
- SPI
详情使用说明可参考以下网址:
- 硬件库主页: http://wiki.friendlyelec.com/wiki/index.php/FriendlyThings/zh
- 示例源代码仓库: https://github.com/friendlyarm/friendlythings-examples
- 中文API参考手册: http://wiki.friendlyelec.com/wiki/index.php/FriendlyThings_APIs/zh
13 支持LCD型号
SOM-4418 目前支持的LCD型号为友善出品的:HD702V
14 原理图,Datasheet和尺寸图
- PCB Dimension(SOM-4418_2005_dxf.zip)
- Schematic(SOM-4418-2005-Schematic.pdf)
- S5P4418 Datasheet (S5P4418_Datasheet_0.1.pdf)
15 源代码和烧写文件的下载地址
- Image File: http://download.friendlyelec.com/SOM-4418
- Source Code: https://github.com/friendlyarm
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 Schematics & Mechanical drawing
- PCB Dimension(SOM-4418_2005_dxf.zip)
- Schematic(SOM-4418-2005-Schematic.pdf)
- S5P4418 Datasheet (S5P4418_Datasheet_0.1.pdf)
18 更新日志
18.1 日期 2023-01-09
18.1.1 FriendlyCore更新说明:
- 优化了开机服务
18.2 日期 2020-10-26
- FriendlyCore, Lubuntu更新如下:
修正蓝牙稳定性问题
18.3 日期 2019-12-28
- eflasher更新如下:
1) 支持只烧写部分文件,例如仅更新emmc内的内核和uboot
2) 在界面上增加禁用overlay filesystem选项
3) 增加命令行参数,方便脚本调用,可以实现无交互的一键安装
4) 修正备份与恢复镜像后,不同设备会出现相同mac地址的问题
5) UI界面现在可以配置标题,隐藏界面菜单与按钮
18.4 日期 2019-11-26
- FriendlyCore:
预装 OpenCV 4.1.2
18.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屏幕与S702屏幕时的触摸与按键体验
18.6 日期 2019-10-18
- Android7 与 FriendlyCore, Lubuntu更新如下:
修正音频播放在某些情况下可能会出现杂音的问题。
18.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) 内核配置项进行了优化,启用更多特性与设备驱动
18.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 T2,Smart4418的更新:
支持从板载EEPROM中读取以太网Mac地址,仅支持以下系统:FriendlyCore, Lubuntu, Android7
18.9 日期 2019-06-25
Linux(Ubuntu 16.04/18.04) 全面采用 OverlayFS,以增强文件系统的稳定性
18.10 日期 2019-06-03
1) 配置LED1为心跳模式
2) 修复HDMI 1080P可能在某些情况下无显示的问题
3)Linux下修复无法安装 mysql 的问题
4)修复lubuntu下1-wire触摸电阻屏无法使用的问题
18.11 日期 2019-01-24
1) 增加新的LCD型号HD702V的支持
2) 优化Linux下Qt5的字体
18.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设置,默认关闭自动休眠
18.13 日期 2018-09-06
- 增加10.1寸屏 HD101B 的支持
- 提高一线屏识别的可靠性
18.14 日期 2018-08-11
FriendlyCore:
- 升级 Qt版本到 5.10,增加 xcb 插件
- 增加Qt在目标板的编译工具,可直接在开发板上编译Qt程序
- 预装最小版本的 xorg
- 增加 OpenCV 的安装支持,详请可查看:https://github.com/friendlyarm/install-opencv-in-friendlycore
Android5:
- 增加永不睡眠的设置选项
18.15 日期 2018-03-24
- 修正只连接HDMI的情况下开机没图像显示的问题
- 增加蓝牙的支持
以上更新适用于所有4.4内核的系统,包括FriendlyCore和Lubuntu。
18.16 日期 2017-06-13
Linux, Android系统:
- 改善了整体系统稳定性;
Android系统:
- 提升Android下ov5640拍照的稳定性;
18.17 日期 2017-04-18
Ubuntu-Core系统更新如下:
- 修改了登录欢迎界面,当用户登录时会打印系统的基本状态信息;
- 增加 npi-config 工具,npi-config是一个命令行下的系统配置工具,可以对系统进行一些初始化的配置,可配置的项目包括:用户密码、系统语言、时区、Hostname、SSH开关、自动登录选项等,在命令行执行以下 sudo npi-config 即可进入;
- 预装NetworkManager作为网络管理工具;
- 新增pi用户,并配置为自动登录,自动登录特性可以使用npi-config工具配置;
18.18 日期 2017-03-08
1) 启用UART2
2) 增加HD101B屏幕的支持
3) Android4.4和Android5增加硬件访问库,具体可参考:[1]
4) 修正S430屏在Android4.4下的闪退问题
18.19 日期 2017-02-09
1) 在Ubuntu Core和Debian系统中 增加7寸电阻屏 S70B 的支持
2) 调整了 eFlasher Rom 的分区大小,将根分区调整为 1GB
18.20 日期 2016-11-17
增加H43屏的支持:
1) 支持s5p4418与s5p6818平台的开发板
2) OS方面仅支持Debian 和 Ubuntu Core系统,不支持Android
18.21 日期 2016-09-02
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>>;
本次更新适用于NanoPi2, NanoPi 2 Fire, NanoPi-M2, NanoPC-T2, Smart4418
18.22 日期 2016-08-20
1) 推出Android4.4固件(s5p4418-kitkat-sd4g-20160803.img.zip) 和源码,Android4.4是专门为企业用户定制,并且支持4G通讯模块,即插即用;
2) 推出一键烧写系统的固件s5p4418-eflasher-sd8g-xxx-full.img,直接下载固件回来使用LCD即可一键烧写系统;
本次更新适用于NanoPi2, NanoPi 2 Fire, NanoPi-M2, NanoPC-T2, Smart4418
18.23 日期 2016-07-01
1) 修复了Ubuntu Core下USB Wi-Fi无法加载固件的问题;
2) 更新了Bootloader,支持使用dd命令直接将RAW image写入eMMC并能正常启动;
3) 内核bug修正及提高稳定性;
本次更新适用于NanoPi2, NanoPi 2 Fire, NanoPi-M2, NanoPC-T2, Smart4418
18.24 日期 2016-05-21
- Android
1) 增加以太网设置(支持静态IP和DHCP设置);
2) 增加硬件访问库 libfriendlyarm-things.so,可用于在Android下操作串口;
使用方法可参考此份文档:http://www.arm9home.net/read.php?tid-82748.html。
在 NanoPi2/NanoPi M2/NanoPi2 Fire/NanoPC-T2 上,串口对应的设备名称如下:
UART2 -> 未驱动
UART3 -> /dev/ttyAMA2
UART4 -> /dev/ttyAMA3
3) 增加iTest应用程序,内置串口助手功能;
注意:运行此串口程序,需要使用system权限。
- Debian
1)增强了内核稳定性;
- Ubuntu core with Qt-Embedded
1)开机后显示的界面由Qt Demo换成了一个由友善之臂开发的,开源的Qt程序 (源代码位于/opt
目录),该程序启动时显示系统状态信息,例如CPU和内存信息,工作温度和负载等信息,
系统同时集成了 qmake,uic 等Qt工具的arm版本,这样你 就可以在开发板上直接生成和编译Qt源代码。
本次更新适用于NanoPi2, NanoPi 2 Fire, NanoPi-M2, NanoPC-T2, Smart4418
18.25 日期 2016-04-19
1)增加Debian/Ubuntu第一次开机时自动扩展分区和根文件系统,第一次启动时间会稍长
2) 改善非正常关机/重启导致的根文件系统问题;
3) Debian/Ubuntu Core集成原厂开源硬解播放器NxPlayerConsole,须连LCD使用。(原厂库没有源代码)
4) Ubuntu Core集成了OpenGL的测试程序gltest1, 完全开源
5)Debian/Ubuntu Core增加了USB Wi-Fi - rtl8187的支持;
6) Debian/Ubuntu Core系统的USB摄像头的设备修改为 /dev/video0,方便opencv
7) 用wpa_supplicant代替wicd来管理无线网络,使得Console下和X下的网络配置接口上保持一致
本次更新适用于NanoPi2, NanoPi 2 Fire, NanoPi-M2, NanoPC-T2, Smart4418
18.26 日期 2016-04-01
- Debian:
1) Debian增加了常用USB Wi-Fi和USB串口的支持;
2) 修正了带声卡的板音频输出切换的问题;
3) 优化内核,改进稳定性;
4) 增加LVDS接口的支持(缺省未启用);
- Ubuntu core with Qt-Embedded系统
新增系统:Ubuntu Core with Qt-Embedded,这是一个没有X-windows环境,使用Qt-Embedded作为图形界面的轻量级Ubuntu系统,基于官方的Ubuntu core系统开发而成,非常适合于企业用户用作产品的基础OS。
本系统除了保留Ubuntu core的特性以外,还包括以下特性:
1) 支持电容和电阻触摸屏 (型号:S700, X710, S70)
2) 支持WiFi连接
3) 支持以太网连接
4) 支持蓝牙,已预装bluez等相关软件包
5) 支持音频播放
详细可参考WiKi页面:http://wiki.friendlyelec.com/wiki/index.php/Ubuntu_Core_with_Qt-Embedded/zh
18.27 日期 2016-02-29
- Kernel:
1) 增加了基于CPU ECID生成以太网MAC地址;
2) 修复了framebuffer console刷新不及时的问题;
3) 优化内核提升了系统运行的稳定性;
4) 修复了PWM LED的一个bug,基于PWM LED增加了呼吸灯效果的trigger;
- Debian:
1) 修复了hostname异常的bug;
2) 缺省启用framebuffer console, 可在LCD/HDMI看到启动信息;
3) 集成了设置uboot环境变量的工具fw_printenv;
- Android:
ROM缺省启用了ffmpeg, 可支持更多的视频格式.
18.28 日期 2015-12-01
- 推出新的Android 5.1.1_r6,源代码已推送到 https://github.com/friendlyarm 。
- 4.2.1 简易方法制作: 新的固件已支持LCD检测,因此原来分别支持LCD和HDMI的固件已合并为一个固件。
- 4.3 在电脑上修改SD卡上的系统: 部分内容只适应于旧版本固件,标记为删除状态。
- 6 如何编译系统: 编译时源代码分支更新为 nanopi2-lollipop-mr1。
- 6.4.2 编译内核模块: 增加了如何编译支持LCD显示的启动Debian的uImage。