Difference between revisions of "Lindenis V536"

From Lindenis Wiki
Jump to: navigation, search
(Lindlive)
(Downloading)
Line 214: Line 214:
 
$ echo "export PATH=~/.bin/repo:$PATH" >> ~/.bashrc
 
$ echo "export PATH=~/.bin/repo:$PATH" >> ~/.bashrc
 
$ source ~/.bashrc
 
$ source ~/.bashrc
 +
</pre>
 +
 +
For Lindenis V536 SBC, download the SDK via:
 +
<pre>
 +
$ repo init -u https://github.com/lindenis-org/manifest.git -b v536 -m lindenis-v536.xml
 +
$ repo sync
 +
</pre>
 +
 +
The Download time depends on your network connection speed. After finish the download, you should get below directories and files:
 +
<pre>
 +
build  config  Config.in  device  dl  lichee  Makefile  package  prebuilt  rules.mk  scripts  softwinner  target  toolchain  tools
 +
</pre>
 +
 +
Start a branch for local workspace:
 +
<pre>
 +
$ repo start lindenis-v536 --all
 
</pre>
 
</pre>
  

Revision as of 06:59, 21 January 2020

Key Features

Processor core

  • Dual-Core Cortex A7@1.2GHz
  • Neon acceleration, integrated FPU

Video Encoding/Decoding Performance

  • H.264 BP/MP/HP, H.265 Main Profile encoding
  • I/P/Dual P frame H.264/H.265 encoding
  • MJPEG/JPEG baseline encoding
  • Real-time multi-stream H.264/H.265 encoding capability:
    • - 3840x2160@30fps+720p@30fps encoding
    • - 3840x2160@30fps decoding
  • Maximum 8192x8192 resolution for JPEG encoding/decoding
  • CBR, VBR modes
  • Encoding of eight ROIs

Graphics Processing

  • Supports Lens distortion correction, fisheye and wide angle correction
  • Supports 90°、180°、270° picture rotation

Professional Image Effects

  • Maximum performance is 4224x3168@30fps
  • Adjustable 3A functions (AE, AWB and AF)
  • Supports 2F WDR and Local Tone mapping,supporting highlight suppression and backlight compensation
  • Supports bad pixel correction, Lens shading correction
  • Supports multi-level 3D denoising, remove motion smear and color noise
  • Supports color adjustment, color enhancement
  • Supports image dynamic contrast enhance and sharpness enhance
  • Supports 4 channels of scaling output from 1/8x to 1x
  • OSD overlaying of eight regions before encoding
  • Supports image mirroring and flipping

Various interfaces

  • Supports MIPI-CSI2\HiSPi\Sub-LVDS
  • Supports BT1120 input/output
  • Supports Line-in/Line-out
  • Supports Dual-channel differential MIC inputs
  • Supports WiFi 802.11ac / BT4.2 (option)

Software Support

  • Linux-4.9

Target Applications

  • SDV
  • Smart IPC
  • Smart Camera

Or you can use it to build:

  • A computer
  • A streaming server

Accessories Step-by-Step Guides

Power Supply

HDMI Cable

Camera module

LCD

Flash module

WiFi and Bluetooth module

Hardware Specification

Board Features

Video Out

  • HDMI 1.4 Type A, up to 4K@30FPS
  • MIPI-DSI, 4 lanes, up to 1080P
  • LCD interface

Video In

  • 1 x MIPI-CSI2 - Camera interface, 4 lanes per channel

Audio

  • 3.5mm Line in / out
  • 1 x mic
  • 1 x dmic

Network

  • 10/100/1000Mbps Ethernet
  • WiFi with Bluetooth (optional)

Storage

  • MicroSD Card bootable, support SDHC and SDXC, storage up to 256GB

Expansion Ports

  • Board to Board connector - Flash module interface
  • Wi-Fi/BT Module Header - SDIO 3.0 and UART, pitch 2.0mm
  • 2x10 pins "Power Supply" GPIO Header: vbat, aldo1, bldo1, aldo3
  • 4 pins GPIO Header: TWI1
  • 2x7 pins "I2S" GPIO Header
  • 3 pins GPIO Header: PH4, PH10, GND
  • 3 pins GPIO Header: 1xADC
  • 4 pins GPIO Header: S-TWI
  • VBAT: Battery connector
  • Storage: Bootable MicroSD card
  • Video out: HDMI 1.4, 4 lanes MIPI-DSI
  • Video in: 1 x DVP
  • Audio: 3.5mm Line in / out, 1 x mic
  • Network: 10/100/1000Mbps Ethernet
  • USB: 1 x Micro USB, 2 x USB 2.0

Board Information

Datasheet

SDK

Overview

Features

  • Linux kernel 4.9 (official version)
  • U-Boot 2014.07
  • ARM GCC based cross toolchain
  • Integrated build system

Main Components

Layout

├── build
├── config
├── Config.in
├── dl
├── docs
├── lichee
├── logs
├── Makefile
├── out
├── package
├── prebuilt
├── rules.mk
├── scripts
├── softwinner
├── target
├── toolchain
└── tools

