NG_BT3C(4)
π NG_BT3C π
okay bestie, gather round, because this is the manual page for ng_bt3c β the Netgraph node type that is also a 3Com Bluetooth PC card driver. yes. both. it's giving multitasking icon energy. π
β¨ SYNOPSIS β¨
#include <sys/types.h>
#include <netgraph/bluetooth/include/ng_bt3c.h>
like, that's the whole vibe. two includes. slay. π
π¨ DEPRECATION NOTICE π¨
bestie. listen. This driver is scheduled for removal prior to the release of FreeBSD 13.0. it's on the way out. no cap. enjoy it while it's here π
πΈ DESCRIPTION πΈ
so the btccc node type is both a persistent Netgraph node type and a driver for the 3Com Bluetooth PC card (3CRWB6096-HP). it's a dual threat, a main character, we love that for it. β¨
it implements a Bluetooth HCI UART transport layer as per chapter H4 of the Bluetooth Specification Book v1.1. and the cute part? a new node gets created when the card is plugged. automatic. iconic. no setup arc needed.
okay but here's the thing, and I need you to hear me on this one: in order to use the card one MUST download the firmware first. like, capital-M MUST. no firmware, no card. and because of copyright issues, the firmware literally cannot be provided with this driver. π
but don't spiral, because the firmware can be obtained from the Windows driver package, which you can download from the 3Com web site at no charge. free. gratis. we love a freebie. π«Ά the firmware name is BT3CPCC.BIN. and to load the firmware into the card, you use bt3cfw(8). and get this β the original author was using the original firmware that came with the card on CD-ROM. vintage. retro. obsessed. π
MD5 (BT3CPCC.BIN) = 36170fda56ea9fdbf1702c966f8a97f1
^ that's the checksum, so you know you got the right one. screenshot it. save it. iykyk. π
now, the node has a single hook called hook. here's the flow, bestie:
- incoming bytes received on the device get re-assembled into HCI frames (according to the length)
- full HCI frames are sent out on the
hook - HCI frames received on
hookare transmitted out - and no modification to the data is performed in either direction β it's a straight pass-through, no editing, no commentary, just vibes π¦
π₯ HARDWARE π₯
the ng_bt3c driver provides support for the 3Com/HP 3CRWB6096-A PCCARD bluetooth adapter. that's the one. that's the girl. π
π HOOKS π
this node type supports the following hooks:
hookβ single HCI frame contained in single mbuf structure. one frame, one mbuf. simple. clean. periodt. π
π CONTROL MESSAGES π
so this node type supports the generic control messages, plus these little guys:
NGM_BT3C_NODE_GET_STATE(get_state) β returns the current receiving state for the node. πNGM_BT3C_NODE_SET_DEBUG(set_debug) β this command takes an integer argument and sets the current debug level for the node.NGM_BT3C_NODE_GET_DEBUG(get_debug) β returns an integer containing the current debug level for the node.NGM_BT3C_NODE_GET_QLEN(get_qlen) β this command takes a parameter that specifies queue number and returns the current length of the queue for the node.NGM_BT3C_NODE_SET_QLEN(set_qlen) β this command takes two parameters that specify the queue number and the maximum length of the queue, and sets the maximum length of the queue for the node.NGM_BT3C_NODE_GET_STAT(get_stat) β returns various statistic information for the node, such as: number of bytes (frames) sent, number of bytes (frames) received and number of input (output) errors. πNGM_BT3C_NODE_RESET_STAT(reset_stat) β reset all statistic counters to zero. fresh start. clean slate. we love a reset. β¨NGM_BT3C_NODE_DOWNLOAD_FIRMWAREβ download card firmware. that's it. that's the whole thing. π
π SHUTDOWN π
this node shuts down when the corresponding card is un-plugged. bye bestie ππ
π SEE ALSO π
cardbus(4), netgraph(4), pccbb(4), pcic(4), pccard.conf(5), bt3cfw(8), ngctl(8)
β HISTORY β
the btccc node type was implemented in FreeBSD 5.0. a legend since day one, fr fr. π¦
π AUTHORS π
Maksim Yevmenkin <m_evmenkin@yahoo.com>
π BUGS π
the driver is based on information obtained from Jose Orlando Pereira <jop@di.uminho.pt> and disassembled the W2K driver. reverse-engineering detective work, honestly iconic of them πβ¨
okay that's the whole page bestie!! this one came out of the Debian edition of the Kernel Interfaces Manual, dated December 17, 2004 β genuinely a time capsule and I'm obsessed with her ππ go flash that firmware (after downloading it, obviously) and slay β¨
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2001-2002 Maksim Yevmenkin <m_evmenkin@yahoo.com>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms