Raspberry Pi Cam Motion Detection (Draft)

enable cam

sudo raspi-config

-> 5 Interfacing Options -> P1 Camera -> enable

install motion

sudo apt install motion

enable video0 device

sudo modprobe bcm2835-v4l2

add “bcm2835-v4l2” to your /etc/modules file

create a ramdisk

sudo mkdir /mnt/ramdisk
sudo echo "ramfs   /mnt/ramdisk     ramfs   defaults        0       0" >> /etc/fstab
sudo mount /mnt/ramdisk
sudo chmod o+w /mnt/ramdisk

edit your config /etc/motion/motion.conf

#
# This config file was generated by motion 4.0


############################################################
# Daemon
############################################################

# Start in daemon (background) mode and release terminal (default: off)
daemon on

# File to store the process ID, also called pid file. (default: not defined)
process_id_file /var/run/motion/motion.pid

############################################################
# Basic Setup Mode
############################################################

# Start in Setup-Mode, daemon disabled. (default: off)
setup_mode off


# Use a file to save logs messages, if not defined stderr and syslog is used. (default: not defined)
logfile /var/log/motion/motion.log

# Level of log messages [1..9] (EMG, ALR, CRT, ERR, WRN, NTC, INF, DBG, ALL). (default: 6 / NTC)
log_level 6

# Filter to log messages by type (COR, STR, ENC, NET, DBL, EVT, TRK, VID, ALL). (default: ALL)
log_type all

###########################################################
# Capture device options
############################################################

# Videodevice to be used for capturing  (default /dev/video0)
# for FreeBSD default is /dev/bktr0
videodevice /dev/video0

# v4l2_palette allows one to choose preferable palette to be use by motion
# to capture from those supported by your videodevice. (default: 17)
# E.g. if your videodevice supports both V4L2_PIX_FMT_SBGGR8 and
# V4L2_PIX_FMT_MJPEG then motion will by default use V4L2_PIX_FMT_MJPEG.
# Setting v4l2_palette to 2 forces motion to use V4L2_PIX_FMT_SBGGR8
# instead.
#
# Values :
# V4L2_PIX_FMT_SN9C10X : 0  'S910'
# V4L2_PIX_FMT_SBGGR16 : 1  'BYR2'
# V4L2_PIX_FMT_SBGGR8  : 2  'BA81'
# V4L2_PIX_FMT_SPCA561 : 3  'S561'
# V4L2_PIX_FMT_SGBRG8  : 4  'GBRG'
# V4L2_PIX_FMT_SGRBG8  : 5  'GRBG'
# V4L2_PIX_FMT_PAC207  : 6  'P207'
# V4L2_PIX_FMT_PJPG    : 7  'PJPG'
# V4L2_PIX_FMT_MJPEG   : 8  'MJPEG'
# V4L2_PIX_FMT_JPEG    : 9  'JPEG'
# V4L2_PIX_FMT_RGB24   : 10 'RGB3'
# V4L2_PIX_FMT_SPCA501 : 11 'S501'
# V4L2_PIX_FMT_SPCA505 : 12 'S505'
# V4L2_PIX_FMT_SPCA508 : 13 'S508'
# V4L2_PIX_FMT_UYVY    : 14 'UYVY'
# V4L2_PIX_FMT_YUYV    : 15 'YUYV'
# V4L2_PIX_FMT_YUV422P : 16 '422P'
# V4L2_PIX_FMT_YUV420  : 17 'YU12'
#
v4l2_palette 17

# Tuner device to be used for capturing using tuner as source (default /dev/tuner0)
# This is ONLY used for FreeBSD. Leave it commented out for Linux
; tunerdevice /dev/tuner0

# The video input to be used (default: -1)
# Should normally be set to 0 or 1 for video/TV cards, and -1 for USB cameras
# Set to 0 for uvideo(4) on OpenBSD
input -1

# The video norm to use (only for video capture and TV tuner cards)
# Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL)
norm 0

# The frequency to set the tuner to (kHz) (only for TV tuner cards) (default: 0)
frequency 0

# Override the power line frequency for the webcam. (normally not necessary)
# Values: 
# -1 : Do not modify device setting
# 0  : Power line frequency Disabled
# 1  : 50hz
# 2  : 60hz
# 3  : Auto
power_line_frequency -1

# Rotate image this number of degrees. The rotation affects all saved images as
# well as movies. Valid values: 0 (default = no rotation), 90, 180 and 270.
rotate 0

# Image width (pixels). Valid range: Camera dependent, default: 352
#width 320
width 800

# Image height (pixels). Valid range: Camera dependent, default: 288
#height 240
height 608

# Maximum number of frames to be captured per second.
# Valid range: 2-100. Default: 100 (almost no limit).
#framerate 2
framerate 20

# Minimum time in seconds between capturing picture frames from the camera.
# Default: 0 = disabled - the capture rate is given by the camera framerate.
# This option is used when you want to capture images at a rate lower than 2 per second.
minimum_frame_time 0

# URL to use if you are using a network camera, size will be autodetected (incl http:// ftp:// mjpg:// rtsp:// mjpeg:// or file:///)
# Must be a URL that returns single jpeg pictures or a raw mjpeg stream. A trailing slash may be required for some cameras.
# Default: Not defined
; netcam_url value

# Username and password for network camera (only if required). Default: not defined
# Syntax is user:password
; netcam_userpass value

# The setting for keep-alive of network socket, should improve performance on compatible net cameras.
# off:   The historical implementation using HTTP/1.0, closing the socket after each http request.
# force: Use HTTP/1.0 requests with keep alive header to reuse the same connection.
# on:    Use HTTP/1.1 requests that support keep alive as default.
# Default: off
netcam_keepalive off

# URL to use for a netcam proxy server, if required, e.g. "http://myproxy".
# If a port number other than 80 is needed, use "http://myproxy:1234".
# Default: not defined
; netcam_proxy value

# Set less strict jpeg checks for network cameras with a poor/buggy firmware.
# Default: off
netcam_tolerant_check off

# RTSP connection uses TCP to communicate to the camera. Can prevent image corruption.
# Default: on
rtsp_uses_tcp on

# Name of camera to use if you are using a camera accessed through OpenMax/MMAL
# Default: Not defined
; mmalcam_name vc.ril.camera

# Camera control parameters (see raspivid/raspistill tool documentation)
# Default: Not defined
; mmalcam_control_params -hf
#mmalcam_control_params -ex sports -mm matrix

# Use the still camera output - limits frame rate, but can show more of frame Default: off
#mmalcam_use_still off

# Activate a secondary buffer with larger resolution Default: 0 (off)
#mmalcam_secondary_buffer_upscale 2

# Pre-encode the secondary buffer to this jpeg quality Default: 0 (off), range 1-100
#mmalcam_secondary_buffer_jpeg 100