Download and Build

System requirements

Listed below are the recommended requirements for downloading and building the SDK:

  • CPU: x86_64 or better family processor
  • Memory: 8GB or higher
  • Disk: 10GB free hard disk space
  • OS: Ubuntu 14.04 (tested) or higher
  • Network: internet connection

Linux host setup

Ubuntu 14.04

HINT: later version should also work.

Install prerequisites

$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install git git-core u-boot-tools qemu qemu-user-static debootstrap lib32z1 lib32ncurses5 libc6:i386 libstdc++6:i386 gawk
  • dpkg --add-architecture i386: support 32bit architecture
  • apt-get update: retrieve new lists of packages
  • git git-core: manage source code
  • u-boot-tools: build kernel image
  • qemu qemu-user-static: emulator for arm on host CPU
  • debootstrap: for installing a Debian base system
  • lib32z1 lib32ncurses5 libc6:i386 libstdc++6:i386: for running 32bit tools
  • gawk: GNU Awk

Sudo without password

$ sudo visudo

Add this line at the end (change “tom” to your username):

tom ALL=(ALL) NOPASSWD: ALL

Ctrl-X to leave, save your changes, and you're done!

Downloading

The SDK is available on github.

We use Repo manage Git repositories. Clone Repo from android Git repositories or other mirrors and install it.
Chinese developers can install Repo follow these steps:

$ git clone http://mirrors.ustc.edu.cn/aosp/git-repo.git ~/.bin/repo
$ echo "export PATH=~/.bin/repo:$PATH" >> ~/.bashrc
$ source ~/.bashrc

For Lindenis V536 SBC, download the SDK via:

$ repo init -u https://github.com/lindenis-org/manifest.git -b v536 -m lindenis-v536.xml
$ repo sync

The Download time depends on your network connection speed. After finish the download, you should get below directories and files:

build  config  Config.in  device  dl  lichee  Makefile  package  prebuilt  rules.mk  scripts  softwinner  target  toolchain  tools

Start a branch for local workspace:

$ repo start lindenis-v536 --all

Building

Setup env
  • For Lindenis V536 SBC:
  • For Lindenis V536 SOM:
Build source
  • Build kernel and rootfs

If you are the first time downloaded the SDK and have not built the SDK before, run the below two commands, then exit and save the configuration at first.

$ make menuconfig
$ make kernel_menuconfig

Then make it and wait ...

$ make -j8 V=s
Build image
$ pack

Installation

OS

Overview

Lindenis Video OS is the recommended operating system for normal use on Lindenis V536 series boards. Lindenis Video OS is maintained by Lindenis Tech. Ltd.. The SDK is hosted on GitHub.

Applications
Lindenis Video OS Architecture
  • Lindlive: a low-laternce A/V streaming application powered by Lindenis.
  • Lindplayer: a meida player application powered Lindenis.
  • Lindcamera: a camera application (supported preview, snapshot and recording) powered by Lindenis.
  • ... ...
Framewrok
  • FFindeni: a multimedia framework specialized for low-latency A/V processing built by Lindenis.
  • CedarX: a Allwinner official multimedia decoding framework.
  • MiniGUI: a tiny and efficiency open source GUI framework.
  • ... ...
Libraries
  • Runtime Libraries: the system basic libraries like libc and so on.
  • Libavwrapper: a Lindenis-built library abstracted the hardware operation of the A/V processing.
  • FFmpeg: an open source software library for recording, converting and streaming audio and video.
  • Live555: an open source software library for streaming audio and video.
  • ... ...
Linux Kernel
  • Official version: 4.9


System Setup

Uart
Camera
Display
TouchPanel
Wifi
  • sys_config.fex should config as follow:
[wlan]
wlan_used           = 1
wlan_busnum         = 1
;wlan_usbnum         = 3
wlan_power          = "vcc33-wifi"
wlan_io_regulator   = "vcc-pg"
;wlan_en             = port:PG11<1><default><default><0>
wlan_regon          = port:PG11<1><default><default><0>
wlan_hostwake       = port:PL05<6><default><default><0>
  • make sure CONFIG_BCMDHD is configured when make kernel_menuconfig
CONFIG_BCMDHD = m
  • make sure PACKAGE_ap6255-firmware is configured when make menuconfig
PACKAGE_ap6255-firmware = y
Bluetooth
Ethernet
  • sys_config.fex should configured as follow:
