Using AVIRT
===================================
## Introduction
## Table of Contents
1. [Load/Unload AVIRT](#un-load-avirt)
2. [Configuring AVIRT](#configuring-avirt)
## Loading and Unloading AVIRT
As root, load the required ```avirt_core.ko``` and subsequent audio path.
As an example, the Dummy Audiopath is being loaded here.
```sh
insmod avirt_core.ko
insmod dummy/dummy_audiopath.ko
```
### Note:
The loading and unloading of drivers can be performed using the helper scripts.
To run, we must load the kernel modules using the `loadDrivers.sh` script, which contains sample module parameters to AVIRT:
```sh
$ ./loadDrivers.sh
```
To unload the drivers use:
```sh
$ ./unload.sh
```
## Configuring AVIRT
AVIRT is configured using configfs.
### Note:
A sample script for the following is supplied inside the ```scripts``` folder.
First, verify the kernel supports the use of configfs.
```sh
fgrep configfs /proc/filesystems
```
the expected output is:
```
nodev configfs
```
Once confirmed, we can mount the configfs at the conventional point:
```sh
#Check configfs is mounted on the system
mkdir -p /config
mount -t configfs none /config
```
Finally, we can configure AVIRT:
```sh
# Set up each of the cards channels
mkdir /config/avirt/streams/playback_media
echo "2">/config/avirt/streams/playback_media/channels
mkdir /config/avirt/streams/playback_navigation
echo "1">/config/avirt/streams/playback_navigation/channels
mkdir /config/avirt/streams/playback_emergency
echo "1">/config/avirt/streams/playback_emergency/channels
mkdir /config/avirt/streams/capture_voice
echo "1">/config/avirt/streams/capture_voice/channels
# Finally, seal the card, and initiate configuration
echo "1">/config/avirt/streams/sealed
```
### Note:
A simplified helper library, libavirt, is available [here](https://github.com/fiberdyne/libavirt).
Please refer to the readme in libavirt for further details.