# Path to file where raw dump of camera YUV capture will be written (for testing, profiling & debugging) Default: Not defined
; mmalcam_raw_capture_file value

# Let motion regulate the brightness of a video device (default: off).
# The auto_brightness feature uses the brightness option as its target value.
# If brightness is zero auto_brightness will adjust to average brightness value 128.
# Only recommended for cameras without auto brightness
auto_brightness off
#auto_brightness on

# Set the initial brightness of a video device.
# If auto_brightness is enabled, this value defines the average brightness level
# which Motion will try and adjust to.
# Valid range 0-255, default 0 = disabled
brightness 0

# Set the contrast of a video device.
# Valid range 0-255, default 0 = disabled
contrast 0

# Set the saturation of a video device.
# Valid range 0-255, default 0 = disabled
saturation 0

# Set the hue of a video device (NTSC feature).
# Valid range 0-255, default 0 = disabled
hue 0


############################################################
# Round Robin (multiple inputs on same video device name)
############################################################

# Number of frames to capture in each roundrobin step (default: 1)
roundrobin_frames 1

# Number of frames to skip before each roundrobin step (default: 1)
roundrobin_skip 1

# Try to filter out noise generated by roundrobin (default: off)
switchfilter off


############################################################
# Motion Detection Settings:
############################################################

# Threshold for number of changed pixels in an image that
# triggers motion detection (default: 1500)
;threshold 1500
threshold 450

# Automatically tune the threshold down if possible (default: off)
threshold_tune off

# Noise threshold for the motion detection (default: 32)
noise_level 32

# Automatically tune the noise threshold (default: on)
noise_tune on

# Despeckle motion image using (e)rode or (d)ilate or (l)abel (Default: not defined)
# Recommended value is EedDl. Any combination (and number of) of E, e, d, and D is valid.
# (l)abeling must only be used once and the 'l' must be the last letter.
# Comment out to disable
despeckle_filter EedDl

# Detect motion in predefined areas (1 - 9). Areas are numbered like that:  1 2 3
# A script (on_area_detected) is started immediately when motion is         4 5 6
# detected in one of the given areas, but only once during an event.        7 8 9
# One or more areas can be specified with this option. Take care: This option
# does NOT restrict detection to these areas! (Default: not defined)
; area_detect value

# PGM file to use as a sensitivity mask.
# Full path name to. (Default: not defined)
; mask_file value

# Dynamically create a mask file during operation (default: 0)
# Adjust speed of mask changes from 0 (off) to 10 (fast)
smart_mask_speed 0

# Ignore sudden massive light intensity changes given as a percentage of the picture
# area that changed intensity. Valid range: 0 - 100 , default: 0 = disabled
lightswitch 0

# Picture frames must contain motion at least the specified number of frames
# in a row before they are detected as true motion. At the default of 1, all
# motion is detected. Valid range: 1 to thousands, recommended 1-5
minimum_motion_frames 1

# Specifies the number of pre-captured (buffered) pictures from before motion
# was detected that will be output at motion detection.
# Recommended range: 0 to 5 (default: 0)
# Do not use large values! Large values will cause Motion to skip video frames and
# cause unsmooth movies. To smooth movies use larger values of post_capture instead.
#pre_capture 0
pre_capture 1

# Number of frames to capture after motion is no longer detected (default: 0)
#post_capture 0
post_capture 5

# Event Gap is the seconds of no motion detection that triggers the end of an event.
# An event is defined as a series of motion images taken within a short timeframe.
# Recommended value is 60 seconds (Default). The value -1 is allowed and disables
# events causing all Motion to be written to one single movie file and no pre_capture.
# If set to 0, motion is running in gapless mode. Movies don't have gaps anymore. An
# event ends right after no more motion is detected and post_capture is over.
event_gap 60

# Maximum length in seconds of a movie
# When value is exceeded a new movie file is created. (Default: 0 = infinite)
max_movie_time 0

# Always save images even if there was no motion (default: off)
emulate_motion off


############################################################
# Image File Output
############################################################

# Output 'normal' pictures when motion is detected (default: on)
# Valid values: on, off, first, best, center
# When set to 'first', only the first picture of an event is saved.
# Picture with most motion of an event is saved when set to 'best'.
# Picture with motion nearest center of picture is saved when set to 'center'.
# Can be used as preview shot for the corresponding movie.
output_pictures on

# Output pictures with only the pixels moving object (ghost images) (default: off)
output_debug_pictures off

# The quality (in percent) to be used by the jpeg compression (default: 75)
;quality 75
quality 100

# Type of output images
# Valid values: jpeg, ppm (default: jpeg)
picture_type jpeg

############################################################
# FFMPEG related options
# Film (movies) file output, and deinterlacing of the video input
# The options movie_filename and timelapse_filename are also used
# by the ffmpeg feature
############################################################

# Use ffmpeg to encode movies in realtime (default: off)
ffmpeg_output_movies on

# Use ffmpeg to make movies with only the pixels moving
# object (ghost images) (default: off)
ffmpeg_output_debug_movies off

# Use ffmpeg to encode a timelapse movie
# Default value 0 = off - else save frame every Nth second
ffmpeg_timelapse 0

# The file rollover mode of the timelapse video
# Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual
ffmpeg_timelapse_mode daily

# Bitrate to be used by the ffmpeg encoder (default: 400000)
# This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled)
#ffmpeg_bps 400000
ffmpeg_bps 500000

# Enables and defines variable bitrate for the ffmpeg encoder.
# ffmpeg_bps is ignored if variable bitrate is enabled.
# Valid values: 0 (default) = fixed bitrate defined by ffmpeg_bps,
# or the range 1 - 100 where 1 means worst quality and 100 is best.
ffmpeg_variable_bitrate 0

# Codec to used by ffmpeg for the video compression.
# Timelapse videos have two options.
#   mpg - Creates mpg file with mpeg-2 encoding.
#     If motion is shutdown and restarted, new pics will be appended
#     to any previously created file with name indicated for timelapse.
#   mpeg4 - Creates avi file with the default encoding.
#     If motion is shutdown and restarted, new pics will create a
#     new file with the name indicated for timelapse.
# Supported formats are:
# mpeg4 or msmpeg4 - gives you files with extension .avi
# msmpeg4 is recommended for use with Windows Media Player because
# it requires no installation of codec on the Windows client.
# swf - gives you a flash film with extension .swf
# flv - gives you a flash video with extension .flv
# ffv1 - FF video codec 1 for Lossless Encoding
# mov - QuickTime
# mp4 - MPEG-4 Part 14 H264 encoding
# mkv - Matroska H264 encoding
# hevc - H.265 / HEVC (High Efficiency Video Coding)
ffmpeg_video_codec mpeg4

# When creating videos, should frames be duplicated in order 
# to keep up with the requested frames per second
# (default: true)
ffmpeg_duplicate_frames true

