Linphone:Armbian(Debian Buster)+Orange Pi ビルド・インストール

Linphoneソースからのビルドインストール

デスクトップバージョンv3.12(GUI無し)をビルド・インストールします。
linphone-nogtkパッケージが公式に配布されていますが、ソースからのビルド・インストールをお勧めします。

インストール環境

  • OrangePi PC
  • Ubuntu Bionic with Armbian Linux 4.19.62-sunxi

開発環境・関連ライブラリのインストール

$ sudo apt-get install cmake automake autoconf libtool intltool yasm libasound2-dev libpulse-dev libv4l-dev nasm git libglew-dev

Githubからソースコードダウンロード

$ git clone git://git.linphone.org/linphone-desktop.git --recursive

Linphoneデータベース用ディレクトリ作成

$ mkdir /home/user_dir/.local/share/linphone
$ chmod -R 775 /home/user_dir/.local/share/linphone

Pythonコードによるビルド環境の構築

$ cd linphone-desktop
$ ./prepare.py no-ui -DENABLE_OPENH264=ON -DENABLE_WEBRTC_AEC=OFF -DENA BLE_UNIT_TESTS=OFF -DENABLE_MKV=OFF -DENABLE_FFMPEG=ON -DENABLE_CXX_WRAPPER=OFF -DENABLE_NON_FREE_CODECS=ON -DENABLE_VCARD=OFF -DENABLE_BV16=OFF -DENABLE_V4L=OFF

makeビルド

$ make -j4

ビルド終了後、ビルドパッケージ no-ui/opt ディレクトリにコピーしてパスを追加します。

$ sudo cp -r /home/user_dir/linphone-desktop/OUTPUT/no-ui /opt/
$ export PATH=$PATH:/opt/no-ui/bin

Linphone起動

Linphoneを起動してユーザ認証などの環境設定を行います。ユーザ登録は下記サイトで行って下さい。
https://www.linphone.org/freesip/home

$ linphonec
linphonec> proxy add
.....
linphone>quit

Linphone終了後、設定ファイル.linphonercが起動ディレクトリに作成されるので、インストール環境に合わせて項目を追加・修正します。上記コンソール内のLinphoneコマンドは下記を参照して下さい。

Linphone起動スクリプトによる自動起動

$ sudo pico /etc/init.d/linphonecsh

    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          linphone
    # Required-Start:    $remote_fs $syslog
    # Required-Stop:     $remote_fs $syslog
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Starts Linphone daemon.
    # Description:       Linphone is used to call and receive message on VoIP System.
    ### END INIT INFO
    export PATH=$PATH:/opt/no-ui/bin
    sudo -H -u user linphonecsh init -c /home/user_dir/.linphonerc

実行権の付与

$ sudo chmod +x /etc/init.d/linphonecsh

起動時スクリプトの登録

$ sudo update-rc.d linphonecsh defaults

“$sudo -H -u user linphonecsh …” コマンド実行エラー対応

rootによる指定パス以外のコマンド実行が無効となっているため、/opt/no-ui/bin内のコマンドを実行できません。以下secure_path/opt/no-ui/bin を追加します。

$ sudo visudo
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/no-ui/bin"

システムを再起動してLinphoneが起動しているかどうかhtopコマンドなどで確認して下さい。

ターミナルからのLinphoneコール関連コマンド

応答

$ sudo -H -u user linphonecsh generic “answer”

終了

$ sudo -H -u user linphonecsh generic “terminate”

ダイヤル

$ sudo -H -u user linphonecsh dial “sip:[email protected]

tls接続する場合の設定例:“.linphonerc”

デフォルトでTLSポートを指定する必要があるようです。

[sip]
root_ca=/etc/ssl/certs
verify_server_certs=1
verify_server_cn=1
contact=sip:[email protected]
media_encryption=none
use_info=1
use_rfc2833=1
guess_hostname=1
inc_timeout=30
in_call_timeout=0
delayed_timeout=4
register_only_when_network_is_up=1
register_only_when_upnp_is_ok=1
default_proxy=0
zrtp_cache_migration_done=1
sip_port=0
sip_tcp_port=0
sip_tls_port=5228
multi_transport_migration_done=1

