aboutsummaryrefslogtreecommitdiffstats
path: root/host/docs/ni_rio_kernel.dox
diff options
context:
space:
mode:
authorSteven Koo <steven.koo@ni.com>2020-07-16 14:23:02 -0500
committerAaron Rossetto <aaron.rossetto@ni.com>2020-07-20 16:01:50 -0500
commitdf63ef6f9a6aec2e8ce928017718ab45ae6c57b1 (patch)
tree25cac138b261cd29b2c43e16c97082c7be73a407 /host/docs/ni_rio_kernel.dox
parentba2a16139ac756fad8d478e97ff39075e175235b (diff)
downloaduhd-df63ef6f9a6aec2e8ce928017718ab45ae6c57b1.tar.gz
uhd-df63ef6f9a6aec2e8ce928017718ab45ae6c57b1.tar.bz2
uhd-df63ef6f9a6aec2e8ce928017718ab45ae6c57b1.zip
docs: Update PCIe xport instructions for NI Repos
This is an update to the documentation for installing the RIO PCIe transport infrastructure using the NI Linux Device Driver repository.
Diffstat (limited to 'host/docs/ni_rio_kernel.dox')
-rw-r--r--host/docs/ni_rio_kernel.dox146
1 files changed, 100 insertions, 46 deletions
diff --git a/host/docs/ni_rio_kernel.dox b/host/docs/ni_rio_kernel.dox
index 960426e73..eabed00c6 100644
--- a/host/docs/ni_rio_kernel.dox
+++ b/host/docs/ni_rio_kernel.dox
@@ -4,87 +4,141 @@
\section linux_rio Linux NI RIO Installation and Usage
+\subsection linux_overview Overview
+
+UHD can communicate with USRP X300 / X310 devices using the PCIe transport
+connection. The ni-usrp-rio package in the NI Linux Device Drivers repository
+includes the infrastructure to enable this functionality. This package is only
+intended for UHD PCIe transport support. This does not include NI-USRP API support
+on Linux.
+
\subsection linux_requirements Requirements
In order to use the PCIe transport connection on the USRP X300 / X310 devices,
you must install the NI USRP RIO driver stack. These include kernel modules
-which must be loaded.
+which are loaded using DKMS. Kernel headers are required to build these
+modules. Only x86_64/AMD64 kernels are supported.
-Your kernel version must be supported by the kernel modules. Only 64-bit kernels
-are supported.
+\subsection linux_installation Installing the Drivers in Linux
-<b>Currently, the latest supported kernel version is 4.2.x.</b>
+The NI Linux Device Driver repository can be found at <a
+href=https://www.ni.com/en-us/support/downloads/drivers/download.ni-linux-device-drivers.html>NI Linux Device Drivers</a>.
-\subsection linux_installation Installing the Drivers in Linux
+Note: This guide was written for the NI Linux Device Drivers 2020 release.
+
+<b>Download the corresponding repository rpm or deb for your platform.</b>
+
+For Fedora 31, download the EL8 repository.
+
+For Ubuntu 18.04, download the Bionic repository.
+
+<b>Install the repository rpm or deb:</b>
+
+Fedora
+
+ rpm -i {ni drivers repository}.rpm
+
+Ubuntu
+
+ dpkg -i {ni drivers repository}.deb
+
+<b>Update package information:</b>
+
+Fedora
+
+ dnf check-update
+Ubuntu
+
+ apt update
+
+<b>Install kernel-headers:</b>
+
+Fedora
+
+ dnf install kernel-devel
-The NI USRP RIO installer can be found <a
-href=http://files.ettus.com/binaries/niusrprio/niusrprio-installer-18.0.0.tar.gz>here</a>.
+Ubuntu
-Download the installer and extract it with the following command:
+ apt install linux-headers-$(uname -r)
- tar zxf niusrprio-installer-18.0.0.tar.gz
+Note: You must ensure that the kernel header version is the same as the system kernel version.
+You can check the system kernel version by running:
-The files will be extracted into a directory called <b>niusrprio-installer</b>.
+ uname -r
-To install the NI USRPRIO kernel modules and RPC server, run the following
-command:
+<b>Install ni-usrp-rio:</b>
- sudo niusrprio-installer/INSTALL
+Fedora
-Select 'y' for each prompt, and the script will install all necessary
-components. This script will automatically load all necessary kernel modules
-for the duration of the session.
+ dnf install ni-usrp-rio
+
+Ubuntu
+
+ apt install ni-usrp-rio
+
+<b>Build kernel modules using DKMS:</b>
+
+ dkms autoinstall
+
+If you run into build errors, ensure the kernel headers are installed for
+your current kernel.
+
+<b>Reboot:</b>
+
+ reboot
+
+<b>Run UHD application:</b>
+
+At this point, the connected PCIe device should be visible from UHD. To verify this run:
+
+ uhd_find_devices
+or
+
+ uhd_usrp_probe
\subsection linux_enabling Enabling and Disabling Usage
-Once everything is installed, run the following commands to enable use of the
-X300/X310 over PCI Express:
+The package installers automatically starts the niusrpriorpc service on boot. This service is required to
+communicate with UHD.
+
+To start the service:
- sudo /usr/local/bin/niusrprio_pcie start
+ systemctl start niusrpriorpc.service
-To stop these processes, run the following command:
+To stop the service:
- sudo /usr/local/bin/niusrprio_pcie stop
+ systemctl stop niusrpriorpc.service
-To check if the kernel modules are loaded and if the RPC server is running, run
-the following command:
+To disable the service on boot:
- /usr/local/bin/niusrprio_pcie status
+ systemctl disable niusrpriorpc.service
-<b>NOTE:</b> niusrprio_pcie start does not run when the host system is booted.
-If you would like the USRP PCIe device to be available automatically after
-a system restart, please create an init.d script that runs niusrprio_pcie start.
+To reenable the service on boot:
+
+ systemctl enable niusrpriorpc.service
\subsection linux_swapping Hot-Plugging and Power-Cycling
The USRP X3x0, NI USRP-294x and NI USRP-295x devices <b>cannot</b> be hot-swapped when connected over PCI Express.
-Unplugging the PCI Express connection or powering the device should be done only after disabling the device or
-powering off the host computer.
-
-<b>WARNING:</b> If the device is unplugged without running the `niusrprio_pcie stop` command, the system could become unstable.
+Unplugging the PCI Express connection or powering the device should be done only after powering off the host computer.
\subsection linux_upgrades Upgrading Kernels
-The NI USRPRIO kernel modules are built for a specific kernel version. If the
-kernel version is changed, the modules must be rebuilt for the current kernel.
-The `niusrprio_pcie start` command checks for the necessary modules and rebuilds
-them if necessary.
-
-If it ever becomes necessary to rebuild the modules manually, run the following:
-
- sudo /usr/local/bin/niusrprio_pcie stop
- sudo /usr/local/bin/updateNIDrivers --no-prompt
- sudo /usr/local/bin/niusrprio_pcie start
+DKMS will automatically rebuild the kernel modules when updating kernels. Ensure that the
+appropriate kernel headers are installed when updating kernel versions.
-\subsection linux_uninstalling Uninstalling in Linux
+\subsection linux_uninstalling Uninstalling the Driver in Linux
-To uninstall the NI USRP RIO kernel modules and RPC server, run the following
-command:
+To uninstall ni-usrp-rio, run the following commands:
- sudo /usr/local/bin/niusrprio_uninstall
+Fedora:
-Select y at the prompt, and the script will uninstall all installed components.
+ dnf remove ni-usrp-rio
+Ubuntu:
+
+ apt remove ni-usrp-rio
+ apt autoremove
\section windows_rio Windows NI RIO Installation and Usage