############################################################
# SDL Window
############################################################

# Number of motion thread to show in SDL Window (default: 0 = disabled)
#sdl_threadnr 0

############################################################
# External pipe to video encoder
# Replacement for FFMPEG builtin encoder for ffmpeg_output_movies only.
# The options movie_filename and timelapse_filename are also used
# by the ffmpeg feature
#############################################################

# Bool to enable or disable extpipe (default: off)
use_extpipe off

# External program (full path and opts) to pipe raw video to
# Generally, use '-' for STDIN...
;extpipe mencoder -demuxer rawvideo -rawvideo w=%w:h=%h:i420 -ovc x264 -x264encopts bframes=4:frameref=1:subq=1:scenecut=-1:nob_adapt:threads=1:keyint=1000:8x8dct:vbv_bufsize=4000:crf=24:partitions=i8x8,i4x4:vbv_maxrate=800:no-chroma-me -vf denoise3d=16:12:48:4,pp=lb -of   avi -o %f.avi - -fps %fps
;extpipe x264 - --input-res %wx%h --fps %fps --bitrate 2000 --preset ultrafast --quiet -o %f.mp4
;extpipe mencoder -demuxer rawvideo -rawvideo w=%w:h=%h:fps=%fps -ovc x264 -x264encopts preset=ultrafast -of lavf -o %f.mp4 - -fps %fps
;extpipe ffmpeg -y -f rawvideo -pix_fmt yuv420p -video_size %wx%h -framerate %fps -i pipe:0 -vcodec libx264 -preset ultrafast -f mp4 %f.mp4


############################################################
# Snapshots (Traditional Periodic Webcam File Output)
############################################################

# Make automated snapshot every N seconds (default: 0 = disabled)
snapshot_interval 0


############################################################
# Text Display
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second, %T = HH:MM:SS,
# %v = event, %q = frame number, %t = camera id number,
# %D = changed pixels, %N = noise level, \n = new line,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event - do not use with text_event!
# You can put quotation marks around the text to allow
# leading spaces
############################################################

# Locate and draw a box around the moving object.
# Valid values: on, off, preview (default: off)
# Set to 'preview' will only draw a box in preview_shot pictures.
;locate_motion_mode off
locate_motion_mode on

# Set the look and style of the locate box if enabled.
# Valid values: box, redbox, cross, redcross (default: box)
# Set to 'box' will draw the traditional box.
# Set to 'redbox' will draw a red box.
# Set to 'cross' will draw a little cross to mark center.
# Set to 'redcross' will draw a little red cross to mark center.
;locate_motion_style box
locate_motion_style redbox

# Draws the timestamp using same options as C function strftime(3)
# Default: %Y-%m-%d\n%T = date in ISO format and time in 24 hour clock
# Text is placed in lower right corner
text_right %Y-%m-%d\n%T-%q

# Draw a user defined text on the images using same options as C function strftime(3)
# Default: Not defined = no text
# Text is placed in lower left corner
; text_left CAMERA %t
text_left Position xyz

# Draw the number of changed pixed on the images (default: off)
# Will normally be set to off except when you setup and adjust the motion settings
# Text is placed in upper right corner
;text_changes off
text_changes on

# This option defines the value of the special event conversion specifier %C
# You can use any conversion specifier in this option except %C. Date and time
# values are from the timestamp of the first image in the current event.
# Default: %Y%m%d%H%M%S
# The idea is that %C can be used filenames and text_left/right for creating
# a unique identifier for each event.
text_event %Y%m%d%H%M%S

# Draw characters at twice normal size on images. (default: off)
;text_double off
text_double on


# Text to include in a JPEG EXIF comment
# May be any text, including conversion specifiers.
# The EXIF timestamp is included independent of this text.
;exif_text %i%J/%K%L

############################################################
# Target Directories and filenames For Images And Films
# For the options snapshot_, picture_, movie_ and timelapse_filename
# you can use conversion specifiers
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second,
# %v = event, %q = frame number, %t = camera id number,
# %D = changed pixels, %N = noise level,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event
# Quotation marks round string are allowed.
############################################################

# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
;target_dir /var/lib/motion
target_dir /mnt/ramdisk

# File path for snapshots (jpeg or ppm) relative to target_dir
# Default: %v-%Y%m%d%H%M%S-snapshot
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-snapshot
# File extension .jpg or .ppm is automatically added so do not include this.
# Note: A symbolic link called lastsnap.jpg created in the target_dir will always
# point to the latest snapshot, unless snapshot_filename is exactly 'lastsnap'
;snapshot_filename %v-%Y%m%d%H%M%S-snapshot
snapshot_filename %v %Y-%m-%d-%H-%M-xyz

# File path for motion triggered images (jpeg or ppm) relative to target_dir
# Default: %v-%Y%m%d%H%M%S-%q
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q
# File extension .jpg or .ppm is automatically added so do not include this
# Set to 'preview' together with best-preview feature enables special naming
# convention for preview shots. See motion guide for details
;picture_filename %v-%Y%m%d%H%M%S-%q
picture_filename xyz_%H-%M-%S_%q

# File path for motion triggered ffmpeg films (movies) relative to target_dir
# Default: %v-%Y%m%d%H%M%S
# File extensions(.mpg .avi) are automatically added so do not include them
movie_filename %v-%Y%m%d%H%M%S

# File path for timelapse movies relative to target_dir
# Default: %Y%m%d-timelapse
# File extensions(.mpg .avi) are automatically added so do not include them
timelapse_filename %Y%m%d-timelapse

############################################################
# Global Network Options
############################################################
# Enable IPv6 (default: off)
ipv6_enabled off

############################################################
# Live Stream Server
############################################################

# The mini-http server listens to this port for requests (default: 0 = disabled)
stream_port 8081

# Quality of the jpeg (in percent) images produced (default: 50)
;stream_quality 50
stream_quality 100

# Output frames at 1 fps when no motion is detected and increase to the
# rate given by stream_maxrate when motion is detected (default: off)
stream_motion off

# Maximum framerate for stream streams (default: 1)
;stream_maxrate 1
stream_maxrate 20

# Restrict stream connections to localhost only (default: on)
;stream_localhost on
stream_localhost off

# Limits the number of images per connection (default: 0 = unlimited)
# Number can be defined by multiplying actual stream rate by desired number of seconds
# Actual stream rate is the smallest of the numbers framerate and stream_maxrate
stream_limit 0

# Set the authentication method (default: 0)
# 0 = disabled
# 1 = Basic authentication
# 2 = MD5 digest (the safer authentication)
stream_auth_method 0

# Authentication for the stream. Syntax username:password
# Default: not defined (Disabled)
; stream_authentication username:password

# Percentage to scale the stream image for preview
# Default: 25
; stream_preview_scale 25

