This repository contains my port of the SV6256P / SSV6X5X SDIO Wi‑Fi driver from legacy Linux 4.4 to Linux 6.x and above.
The driver now builds and runs on modern kernels, with updated mac80211/cfg80211 integration.
The SSV6256P is a dual-band WiFi chipset from iComm Semiconductor, commonly found in low-cost TV boxes, embedded Linux devices, and IoT applications. The original driver was designed for Linux kernel 4.4, but modern Linux distributions use kernel 6.x which introduced significant changes to the mac80211 wireless stack.
This repository contains a fully functional port of the SSV6256P driver to Linux kernel 6.x+, with all necessary API adaptations and bug fixes.
- SoC: Allwinner H616 (ARM Cortex-A53)
- Board: X96 Q TV Box
- Interface: SDIO
- Kernel: Armbian_25.05.0_linux_6.12.11-edge-sunxi64
| Kernel Version | Status | Notes |
|---|---|---|
| 6.12.x | ✅ Tested | Tested on 6.12.11 |
| 6.13.x+ | ✅ Tested | Tested on 6.18.23 |
| 7.0.x+ | ✅ Expected | Should work (API-compatible) |
| 6.6 LTS | ✅ Tested | Tested on 6.6.44 |
| 5.x | ❌ Not supported | Use original driver |
| 4.x | ❌ Not supported | Use original driver |
sudo apt-get update
sudo apt-get install -y build-essential linux-headers-$(uname -r) gitsudo pacman -S base-devel linux-headerssudo dnf install kernel-devel kernel-headers gcc makeDKMS automatically rebuilds the driver when you upgrade the kernel.
# Install prerequisites
sudo apt-get install -y dkms build-essential linux-headers-$(uname -r) git
# Clone and install
git clone https://github.com/cdhigh/armbian_sv6256p.git
cd armbian_sv6256p
sudo bash ./install-dkms.sh
sudo modprobe ssv6x5x# Install prerequisites
sudo apt-get install -y build-essential linux-headers-$(uname -r) git
# Clone and build
git clone https://github.com/cdhigh/armbian_sv6256p.git
cd armbian_sv6256p
make ARCH=arm64 KSRC=/lib/modules/$(uname -r)/build
ls -lh ssv6x5x.kosudo cp ./ssv6x5x-wifi.cfg /lib/firmware/
sudo cp ./ssv6x5x-sw.bin /lib/firmware/
sudo mkdir -p /lib/modules/$(uname -r)/kernel/drivers/net/wireless/ssv6256p/
sudo cp ./ssv6x5x.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/ssv6256p/
sudo depmod -a
sudo modprobe ssv6x5xFor building custom Armbian images with SSV6X5X support:
# Copy the extension to your Armbian build environment
cp -r armbian/extensions/ssv6x5x.sh /path/to/armbian-build/userpatches/extensions/
# Build with the extension enabled
./compile.sh ENABLE_EXTENSIONS="ssv6x5x"Check kernel log for successful initialization:
dmesg | grep -i ssvip link show
# or
iw devLook for wlan0 or similar interface.
sudo iw dev wlan0 scan | grep SSIDnmcli device wifi connect "YourSSID" password "YourPassword"
or
nmtui# Check driver status
dkms status ssv6x5x
# Rebuild for current kernel
sudo dkms build ssv6x5x/6.0.0
sudo dkms install ssv6x5x/6.0.0
# Uninstall
sudo dkms remove ssv6x5x/6.0.0 --all- Vendor driver sources
- Linux mac80211 maintainers for API references
- Community help on porting legacy Wi‑Fi drivers