NOTE: These steps are only required if you want to perform inference on Intel® Vision Accelerator Design with Intel® Movidius™ VPUs.
Configuration Steps
For Intel® Vision Accelerator Design with Intel® Movidius™ VPUs, the following additional installation steps are required.
- Install dependencies
-
Ubuntu 16.04:
sudo apt install libusb-1.0-0 libboost-program-options1.58.0 libboost-thread1.58.0 libboost-filesystem1.58.0 libssl1.0.0 libudev1 libjson-c2 libelf-dev
-
CentOS 7.4:
sudo yum install libusb -y
sudo yum install boost-filesystem-1.53.0-27.el7.x86_64 boost-program-options-1.53.0-27.el7.x86_64 boost-thread-1.53.0-27.el7.x86_64 boost-system-1.53.0-27.el7.x86_64 boost-chrono-1.53.0-27.el7.x86_64 boost-date-time-1.53.0-27.el7.x86_64 boost-atomic-1.53.0-27.el7.x86_64 -y
sudo yum install pciutils -y
sudo yum install redhat-lsb-core-4.1-27.el7.centos.1.x86_64 -y
- Add the current Linux user to the users group:
sudo usermod -a -G users "$(whoami)"
Log out and log in for it to take effect.
- If your Intel® Vision Accelerator Design with Intel® Movidius™ VPUs card requires SMBUS connection to PCIe slot (Raw video data card with HW version Fab-B and before), generate rules for SMBUS controller and enable the i2c_i801 driver (Intel® SMBUS controller driver):
sudo chmod +x ./generate_udev_rules.sh
sudo ./generate_udev_rules.sh /etc/udev/rules.d/98-hddlbsl.rules
-
Ubuntu 16.04: Check if the file
/etc/modprobe.d/blacklist.conf
contains the line "blacklist i2c_i801" and comment it out if so: sudo sed -i "s/\(.*i2c_i801$\)/#\1/g" /etc/modprobe.d/blacklist.conf
sudo modprobe i2c_i801 # unblocking will take effect at next reboot. To avoid reboot, this time we still insmod manually
-
CentOS 7.4: Run the following commands:
sudo touch /etc/modules-load.d/i2c-i801.conf
sudo echo "i2c-i801" >> /etc/modules-load.d/i2c-i801.conf
sudo echo "i2c-dev" >> /etc/modules-load.d/i2c-i801.conf
sudo modprobe i2c_i801 # modules-load.d will take effect at next reboot. To avoid reboot, this time we still insmod manually
- Before you start installing the drivers, make sure there is no inference application is running. Use the following command to make sure there is no HDDL service is running:
kill -9 $(pidof hddldaemon autoboot)
- Install the drivers:
cd ${HDDL_INSTALL_DIR}/drivers
sudo cp -av ${HDDL_INSTALL_DIR}/../97-myriad-usbboot.rules /etc/udev/rules.d/
sudo cp -av ${HDDL_INSTALL_DIR}/etc /
sudo udevadm control --reload-rules
Now the drivers are installed and you are ready to use the Intel® Vision Accelerator Design with Intel® Movidius™ with the Intel® Distribution of OpenVINO™ toolkit.
Possible installation issues
How to solve the permission issue?
Check for the existence of the following udev rules:
/etc/udev/rules.d/97-myriad-usbboot.rules
/etc/udev/rules.d/98-hddlbsl.rules
/etc/udev/rules.d/99-hddl-ion.rules
/etc/udev/rules.d/99-myriad-vsc.rules
Also make sure that the current user is included in the users groups.
setup.sh
doesn't install the driver binaries to /lib/modules
on CentOS systems
As a temporary workaround, run the commands below to install the drivers. This issue will be fixed in future releases.
sudo mkdir -p /lib/modules/$(uname -r)/kernel/drivers/myd/
sudo cp drv_vsc/myd_vsc.ko /lib/modules/$(uname -r)/kernel/drivers/myd/
sudo cp drv_ion/myd_ion.ko /lib/modules/$(uname -r)/kernel/drivers/myd/
sudo touch /etc/modules-load.d/intel_vision_accelerator.conf
sudo echo "myd_vsc" >> /etc/modules-load.d/intel_vision_accelerator.conf
sudo echo "myd_ion" >> /etc/modules-load.d/intel_vision_accelerator.conf
```sh sudo modprobe myd_ion ````
Host machine reboots after running an inference application with the HDDL plugin
Symptom: Boot up the host machine, run the inference application with the HDDL plugin. System reboots in a uncertain time.
Root Cause: The I2C address of the reset device of the Intel® Vision Accelerator Design with Intel® Movidius™ VPUs conflicts with another device I2C address in 0x20-0x27 range. If the target Intel® Vision Accelerator Design with Intel® Movidius™ VPUs device needs to be reset (for example, in case of device errors), the libbsl
library, which is responsible for reset, expects that the target reset device I2C address is in the 0x20-0x27 range on SMBUS. If there is another device on SMBUS in this address range, libbsl
treats this device as the target reset device and writes an unexpected value to this address. This causes system reboot.
Solution: Detect if there is any I2C device on SMBUS with address in 0x20-0x27 range. If yes, do the following:
- Change the DIP switch on the target PCIE card
- Disable autoscan for the reset device by setting
"autoscan": false
in ${HDDL_INSTALL_DIR}/config/bsl.json
- Set the correct address of the I2C reset device (for example,
0x21
) in ${HDDL_INSTALL_DIR}/config/bsl.json
{
"autoscan": false,
"ioexpander": {
"enabled": true,
"i2c_addr": [ 33 ]
}
}
Cannot reset VPU device and cannot find any 0x20-0x27 (Raw data card with HW version Fab-B and before) I2C addresses on SMBUS (using i2c-tools)
Please contact your motherboard vendor to verify SMBUS pins are connected to the PCIe slot.
Get "Error: ipc_connection_linux_UDS : bind() failed" in hddldaemon log.
You may have run hddldaemon under another user. Run the command below and try again:
sudo rm -rf /var/tmp/hddl_*
Get "I2C bus: SMBus I801 adapter at not found!" in hddldaemon log
Run the following command to check if a SMBUS I801 adapter can be found:
Then run:
Get "open /dev/ion failed!" in hddldaemon log
Check if myd_ion
kernel module is installed by running the following command:
If you do not see any output from the command, reinstall the myd_ion
module.
Constantly get "\_name\_mapping open failed err=2,No such file or directory" in hddldaemon log
Check if myd_vsc kernel module is installed by running the following command:
If you do not see any output from the command reinstall the myd_vsc
module.
Get "Required key not available" when trying to install the myd_ion
or myd_vsc
modules
Run the following commands:
sudo mokutil --disable-validation