[gmac0]
gmac0_used         = 1
phy-mode           = "rgmii"
gmac_rxd3          = port:PE00<3><default><default><default>
gmac_rxd2          = port:PE01<3><default><default><default>
gmac_rxd1          = port:PE02<3><default><default><default>
gmac_rxd0          = port:PE03<3><default><default><default>
gmac_rxck          = port:PE04<3><default><default><default>
gmac_rxctl         = port:PE05<3><default><default><default>
gmac_clkin         = port:PE06<3><default><default><default>
gmac_txd3          = port:PE07<3><default><3><default>
gmac_txd2          = port:PE08<3><default><3><default>
gmac_txd1          = port:PE09<3><default><3><default>
gmac_txd0          = port:PE10<3><default><3><default>
gmac_txck          = port:PE11<3><default><3><default>
gmac_txctl         = port:PE12<3><default><3><default>
gmac_mdc           = port:PE13<3><default><3><default>
gmac_mdio          = port:PE14<3><default><3><default>
gmac_ephy25m       = port:PE15<3><default><default><default>
phy-rst            = port:PE21<1><default><default><0>
gmac-power0        = "vcc-ephy"
gmac-power1        = ""
gmac-power2        = ""
tx-delay           = 7
rx-delay           = 31
use_ephy25m        = 1
  • make sure CONFIG_SUNXI_GMAC is configured when make kernel_menuconfig
CONFIG_SUNXI_GMAC = y
Keypad
Audio
audiocodec
  • sys_config.fex should configured as follow:
[sndcodec]
sndcodec_used = 0x1

[i2s]
i2s_used = 0x1

[codec]
codec_used  = 0x1
lineoutvol  = 0x1f
maingain    = 0x4
headsetmicgain  = 0x4
adcagc_cfg  = 0x0
adcdrc_cfg  = 0x0
adchpf_cfg  = 0x0
dacdrc_cfg  = 0x0
dachpf_cfg  = 0x0
pa_ctl_level    = 0x1
pa_msleep_time  = 0xa0
gpio-spk    = port:PH10<1><1><default><default>
i2s
  • sys_config.fex should configured as follow, and the param should configured accord your device need:
if you i2s1 is used
[snddaudo0]
snddaudio0_used = 1

[daudio0]
daudio0_used        = 1
daudio_master       = 4
audio_format        = 4
signal_inversion    = 1
slot_width_select   = 32
pcm_lrck_period     = 128
msb_lsb_first       = 0
sign_extend         = 0
frametype       = 0
mclk_div        = 1
tdm_config      = 0
tx_data_mode        = 0
rx_data_mode        = 0
if you i2s2 is used
[snddaudo2]
snddaudio2_used = 1

[daudio2]
daudio2_used        = 1
daudio_master       = 4
audio_format        = 1
signal_inversion    = 1
slot_width_select   = 32
pcm_lrck_period     = 32
msb_lsb_first       = 0
sign_extend         = 0
frametype       = 0
mclk_div        = 0
tdm_config      = 1
tx_data_mode        = 0
rx_data_mode        = 0
  • make sure CONFIG_SND_SUNXI_SOC_SUNXI_DAUDIO configured when make kernel_menuconfig
CONFIG_SND_SUNXI_SOC_SUNXI_DAUDIO = y

Application Demo

The application demos powered by Lindenis.

Lindlive

lindlive is a high performance low latency live streaming library. lindlive integrate some useful function modules, such as audio/video capture, encoding and streaming protocol. So developers can easily implement a live streaming server based on lindenis board.

There are two samples app using lindlive, one is sample_mppsrc_2_livesink and the other is sample_mppsrc_2_ffsink. The sample source code is located in SDK.

!!! It is strongly recommended to use lindplayer with '-live' as the client of the lindlive. It will be lower latency.

usage:

   sample_mppsrc_2_livesink -i [ip] -p [port] -n [name]
       -i [ip] is the ip address of the server. If it is not set, the 'ip' default is local ethernet or wifi ip address.
       -p [port] is the port of the server. If it is not set, the 'port' default is rtsp port 8554.
       -n [name] is the name of live streaming. If it is not set, the 'name' default is 'live'.
       All of the arguments are optional.
   If sample_mppsrc_2_livesink is correctly running, the server url is 'rtsp://[ip]:[port]/[name]'
   Then it can be played in an player with the url 'rtsp://[ip]:[port]/[name]'.
   sample_mppsrc_2_ffsink -t [type] -u [url]
       -t [type]: the muxer type, can be 'mpegts/mp4/rtp/rtp_mpegts/rtsp/rtmp'
       -u [url] : sink to url, like: '/tmp/out.mp4' or 'rtp://192.168.1.100:12345'
   Example 1: sink as a live streaming.
       sample_mppsrc_2_ffsink -t rtp_mpegts -u rtp://192.168.3.118:12345
       sample_mppsrc_2_ffsink -t rtp -u rtp://192.168.3.118:12342/test
       Then it can be played in an player with the url 'rtsp://[ip]:[port]/[name]'.
   Example 2: save as a local file.
       sample_mppsrc_2_ffsink -t mp4 -u /tmp/out.mp4
       sample_mppsrc_2_ffsink -t mpegts -u /tmp/out.ts
Lindplayer

lindplayer is a high performance media player that can run on lindenis board. It supports upto 4K@30fps H.264/H.265 video decoder. It can play a local media file or a media stream from internet.

usage:

   lindplayer -u [url] <options>
       -u [url] is the media path to be played.
       <options> use -live to indicate this is a live streaming.
   such as:
       lindplayer -u ./movie.ts
   or  lindplayer -u http://192.168.1.102/test
   or  lindplayer -u rtsp://192.168.1.102/test -live
Lindcamera