From owner-freebsd-bluetooth@FreeBSD.ORG Thu Jul 12 17:21:13 2007 Return-Path: X-Original-To: freebsd-bluetooth@freebsd.org Delivered-To: freebsd-bluetooth@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C1B8F16A46C for ; Thu, 12 Jul 2007 17:21:13 +0000 (UTC) (envelope-from rpaulo@fnop.net) Received: from core.fnop.net (mx.fnop.net [82.102.11.82]) by mx1.freebsd.org (Postfix) with ESMTP id 55EEA13C45A for ; Thu, 12 Jul 2007 17:21:13 +0000 (UTC) (envelope-from rpaulo@fnop.net) Received: from core.fnop.net (mx.fnop.net [82.102.11.82]) by core.fnop.net (Postfix) with ESMTP id 95E12690DC3; Thu, 12 Jul 2007 18:15:46 +0100 (WEST) Received: by core.fnop.net (Postfix, from userid 1015) id 3D39F690DCD; Thu, 12 Jul 2007 18:15:46 +0100 (WEST) X-Spam-Checker-Version: SpamAssassin 3.1.7 (2006-10-05) on core.fnop.net X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,FORGED_RCVD_HELO autolearn=ham version=3.1.7 Received: from epsilon.local (62.169.115.40.rev.optimus.pt [62.169.115.40]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by core.fnop.net (Postfix) with ESMTP id E04E5690DC3; Thu, 12 Jul 2007 18:15:44 +0100 (WEST) Message-ID: <46966301.7060004@fnop.net> Date: Thu, 12 Jul 2007 18:21:05 +0100 From: Rui Paulo User-Agent: Thunderbird 2.0.0.4 (X11/20070704) MIME-Version: 1.0 To: Anish Mistry References: <469593F2.1040703@fnop.net> <200707121307.38442.amistry@am-productions.biz> In-Reply-To: <200707121307.38442.amistry@am-productions.biz> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP Cc: freebsd-bluetooth@freebsd.org Subject: Re: HCI - HID proxy X-BeenThere: freebsd-bluetooth@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Using Bluetooth in FreeBSD environments List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jul 2007 17:21:13 -0000 Anish Mistry wrote: > On Wednesday 11 July 2007, Rui Paulo wrote: >> Hi, >> For my SoC project I developed a userland utility that switches an >> ubt(4) controller from HID to HCI and vice versa. >> >> I have some design issues still being worked out, namely: >> 1) What's the best way to integrate this into the existing >> bluetooth utilities ? Create a new utility called, for example, >> ubthid2hci ? Name suggestions are welcome. > If you haven't seen it, I created a utility just for logitech devices > a while back. > http://lists.freebsd.org/pipermail/freebsd-bluetooth/2006-December/000824.html Cool, that's something we also need. :-) > >> 2) According to the hid2hci Linux utility, there are several >> dongles out there that need this tweak in order to work. I was >> thinking we could create a text file with the vendors/products and >> their bootup mode (HCI or HID); use ubthid2hci to read that file >> and then switch the device to HCI mode (or HID mode if the user >> requested it). >> This is mostly what the Linux hid2hci utility does, except that the >> vendor/product table is inside the program. > > Couldn't we create something that is run through devd and the checks > options from rc.conf? So we'd have that table file you mention, and > we could put the enable/disable options in the rc.conf file. eg. > ubthid2hci_enable="YES" > ubthid2hci_flags="list of vendor/product id pairs here that we want to > be used as HCI devices" I would prefer if this list was a file and not a command line. Maybe /usr/share/misc/usb_hidhci_map. Anyway, if you want to use devd it would be something like: attach 100 { match "vendor" "0x05ac"; match "product" "0x1000"; action "/usr/bin/ubthid2hci -m 0 $device-name"; }; And then repeat this for every device that needs to be switched to HCI mode. This has the problem of not being able to switch the device to HID mode because when you try to do that, devd will automatically switch it back to HCI mode if this attach rule is present. I don't think this is a serious issue because the HID mode is normally only needed before the operating system has booted. >> 3) Fix libusb and use hid2hci on FreeBSD. > Isn't hid2hci GPL'd? We'd want a BSD licensed utility since it'd be > in the base. Yes, when I suggested this it had the implication of using hid2hci from ports. -- Rui Paulo