[net]
nat_policy_ref=xxxxxxxxxxxxxx
download_bw=0
upload_bw=0
mtu=1450

[nat_policy_0]
ref=xxxxxxxxxxxxxxxxx

[misc]
uuid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
user_certificates_path=/home/user_dir/.linphone-usr-crt

[video]
capture=0
display=0
show_local=0
size=vga

[rtp]
audio_rtp_port=7078
video_rtp_port=9078
text_rtp_port=11078
audio_jitt_comp=60
video_jitt_comp=60
nortp_timeout=30
audio_adaptive_jitt_comp_enabled=1
video_adaptive_jitt_comp_enabled=1

[sound]
ringer_dev_id=ALSA: default device
playback_dev_id=ALSA: default device
capture_dev_id=ALSA: audiocodec
echocancellation=0
remote_ring=/home/user_dir/linphone-desktop/OUTPUT/no-ui/share/sounds/linphone/ringback.wav
local_ring=/home/user_dir/linphone/nokia/nokia_tune_2014.wav
playback_gain_db=0.000000
mic_gain_db=0.000000

[audio_codec_0]
mime=opus
rate=48000
channels=2
enabled=0

[audio_codec_1]
mime=speex
rate=16000
channels=1
enabled=0

[audio_codec_2]
mime=speex
rate=8000
channels=1
enabled=0

[audio_codec_3]
mime=PCMU
rate=8000
channels=1
enabled=16

[audio_codec_4]
mime=PCMA
rate=8000
channels=1
enabled=16

[audio_codec_5]
mime=GSM
rate=8000
channels=1
enabled=0

[audio_codec_6]
mime=G722
rate=8000
channels=1
enabled=0

[audio_codec_7]
mime=speex
rate=32000
channels=1
enabled=0

[audio_codec_8]
mime=L16
rate=44100
channels=2
enabled=0

[audio_codec_9]
mime=L16
rate=44100
channels=1
enabled=0

[audio_codec_11]
mime=L16
rate=44100
channels=1
enabled=0

[video_codec_0]
mime=VP8
rate=90000
enabled=0

[proxy_0]
reg_proxy=sip:sip.linphone.org
reg_identity=sip:[email protected]
quality_reporting_enabled=0
quality_reporting_interval=0
reg_expires=36000
reg_sendregister=1
publish=0
avpf=-1
avpf_rr_interval=5
dial_escape_plus=0
privacy=32768
publish_expires=-1

[auth_info_0]
username=test_user
ha1=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
realm=sip.linphone.org
domain=sip.linphone.org

[app]
auto_download_incoming_files_max_size=-1

[video_codec_1]
mime=H264
rate=90000
enabled=16
recv_fmtp=profile-level-id=42801F

アップデートに伴う再ビルド・インストール

Armbian 21.02.3 Buster with Linux 5.10.21-sunxi
Linphoneビルド・インストールバージョン: 4.5.0

githubのlinphone-sdkソースからプラットホームを指定することで、直接linphone, flexisip等のビルドが出来るようになったようです。

事前準備
上記最新ArmbianがDebian Busterベースなので、linphone-sdk/docker_filesを参照してビルドに必要なパッケージを事前にインストール

BUG: liblinphone won’t initialize correctly if the data directory (for persistent storage) is not created. To workaround do:
事前に以下ディレクトリを作成して下さい。
$ mkdir -p ~/.local/share/linphone

bc-dev-debian10

開発ツールのインストール

$ sudo apt-get install -y alien at autoconf bison ccache clang cmake doxygen elfutils g++ gdb git graphviz intltool libtool lsb-release make nasm ninja-build openssh-client patch yasm

Linphone開発ツール依存パッケージのインストール

