Bc-96ac Driver — Safe & Proven
Example DT fragment (UART):
bc96ac@0
compatible = "vendor,bc96ac";
reg = <0>;
gpios = <&gpio 23 GPIO_ACTIVE_HIGH>; // power
vcc-supply = <&vcc_3v3>;
uart-supply = <&vcc_1v8>;
modem-type = "nb-iot";
;
Cause: USB 3.0 interference or power delivery issues. Fix: Go to Power Options → Change plan settings → Change advanced power settings → USB settings → USB selective suspend setting → Disable.
Older BC-96AC adapters may work with the Wireless USB Adapter Driver for Mac from Chipset. However, for macOS 10.15 (Catalina) and newer, native drivers are rare. Use a Windows virtual machine or replace the adapter. bc-96ac driver
Step 1: Download the BC-96AC driver package and extract the ZIP file.
Step 2: Run Setup.exe as Administrator.
Step 3: Accept the license agreement. The installer will detect the adapter.
Step 4: Select "Install driver and utility software."
Step 5: Wait for the installation to complete (approx. 2 minutes). You may see a command prompt window flash—this is the driver signing process.
Step 6: Restart your computer.
Step 7 (Manual INF method if auto-install fails): Cause: USB 3
If you’re on Windows and lost the driver, grab it from:
// bc96ac_driver.c
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/tty.h>
#include <linux/tty_driver.h>
#include <linux/serial_core.h>
#include <linux/usb.h>
#include <linux/platform_device.h>
#include <linux/gpio/consumer.h>
#include <linux/regulator/consumer.h>
#include <linux/firmware.h>
#define DRIVER_NAME "bc96ac"
static int bc96_probe(struct usb_interface *intf, const struct usb_device_id *id)
// bind to USB device, claim interface, create tty port, request firmware if needed
return 0;
static void bc96_disconnect(struct usb_interface *intf)
// cleanup, unregister tty, free resources
static struct usb_device_id bc96_table[] =
USB_DEVICE(0x1234, 0x5678) , // replace with real VID:PID
;
MODULE_DEVICE_TABLE(usb, bc96_table);
static struct usb_driver bc96_driver =
.name = DRIVER_NAME,
.id_table = bc96_table,
.probe = bc96_probe,
.disconnect = bc96_disconnect,
;
module_usb_driver(bc96_driver);
MODULE_AUTHOR("Author Name");
MODULE_DESCRIPTION("BC-96AC modem driver (skeleton)");
MODULE_LICENSE("GPL");
Notes:
Most BC-96AC adapters use a Broadcom chipset. However, some clones use Realtek’s RTL8812AU or RTL8814AU. Try these universal driver packages: