Open Source Hack Lets The Razer Nari Headset Work With Linux

The Razer Nari is a decent wireless headset, but it’s a little oddball—because it uses a bespoke USB dongle for pairing. This is all well and good if you’re using a supported configuration; plug it into a Windows PC, run the utility, and you’re good to go. If you’re a Linux user, though, you were out of luck—but [JJ] has just solved that problem.

The tool was created by reverse engineering the pairing protocol used by Razer’s own proprietary software. [JJ] figured out the necessary pairing command, and how to send it to both the dongle and the headset. The headset itself must be connected by a USB cable when initiating the pairing process.

[JJ] believes the tool should work with any Razer Nari and dongle variant. However, the Nari Ultimate and Nari Essential models are yet to be tested, with verification still required. However, the pairing commands were extracted from Razer’s own tool and don’t appear to differ so it should probably work across the boardSetup is still a little fussy, particularly to get both the Game Audio and Chat Audio outputs working under Linux. However, [JJ] has helpfully provided the necessary detail to get everything up and running with PulseAudio and PipeWire setups.

Proprietary hardware can be frustrating to work with at times, but that’s never stopped hackers from reverse engineering their way to success before. If you’ve got your own projects in this vein, don’t hesitate to notify the tipsline!

20 thoughts on “Open Source Hack Lets The Razer Nari Headset Work With Linux

    1. I don’t think you need to be an audio nut to notice both the quality and latency limitations of Bluetooth, and the low end headphone space is pretty crowded. Do you really think there’s zero room for innovation?

      1. Audio quality from modern BT is pretty good, you’d need a good playback device and location to notice anything at all there, so the small travel speaker or headphone type uses wired or not really wont make much odds.. But the latency while not a problem for most folks as the playback system is aware and will sync the video playback to the audio latency is there and that can easily matter for gamers.

    2. My choice in phones has substantially decreased due to the “no headphone jack issue”. Hugely hate bt only, its one more thing to remember to charge while plugin headphones just work and don’t drain the battery as much.

      Before the big corp apologists chime in, no I don’t want to use a pair of usbc headphones. All my devices have standard headphone jacks, why would I want to remember a specific pair of headphones that can only be used with a couple things I own at best?

      All that backwards compatibility undone for what $0.50 savings in mfr cost and a couple millimeters of thickness? Things are already thin enough, this isn’t the early 2000’s brick phones.

    1. There’s more to “support” than just throwing the hardware driver out there and trusting that people make the best of it. When it fails to work for someone, because of some oddball linux/distro/audio system variation, they’re going to get the blame even though there’s nothing they could do about it, because there’s no standard way to “support” all Linux users.

      If there’s user-space software involved, it becomes downright impossible to cater to everyone, again because there’s not even a standard way to make a system tray widget under Linux that everyone would agree with.

      The best they could offer is something like “Tested under Ubuntu such and so and Debian Y”, but even that is a moving target. You upgrade your distro and oh, where’s my system tray widget? The company could give you the source code to their product, so the “community” could keep fixing it to fit whatever they’re doing, but that would be handing over control of their product to someone else. It would reduce them to just selling you the hardware without control of any features or design of what should happen on the software side – and that’s half of the product they’re selling you.

      1. Sounds like the audio interface uses regular standards that just work, so all that is needed is a method of pairing them. And as that sounds to me like its all doable inside the USB device driver for it and that would entirely universal to ALL Linux systems with a USB stack and suitably modern kernel. A really nice system UI design reflecting GUI for it is a little more work, but really not required, a very basic GUI that doesn’t care what DE you are using it just opens a window and has a ‘Pair’ button when the system can see the USB devices…

        1. A really nice system UI design reflecting GUI for it is a little more work, but really not required,

          “The Razer Nari has dual audio outputs (Game stereo + Chat mono).”

          You have to configure the output profile to select which output is in use, or both, and there’s other device specific tools like battery monitoring and audio testing that are not implemented in the standard driver. That’s where you need the user-land application to provide the user with access to the non-standard or uncommon functions and features that are not exposed by the driver. In other words, all the stuff that makes this product different from cheap run-of-the-mill bluetooth headsets and why you would buy it instead of the generic brand.

          It’s the same problem as with printers and scanners. You have the printer driver, which works, and you can print, but the driver has no user-facing interface to change various settings like, what paper type, how much border margins, do I want to compress the image already in the scanner or stream the raw data? The driver just prints or scans, and whatever program uses it is totally unaware of the specifics of that device beyond the standard minimum, so the user has no way to access those functions. That’s a fancy printer-scanner with all sorts of neat extras and adjustments just printing on default settings.

          That’s why the manufacturer gives you the configuration application, which is missing under Linux because it would be too much work to support it and not enough people paying to have it.

          1. Of course, the common reply is “just give us the specs and we’ll make the app”, but then that goes back to the issue of, who controls the product? What is their idea over how it should work? Now the functionality and user experience of the device depends on third parties.

            To sell the product in the first place, you need that functionality already in place because nobody else is going to do the work for you, since they don’t know the product or its functionality yet. Only after you’ve done the work, launched the product on some platform and provided the full support with drivers and user application, the Linux people come around to say “We want it too!”.

          2. But as the audio device appears to be already following regular standards you don’t need a dedicated application to configure it the OS already has that as it is just an audio device like any other. It seems from a skim that the ONLY novel thing you actually need is a way to get it paired, and that can be in the driver, even with no user GUI – pair automatically when both headset and dongle are present on the USB bus and the driver starts for instance…

    1. Because you didn’t know? Most USB wireless gaming headsets are plug-and-play, even on Linux. Nothing tells you that this particular headset wouldn’t work on Linux.
      Also, this will also concern people who are jumping ship from Windows and switching to Linux.

    2. Does it say anywhere on the box? Do the Reviews actually mention it?
      What you buy headphones for is some combination of comfortable fit, audio quality and price – so if this had great reviews of super low latency high quality audio for the gamer it is rather designed for that is the jackpot feature wise… And regular BT really isn’t very good at low latency at all.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.