# Have stream preview image start on a new line
# Default: no
; stream_preview_newline no

############################################################
# HTTP Based Control
############################################################

# TCP/IP port for the http server to listen on (default: 0 = disabled)
webcontrol_port 8080

# Restrict control connections to localhost only (default: on)
;webcontrol_localhost on
webcontrol_localhost off

# Output for http server, select off to choose raw text plain (default: on)
webcontrol_html_output on

# Authentication for the http based control. Syntax username:password
# Default: not defined (Disabled)
; webcontrol_authentication username:password


############################################################
# Tracking (Pan/Tilt)
#############################################################

# Type of tracker (0=none (default), 1=stepper, 2=iomojo, 3=pwc, 4=generic, 5=uvcvideo, 6=servo)
# The generic type enables the definition of motion center and motion size to
# be used with the conversion specifiers for options like on_motion_detected
track_type 0

# Enable auto tracking (default: off)
track_auto off

# Serial port of motor (default: none)
;track_port /dev/ttyS0

# Motor number for x-axis (default: 0)
;track_motorx 0

# Set motorx reverse (default: 0)
;track_motorx_reverse 0

# Motor number for y-axis (default: 0)
;track_motory 1

# Set motory reverse (default: 0)
;track_motory_reverse 0

# Maximum value on x-axis (default: 0)
;track_maxx 200

# Minimum value on x-axis (default: 0)
;track_minx 50

# Maximum value on y-axis (default: 0)
;track_maxy 200

# Minimum value on y-axis (default: 0)
;track_miny 50

# Center value on x-axis (default: 0)
;track_homex 128

# Center value on y-axis (default: 0)
;track_homey 128

# ID of an iomojo camera if used (default: 0)
track_iomojo_id 0

# Angle in degrees the camera moves per step on the X-axis
# with auto-track (default: 10)
# Currently only used with pwc type cameras
track_step_angle_x 10

# Angle in degrees the camera moves per step on the Y-axis
# with auto-track (default: 10)
# Currently only used with pwc type cameras
track_step_angle_y 10

# Delay to wait for after tracking movement as number
# of picture frames (default: 10)
track_move_wait 10

# Speed to set the motor to (stepper motor option) (default: 255)
track_speed 255

# Number of steps to make (stepper motor option) (default: 40)
track_stepsize 40


############################################################
# External Commands, Warnings and Logging:
# You can use conversion specifiers for the on_xxxx commands
# %Y = year, %m = month, %d = date,
# %H = hour, %M = minute, %S = second,
# %v = event, %q = frame number, %t = camera id number,
# %D = changed pixels, %N = noise level,
# %i and %J = width and height of motion area,
# %K and %L = X and Y coordinates of motion center
# %C = value defined by text_event
# %f = filename with full path
# %n = number indicating filetype
# Both %f and %n are only defined for on_picture_save,
# on_movie_start and on_movie_end
# Quotation marks round string are allowed.
############################################################

# Do not sound beeps when detecting motion (default: on)
# Note: Motion never beeps when running in daemon mode.
quiet on

# Command to be executed when an event starts. (default: none)
# An event starts at first motion detected after a period of no motion defined by event_gap
; on_event_start value

# Command to be executed when an event ends after a period of no motion
# (default: none). The period of no motion is defined by option event_gap.
; on_event_end value

# Command to be executed when a picture (.ppm|.jpg) is saved (default: none)
# To give the filename as an argument to a command append it with %f
; on_picture_save value

# Command to be executed when a motion frame is detected (default: none)
; on_motion_detected value
#on_motion_detected /home/pi/mmal/motion-mmal/copy
on_motion_detected /home/pi/motion-detect.sh

# Command to be executed when motion in a predefined area is detected
# Check option 'area_detect'.   (default: none)
; on_area_detected value

# Command to be executed when a movie file (.mpg|.avi) is created. (default: none)
# To give the filename as an argument to a command append it with %f
; on_movie_start value

# Command to be executed when a movie file (.mpg|.avi) is closed. (default: none)
# To give the filename as an argument to a command append it with %f
; on_movie_end value

# Command to be executed when a camera can't be opened or if it is lost
# NOTE: There is situations when motion don't detect a lost camera!
# It depends on the driver, some drivers dosn't detect a lost camera at all
# Some hangs the motion thread. Some even hangs the PC! (default: none)
; on_camera_lost value

#####################################################################
# Common Options for database features.
# Options require database options to be active also.
#####################################################################

# Log to the database when creating motion triggered picture file  (default: on)
; sql_log_picture on

# Log to the database when creating a snapshot image file (default: on)
; sql_log_snapshot on

# Log to the database when creating motion triggered movie file (default: off)
; sql_log_movie off

# Log to the database when creating timelapse movies file (default: off)
; sql_log_timelapse off

# SQL query string that is sent to the database
# Use same conversion specifiers has for text features
# Additional special conversion specifiers are
# %n = the number representing the file_type
# %f = filename with full path
# Default value:
# Create tables :
##
# Mysql
# CREATE TABLE security (camera int, filename char(80) not null, frame int, file_type int, time_stamp timestamp(14), event_time_stamp timestamp(14));
#
# Postgresql
# CREATE TABLE security (camera int, filename char(80) not null, frame int, file_type int, time_stamp timestamp without time zone, event_time_stamp timestamp without time zone);
#
# insert into security(camera, filename, frame, file_type, time_stamp, text_event) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')
; sql_query insert into security(camera, filename, frame, file_type, time_stamp, event_time_stamp) values('%t', '%f', '%q', '%n', '%Y-%m-%d %T', '%C')


############################################################
# Database Options
############################################################

# database type : mysql, postgresql, sqlite3 (default : not defined)
; database_type value

# database to log to (default: not defined)
# for sqlite3, the full path and name for the database.
; database_dbname value

# The host on which the database is located (default: localhost)
; database_host value

# User account name for database (default: not defined)
; database_user value

# User password for database (default: not defined)
; database_password value

# Port on which the database is located
#  mysql 3306 , postgresql 5432 (default: not defined)
; database_port value

# Database wait time in milliseconds for locked database to
# be unlocked before returning database locked error (default 0)
; database_busy_timeout 0



############################################################
# Video Loopback Device (vloopback project)
############################################################

# Output images to a video4linux loopback device
# The value '-' means next available (default: not defined)
; video_pipe value

# Output motion images to a video4linux loopback device
# The value '-' means next available (default: not defined)
; motion_video_pipe value


##############################################################
# camera config files - One for each camera.
# Except if only one camera - You only need this config file.
# If you have more than one camera you MUST define one camera
# config file for each camera in addition to this config file.
##############################################################

# Remember: If you have more than one camera you must have one
# camera file for each camera. E.g. 2 cameras requires 3 files:
# This motion.conf file AND camera1.conf and camera2.conf.
# Only put the options that are unique to each camera in the
# camera config files.
; camera /etc/motion/camera1.conf
; camera /etc/motion/camera2.conf
; camera /etc/motion/camera3.conf
; camera /etc/motion/camera4.conf


