Skip to content
This repository has been archived by the owner on Nov 2, 2021. It is now read-only.

Latest commit

 

History

History
144 lines (93 loc) · 4.4 KB

INSTALL_raspbian.md

File metadata and controls

144 lines (93 loc) · 4.4 KB

Copyright (C) 2014-2016, Jaguar Land Rover

This document is licensed under Creative Commons Attribution-ShareAlike 4.0 International.

Version 0.5.1

INSTALLATION OF RVI (RASPBIAN)

This document describes the installation process for the RVI project on Raspbian. Packages are also available for Ubuntu and Raspbian. See BUILD.md for building from source.

Please see README.md for a general description of the project and its structure.

Please see CONFIGURE.md for details on configuring and launching the system once it has been built.

The first milestone of the RVI project is the HVAC demo. Please see hvac_demo/README.md for details on how to setup, launch and drive the demo.

READER ASSUMPTIONS

In order to build the system, the reader is assumed to be able to:

  1. Have a basic understanding of Linux system operations.
  2. Install packages on the system.

Please note that the configuration process described in CONFIGURE.md may have additional skill requirements.

PREREQUISITES

  1. The Raspbian system has the latest updates installed.
  2. The user has sudo access to install packages.
  3. There is at least 5GB of space availabled for packages and code.

INSTALLATION PROCESS

GET RASPBIAN PACKAGES

Download the Raspbian package from https://github.com/PDXostc/rvi_core/releases. Then extract the tarball to get packages for Erlang and RVI, as well as an install script.

INSTALL ERLANG AND RVI

Make the install script executable:

sudo chmod +x installRVI

Then run the install script:

./installRVI

This does the following:

  1. Extracts the Erlang tarball
  2. Installs the required Erlang packages
  • erlang-base
  • erlang-asnl
  • erlang-crypto
  • erlang-eunit
  • erlang-public key
  • erlang-ssl
  • erlang-syntax-tools
  1. Installs other dependencies (bluez and python-jsonrpclib)
  2. Installs rvi
  3. Starts rvi via systemctl
  4. Checks the status of rvi via systemctl.

TEST THE RVI SYSTEM

To confirm that RVI has started, use systemctl as root user:

systemctl status rvi

Expected output:

● rvi.service - Remote Vehicle Interaction Service
   Loaded: loaded (/lib/systemd/system/rvi.service; disabled)
   Active: active (running) since Tue 2016-02-23 18:30:03 UTC; 48ms ago
  Process: 6049 ExecStart=/usr/bin/rvi_ctl -c /etc/rvi/rvi.config start (code=exited, status=0/SUCCESS)
 Main PID: 6081 (run_erl)
   CGroup: /system.slice/rvi.service
           ├─6081 run_erl -daemon /tmp/rvi_6049/ /var/log/rvi exec erl -boot /tmp/rvi_6049/rvi/start -sname rvi -config /tmp/rvi_6049/rvi/sys -setcookie rvi_cookie
           ├─6084 /usr/lib/erlang/erts-7.2/bin/erlexec -boot /tmp/rvi_6049/rvi/start -sname rvi -config /tmp/rvi_6049/rvi/sys -setcookie rvi_cookie
       ├─6093 sh -c "/usr/lib/erlang/erts-7.2/bin/epmd" -daemon
           └─6094 /usr/lib/erlang/erts-7.2/bin/epmd -daemon

GET STARTED WITH SERVICES

Find out which services are registered through rvi_get_services:

/usr/lib/rvi_core/rvi_get_services

The command should return no output, since we have not registered any services yet.

Register a service by calling rvi_service -- start with "hello":

/usr/lib/rvi_core/rvi_service hello

Expected output:

RVI General Service.
RVI node URL:         http://localhost:9001
Service:              genivi.org/vin/default_vin/hello
Press enter to quit: 

In another terminal, call rvi_get_services again to see the newly registered service:

genivi.org/vin/default_vin/hello

Invoke the service through rvi_call and the full service name:

/usr/lib/rvi_core/rvi_call genivi.org/vin/default_vin/hello

In terminal 1 (where you called rvi_service), you should see the following output:

Service invoked!
args: {}

In terminal 2 (where you called rvi_call), you should see the following output:

RVI Node:          http://localhost:9001
Service:           genivi.org/vin/default_vin/hello
args:              {}

You can pass arguments to a service call with the format name=value:

/usr/lib/rvi_core/rvi_call genivi.org/vin/default_vin/hello \
a=b message=hello

CREATE A RELEASE

The installer configures a release with default (insecure) values.

See CONFIGURE.md for details on configuring and creating a developer and production release that can be launched.