$ sudo apt-get install -y libasound2-dev libavcodec-dev libavutil-dev libbsd-dev libegl1-mesa-dev libglew-dev libgsm1-dev libmariadbclient-dev libmbedtls-dev libopus-dev libpq-dev libpulse-dev libspeex-dev libspeexdsp-dev libsqlite3-dev libsrtp2-dev libssl-dev libswscale-dev libturbojpeg0-dev libv4l-dev libvpx-dev libxerces-c-dev libxml2-dev libxv-dev xsdcxx

linphone-sdkソースのダウンロード

Linphoneのビルドに必要な関連パッケージもソースからダウンロード・ビルドする必要があるため、--recursiveオプションを追加すること。

$ git clone --branch release/4.5 https://gitlab.linphone.org/BC/public/linphone-sdk.git --recursive

linphone-sdkデレクトリへ移動し、コンパイルオプションの確認

$ cd linphone-sdk
$ cmake -LA

-- Enabled features:
 * Tools, Enable tools binary compilation.
 * Xml2, Enable bc version of libxml2
 * Sqlite, Enable bc version of sqlite3
 * Zlib, Enable bc version of zlib
 * Mbedtls, Crypto stack implementation based on mbeddtls.
 * Non free codecs, Allow inclusion of non-free codecs in the build.
 * SRTP, SRTP media encryption support.
 * ZRTP, ZRTP media encryption support.
 * GSM, GSM audio encoding/decoding support.
 * iLBC, iLBC audio encoding/decoding support.
 * OPUS, OPUS audio encoding/decoding support.
 * Speex, Speex audio encoding/decoding support.
 * Video, Ability to capture and display video.
 * V4L, Ability to capture and display video using libv4l2 .
 * jpeg, JPEG support with libjpeg-turbo.
 * FFmpeg, Some video processing features via FFmpeg: JPEG encoding/decoding, video scaling, H264 decoding...
 * OpenH264, H.264 video encoding/decoding support with the openh264 library (require license).
 * VPX, VPX (VP8) video encoding/decoding support.
 * Assets, Enable packaging of assets (ringtones) when building the SDK.
 * DB Storage, Enable the database storage.

-- Disabled features:
 * Embedded OpenH264, Embed the openh264 library instead of downloading it from Cisco.
 * Unit tests, Enable unit tests support with BCUnit library.
 * Debug logs, Enable debug level logs in libinphone and mediastreamer2.
 * Doc, Enable documentation generation with Doxygen
 * unmaintained, Allow inclusion of unmaintained code in the build.
 * Soci mysql, Enable mysql support of SOCI
 * Sanitizer, Enable Clang sanitizer
 * HW Sanitizer, Enable Android HW sanitizer
 * Polarssl, Crypto stack implementation based on polarssl.
 * Tunnel, Secure tunnel for SIP/RTP (require license).
 * RTP Map always in SDP, Always include rtpmap in SDP.
 * mDNS, Multicast DNS support
 * DNS_SERVICE, Enable Apple DNS Service. Available on Mac and iOS. Incompatible with ENABLE_MDNS.
 * GPL third parties, Usage of GPL third-party code (FFmpeg and x264).
 * WebRTC AEC, WebRTC echo canceller support.
 * WebRTC AECM, WebRTC echo canceller for mobile support.
 * WASAPI, Windows Audio Session API (WASAPI) sound card support.
 * AMRNB, AMR narrow-band audio encoding/decoding support (require license).
 * AMRWB, AMR wide-band audio encoding/decoding support (require license).
 * Codec2, Codec2 audio encoding/decoding support.
 * G729, G.729 audio encoding/decoding support.
 * G729B CNG, G.729 annex B confort noise generation.
 * G726, G.726 audio encoding/decoding support.
 * ISAC, ISAC audio encoding/decoding support.
 * Silk, Silk audio encoding/decoding support.
 * WebRTC VAD, WebRTC voice activation detector support.
 * BV16, BroadVoice 16 audio encoding/decoding support.
 * qrcode, QRCode support with zxing.
 * H263, H263 video encoding/decoding support (require license).
 * H263p, H263+ video encoding/decoding support (require license).
 * MKV, MKV playing and recording support.
 * MPEG4, MPEG4 video encoding/decoding support (require license).
 * X264, H.264 video encoding support with the x264 library (require license).
 * AAudio, AAudio Android sound card for Android 8+.
 * Camera2, Android capture filter using Camera2 API for Android 8+
 * PCAP, PCAP support.
 * GTK UI, Enable the GTK user interface of Linphone.
 * CXX wrapper, Build the C++ wrapper for Liblinphone.
 * CSharp wrapper, Build the C# wrapper from Liblinphone.
 * Swift wrapper, Build the Swift wrapper sources from Liblinphone.
 * Swift wrapper compilation, Compile and package the swift wrapper framework. Require at least cmake 3.16.3.
 * Jazzy doc, Build the Swift doc from Liblinphone.
 * Java wrapper, Build the Java wrapper from Liblinphone.
 * LIME, Enable Linphone IM Encryption support in  Liblinphone.
 * LIME X3DH, Enable Linphone IM Encryption version 2 support in  Liblinphone.
 * NLS, Enable internationalization of Linphone and Liblinphone.
 * Update Check, Enable update check.
 * VCARD, Enable vCard 4 support in Linphone and Liblinphone.
 * Advanced IM, Enable advanced instant messaging such as group chat.
 * Relative prefix, liblinphone and mediastreamer will look for their respective ressources relatively to their location.


  ***************************************************************************
  ***************************************************************************
  ***** Linphone SDK without third party GPL software                   *****
  ***** If you acquired a proprietary license from Belledonne           *****
  ***** Communications, this SDK can be used to create                  *****
  ***** a proprietary Linphone-based application.                       *****
  ***************************************************************************
  ***************************************************************************
  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/orangepipc/linphone-sdk