##############################################################
# Camera config directory - One for each camera.
##############################################################
#
; camera_dir /etc/motion/conf.d

enable daemon

set start_motion_daemon=yes in /etc/default/motion file

enable service

sudo systemctl enable motion.service
sudo systemctl start motion.service

Raspberry Pi 1-Wire Sensor

enable 1-Wire

sudo raspi-config

5 Interfacing Options -> P7 1-Wire -> enable

connect your 1-Wire device (here DS18b20)
Pin 1 (black) GND
Pin 2 (yellow) DATA (RPi GPIO 4 / Pin 7)
Pin 3 (red) VCC(+3.3V)
Connect Pin 2 & Pin 3 with 4,7 kOhm resistor (compare)

search for your device

ls /sys/bus/w1/devices/

e.g. 28-041650c7e4ff

get sensor value

temparray=($(cat /sys/bus/w1/devices/28-041650c7e4ff/w1_slave)) && echo ${temparray[21]} | cut -c3-7

Raspberry Pi Sensors

bash file

#!/bin/bash
CPUtemp=$(cat /sys/class/thermal/thermal_zone0/temp)
echo "CPU temp=$CPUtemp'mC"
GPUtemp=$(/opt/vc/bin/vcgencmd measure_temp)
echo "GPU $GPUtemp"
echo "CPU freq=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq)"
echo "CPU maxf=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq)"
echo "GPU RAM $(/opt/vc/bin/vcgencmd get_config sdram_freq)"
echo "GPU Video core $(/opt/vc/bin/vcgencmd get_config core_freq)"
echo "GPU 3D core $(/opt/vc/bin/vcgencmd get_config gpu_freq)"

to steadily view run

watch -n1 file.bash

Raspberry Pi Raspbian Stretch

download
https://www.raspberrypi.org/downloads/raspbian/

verify sha256sum

52e68130c152895905abe66279dd9feaa68091ba55619f5b900f2ebed381427b  2017-08-16-raspbian-stretch-lite.zip
b6bffeb28e11d45f26cb0463d124d3429d527005a9b577aab36a51ad6f4d942c  2017-08-16-raspbian-stretch-lite.zip.torrent
309f355ad5ca3e15d4866dfa16f17e4a5412632fec00976fe270d59516668849  2017-08-16-raspbian-stretch.zip
84e5951d0c2867f878778a52feb667b28b6a2bed80e68d30ffb00d6818795ef9  2017-08-16-raspbian-stretch.zip.torrent

flash sd card

dd if=2017-08-16-raspbian-stretch.img of=/dev/mmblk0 bs=1M

configure raspbian

sudo raspi-config

enable ssh, spi, serial, 1-wire, …

FreeBSD 11.1 with Gnome 3

update

pkg update
pkg upgrade

su rights for user

pw groupmod wheel -m [user]

install

pkg install xorg gdm gnome3 nano htop mtr firefox

Xorg config

pkg install xf86-video-intel
Xorg -configure
mv xorg.conf.new /etc/X11/xorg.conf

add the following to /etc/rc.conf

gnome_enable="YES"
moused_enable="YES"
dbus_enable="YES"
hald_enable="YES"
gdm_enable="YES"

finally reboot

FreeBSD 11.1

https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/

SHA512 (FreeBSD-11.1-RELEASE-amd64-bootonly.iso) = aa5891b9ab0bd2a1c13fdffd3ab80998f3d17bc54afeae0c183cf286d746f9b5eb8e1bd6b1a5598aeb36419fd1ca0becfa02d3f9854f382b1d7ad0cc2423f47f
SHA512 (FreeBSD-11.1-RELEASE-amd64-bootonly.iso.xz) = d267e66a434c40ed409862ecdbe1610f3ced7a11cfc6f3b4ac59bd849d169169982ab8b028681c6daf30f6cf0815aec3b3c89fdfb1c442bef193ece1143dc605
SHA512 (FreeBSD-11.1-RELEASE-amd64-disc1.iso) = cd35b6b406724416c436ae5eb73943d8248e267aee608c0539a969ae79e0201e6590a9ad7550162fecfb21d577ff40edafbf934ab45fda61c8f3d2c30c1f1e05
SHA512 (FreeBSD-11.1-RELEASE-amd64-disc1.iso.xz) = 68fd11b8ea4c109b658078b667114a4ac2abe5c9c82ae402ac42df5de35d8a2950935947fc08394b5760346afba8e043ad077322bca00d714b2b569371193496
SHA512 (FreeBSD-11.1-RELEASE-amd64-dvd1.iso) = a6aa4363270c14620a291baf4db377785dbccfa9c92c1c1d5f01453400259f63de4ba0b033ec6f415056fc7e563d99cb327c869c95f68a1871baf86bfe7e7024
SHA512 (FreeBSD-11.1-RELEASE-amd64-dvd1.iso.xz) = 2c6c60839441f95f2f849aedf0c672366f33e35f2b81be0c6ca0b35c3fd7abd339f6faf1ef3e933322ff1d2879f005dc8d9378fb2b46c357e3d01f499442c0cc
SHA512 (FreeBSD-11.1-RELEASE-amd64-memstick.img) = f42b04c4db7b783bfb5758e5f32ebba2db2bd2d8f57e1153dd29ea71f3d758e9995c89017e2c230291b7a93d4d7b434a5c3d6a9e685431170707c146de2b4284
SHA512 (FreeBSD-11.1-RELEASE-amd64-memstick.img.xz) = 5435027ea310fb72f521b4580e9c20b89f917f2eb611f97f55db94ddce251ad3949500f0ad3aa2e8734a3f61766d7276ff2a9874533d737f7f64618013cf2f2d
SHA512 (FreeBSD-11.1-RELEASE-amd64-mini-memstick.img) = d88a76291a4674c54c610756dd45d4eb8bfbfedfb3b036be79d1e70832f93d5a9b96252b4d2f7aac7b701ee79e7faabe06b3caa8883bd5d7f8cd2aaa9930427b
SHA512 (FreeBSD-11.1-RELEASE-amd64-mini-memstick.img.xz) = dbe066cb726b375eebca397aff12d18d6e48ad6c84b776253aabc2bbdff8fb9742e17fb68356581b0b20709002fdf9c3c77eccfd9c0c745e8f93a830264148a5

https://download.freebsd.org/ftp/releases/i386/i386/ISO-IMAGES/11.1/

