|
|
||
|---|---|---|
| tascam_controls | ||
| .gitattributes | ||
| .gitignore | ||
| LICENSE | ||
| Linux Driver Development Specification for TASCAM US-144 MKII.txt | ||
| Makefile | ||
| README.md | ||
| us144mkii.c | ||
README.md
ALSA Driver for TASCAM US-144MKII
An unofficial ALSA kernel module for the TASCAM US-144MKII USB audio interface.
❗ Current Status: Work in Progress
This driver is under active development.
✅ Implemented Features
- Audio Playback:
- Audio Capture (Recording):
- MIDI IN/OUT:
📝 To-Do & Known Limitations
- Find Bugs, if possible improve perforamnce/stablity
Installation and Usage
This is an out-of-tree kernel module, meaning you must compile it against the headers for your specific kernel version.
Step 1: Install Prerequisites (Kernel Headers & Build Tools)
You need the necessary tools to compile kernel modules and the headers for your currently running kernel. Open a terminal and run the command for your Linux distribution:
-
Debian / Ubuntu / Pop!_OS / Mint:
sudo apt update sudo apt install build-essential linux-headers-$(uname -r) -
Fedora / CentOS Stream / RHEL:
sudo dnf install kernel-devel kernel-headers make gcc -
Arch Linux / Manjaro:
sudo pacman -S base-devel linux-headers -
openSUSE:
sudo zypper install -t pattern devel_basis sudo zypper install kernel-devel
Step 2: Blacklist the Stock snd-usb-us122l Driver
The standard kernel includes a driver that will conflict with our custom module. You must prevent it from loading.
-
Create a blacklist file. This tells the system not to load the
snd-usb-us122lmodule.echo "blacklist snd_usb_us122l" | sudo tee /etc/modprobe.d/blacklist-us144mkii.conf -
Rebuild your initramfs. This is a critical step that ensures the blacklist is applied at the very start of the boot process, before the stock driver has a chance to load. Run the command corresponding to your distribution:
- Debian / Ubuntu / Pop!_OS / Mint:
sudo update-initramfs -u - Fedora / RHEL / CentOS Stream:
sudo dracut --force - Arch Linux / Manjaro:
sudo mkinitcpio -P - openSUSE:
sudo mkinitrd
- Debian / Ubuntu / Pop!_OS / Mint:
-
Reboot your computer.
-
After rebooting, verify the stock driver is not loaded by running
lsmod | grep snd_usb_us122l. This command should produce no output.
Note on a More Aggressive Method: If the method above does not work, some systems (like Arch) may load the conflicting module before the blacklist is processed. A more forceful method is to use a
udevrule to de-authorize the device for the kernel entirely, preventing any driver from binding to it automatically.Create the file
/etc/udev/rules.d/99-tascam-blacklist.rulesand add the following line. This targets the Tascam US-122L/144MKII series product ID (8007).ATTR{idVendor}=="0644", ATTR{idProduct}=="8007", ATTR{authorized}="0"After saving, run
sudo udevadm control --reloadand reboot. Note that with this rule in place, you will likely need to load theus144mkiidriver manually withsudo insmod us144mkii.koeach time. Themodprobemethod is preferred for automatic loading.
Step 3: Compile and Load the Driver
This process will build the module from source and load it for your current session. This is the best way to test it.
-
Clone this repository and navigate into the source directory.
-
Compile the module:
make -
Load the compiled module into the kernel:
sudo insmod us144mkii.ko -
Connect your TASCAM US-144MKII. Verify that the driver loaded and the audio card is recognized by the system:
# Check if the kernel module is loaded lsmod | grep us144mkii # Check if ALSA sees the new sound card aplay -lThe first command should show
us144mkii. The second command should list your "TASCAM US-144MKII" as an available playback device. You should now be able to select it in your audio settings and play sound.
Step 4: Install for Automatic Loading on Boot
To make the driver load automatically every time you start your computer, follow these steps after you have successfully compiled it in Step 3.
-
Tell the system to load the module on boot.
echo "us144mkii" | sudo tee /etc/modules-load.d/us144mkii.conf -
Copy the compiled module to the kernel's extra modules directory. This makes it available to system tools.
sudo cp us144mkii.ko /lib/modules/$(uname -r)/extra/ -
Update module dependencies. This command rebuilds the map of modules so the kernel knows about our new driver.
sudo depmod -a
Now, after a reboot, the us144mkii driver should load automatically.
License
This project is licensed under the GPL-2.0 see the LICENSE file for details.