-- Cache values
CCACHE_PROGRAM:FILEPATH=/usr/bin/ccache
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
CMAKE_COLOR_MAKEFILE:BOOL=ON
CMAKE_CXX_COMPILER_LAUNCHER:PATH=/usr/bin/ccache
CMAKE_C_COMPILER_LAUNCHER:PATH=/usr/bin/ccache
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
CMAKE_INSTALL_MESSAGE:STRING=LAZY
CMAKE_INSTALL_PREFIX:PATH=/home/orangepipc/linphone-sdk/linphone-sdk/desktop
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
CMAKE_SKIP_RPATH:BOOL=NO
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
ENABLE_ADVANCED_IM:BOOL=OFF
ENABLE_AMRNB:BOOL=OFF
ENABLE_AMRWB:BOOL=OFF
ENABLE_ASSETS:BOOL=ON
ENABLE_BV16:BOOL=OFF
ENABLE_CAMERA2:BOOL=OFF
ENABLE_CODEC2:BOOL=OFF
ENABLE_CSHARP_WRAPPER:BOOL=OFF
ENABLE_CXX_WRAPPER:BOOL=OFF
ENABLE_DB_STORAGE:BOOL=ON
ENABLE_DEBUG_LOGS:BOOL=OFF
ENABLE_DOC:BOOL=OFF
ENABLE_EMBEDDED_OPENH264:BOOL=OFF
ENABLE_FFMPEG:BOOL=ON
ENABLE_G726:BOOL=OFF
ENABLE_G729:BOOL=OFF
ENABLE_G729B_CNG:BOOL=OFF
ENABLE_GPL_THIRD_PARTIES:BOOL=OFF
ENABLE_GSM:BOOL=ON
ENABLE_GTK_UI:BOOL=OFF
ENABLE_H263:BOOL=OFF
ENABLE_H263P:BOOL=OFF
ENABLE_HW_SANITIZER:BOOL=OFF
ENABLE_ILBC:BOOL=ON
ENABLE_ISAC:BOOL=OFF
ENABLE_JAVA_WRAPPER:BOOL=OFF
ENABLE_JAZZY_DOC:BOOL=OFF
ENABLE_JPEG:BOOL=ON
ENABLE_LIME:BOOL=OFF
ENABLE_LIME_X3DH:BOOL=OFF
ENABLE_MBEDTLS:BOOL=ON
ENABLE_MDNS:BOOL=OFF
ENABLE_MKV:BOOL=OFF
ENABLE_MPEG4:BOOL=OFF
ENABLE_NLS:BOOL=OFF
ENABLE_NON_FREE_CODECS:BOOL=ON
ENABLE_OPENH264:BOOL=ON
ENABLE_OPUS:BOOL=ON
ENABLE_PCAP:BOOL=OFF
ENABLE_POLARSSL:BOOL=OFF
ENABLE_QRCODE:BOOL=OFF
ENABLE_RELATIVE_PREFIX:BOOL=OFF
ENABLE_RTP_MAP_ALWAYS_IN_SDP:BOOL=OFF
ENABLE_SANITIZER:BOOL=OFF
ENABLE_SILK:BOOL=OFF
ENABLE_SOCI_MYSQL:BOOL=OFF
ENABLE_SPEEX:BOOL=ON
ENABLE_SQLITE:BOOL=ON
ENABLE_SRTP:BOOL=ON
ENABLE_SWIFT_WRAPPER:BOOL=OFF
ENABLE_SWIFT_WRAPPER_COMPILATION:BOOL=OFF
ENABLE_TOOLS:BOOL=ON
ENABLE_TUNNEL:BOOL=OFF
ENABLE_UNIT_TESTS:BOOL=OFF
ENABLE_UNMAINTAINED:BOOL=OFF
ENABLE_UPDATE_CHECK:BOOL=OFF
ENABLE_V4L:BOOL=ON
ENABLE_VCARD:BOOL=OFF
ENABLE_VIDEO:BOOL=ON
ENABLE_VPX:BOOL=ON
ENABLE_WEBRTC_AEC:BOOL=OFF
ENABLE_WEBRTC_AECM:BOOL=OFF
ENABLE_WEBRTC_VAD:BOOL=OFF
ENABLE_XML2:BOOL=ON
ENABLE_ZLIB:BOOL=ON
ENABLE_ZRTP:BOOL=ON
GIT_EXECUTABLE:FILEPATH=/usr/bin/git
LINPHONESDK_DOXYGEN_PROGRAM:FILEPATH=/usr/bin/doxygen
LINPHONESDK_NASM_PROGRAM:FILEPATH=/usr/bin/nasm
LINPHONESDK_PLATFORM:STRING=Desktop
LINPHONESDK_VERSION:STRING=4.5.11-pre.1+e58d901
LINPHONESDK_YASM_PROGRAM:FILEPATH=/usr/bin/yasm
PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3