SHA512 (FreeBSD-11.1-RELEASE-i386-bootonly.iso) = 44a9d31942c7dadb4db658a2e0945d99435db40953a3e3d9d79256f450cbd908b2051e923665502525435179da12c147a357759659eaa90ca2503e47645457cf
SHA512 (FreeBSD-11.1-RELEASE-i386-bootonly.iso.xz) = ce93658f24a29870f80b93831020192132ea19e024af84d9b22aa9fb457424f8f915215ec2ce5e0592af98ce1214f0eea154a67596081822637e937efc64553c
SHA512 (FreeBSD-11.1-RELEASE-i386-disc1.iso) = bf7839ff0a2db9821f65e59946c4e647f52a88c899b8a1066c8ddbbc3c23accd1f569a4f90add717af9a5467644a530e1a8c5b18dd1b722a623f1d013e766348
SHA512 (FreeBSD-11.1-RELEASE-i386-disc1.iso.xz) = 26c71fbdccb55ac5289da8169e203a75a640e5bda386431ee428b297fc4843ff6bea04efb026f9dc5e7e4066e7b59d830e928d0e3dc7be089892b6f7a7eaa746
SHA512 (FreeBSD-11.1-RELEASE-i386-dvd1.iso) = 082ebce2665b2da58e12e56c5fa7cc0cd92934fdf99b38132a0ba6ff540a8a0ab6c3c03971312946d5c23aff8f2b0855582a3a0c9beb6e4db3472433113cb06f
SHA512 (FreeBSD-11.1-RELEASE-i386-dvd1.iso.xz) = 0d3cfe5490860f2f41393e84fc598d0f1ac8f6195ebfaed01775822f36f18e093f2f2c8f98939b8c4f42f371f89d190c7a503dc225267ee1f4970deafe1f65b8
SHA512 (FreeBSD-11.1-RELEASE-i386-memstick.img) = 4402c09dec1799670fd8393c9732c416a3f70d10dac8db725531232258cb4ecd209fe234107b82b5c41045fd8bec7220192049056cd88858a8d69a61a048dc52
SHA512 (FreeBSD-11.1-RELEASE-i386-memstick.img.xz) = 050cfac52db078f3e6ce42e04a1b9c4f45a4f7d3d0831e34e4cfad8dfb3a2cc3735e2b1e74663efe39b331dacde7278bc5ef6a89bce566afb9f0dd52c1701932
SHA512 (FreeBSD-11.1-RELEASE-i386-mini-memstick.img) = fd41b778870deafb1819595918b4bcde03addb1ff2dec526825332afd85d5b4ec4cfbb107c40f4f17ca203f2d3d14fb550f97e0eb6085511ea0b42ae26b18a7f
SHA512 (FreeBSD-11.1-RELEASE-i386-mini-memstick.img.xz) = f231cd32c1b63b243659ea24a037d38026356e834c9df98aaeac14ca7dd74f652fa76a89a6f731a89b8cb73ab82234c91095dd4018591ba3aca099178e35e9dc

LineageOS 14.1 Android 7.x Nougat auf ZUK Z2 installieren

unter Debian/Ubuntu programme installieren

apt install android-tools-adb android-tools-fastboot

unter Arch programme installieren

pacman -S android-tools

unlock bootrom:

Menü -> Settings -> About -> ZUI version so oft drücken bis man Developer ist.
Dann Menü -> Settings -> Advanced settings -> Developers Option und dort USB debugging aktivieren.

adb devices
adb reboot bootloader
fastboot -i 0x2b4c flash unlock unlock_bootloader.img
fastboot -i 0x2b4c oem unlock-go

3b74e1fd96816af21c10ad54a28433ae1f7717d4a25ecb29be828cb60c279487f7096742b4a2011a9801f4a367c6912038845a5b20c16ccdcf2719673f76c61f unlock_bootloader.img


flash recovery TWRP:

ba72edaae8bc1eb486174f72830b2736 twrp-3.2.1-0-z2_plus.img
4378a294424d69efdbc0175e8768abcde273838b twrp-3.1.1-0-z2_plus.img

gpg Fingerabdruck 9570 7D42 307C 9D41 D09B F709 1D85 97D7 891A 43DF der Signatur von TeamWin <admin@teamw.in>

gpg --verify twrp-3.1.1-0-z2_plus.img.asc

flashen

adb reboot bootloader
fastboot flash recovery twrp-3.1.1-0-z2_plus.img

flash Android lineage (Source)

Recovery starten und lineage flashen

adb reboot recovery

system, cache und dalvik wipen
wenn man das erste mal LineageOS 14.1 flashed, dann auch data wipen

35ce18e8c8b7c46948bd987169959d12 lineage-14.1-20171120_144118-UNOFFICIAL-z2_plus.zip
f61a509456e97788845c9d2563e445ad lineage-14.1-20170811-UNOFFICIAL-z2_plus.zip
d2ae22f3da9d899d5e8754431b23f25e lineage-14.1-20170722-UNOFFICIAL-z2_plus.zip
1a3e3563efe2a3427014425306e433a3 lineage-14.1-20170714-UNOFFICIAL-z2_plus.zip


F-Droid
943f2edf663737a56f15f55739bcf148 FDroid.apk
0f31429a28619e824669c3e5144fcdd4 FDroid.apk

Fedora 26

Download

https://getfedora.org/

Fedora-Workstation-26-1.5-x86_64-CHECKSUM
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# Fedora-Workstation-netinst-x86_64-26-1.5.iso: 505413632 bytes
# Fedora-Workstation-Live-x86_64-26-1.5.iso: 1563426816 bytes
# Fedora-Workstation-ostree-x86_64-26-1.5.iso: 1769996288 bytes
SHA256 (Fedora-Workstation-netinst-x86_64-26-1.5.iso) = f514040516dc512119aad6316746569b231e157724d4f257af76825c483e1598
SHA256 (Fedora-Workstation-Live-x86_64-26-1.5.iso) = 6520f7a4daef76e68b73d41ae7cfbc743fc46b68317a4d207eb7ee39bcd43a7f
SHA256 (Fedora-Workstation-ostree-x86_64-26-1.5.iso) = ada01ed9db4c0ad63613c4d14e1463af7e9ba5eb9e455221a38af10cd77c9b16
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZX6UbAAoJEIEqa0tk2rhd0Q8P/RO3zAYC953pkIQPtUX/pOmL
g667K+WxkzGkr5AtelgJJ6d/ou9mROmQMP0yprKPFNV1T3LUuVwMONpOt+iS6XlW
c/EK3hvl2vDndiJJAPpicLs4ikvoXyD0yMzOWL10f/mFr4STwjSV7iIWJBJlPiKo
gHUF+17lEQ4VZ5XmvBMZos8fYgNRTbxPZ5Cp6QW0n92HUyBVLEVjRdtpcuemb0zx
OslAADXlMGttAZEt3/x5JFZh06TFanU6zBP8jMwCUXc/cXyvhj0CnjZaJmSe/bbP
TpDJBbMsI1UsUbJ6fen9twmaPNkmMEw8ywUKrnuNe+uuasKmWRkBNwcOL6lxWEJh
mkqeMoXF5/sw7tu2YwDh8574du80E+AXZTSn6gwRbI3yOM+DV/qiFKSRKTLN+PG5
voJ9MCHm/BlzFYkwcS+6GfcSS7Sede8ffVVGkp0WSJD1/qTI+Ov/AcRvl6mR+4Rb
0zbdf3EjY/pw1vfYgEpBsiRQAf8bL4QWKNVcvz75QcfMzvQN9/9UyoVKlfSrK0UX
Vf1gsHQ5zyR8bEE1kProxUdvvVufNUb3k0iBOmj+R8wsiCPcBhrtuBxg8+Jc8ozk
fuGG4TKlqrlH0fPjZ04A18fP4CVBlpBWptYbkHKL6BzdvyGi64WriS1ovTxKIiWY
UBVD1d/r0sJLAB6+micI
=hynQ
-----END PGP SIGNATURE-----

