Note : these instructions are only useful for :
- VX222e boards with hardware revision IS=06 or higher
- VX222e-Mic boards with hardware revision IS=05 or higher
- PCX924e boards with hardware revision IS=05 or higher
- PCX924e-Mic boards with hardware revision IS=05 or higher
Earlier hardware revisions (or any other PCX/VX board) can use the
snd-pcxhr
driver that is already included in the Linux kernel.
- Option 1 : Automatic installation
- Option 2 : Manually building and installing the driver
This method works on most major distributions, by using the DKMS system. After the initial installation, nothing more is needed to be done as DKMS will take care of re-building the driver every time the kernel is updated, or a new kernel is installed.
Requirements :
- A package manager which supports DKMS. Most major distributions support this, please check your distribution’s documentation if you are not sure.
- DKMS
- The kernel headers for the kernel version(s) you need
- Git, if you don’t use a Debian-based or RPM-based distribution
$ sudo apt install dkms linux-headers-$(uname -r)
This will allow you to install the driver for the currently running kernel. If you have other kernels you wish to install it for, you will also need to install their headers by adding linux-headers-<kernelversion>
to the above command (replace <kernelversion>
with the version you need)
Choose the latest .deb
package on the Releases page.
Go into the directory where you downloaded the package (we have downloaded it in ~/digigram
in our example), and install the package :
$ cd ~/digigram
$ sudo apt install ./pcxhr-dkms_2.0.12_amd64.deb
-
For Fedora/CentOS/Red Hat :
$ sudo yum install dkms kernel-devel
-
For SUSE/openSUSE :
$ sudo zypper install dkms kernel-devel
This will allow you to install the driver for the currently running kernel. If you have other kernels you wish to install it for, refer to your distribution’s documentation for installing the relevant kernel headers.
Choose the latest .rpm
package on the Releases page.
Go into the directory where you downloaded the package (we have downloaded it in ~/digigram
in our example), and install the package :
-
For Fedora/CentOS/Red Hat :
$ cd ~/digigram $ sudo yum install ./pcxhr-2.0.12-1dkms.noarch.rpm
-
SUSE/openSUSE :
$ cd ~/digigram $ sudo zypper install ./pcxhr-2.0.12-1dkms.noarch.rpm
Before the next steps, the following packages should be installed through your distribution’s package manager :
- Git : the package is usually called simply
git
- DKMS : the package is usually called simply
dkms
- Kernel headers for all kernel versions you need :
- The package name is
linux-headers-<kernelversion>
on Debian/ Ubuntu and their derivatives. - The package name is
kernel-devel
on most RPM-based distributions such as Fedora, CentOS or openSUSE. - On Arch Linux, it is called
<linuxflavor>-headers
, depending on what kernel flavor you are using. For example :linux-headers
, orlinux-lts-headers
, orlinux-zen-headers
, etc. - For another distribution, please refer to its documentation.
- The package name is
Create a working directory and go into it. In our example, it will be ~/digigram/github_repo
:
$ mkdir -p ~/digigram/github_repo
$ cd ~/digigram/github_repo
Clone the Digigram Github repository :
$ git clone https://github.com/Digigram-audio/pcxhr
Go into the cloned repository, list the available version tags, and check out to the latest one (v2.0.12
at the time of writing) :
$ cd pcxhr
$ git tag
[...]
v2.0.12
$ git checkout v2.0.12
Copy the src/
directory to /usr/src/pcxhr-<version>
, replacing <version>
with the one from the previous command without the "v" prefix (the target directory has to have exactly that name). In our example, the command is :
$ sudo cp -r ./src /usr/src/pcxhr-2.0.12
Use DKMS to install the driver for the current kernel :
$ sudo dkms install pcxhr/2.0.12
After completing one of the previous set of steps depending on your distribution, run the following command to check which kernels the driver has been installed for (example output on an Ubuntu machine with several kernels installed) :
$ sudo dkms status
pcxhr, 2.0.12, 5.4.0-29-generic, x86_64: installed
pcxhr, 2.0.12, 5.4.0-31-generic, x86_64: installed
pcxhr, 2.0.12, 5.4.0-33-generic, x86_64: installed
pcxhr, 2.0.12, 5.4.0-40-lowlatency, x86_64: installed
pcxhr, 2.0.12, 5.4.0-42-generic, x86_64: installed
pcxhr, 2.0.12, 5.4.0-42-lowlatency, x86_64: installed
If you can see the relevant kernel versions with the installed
tag, everything should work fine. If a kernel version you need is missing, you can run the following command to install it, provided that you have already installed the headers (see step 1 of the instructions for your distribution) :
$ sudo dkms install pcxhr/2.0.12 -k <kernelversion>
From now on, the driver will be automatically loaded at boot, and for every kernel update, the package manager will automatically run DKMS to build it. If you want to test right away without a reboot, you can manually load the driver with :
$ sudo modprobe snd-pcxhr
This method works for any Linux system, but requires to be done every time the kernel is updated as it doesn’t use any package manager to automatically rebuild the driver.
Requirements :
- The kernel headers for the kernel version(s) you need
- Git
- Make and a C compiler such as gcc
Please refer to your distribution’s documentation to install these requirements.
Clone the Digigram Github repository :
$ git clone https://github.com/Digigram-audio/pcxhr
Go into the cloned repository, list the available version tags, and check out to the latest one (v2.0.12
at the time of writing) :
$ cd pcxhr
$ git tag
[...]
v2.0.12
$ git checkout v2.0.12
Go into the src/
directory, and compile the driver by simply running make
:
$ cd src/
$ make
The compilation has generated a kernel module : snd-pcxhr.ko
. Copy this module to the kernel’s modules directory :
$ sudo mkdir -p /lib/modules/<kernelversion>/kernel/digigram
$ sudo cp snd-pcxhr.ko /lib/modules/<kernelversion>/kernel/digigram
Then run depmod
to update the module dependencies :
$ sudo depmod -a
At this point, the driver should automatically be loaded at boot if the card is plugged in. To test right away without a reboot :
$ sudo modprobe snd-pcxhr