上記オプションを指定しmakeファイル作成

$ cmake -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_C_FLAGS="-mfpu=neon" -DENABLE_OPENH264=ON  -DENABLE_LIME_X3DH=OFF -DENABLE_ADVANCED_IM=OFF -DENABLE_WEBRTC_AEC=OFF -DENABLE_UNIT_TESTS=OFF -DENABLE_MKV=OFF -DENABLE_FFMPEG=ON -DENABLE_CXX_WRAPPER=OFF -DENABLE_NON_FREE_CODECS=ON -DENABLE_VCARD=OFF -DENABLE_BV16=OFF -DENABLE_V4L=ON

ビルド

$ make

バイナリパッケージは以下のディレクトリに作成されます。

linphone-sdk/linphone-sdk/desktop/bin

最後にdesktopディレクトリを/optデイレクトリ等にコピーしてパスを通して下さい。

$ sudo mkdir /opt/linphone
$ sudo cp -r linphone-sdk/linphone-sdk/desktop /opt/linphone/

バイナリパス追加

$ sudo nano ~/.bashrc

export PATH=“/opt/linphone/desktop/bin:$PATH”

パスのリロードと確認

$ source ~/.bashrc
$ echo $PATH
/opt/linphone/desktop/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

ライブラリパス追加

$ sudo nano /etc/ld.so.conf.d/linphone.conf

/opt/linphone/desktop/lib

バージョン確認

$ linphonec --version
version: 4.5.0

起動してヘルプ表示

$ linphonec
Warning: video is disabled in linphonec, use -V or -C or -D to enable.
linphonec> help
Commands are:
---------------------------
      help	Print commands help.
    answer	Answer a call
autoanswer	Show/set auto-answer mode
      call	Call a SIP uri or number
     calls	Show all the current calls with their id and status.
 call-logs	Calls history
    camera	Send camera output for current call.
      chat	Chat with a SIP uri
conference	Create and manage an audio conference.
  duration	Print duration in seconds of the last call.
  firewall	Set firewall policy
    friend	Manage friends
      ipv6	Use IPV6
      mute	Mute microphone and suspend voice transmission.
       nat	Set nat address
     pause	pause a call
      play	play a wav file
playbackga	Adjust playback gain.
     proxy	Manage proxies
    record	record to a wav file
    resume	resume a call
 soundcard	Manage soundcards
      stun	Set stun server address
 terminate	Terminate a call
  transfer	Transfer a call to a specified destination.
    unmute	Unmute microphone and resume voice transmission.
    webcam	Manage webcams
      quit	Exit linphonec
---------------------------
Type 'help <command>' for more details or
     'help advanced' to list additional commands.
linphonec> 

自動起動については、上の投稿記事を参照願います。

GCC ARM Options

-mfpu=name

This specifies what floating-point hardware (or hardware emulation) is available on the target. Permissible names are: ‘auto’, ‘vfpv2’, ‘vfpv3’, ‘vfpv3-fp16’, ‘vfpv3-d16’, ‘vfpv3-d16-fp16’, ‘vfpv3xd’, ‘vfpv3xd-fp16’, ‘neon-vfpv3’, ‘neon-fp16’, ‘vfpv4’, ‘vfpv4-d16’, ‘fpv4-sp-d16’, ‘neon-vfpv4’, ‘fpv5-d16’, ‘fpv5-sp-d16’, ‘fp-armv8’, ‘neon-fp-armv8’ and ‘crypto-neon-fp-armv8’. Note that ‘neon’ is an alias for ‘neon-vfpv3’ and ‘vfp’ is an alias for ‘vfpv2’.

The setting ‘auto’ is the default and is special. It causes the compiler to select the floating-point and Advanced SIMD instructions based on the settings of -mcpu and -march.

If the selected floating-point hardware includes the NEON extension (e.g. -mfpu=neon), note that floating-point operations are not generated by GCC’s auto-vectorization pass unless -funsafe-math-optimizations is also specified. This is because NEON hardware does not fully implement the IEEE 754 standard for floating-point arithmetic (in particular denormal values are treated as zero), so the use of NEON instructions may lead to a loss of precision.

You can also set the fpu name at function level by using the target("fpu=") function attributes (see ARM Function Attributes) or pragmas (see Function Specific Option Pragmas).

mfpu options for Cortex-A processors
https://developer.arm.com/documentation/den0018/a/Compiling-NEON-Instructions/GCC-command-line-options/Option-to-specify-the-FPU

Orange Pi PC AllWinner H3 SoC

$ cat /proc/cpuinfo 
processor	: 0
model name	: ARMv7 Processor rev 5 (v7l)
BogoMIPS	: 22.85
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xc07
CPU revision	: 5

processor	: 1
model name	: ARMv7 Processor rev 5 (v7l)
BogoMIPS	: 22.85
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xc07
CPU revision	: 5

processor	: 2
model name	: ARMv7 Processor rev 5 (v7l)
BogoMIPS	: 22.85
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xc07
CPU revision	: 5

processor	: 3
model name	: ARMv7 Processor rev 5 (v7l)
BogoMIPS	: 22.85
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xc07
CPU revision	: 5

Hardware	: Allwinner sun8i Family
Revision	: 0000
Serial		: 02c00081b6111987