Fedora-Workstation-26-1.5-i386-CHECKSUM
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# Fedora-Workstation-netinst-i386-26-1.5.iso: 563085312 bytes
# Fedora-Workstation-Live-i386-26-1.5.iso: 1668284416 bytes
SHA256 (Fedora-Workstation-netinst-i386-26-1.5.iso) = 3b51b90cf322f7ed35bcbcf475f562bccdd320a06cf25880fa14fb683c037b74
SHA256 (Fedora-Workstation-Live-i386-26-1.5.iso) = f010f48edef357bfc3eb204239fe06833075e3af248d9fddd782bd42fe5c87f2
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZX6UZAAoJEIEqa0tk2rhdGjoP/2dfjfQa+dq+QKavBC/jk86G
/vpdR9XmT15K5jGRLRT7it42GWtfpgSYFJzmN3eDZgxzjicBrKJfWCfQuRZJkzuI
Z3DIq1mRugnDwIu9Bgz7ek7d0pINyaDHKuxKBLSoYRauRUp6010wo1AxrDBCDB9b
RvWFFA9vA4ljPngCW6bdyN9zC3caZVPPQA37LnjASobEVZOFu4k6M8vRMueuHhpR
imRv0B53nYWTURcUXeDgqXSaxpWsYjxGv4Jue4t+nkk8Ok9XxoxE+bMRFiPXGC+9
y7urz7t9hQX7K2ObxlbCNEug/P7Uah6NI0byYYFhCi5Tu5HdETuzpEfZlIJLjH7w
lk/VSFk4twkGbuRaTFlQ8mGlOg7KxOgF5RxwjwlKhjM6fukRWHwV3HUciquhHn3q
pD0L4jzOIVRdCVSqlI0B09fQKjNz0t+oByWCGhFjRDuDkL4FYmfpOOnwnvTEPYJf
CbtoEDBUDEpGT36Ytw9HQMuIVOG95h95Sfb3o9IpFu5r6y/nwWK+lpZmDAXPDQqD
jRe5a1cZKQmM2D1J41IvxTnOSP3bxqH6NlYujN6kPiyeZ+N0/wn4FQ2LkJy3fVX/
cQHYfHAszFrAu1Z6rK0LDwewsgt7g0I9ND5ceU4875NRRZG4y/QJAAmBukA0ssYu
ndNookGnmKNbI3So7kCv
=fP5e
-----END PGP SIGNATURE-----

Fedora-Server-26-1.5-x86_64-CHECKSUM
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# Fedora-Server-dvd-x86_64-26-1.5.iso: 2401239040 bytes
# Fedora-Server-netinst-x86_64-26-1.5.iso: 507510784 bytes
SHA256 (Fedora-Server-dvd-x86_64-26-1.5.iso) = fad18a43b9cec152fc8a1fd368950eaf59be66b1a15438149a0c3a509c56cf2f
SHA256 (Fedora-Server-netinst-x86_64-26-1.5.iso) = e260921ef5c7bd5ee2a7b2f2f1156af6483014c73984e4cf37f2b6690e0155e5
-----BEGIN PGP SIGNATURE-----

iQIcBAEBCAAGBQJZX6UQAAoJEIEqa0tk2rhdgVYQAIpSCLoOD5QRMUvtedzaW89n
Fgwna0+zrpw/OA9i9mDg9fkZbBuX6xywgtS88dDaUK/L5o7Tou2RxfiaJPub04AZ
drAIIuLC4jAdJVc6LXBpL1UrdHVfCJLv4q9k/fvfAL3m0fJNpZXiie/ImMrBp0kx
SuGEeTrjeOE7KjW3ziKnTviXhDyEcE7pqKymRne5mHvET1Pn7KSfB+86SgvT09B5
j9446T7V6eT9thpiZjeOKx7qWoKEKF3vyGZhjfe1Gt9uif67ElfOnxJApIm0DSvM
kU6SRaHSb+03wQ5bbUhn+LloQ1aAlHqQGDlqYhWRoePoK8z+lLm2sswClNAB8uDp
f+ANYghL+s4GCqeVlYhDAereuqnWM+ixua9Oc1+STpkAgWYROCL5xVYNrlkU5hMY
sJLnR/BIvGHCHPgP+QG5+5qGZGOtFKqgiZi/r+JGz7Jkcc45HuutDPtpo+I+RUlA
M/qbHH4bL+Nq12kCr5kFOVI5bR2HKisRwon8La8p89PlcgWxCr/RUo7eDmiuMHtX
ViALs/erop1s+FJzl/sSFh3PxwWbv3e67UJvMaD3LrE7HZYRD2K85G7fd2R2A+xI
0Zk/QDTkhGdJ//5bbIKJt8I5Y5djsRZ5++u516pvIq0/g24bcROzS187Tiqltg7i
hSUQO4eHF67rRbdMEpWY
=skLW
-----END PGP SIGNATURE-----

VirtualBox mit Debian 9.0 Stretch

get apt cert

wget https://www.virtualbox.org/download/oracle_vbox_2016.asc

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.12 (GNU/Linux)

