鬼島慶介と愉快な仲間達が、悪徳業者や悪質サイトをぶった斬るブログです!

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:

  • Key kernel components:
  • Error handling: robust AT timeout/retry, reset on fatal error, rate-limit logs