If you’re running a Razer BlackWidow V4 on Ubuntu (or any Linux distro) with OpenRazer and Polychromatic, and the keyboard’s RGB lighting simply refuses to turn on after boot — even though everything looks configured correctly — you’re not alone. This is a well-documented issue with this specific keyboard, and after a fairly deep troubleshooting session, I found a reliable, permanent fix. Here’s the full story, including the dead ends, so you can skip straight to what works.
The symptom
- Polychromatic (the GUI for OpenRazer) shows the keyboard, with a static effect and a color set, brightness at 40%.
- The keyboard is completely dark.
- No errors anywhere — not in the GUI, not in the OpenRazer daemon logs.
What turned out to be fine (so you can skip these)
Working through this methodically, the following were all ruled out one by one:
- Kernel driver not loaded.
lsmod | grep razershowedrazerkbdloaded correctly. - Missing permissions. The user was already in the
plugdevgroup, which OpenRazer requires for device access. - USB detection.
lsusb | grep -i razershowed the keyboard correctly enumerated (1532:0287 Razer USA, Ltd Razer BlackWidow V4). - Daemon not running.
ps aux | grep openrazerconfirmed the daemon was active. - Daemon errors on restart. Manually restarting the daemon in the foreground (
openrazer-daemon -F) showed a completely clean log — the device was found, initialized, and set to “driver” mode without a single error. - CLI commands failing silently. Using
polychromatic-clito directly set brightness and effects executed without errors, but still no light.
Everything on the software/permissions/detection side was working. And yet: still dark.
The actual cause
This turned out to match a known OpenRazer bug (see openrazer/openrazer#2291): the BlackWidow V4 doesn’t reliably “wake up” its lighting on a cold boot or fresh login, even though the daemon and driver both report success. The fix that does work, reported by multiple users, is unplugging the USB cable and plugging it back in — at which point the keyboard immediately lights up with the last-set effect.
Physically unplugging and replugging works, but it’s not something you want to do every time you boot your laptop.
First (failed) attempt: unbind/bind via sysfs
My first idea was to emulate a “software unplug” using the kernel’s USB driver unbind/bind mechanism:
echo "5-1.3.3" > /sys/bus/usb/drivers/usb/unbindsleep 2echo "5-1.3.3" > /sys/bus/usb/drivers/usb/bind
This detaches and reattaches the kernel driver from the USB device. It ran without errors — but the keyboard stayed dark. The reason: unbind/bind only affects the driver association in the kernel. It does not cut power to the physical USB port. The BlackWidow V4’s onboard firmware apparently needs an actual power interruption (like a real unplug) to reload its stored lighting profile — a driver-level detach isn’t enough to trigger that.
The actual working fix: uhubctl
The tool that solves this properly is uhubctl, which can toggle power on individual USB hub ports — a true, real power cycle, done entirely in software (provided your hub/port supports per-port power switching, which is common on USB-C docks and many external hubs).
Step 1 — Install uhubctl
sudo apt install uhubctl
Step 2 — Find your keyboard’s hub and port
sudo uhubctl
This lists every USB hub and its ports. Look for your keyboard’s vendor/product ID (1532:0287 for the BlackWidow V4) in the output, e.g.:
Current status for hub 5-1.3 [03f0:086b Microchip Tech USB2734, USB 2.10, 4 ports, ppps] Port 3: 0503 power highspeed enable connect [1532:0287 Razer Razer BlackWidow V4]
The ppps flag in the hub’s description confirms it supports per-port power switching — without this, the rest of the fix won’t work on that particular hub.
Note the hub location (5-1.3 in this example) and port number (3).
Step 3 — Test a manual power cycle
sudo uhubctl -l 5-1.3 -p 3 -a cycle
Watch the keyboard: it should go completely dark for a moment (this is a real power cut, so key input briefly stops working too) and then light back up automatically with the last-configured effect.
Step 4 — Automate it with a script
printf '#!/bin/bash\nsleep 1\nuhubctl -l 5-1.3 -p 3 -a cycle\nsleep 3\n' | sudo tee /usr/local/bin/razer-usb-reset.sh > /dev/nullsudo chmod +x /usr/local/bin/razer-usb-reset.sh
(Using printf piped into tee instead of a text editor avoids line-ending corruption that can happen when pasting multi-line scripts into nano over some terminal setups — worth knowing if you’ve ever seen a systemd unit fail with a cryptic “Bad message” or a script fail with exit code 127 for no obvious reason.)
Step 5 — Run it automatically on every boot with systemd
printf '[Unit]\nDescription=Razer BlackWidow V4 USB Reset for Cold-Boot Lighting Bug\nAfter=multi-user.target\n\n[Service]\nType=oneshot\nExecStartPre=/bin/sleep 8\nExecStart=/usr/local/bin/razer-usb-reset.sh\n\n[Install]\nWantedBy=multi-user.target\n' | sudo tee /etc/systemd/system/razer-lighting-fix.service > /dev/nullsudo systemctl daemon-reloadsudo systemctl enable razer-lighting-fix.servicesudo systemctl start razer-lighting-fix.service
The ExecStartPre=/bin/sleep 8 gives the system a few seconds to finish bringing up USB and the OpenRazer daemon before the power cycle happens — without it, the reset might fire before the daemon is even watching the device.
Step 6 — Reboot and verify
Restart the laptop. A few seconds after login, the keyboard should briefly go dark and then light up on its own — no cable required.
Summary
| Attempt | Result |
|---|---|
| Check driver, permissions, USB detection, daemon status | All fine — not the cause |
| Restart OpenRazer daemon | Clean logs, still dark |
polychromatic-cli direct commands | No errors, still dark |
| Physical unplug/replug | Works |
| USB driver unbind/bind (software) | Runs clean, but no effect — doesn’t cut power |
uhubctl port power cycle | Works, and can be automated |
If your BlackWidow V4 (or possibly other Razer devices with the same firmware quirk) won’t light up on Ubuntu, check whether your USB hub supports per-port power switching with sudo uhubctl, and if it does, the systemd service above will fix it permanently — no more unplugging cables on every boot.
Tested on Ubuntu with OpenRazer 3.12.4 and Polychromatic, Razer BlackWidow V4 connected via a USB-C dock.