mQINBFcZ9OEBEACSvycoAEIKJnyyIpZ9cZLCWa+rHjXJzPymndnPOwZr9lksZVYs
12YnsEy7Uj48rTB6mipbIuDDH9VBybJzpu3YjY7PFTkYAeW6WAPeJ8RcSGXsDvc0
fQ8c+7/2V1bpNofc9vDSdvcM/U8ULQcNeEa6DI4/wgy2sWLXpi1DYhuUOSU10I97
KHPwmpWQPsLtLHEeodeOTvnmSvLX1RRl32TPFLpLdjTpkEGS7XrOEXelqzMBQXau
VUwanUzQ2VkzKnh4WecmKFT7iekOFVHiW0355ErL2RZvEDfjMjeIOOa/lPmW7y4F
fHMU3a3sT3EzpD9ST/JGhrmaZ+r5yQD4s4hn1FheYFUtUN0dqHe9KgPDecUGgh4w
rGnm0nUQsmQLKGSFXskqt26IiERdRt1eXpR9C5yufCVZfYpSsoG/mIHAt9opXFqi
ryJqzx5pfQkOLTz9WErThHK1399jyXJwYGKLyddHFQEdy3u3ELM8Kfp7SZD/ERVq
t2oA8jsr24IOyL16cydzfSP2kAV1r30bsF/1Q4qq6ii/KfDLaI0KEliBLQuB9jrA
6XQ69VLtkNPgiWzVMclg+qW1pA8ptXqXLMxi4h5EmE5GOhsihuwkwhhBmFqGT1RJ
EGlc/uiHWQskOW3nhQ3Epd6xhCUImy8Eu83YRxS6QriH6K8z5LgRSdg9nwARAQAB
tElPcmFjbGUgQ29ycG9yYXRpb24gKFZpcnR1YWxCb3ggYXJjaGl2ZSBzaWduaW5n
IGtleSkgPGluZm9AdmlydHVhbGJveC5vcmc+iQI3BBMBCgAhBQJXGfThAhsDBQsJ
CAcDBRUKCQgLBRYDAgEAAh4BAheAAAoJEKL2g8UpgK7P49QP/39dH+lFqlD9ruCV
apBKVPmWTiwWbqmjxAV35PzG9reO7zHeZHil7vQ6UCb6FGMgZaYzcj4Sl9xVxfbH
Zk7lMgyLDuNMTTG4c6WUxQV9UH4i75E1IBm9lOJw64bpbpfEezUF/60PAFIiFBvD
34qUAoVKe49PbvuTy98er5Kw6Kea880emWxU6I1Q1ZA80+o2dFEEtQc+KCgfWFgd
O757WrqbTj6gjQjBAD5B4z5SwBYMg1/TiAYF0oa+a32LNhQIza/5H3Y+ufMfO3tY
B/z1jLj8ee5lhjrv0jWvvfUUeIlq5pNoOmtNYFS+TdkO0rsqEC6AD0JRTKsRHOBu
eSj7SLt8gmqy7eEzRCMlYIvoQEzt0/JuTQNJjHCuxH1scV13Q3bK6SmxqlY46tf5
Ljni9Z4lLJ7MB1BF2MkHuwQ7OcaEgUQBZSudzPkpRnY0AktiQYYP4Q1uDp+vfvFp
GTkY1pqz3z2XD66fLz0ea5WIBBb3X/uq9zdHu8BTwDCiZlWLaDR5eQoZWWe+u+5J
NUx1wcBpC1Hr2AnmuXBCRq+bzd8iaB8qxWfpCAFZBksSIW2aGhigSeYdx1jpjOob
xog4qbuo5w1IUh8YLHwQ6uM12CqwC1nZadLxG0Fj4KoYbvp0T5ryBM3XD+TVGjKB
m/QHLqabxZBbuJT0Cw2dRtW/ty5ZuQINBFcZ9OEBEADEY+YveerQjzzy5nA1FjQG
XSaPcjy4JlloRxrUyqlATA0AIuK7cwc7PVrpstV8mR9qb38fdeIoY1z1dD3wnQzJ
lbDfZhS5nGMzk9AANd6eJ2KcWI3qLeB//4fr2pPS0piOG4qyW4IhY4KeuCwusE6d
IyDBg2XEdpG1IesSDaqNsvLZjPFEBNiCIkqrC7XSmoPNwHkKGj5LeD1wAE914cn2
a04IlbXiT46V9jjJFnNem/Co0u+2e2J3oReNmHvbb62OC57rqeBxqBplXg9tvJk/
w0A3bXxUrfz83tY6vDYoFdwJDudaJJWQjvqpYnySXMJYT6KoE4Xgl5fNcbNIVUpU
k74BcWD9PZVadSMN7FWZzMfVsbTMmUA22tuDKD6hrF6ysCelex4YO44kSH7dhXu5
ANtZ2BFfRZvdjTQoblOI8C9cy/iX74vvG8OZarFG+u/kon3+xcAgY5KceUVbostO
0n3V8iK0gMQWH8sR8vXH+oV4GqHUEQURax2XM2Tt7Ra5XGcQaYDIkNPKSVVVtTk5
3OU/bNoBofAbwd4eOZOf9ag5ZVIIaoubMOEiveGYde4AEVE7krSNcYh/C48iCVKr
eOyS26AVA15dAvnKTAqxJqICUSQ9zjGfTp1obhXCkMAy0m+AxNVEfSzFznQLHtWK
zEGr+zCsvj1R8/qlMpHBXQARAQABiQIfBBgBCgAJBQJXGfThAhsMAAoJEKL2g8Up
gK7PKpQP+wY9zLgnJeqrvNowmd70afd8SVge9BvhLh60cdG+piM5ZuEV5ZmfTFoX
XPHzOo2dgt6VYTE9JO72Jv7MyzJj3zw3G/IcJQ6VuQwzfKkFTD+IeOiXX2I2lX1y
nFv24rs1MTZ4Px1NJai7fdyXLiCl3ToYBmLafFpfbsVEwJ8U9bCDrHE4KTVc9IXO
KQ5/86JaIPN+JJLHJoO2EBQC08Cw3oxTDFVcWZ/IWvEFeqyqRSyoFMoDkjLYsqHS
we1kEoMmM2qN20otpKYq8R+bIEI5KKuJvAts/1xKE2cHeRvwl5kcFw/S3QQjKj+b
LCVTSRZ6EgcDDmsAPKt7o01wmu+P3IjDoiyMZJQZpZIA2pYDxruY+OLXpcmw78Gq
lTXb4Q9Vf47sAE8HmHfkh/wrdDeEiY9TQErzCBCufYbQj7sgttGoxAt12N+pUepM
MBceAsnqkF6aEa4n8dUTdS2/nijnyUZ2rDVzikmKc0JlrZEKaw8orDzg8fXzfHIc
pTrXCmFLX5BzNQ4ezAlw0NZG/qvhSBCuAkFiibfQUal8KLYwswvGJFghuQHsVTkf
gF8Op7Br7loTNnp3yiI0jo2D+7DBFqtiSHCq1fIgktmKQoVLCfd3wlBJ/o9cguT4
Y3B83Y34PxuSIq2kokIGo8JhqfqPB/ohtTLHg/o9RhP8xmfvALRD
=Rv7/
-----END PGP PUBLIC KEY BLOCK-----

install cert

apt-key add oracle_vbox_2016.asc

add apt source list

nano /etc/apt/sources.list.d/virtualbox.list
deb http://download.virtualbox.org/virtualbox/debian stretch contrib

install

apt update
apt install virtualbox-5.1